
:root {
  --ink: #090909;
  --ink-soft: #151515;
  --ink-card: #1b1b1b;
  --paper: #ffffff;
  --paper-soft: #f7f5f2;
  --muted: #6d6d6d;
  --line: rgba(9, 9, 9, 0.12);
  --line-light: rgba(255, 255, 255, 0.16);
  --orange: #ff6b00;
  --orange-2: #ff9a3d;
  --orange-deep: #d94d00;
  --success: #11865b;
  --danger: #b62b2b;
  --shadow-sm: 0 10px 30px rgba(0,0,0,.08);
  --shadow-lg: 0 28px 80px rgba(0,0,0,.17);
  --radius-sm: 14px;
  --radius: 24px;
  --radius-lg: 36px;
  --container: min(1180px, calc(100vw - 40px));
  --header-h: 82px;
  --ease: cubic-bezier(.2,.8,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper-soft);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { display:block; max-width:100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
::selection { background: rgba(255,107,0,.22); }

.skip-link {
  position: fixed; left: 16px; top: -100px; z-index: 9999;
  background: var(--paper); color: var(--ink); padding: 10px 14px;
  border-radius: 10px; box-shadow: var(--shadow-sm);
}
.skip-link:focus { top: 16px; }
.container { width: var(--container); margin-inline:auto; }
.section { padding: 96px 0; position:relative; }
.section-sm { padding: 66px 0; }
.section-dark { background: var(--ink); color: var(--paper); }
.section-orange { background: var(--orange); color: var(--ink); }
.eyebrow {
  margin: 0 0 12px; color: var(--orange); text-transform: uppercase;
  letter-spacing: .18em; font-size: .76rem; font-weight: 800;
}
.section-dark .eyebrow { color: var(--orange-2); }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:1.08; letter-spacing:-.035em; }
h1 { font-size: clamp(2.7rem, 7vw, 6.6rem); margin-bottom: 24px; }
h2 { font-size: clamp(2rem, 4.6vw, 4.15rem); margin-bottom: 18px; }
h3 { font-size: clamp(1.25rem, 2.2vw, 1.75rem); margin-bottom: 10px; }
.lead { font-size: clamp(1.08rem, 1.6vw, 1.3rem); color: #4a4a4a; max-width: 760px; }
.section-dark .lead { color: rgba(255,255,255,.70); }
.muted { color: var(--muted); }
.text-orange { color: var(--orange); }
.center { text-align:center; }
.stack { display:grid; gap: 22px; }
.cluster { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.grid-2 { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:28px; }
.grid-3 { display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap:24px; }
.grid-4 { display:grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap:18px; }

/* Header — composant unique sur toutes les pages */
.site-header {
  position: sticky; top:0; z-index:1000; height:var(--header-h);
  display:flex; align-items:center;
  border-bottom:1px solid rgba(255,255,255,.11);
  background:rgba(8,8,8,.78); color:var(--paper);
  backdrop-filter: blur(20px) saturate(135%);
  -webkit-backdrop-filter: blur(20px) saturate(135%);
  transition: background .25s ease, box-shadow .25s ease;
}
.site-header.is-scrolled { background:rgba(8,8,8,.93); box-shadow:0 14px 40px rgba(0,0,0,.22); }
.header-inner { width:var(--container); margin:auto; display:flex; align-items:center; gap:22px; }
.brand { display:flex; align-items:center; gap:12px; min-width:max-content; }
.brand-mark {
  width:44px; height:44px; border-radius:14px; display:grid; place-items:center;
  color:#fff; font-weight:900; letter-spacing:-.08em;
  background:linear-gradient(145deg,var(--orange-2),var(--orange-deep));
  box-shadow:0 10px 28px rgba(255,107,0,.28), inset 0 1px rgba(255,255,255,.4);
}
.brand-copy { display:grid; line-height:1.05; }
.brand-copy strong { font-size:.96rem; letter-spacing:.01em; }
.brand-copy small { margin-top:4px; color:rgba(255,255,255,.55); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.main-nav { margin-left:auto; display:flex; align-items:center; gap:3px; }
.main-nav a {
  padding:10px 11px; color:rgba(255,255,255,.72); font-size:.88rem; font-weight:700;
  border-radius:12px; transition:color .2s ease,background .2s ease,transform .2s ease;
}
.main-nav a:hover,.main-nav a[aria-current="page"] { color:#fff; background:rgba(255,255,255,.09); }
.main-nav a[aria-current="page"]::after { content:""; display:block; height:2px; border-radius:2px; margin-top:4px; background:var(--orange); }
.header-actions { display:flex; align-items:center; gap:8px; }
.lang-select {
  background:rgba(255,255,255,.07); color:#fff; border:1px solid rgba(255,255,255,.16);
  border-radius:12px; padding:9px 28px 9px 10px; font-size:.82rem;
}
.lang-select option { color:#111; }
.menu-toggle {
  display:none; width:44px; height:44px; border-radius:13px; border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.08); color:#fff; place-items:center;
}
.menu-toggle span,.menu-toggle::before,.menu-toggle::after { content:""; display:block; width:19px; height:2px; background:currentColor; border-radius:2px; transition:.25s ease; }
.menu-toggle span { margin:4px 0; }
.menu-toggle[aria-expanded="true"] span { opacity:0; }
.menu-toggle[aria-expanded="true"]::before { transform:translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"]::after { transform:translateY(-6px) rotate(-45deg); }

.btn {
  appearance:none; border:0; display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:48px; padding:12px 19px; border-radius:14px; font-weight:800; letter-spacing:-.01em;
  transition: transform .2s var(--ease), box-shadow .2s ease, background .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn:focus-visible { outline:3px solid rgba(255,107,0,.38); outline-offset:3px; }
.btn-primary { background:var(--orange); color:#111; box-shadow:0 12px 30px rgba(255,107,0,.22); }
.btn-primary:hover { background:var(--orange-2); box-shadow:0 16px 36px rgba(255,107,0,.32); }
.btn-dark { background:var(--ink); color:#fff; }
.btn-light { background:#fff; color:#111; }
.btn-ghost { background:transparent; color:inherit; border:1px solid currentColor; }
.btn-sm { min-height:40px; padding:9px 14px; font-size:.85rem; }

/* Hero */
.hero {
  min-height: min(860px, calc(100svh - var(--header-h)));
  display:grid; align-items:end; color:#fff; position:relative; overflow:hidden;
  background:#0d0d0d;
}
.hero::before {
  content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.62) 46%,rgba(0,0,0,.14) 78%),
             linear-gradient(0deg,rgba(0,0,0,.76),transparent 55%),
             var(--hero-image, url('../images/gite-jardin-terrasse.jpg')) center/cover no-repeat;
  transform:scale(1.02);
}
.hero::after {
  content:""; position:absolute; width:480px; height:480px; border-radius:50%;
  right:-120px; top:-150px; background:rgba(255,107,0,.24); filter:blur(70px); animation:orb 10s ease-in-out infinite alternate;
}
@keyframes orb { to { transform:translate(-90px,80px) scale(1.2); opacity:.55; } }
.hero-content { position:relative; z-index:2; padding:110px 0 86px; max-width:910px; }
.hero .eyebrow { color:var(--orange-2); }
.hero h1 { max-width:950px; }
.hero p { max-width:690px; color:rgba(255,255,255,.78); font-size:clamp(1.05rem,1.8vw,1.35rem); }
.hero-actions { margin-top:30px; display:flex; gap:12px; flex-wrap:wrap; }
.hero-badges { display:flex; flex-wrap:wrap; gap:10px; margin-top:38px; }
.hero-badge {
  padding:9px 13px; border-radius:999px; color:rgba(255,255,255,.82); font-size:.82rem; font-weight:700;
  border:1px solid rgba(255,255,255,.18); background:rgba(20,20,20,.42); backdrop-filter:blur(12px);
}
.page-hero { min-height:460px; }
.page-hero .hero-content { padding:90px 0 70px; }
.page-hero h1 { font-size:clamp(2.55rem,6vw,5.3rem); }

/* Glass / cards */
.glass {
  background:rgba(255,255,255,.67); border:1px solid rgba(255,255,255,.74);
  box-shadow:var(--shadow-sm); backdrop-filter:blur(20px) saturate(130%);
  -webkit-backdrop-filter:blur(20px) saturate(130%);
}
.card { border-radius:var(--radius); overflow:hidden; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.card-body { padding:26px; }
.feature-card { padding:28px; border-radius:var(--radius); background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.feature-index { font-size:.78rem; font-weight:900; letter-spacing:.14em; color:var(--orange); }
.feature-card p:last-child { margin-bottom:0; color:#626262; }
.image-card { min-height:390px; position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); }
.image-card img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.image-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.68),transparent 60%); }
.image-card-copy { position:absolute; z-index:2; left:26px; right:26px; bottom:24px; color:#fff; }
.image-card-copy p { margin:0; color:rgba(255,255,255,.7); }
.stat-strip { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; box-shadow:var(--shadow-sm); }
.stat { padding:24px; border-right:1px solid var(--line); }
.stat:last-child { border-right:0; }
.stat strong { display:block; font-size:1.55rem; letter-spacing:-.04em; }
.stat span { color:var(--muted); font-size:.86rem; }

/* intro split */
.split { display:grid; grid-template-columns: 1.03fr .97fr; gap:64px; align-items:center; }
.media-stack { position:relative; min-height:570px; }
.media-stack .main { width:83%; height:520px; object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); }
.media-stack .float {
  position:absolute; width:48%; height:250px; right:0; bottom:0; object-fit:cover;
  border:9px solid var(--paper-soft); border-radius:var(--radius); box-shadow:var(--shadow-lg);
}
.check-list { list-style:none; padding:0; margin:28px 0; display:grid; gap:12px; }
.check-list li { position:relative; padding-left:31px; }
.check-list li::before {
  content:"✓"; position:absolute; left:0; top:1px; width:22px; height:22px; border-radius:50%;
  display:grid; place-items:center; background:rgba(255,107,0,.13); color:var(--orange-deep); font-weight:900; font-size:.78rem;
}

/* Reservation quick card */
.booking-panel {
  position:relative; z-index:4; margin-top:-48px; padding:22px; border-radius:var(--radius);
  background:rgba(255,255,255,.88); border:1px solid rgba(255,255,255,.92); box-shadow:var(--shadow-lg);
  backdrop-filter:blur(20px) saturate(130%);
}
.booking-grid { display:grid; grid-template-columns:1.35fr repeat(4,1fr) auto; gap:12px; align-items:end; }
.field { display:grid; gap:7px; }
.field label { font-size:.76rem; color:#575757; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.field input,.field select,.field textarea {
  width:100%; border:1px solid #d9d7d3; background:#fff; color:#171717; border-radius:13px;
  min-height:48px; padding:11px 13px; outline:none; transition:border .2s, box-shadow .2s;
}
.field textarea { min-height:150px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--orange); box-shadow:0 0 0 4px rgba(255,107,0,.11); }
.field .hint { font-size:.78rem; color:var(--muted); }

/* Gallery */
.gallery-grid { columns:3 310px; column-gap:18px; }
.gallery-item {
  break-inside:avoid; margin:0 0 18px; border:0; padding:0; width:100%; border-radius:20px; overflow:hidden;
  position:relative; background:#ddd; box-shadow:var(--shadow-sm);
}
.gallery-item img { width:100%; height:auto; transition:transform .5s var(--ease),filter .5s ease; }
.gallery-item::after { content:"Agrandir"; position:absolute; inset:auto 12px 12px auto; color:#fff; background:rgba(0,0,0,.68); padding:7px 10px; border-radius:999px; font-size:.74rem; opacity:0; transform:translateY(8px); transition:.25s ease; }
.gallery-item:hover img { transform:scale(1.035); filter:brightness(.82); }
.gallery-item:hover::after { opacity:1; transform:none; }
.lightbox { position:fixed; inset:0; z-index:3000; display:none; place-items:center; padding:30px; background:rgba(0,0,0,.91); }
.lightbox.is-open { display:grid; }
.lightbox img { max-height:88vh; max-width:min(1100px,92vw); border-radius:18px; box-shadow:0 30px 100px #000; }
.lightbox-close { position:absolute; top:20px; right:20px; width:48px; height:48px; border-radius:50%; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.1); color:#fff; font-size:1.5rem; }

/* Visit cards / timeline */
.place-card { min-height:440px; position:relative; overflow:hidden; border-radius:var(--radius); color:#fff; }
.place-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.place-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,.04) 68%); }
.place-card:hover img { transform:scale(1.045); }
.place-copy { position:absolute; z-index:2; left:24px; right:24px; bottom:22px; }
.place-copy p { margin:0; color:rgba(255,255,255,.72); }
.timeline { display:grid; gap:0; }
.timeline-item { display:grid; grid-template-columns:90px 1fr; gap:22px; padding:30px 0; border-bottom:1px solid var(--line); }
.timeline-item:last-child { border-bottom:0; }
.timeline-number { font-size:2rem; font-weight:900; color:var(--orange); letter-spacing:-.06em; }

/* FAQ */
.faq-list { display:grid; gap:12px; max-width:900px; margin:0 auto; }
details.faq-item { border-radius:18px; border:1px solid var(--line); background:#fff; overflow:hidden; box-shadow:0 8px 24px rgba(0,0,0,.045); }
details.faq-item summary { list-style:none; padding:22px 58px 22px 22px; font-weight:850; cursor:pointer; position:relative; }
details.faq-item summary::-webkit-details-marker { display:none; }
details.faq-item summary::after { content:"+"; position:absolute; right:22px; top:50%; transform:translateY(-50%); color:var(--orange); font-size:1.5rem; transition:.25s ease; }
details.faq-item[open] summary::after { transform:translateY(-50%) rotate(45deg); }
.faq-answer { padding:0 22px 22px; color:#5c5c5c; }

/* Forms */
.form-card { border-radius:var(--radius-lg); padding:34px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-lg); }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.form-grid .full { grid-column:1/-1; }
.checkbox { display:flex; gap:10px; align-items:flex-start; font-size:.9rem; color:#565656; }
.checkbox input { margin-top:5px; accent-color:var(--orange); }
.honeypot { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; }
.form-status { display:none; margin-top:16px; padding:13px 15px; border-radius:13px; font-weight:700; }
.form-status.is-visible { display:block; }
.form-status.success { background:#e9f8f1; color:#0b6846; }
.form-status.error { background:#fff0f0; color:#952222; }
.contact-aside { padding:34px; border-radius:var(--radius-lg); color:#fff; background:var(--ink); position:relative; overflow:hidden; }
.contact-aside::before { content:""; position:absolute; width:260px; height:260px; right:-100px; top:-70px; border-radius:50%; background:rgba(255,107,0,.35); filter:blur(50px); }
.contact-aside > * { position:relative; z-index:1; }
.contact-line { padding:18px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.contact-line:last-child { border-bottom:0; }
.contact-line small { display:block; color:rgba(255,255,255,.48); text-transform:uppercase; letter-spacing:.12em; font-weight:800; }
.contact-line a,.contact-line span { font-size:1.06rem; font-weight:750; }

/* Call to action */
.cta {
  border-radius:var(--radius-lg); overflow:hidden; position:relative; padding:70px;
  background:linear-gradient(130deg,#ff6b00,#ff9a3d); color:#111; box-shadow:0 25px 70px rgba(255,107,0,.25);
}
.cta::before { content:""; position:absolute; inset:0; background:linear-gradient(110deg,rgba(255,255,255,.23),transparent 35%); }
.cta > * { position:relative; z-index:1; }
.cta h2 { max-width:800px; }

/* Footer glass animé — identique sur toutes les pages */
.site-footer {
  position:relative; overflow:hidden; color:#fff; background:#070707; padding:84px 0 24px;
  border-top:1px solid rgba(255,255,255,.12);
}
.site-footer::before,.site-footer::after {
  content:""; position:absolute; border-radius:50%; filter:blur(75px); opacity:.5; pointer-events:none;
  animation:footerGlow 13s ease-in-out infinite alternate;
}
.site-footer::before { width:430px; height:430px; left:-160px; top:-190px; background:rgba(255,107,0,.62); }
.site-footer::after { width:360px; height:360px; right:-90px; bottom:-180px; background:rgba(255,146,48,.34); animation-delay:-5s; }
@keyframes footerGlow { to { transform:translate(105px,55px) scale(1.2); opacity:.25; } }
.footer-glass {
  position:relative; z-index:2; padding:34px; border-radius:30px;
  border:1px solid rgba(255,255,255,.15);
  background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.035));
  box-shadow:inset 0 1px rgba(255,255,255,.14),0 35px 90px rgba(0,0,0,.35);
  backdrop-filter:blur(26px) saturate(140%); -webkit-backdrop-filter:blur(26px) saturate(140%);
}
.footer-grid { display:grid; grid-template-columns:1.6fr repeat(3,1fr); gap:40px; }
.footer-brand p { color:rgba(255,255,255,.62); max-width:380px; }
.footer-title { color:#fff; text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; font-weight:900; margin-bottom:16px; }
.footer-links { display:grid; gap:9px; }
.footer-links a { color:rgba(255,255,255,.62); transition:.2s ease; }
.footer-links a:hover { color:#fff; transform:translateX(3px); }
.footer-contact { color:rgba(255,255,255,.68); }
.footer-bottom { position:relative; z-index:2; display:flex; justify-content:space-between; align-items:center; gap:20px; padding-top:26px; color:rgba(255,255,255,.48); font-size:.82rem; }
.footer-bottom-links { display:flex; gap:16px; flex-wrap:wrap; }
.footer-bottom a:hover { color:#fff; }

.mobile-bar { display:none; }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .75s var(--ease),transform .75s var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }

/* Legal */
.prose { max-width:900px; }
.prose h2 { font-size:clamp(1.6rem,3vw,2.4rem); margin-top:42px; }
.prose h3 { margin-top:30px; }
.prose p,.prose li { color:#4f4f4f; }
.notice { padding:18px 20px; border-left:4px solid var(--orange); background:#fff; border-radius:0 14px 14px 0; }

@media (max-width:1080px) {
  .main-nav { display:none; position:fixed; inset:var(--header-h) 0 0; background:rgba(7,7,7,.98); padding:24px 20px 120px; overflow:auto; flex-direction:column; align-items:stretch; gap:4px; }
  .main-nav.is-open { display:flex; }
  .main-nav a { font-size:1.15rem; padding:15px 12px; }
  .menu-toggle { display:grid; }
  .header-actions .btn { display:none; }
  .booking-grid { grid-template-columns:repeat(3,1fr); }
  .booking-grid .btn { width:100%; }
  .footer-grid { grid-template-columns:1.4fr 1fr 1fr; }
  .footer-grid > :last-child { grid-column:2/-1; }
}
@media (max-width:820px) {
  :root { --container:min(100% - 28px,1180px); --header-h:72px; }
  .brand-copy small { display:none; }
  .lang-select { display:none; }
  .section { padding:72px 0; }
  .grid-2,.grid-3,.grid-4,.split { grid-template-columns:1fr; }
  .split { gap:38px; }
  .stat-strip { grid-template-columns:repeat(2,1fr); }
  .stat:nth-child(2) { border-right:0; }
  .stat:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .media-stack { min-height:460px; }
  .media-stack .main { height:410px; }
  .media-stack .float { height:190px; }
  .booking-panel { margin-top:-24px; }
  .booking-grid { grid-template-columns:1fr 1fr; }
  .booking-grid > :first-child,.booking-grid .btn { grid-column:1/-1; }
  .form-grid { grid-template-columns:1fr; }
  .form-grid .full { grid-column:auto; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .footer-grid > :last-child { grid-column:auto; }
  .cta { padding:46px 28px; }
  .mobile-bar {
    display:grid; grid-template-columns:repeat(5,1fr); position:fixed; z-index:990; bottom:0; left:0; right:0;
    padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
    background:rgba(9,9,9,.94); border-top:1px solid rgba(255,255,255,.12); backdrop-filter:blur(16px); color:#fff;
  }
  .mobile-bar a { display:grid; place-items:center; gap:2px; padding:7px 2px; color:rgba(255,255,255,.6); font-size:.66rem; font-weight:700; }
  .mobile-bar a.active { color:var(--orange-2); }
  .mobile-bar .reserve { background:var(--orange); color:#111; border-radius:12px; }
  body { padding-bottom:70px; }
}
@media (max-width:560px) {
  h1 { font-size:clamp(2.55rem,13vw,4.2rem); }
  .header-inner { gap:10px; }
  .brand-copy strong { font-size:.85rem; }
  .hero-content { padding:80px 0 58px; }
  .page-hero { min-height:400px; }
  .hero-actions .btn { width:100%; }
  .booking-panel { padding:16px; }
  .booking-grid { grid-template-columns:1fr; }
  .booking-grid > * { grid-column:auto !important; }
  .stat-strip { grid-template-columns:1fr 1fr; }
  .stat { padding:18px; }
  .image-card { min-height:330px; }
  .media-stack { min-height:390px; }
  .media-stack .main { width:94%; height:350px; }
  .media-stack .float { height:150px; border-width:6px; }
  .gallery-grid { columns:1; }
  .timeline-item { grid-template-columns:54px 1fr; gap:14px; }
  .form-card,.contact-aside { padding:23px; }
  .footer-glass { padding:24px; }
  .footer-grid { grid-template-columns:1fr; gap:28px; }
  .footer-brand,.footer-grid > :last-child { grid-column:auto; }
  .footer-bottom { flex-direction:column; align-items:flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.001ms !important; }
  .reveal { opacity:1; transform:none; }
}


/* Pages locales autour de Colmar */
.local-hero { min-height:600px; position:relative; display:grid; align-items:end; color:#fff; overflow:hidden; background:#111; }
.local-hero::before { content:""; position:absolute; inset:0; background-image:linear-gradient(90deg,rgba(0,0,0,.9),rgba(0,0,0,.58) 52%,rgba(0,0,0,.18)),linear-gradient(0deg,rgba(0,0,0,.78),transparent 58%),var(--local-photo,var(--fallback-image)); background-position:center; background-size:cover; transition:filter .5s ease,transform .8s var(--ease); transform:scale(1.015); }
.local-hero::after { content:""; position:absolute; width:420px; height:420px; right:-120px; top:-130px; border-radius:50%; background:rgba(255,107,0,.3); filter:blur(70px); animation:orb 11s ease-in-out infinite alternate; }
.local-hero-content { position:relative; z-index:2; padding:100px 0 70px; max-width:900px; }
.local-hero h1 { font-size:clamp(2.8rem,6vw,5.7rem); }
.local-hero p { max-width:750px; color:rgba(255,255,255,.8); font-size:clamp(1.05rem,1.8vw,1.3rem); }
.local-photo-credit { position:absolute; z-index:3; right:18px; bottom:16px; max-width:min(520px,calc(100% - 36px)); padding:8px 11px; border-radius:10px; font-size:.7rem; color:rgba(255,255,255,.76); background:rgba(0,0,0,.62); backdrop-filter:blur(10px); }
.local-photo-credit a { text-decoration:underline; text-underline-offset:2px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:22px; color:rgba(255,255,255,.66); font-size:.82rem; font-weight:700; }
.breadcrumbs a:hover { color:#fff; }
.local-factbar { margin-top:-34px; position:relative; z-index:5; }
.local-factbar .stat-strip { grid-template-columns:repeat(4,1fr); }
.local-content-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:42px; align-items:start; }
.local-aside { position:sticky; top:calc(var(--header-h) + 24px); display:grid; gap:18px; }
.local-map { overflow:hidden; border-radius:var(--radius); min-height:340px; background:#ddd; border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.local-map iframe { width:100%; height:340px; border:0; display:block; }
.local-callout { padding:24px; border-radius:var(--radius); background:#111; color:#fff; box-shadow:var(--shadow-sm); }
.local-callout p { color:rgba(255,255,255,.68); }
.activity-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.activity-card { padding:24px; background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 10px 30px rgba(0,0,0,.05); }
.activity-card h3 { font-size:1.25rem; }
.activity-card p { margin:0; color:#5d5d5d; }
.wiki-gallery { display:grid; grid-template-columns:1.3fr .7fr .7fr; gap:14px; min-height:360px; }
.wiki-gallery figure { margin:0; min-height:340px; border-radius:22px; overflow:hidden; position:relative; background:#181818 var(--gallery-fallback) center/cover no-repeat; }
.wiki-gallery figure:first-child { min-height:480px; grid-row:span 2; }
.wiki-gallery img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; opacity:0; transition:opacity .45s ease,transform .7s var(--ease); }
.wiki-gallery figure.is-loaded img { opacity:1; }
.wiki-gallery figure:hover img { transform:scale(1.035); }
.wiki-gallery figcaption { position:absolute; z-index:2; left:10px; right:10px; bottom:10px; padding:7px 9px; border-radius:9px; color:rgba(255,255,255,.8); background:rgba(0,0,0,.66); font-size:.66rem; opacity:0; transition:.25s ease; }
.wiki-gallery figure.is-loaded figcaption { opacity:1; }
.local-index-tools { display:flex; gap:12px; flex-wrap:wrap; margin:28px 0 34px; }
.local-index-tools input,.local-index-tools select { min-height:48px; border-radius:13px; border:1px solid #d8d5d0; padding:10px 13px; background:#fff; }
.local-index-tools input { flex:1 1 260px; }
.local-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.local-card { min-height:310px; padding:24px; border-radius:24px; color:#fff; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; background:#111; box-shadow:var(--shadow-sm); }
.local-card::before { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.88),rgba(0,0,0,.08)),var(--card-image) center/cover; transition:transform .55s var(--ease); }
.local-card:hover::before { transform:scale(1.04); }
.local-card > * { position:relative; z-index:1; }
.local-card h2 { font-size:1.7rem; margin-bottom:8px; }
.local-card p { margin:0; color:rgba(255,255,255,.7); }
.local-card-meta { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.local-card-meta span { padding:6px 9px; border-radius:999px; background:rgba(255,255,255,.12); backdrop-filter:blur(8px); font-size:.7rem; font-weight:800; }
.local-card[hidden] { display:none; }
.nearby-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.nearby-link { padding:22px; border-radius:18px; background:#fff; border:1px solid var(--line); transition:.2s ease; }
.nearby-link:hover { transform:translateY(-3px); box-shadow:var(--shadow-sm); border-color:rgba(255,107,0,.38); }
.nearby-link strong { display:block; margin-bottom:5px; }
.seo-note { padding:18px 20px; border-radius:16px; background:#fff7ef; border:1px solid rgba(255,107,0,.22); color:#56331d; font-size:.9rem; }
@media(max-width:980px){.local-content-grid{grid-template-columns:1fr}.local-aside{position:static}.local-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wiki-gallery{grid-template-columns:1fr 1fr}.wiki-gallery figure:first-child{grid-column:1/-1;grid-row:auto;min-height:420px}.local-factbar .stat-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.local-hero{min-height:540px}.local-hero-content{padding:75px 0 58px}.activity-grid,.nearby-links,.local-card-grid,.wiki-gallery{grid-template-columns:1fr}.wiki-gallery figure,.wiki-gallery figure:first-child{min-height:280px;grid-column:auto}.local-factbar{margin-top:-20px}.local-factbar .stat-strip{grid-template-columns:1fr 1fr}.local-photo-credit{font-size:.6rem}.local-index-tools{display:grid}.local-index-tools input,.local-index-tools select{width:100%}}


/* ==========================================================
   Version 3 — inspiration hôtelière premium (structure originale)
   ========================================================== */
.home-zante { background:#fff; }
.home-zante .zante-site-header { position:fixed; background:linear-gradient(180deg,rgba(0,0,0,.58),rgba(0,0,0,0)); border-bottom-color:transparent; }
.home-zante .zante-site-header.is-scrolled { background:rgba(10,10,11,.94); border-bottom-color:rgba(255,255,255,.1); }
.zante-site-header { height:88px; }
.zante-site-header .header-inner { max-width:1380px; }
.zante-brand .brand-mark { border-radius:2px; transform:rotate(45deg); background:transparent; border:2px solid var(--orange); color:#fff; box-shadow:none; }
.zante-brand .brand-mark::first-letter { transform:rotate(-45deg); }
.zante-brand .brand-copy strong { font-family:Georgia,"Times New Roman",serif; letter-spacing:.02em; font-size:1.1rem; }
.zante-brand .brand-copy small { letter-spacing:.12em; text-transform:uppercase; font-size:.58rem; }
.zante-site-header .main-nav { gap:28px; }
.zante-site-header .main-nav a { font-size:.72rem; letter-spacing:.11em; text-transform:uppercase; font-weight:700; padding:33px 0; }
.zante-site-header .main-nav a::after { height:1px; bottom:24px; }
.header-phone { display:grid; line-height:1.1; text-align:right; margin-right:4px; }
.header-phone small { color:rgba(255,255,255,.55); font-size:.56rem; text-transform:uppercase; letter-spacing:.12em; }
.header-phone strong { font-size:.75rem; margin-top:4px; }

.zante-hero { position:relative; min-height:860px; height:100svh; max-height:1080px; display:grid; align-items:center; overflow:hidden; color:#fff; background:#080808; }
.zante-hero-slides,.zante-hero-slide,.zante-hero-shade { position:absolute; inset:0; }
.zante-hero-slide { background-image:var(--slide-image); background-size:cover; background-position:center; opacity:0; transform:scale(1.08); transition:opacity 1.2s ease,transform 8s linear; }
.zante-hero-slide.is-active { opacity:1; transform:scale(1.01); }
.zante-hero-shade { background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.43) 46%,rgba(0,0,0,.16) 100%),linear-gradient(0deg,rgba(0,0,0,.56),transparent 52%); }
.zante-hero-content { position:relative; z-index:3; padding-top:70px; max-width:830px; margin-left:max(0px,calc((100vw - 1380px)/2)); }
.zante-kicker { display:flex; align-items:center; gap:16px; text-transform:uppercase; letter-spacing:.34em; font-size:.7rem; font-weight:800; color:#fff; }
.zante-kicker::before { content:""; width:54px; height:1px; background:var(--orange); }
.zante-hero h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(4.4rem,9vw,9.5rem); font-weight:400; letter-spacing:-.055em; margin:5px 0 20px; text-shadow:0 14px 60px rgba(0,0,0,.35); }
.zante-hero-lead { max-width:650px; font-size:clamp(1.05rem,1.7vw,1.4rem); color:rgba(255,255,255,.8); }
.zante-hero-actions { display:flex; align-items:center; gap:28px; margin-top:36px; }
.zante-text-link { display:inline-flex; gap:12px; align-items:center; font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.13em; color:#fff; }
.zante-text-link span { color:var(--orange); font-size:1.2rem; transition:transform .2s ease; }
.zante-text-link:hover span { transform:translateX(5px); }
.zante-text-link.dark { color:#111; }
.zante-slider-dots { position:absolute; z-index:4; right:34px; top:50%; display:grid; gap:13px; }
.zante-slider-dots button { width:9px; height:9px; border:1px solid rgba(255,255,255,.8); border-radius:50%; background:transparent; padding:0; transition:.25s; }
.zante-slider-dots button.is-active { background:var(--orange); border-color:var(--orange); transform:scale(1.45); }
.zante-scroll { position:absolute; z-index:4; bottom:42px; left:50%; transform:translateX(-50%); display:grid; justify-items:center; gap:9px; font-size:.62rem; text-transform:uppercase; letter-spacing:.18em; color:rgba(255,255,255,.72); }
.zante-scroll span { width:1px; height:46px; background:linear-gradient(#fff,transparent); animation:zante-scroll 1.7s ease-in-out infinite; }
@keyframes zante-scroll { 50%{transform:scaleY(.5);transform-origin:top} }

.zante-booking-wrap { position:relative; z-index:10; margin-top:-56px; }
.zante-booking { display:grid; grid-template-columns:1.15fr repeat(2,1fr) .9fr 1fr 1.05fr; align-items:stretch; background:#fff; box-shadow:0 24px 75px rgba(0,0,0,.2); min-height:112px; }
.zante-booking > * { border-right:1px solid #eee8e2; }
.zante-booking-title { padding:25px 28px; display:grid; align-content:center; background:#111; color:#fff; }
.zante-booking-title small,.zante-booking label span,.zante-booking-estimate span { text-transform:uppercase; letter-spacing:.15em; font-size:.57rem; color:#8d8d8d; font-weight:800; }
.zante-booking-title strong { font-family:Georgia,serif; font-size:1.25rem; margin-top:5px; }
.zante-booking label { padding:23px 24px; display:grid; align-content:center; gap:8px; }
.zante-booking input,.zante-booking select { border:0; padding:0; background:transparent; color:#171717; font-weight:700; outline:0; width:100%; }
.zante-booking-estimate { padding:23px 24px; display:grid; align-content:center; gap:8px; }
.zante-booking-estimate strong { font-size:.94rem; }
.zante-booking-button { border:0; background:var(--orange); color:#111; font-size:.7rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; display:flex; align-items:center; justify-content:center; gap:12px; transition:.25s ease; }
.zante-booking-button:hover { background:#111; color:#fff; }

.zante-intro-section { padding-top:150px; }
.zante-intro { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:100px; align-items:center; }
.zante-intro-copy h2 { font-family:Georgia,serif; font-weight:400; }
.zante-signature { margin-top:36px; display:grid; }
.zante-signature span { font-family:"Brush Script MT",cursive; font-size:2.5rem; color:var(--orange-deep); }
.zante-signature small { text-transform:uppercase; letter-spacing:.18em; font-size:.58rem; }
.zante-intro-media { position:relative; padding:0 0 52px 60px; }
.zante-intro-media::before { content:""; position:absolute; inset:60px 60px 0 0; border:1px solid rgba(255,107,0,.35); }
.zante-intro-media img { width:100%; height:560px; object-fit:cover; position:relative; box-shadow:0 28px 70px rgba(0,0,0,.16); }
.zante-rating-card { position:absolute; left:0; bottom:0; width:190px; min-height:190px; background:var(--orange); padding:26px; display:grid; align-content:center; }
.zante-rating-card strong { font-family:Georgia,serif; font-size:2.8rem; }
.zante-rating-card span { font-size:1rem; font-weight:800; }
.zante-rating-card small { margin-top:14px; border-top:1px solid rgba(0,0,0,.25); padding-top:12px; }

.zante-stays-section { background:#f4f1ed; }
.zante-heading-row { display:flex; justify-content:space-between; align-items:end; gap:32px; margin-bottom:48px; }
.zante-heading-row h2 { font-family:Georgia,serif; font-weight:400; max-width:750px; }
.zante-heading-row .lead { max-width:470px; margin:0; }
.zante-room-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; }
.zante-room-card { background:#fff; box-shadow:0 12px 40px rgba(0,0,0,.07); transition:transform .3s ease,box-shadow .3s ease; }
.zante-room-card:hover { transform:translateY(-8px); box-shadow:0 24px 55px rgba(0,0,0,.13); }
.zante-room-image { position:relative; display:block; overflow:hidden; height:320px; }
.zante-room-image img { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.zante-room-card:hover img { transform:scale(1.045); }
.zante-room-price { position:absolute; bottom:0; right:0; background:var(--orange); color:#111; padding:13px 17px; font-weight:900; font-size:.78rem; }
.zante-room-price small { font-weight:600; }
.zante-room-copy { padding:28px; }
.zante-room-copy > p { color:var(--orange-deep); font-size:.62rem; font-weight:900; text-transform:uppercase; letter-spacing:.16em; margin-bottom:7px; }
.zante-room-copy h3 { font-family:Georgia,serif; font-size:1.75rem; font-weight:400; }
.zante-room-meta { display:flex; flex-wrap:wrap; gap:7px; margin:20px 0; }
.zante-room-meta span { border:1px solid #e4dfda; padding:6px 9px; font-size:.67rem; color:#666; }
.zante-room-copy > a { font-size:.68rem; text-transform:uppercase; letter-spacing:.12em; font-weight:900; }

.zante-discover-section { background:#111; color:#fff; }
.zante-discover-section h2 { font-family:Georgia,serif; font-weight:400; }
.zante-centered-lead { margin-inline:auto; color:rgba(255,255,255,.65)!important; }
.zante-destination-grid { margin-top:48px; display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:340px; gap:17px; }
.zante-destination { position:relative; overflow:hidden; color:#fff; }
.zante-destination-wide { grid-column:span 2; }
.zante-destination img { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease),filter .4s; }
.zante-destination::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.82),transparent 65%); }
.zante-destination > span { position:absolute; z-index:2; left:30px; right:30px; bottom:25px; display:grid; }
.zante-destination small { text-transform:uppercase; letter-spacing:.16em; color:var(--orange-2); font-size:.6rem; font-weight:900; }
.zante-destination strong { font-family:Georgia,serif; font-size:2.15rem; font-weight:400; }
.zante-destination em { font-style:normal; font-size:.65rem; text-transform:uppercase; letter-spacing:.12em; opacity:0; transform:translateY(8px); transition:.3s ease; }
.zante-destination:hover img { transform:scale(1.05); filter:saturate(1.08); }
.zante-destination:hover em { opacity:1; transform:none; }
.zante-destination-cta { margin-top:38px; }

.zante-services-section { background:#fff; }
.zante-service-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #e6e1dc; border-bottom:1px solid #e6e1dc; }
.zante-service { padding:40px 30px; border-right:1px solid #e6e1dc; }
.zante-service:last-child { border-right:0; }
.zante-service > span { color:var(--orange); font-size:.68rem; font-weight:900; letter-spacing:.16em; }
.zante-service h3 { font-family:Georgia,serif; font-weight:400; margin-top:42px; }
.zante-service p { color:#6a6a6a; margin-bottom:0; }

.zante-journal-section { background:#f4f1ed; }
.zante-journal-section h2 { font-family:Georgia,serif; font-weight:400; }
.zante-journal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:48px; }
.zante-journal-card { background:#fff; }
.zante-journal-card > a { display:block; height:260px; overflow:hidden; }
.zante-journal-card img { width:100%; height:100%; object-fit:cover; transition:transform .65s var(--ease); }
.zante-journal-card:hover img { transform:scale(1.045); }
.zante-journal-card > div { padding:27px; }
.zante-journal-card p { font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--orange-deep); font-weight:900; }
.zante-journal-card h3 { font-family:Georgia,serif; font-weight:400; font-size:1.5rem; line-height:1.22; }
.zante-journal-card div > a { font-size:.65rem; text-transform:uppercase; letter-spacing:.12em; font-weight:900; }

.zante-final-cta { position:relative; min-height:570px; display:grid; align-items:center; color:#fff; overflow:hidden; }
.zante-final-bg { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.32)),var(--cta-image) center/cover; }
.zante-final-cta .container { position:relative; z-index:2; }
.zante-final-cta h2 { font-family:Georgia,serif; font-size:clamp(3.5rem,7vw,7rem); font-weight:400; margin-bottom:15px; }
.zante-final-cta p:not(.zante-kicker) { font-size:1.2rem; color:rgba(255,255,255,.75); max-width:600px; }

.zante-footer { padding:0; background:#0b0b0c; color:#fff; }
.zante-footer::before,.zante-footer::after { display:none; }
.zante-footer-top { padding:86px 0 68px; border-bottom:1px solid rgba(255,255,255,.1); background:radial-gradient(circle at 12% 0,rgba(255,107,0,.16),transparent 34%),#0b0b0c; }
.zante-footer-grid { display:grid; grid-template-columns:1.65fr 1fr 1fr 1.2fr; gap:64px; }
.zante-footer-about p,.zante-footer-contact p { color:rgba(255,255,255,.58); }
.zante-socials { display:flex; gap:9px; margin-top:25px; }
.zante-socials a { border:1px solid rgba(255,255,255,.16); padding:8px 11px; font-size:.62rem; text-transform:uppercase; letter-spacing:.1em; }
.zante-footer .footer-title { color:#fff; border:0; padding:0 0 18px; font-family:Georgia,serif; font-size:1.2rem; text-transform:none; letter-spacing:0; }
.zante-footer .footer-links a { color:rgba(255,255,255,.58); padding:6px 0; }
.zante-footer .footer-links a:hover { color:var(--orange-2); transform:translateX(4px); }
.zante-footer .footer-bottom { margin-top:0; padding:24px 0; }

@media(max-width:1180px){
  .header-phone{display:none}.zante-booking{grid-template-columns:1fr 1fr 1fr}.zante-booking-title{grid-column:1/-1}.zante-booking-button{min-height:74px}.zante-intro{gap:55px}.zante-footer-grid{grid-template-columns:1.4fr 1fr 1fr}.zante-footer-contact{grid-column:2/-1}.zante-service-grid{grid-template-columns:repeat(2,1fr)}.zante-service:nth-child(2){border-right:0}.zante-service:nth-child(-n+2){border-bottom:1px solid #e6e1dc}
}
@media(max-width:820px){
  .zante-site-header{height:72px}.home-zante .zante-site-header{background:rgba(8,8,9,.62)}.zante-hero{min-height:720px;height:92svh}.zante-hero-content{margin-left:auto;padding-top:50px}.zante-hero h1{font-size:clamp(4rem,17vw,6.2rem)}.zante-slider-dots{right:18px}.zante-scroll{display:none}.zante-booking-wrap{margin-top:-35px}.zante-booking{grid-template-columns:1fr 1fr}.zante-booking-title,.zante-booking-button{grid-column:1/-1}.zante-intro{grid-template-columns:1fr;gap:55px}.zante-intro-media{padding-left:30px}.zante-room-grid,.zante-journal-grid{grid-template-columns:1fr;max-width:620px;margin-inline:auto}.zante-heading-row{align-items:flex-start;flex-direction:column}.zante-destination-grid{grid-template-columns:1fr 1fr;grid-auto-rows:290px}.zante-destination-wide{grid-column:span 2}.zante-footer-grid{grid-template-columns:1fr 1fr;gap:42px}.zante-footer-about{grid-column:1/-1}.zante-footer-contact{grid-column:auto}
}
@media(max-width:560px){
  .zante-hero{min-height:650px}.zante-hero-shade{background:linear-gradient(0deg,rgba(0,0,0,.78),rgba(0,0,0,.32)),linear-gradient(90deg,rgba(0,0,0,.6),transparent)}.zante-hero-content{padding-bottom:90px}.zante-hero-actions{align-items:flex-start;flex-direction:column;gap:20px}.zante-slider-dots{top:auto;bottom:95px;right:20px;display:flex}.zante-booking{grid-template-columns:1fr}.zante-booking>*{grid-column:auto!important;border-right:0;border-bottom:1px solid #eee8e2}.zante-booking-button{min-height:68px}.zante-intro-section{padding-top:110px}.zante-intro-media{padding-left:18px}.zante-intro-media img{height:400px}.zante-rating-card{width:145px;min-height:145px;padding:18px}.zante-rating-card strong{font-size:2.1rem}.zante-destination-grid{grid-template-columns:1fr;grid-auto-rows:270px}.zante-destination-wide{grid-column:auto}.zante-service-grid{grid-template-columns:1fr}.zante-service{border-right:0;border-bottom:1px solid #e6e1dc}.zante-service:last-child{border-bottom:0}.zante-journal-card>a{height:230px}.zante-footer-grid{grid-template-columns:1fr}.zante-footer-about,.zante-footer-contact{grid-column:auto}.zante-final-cta{min-height:520px}
}


/* SEO/mobile/performance upgrade */
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid rgba(255,107,0,.5);outline-offset:3px}
img{height:auto}.photo-credit-note{margin:18px 0 0;font-size:.72rem;line-height:1.55;color:rgba(255,255,255,.58)}.photo-credit-note a{text-decoration:underline;text-underline-offset:3px}.section:not(.section-dark) .photo-credit-note{color:#626262}
.zante-hero-slide{background-image:var(--slide-image);background-position:center;background-size:cover}
.local-map iframe{width:100%;min-height:360px;border:0}
.local-index-tools{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.6fr) auto;gap:16px;align-items:end;margin-bottom:32px}.local-index-tools>p{margin:0;padding-bottom:12px;font-weight:800}
.local-card a{height:100%}.local-card-arrow{display:inline-block;margin-top:10px;font-weight:850;color:var(--orange-deep)}
@media (max-width:1080px){.header-actions{margin-left:auto}.header-book{display:none}.main-nav a{min-height:48px;display:flex;align-items:center}}
@media (max-width:820px){:root{--container:min(100% - 28px,1180px)}.section{padding:72px 0}.page-hero{min-height:420px}.page-hero .hero-content{padding:74px 0 58px}.grid-2,.grid-3,.grid-4,.split,.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.media-stack{min-height:470px}.media-stack .main{height:430px}.stat-strip{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.local-index-tools{grid-template-columns:1fr 1fr}.local-index-tools>p{grid-column:1/-1}.mobile-bar{padding-bottom:max(8px,env(safe-area-inset-bottom))}.site-footer{padding-bottom:calc(80px + env(safe-area-inset-bottom))}}
@media (max-width:560px){:root{--container:min(100% - 22px,1180px)}body{overflow-x:hidden}.header-inner{gap:9px}.brand-copy small{display:none}.brand-mark{width:40px;height:40px}.lang-select{min-height:44px;padding:8px 24px 8px 8px}.section{padding:58px 0}.page-hero{min-height:390px}.page-hero .hero-content{padding:64px 0 48px}.hero h1{overflow-wrap:anywhere}.hero-actions,.cluster{align-items:stretch}.hero-actions .btn,.cluster .btn{width:100%}.cta{padding:40px 24px;border-radius:24px}.form-card,.contact-aside{padding:24px 18px;border-radius:22px}.stat-strip,.local-factbar .stat-strip{grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid var(--line)}.stat:last-child{border-bottom:0}.media-stack{min-height:390px}.media-stack .main{width:100%;height:360px}.media-stack .float{width:50%;height:175px;border-width:6px}.local-index-tools{grid-template-columns:1fr}.local-index-tools>p{grid-column:auto}.zante-hero-slide{background-image:var(--slide-image-mobile,var(--slide-image))}.zante-footer-top{padding:58px 0 42px}.footer-bottom{align-items:flex-start;flex-direction:column}.photo-credit-note{font-size:.66rem}.mobile-bar a{min-width:0;font-size:.62rem}.mobile-bar a span{font-size:1rem}.gallery-grid{columns:1}.local-map iframe{min-height:300px}}
@media (max-width:390px){.brand-copy strong{font-size:.82rem}.lang-select{width:58px}.menu-toggle{width:42px;height:42px}.zante-hero h1{font-size:3.55rem}.mobile-bar a{padding-inline:3px}}
@media (prefers-reduced-data: reduce){.zante-hero-slide:not(.is-active){background-image:none!important}.reveal{transition:none}}
@supports (content-visibility:auto){.section{content-visibility:auto;contain-intrinsic-size:700px}.zante-hero,.page-hero{content-visibility:visible}}

/* Mobile touch targets and iOS form comfort */
@media (max-width:560px){
  input:not([type="checkbox"]):not([type="radio"]),select,textarea{min-height:44px;font-size:16px}
  input[type="checkbox"],input[type="radio"]{width:20px;height:20px;flex:0 0 20px}
  .zante-slider-dots{gap:0;right:8px}
  .zante-slider-dots button,.zante-slider-dots button.is-active{position:relative;width:44px;height:44px;border:0;background:transparent;transform:none}
  .zante-slider-dots button::after{content:"";position:absolute;inset:50% auto auto 50%;width:9px;height:9px;border:1px solid rgba(255,255,255,.85);border-radius:50%;background:transparent;transform:translate(-50%,-50%)}
  .zante-slider-dots button.is-active::after{background:var(--orange);border-color:var(--orange);transform:translate(-50%,-50%) scale(1.4)}
  .footer-bottom-links a,.zante-footer-contact a{display:inline-flex;align-items:center;min-height:44px}
  button,.btn,.mobile-bar a,.menu-toggle,.lang-select{touch-action:manipulation}
}
