/* =========================================================
   TAHAA ADVENTURE — design tokens
   Palette pulled straight from the existing brand collateral
   (flyer / ebook / hotel emails) so the site matches on sight.
   ========================================================= */
:root{
  --navy: #2E3140;
  --navy-deep: #1D1F29;
  --orange: #EF5A28;
  --amber: #F6A623;
  --cream: #FFFDF9;
  --cream-dim: #F3EFE6;
  --ink: #23252E;
  --ink-soft: #6B6E7C;
  --line: rgba(46,49,64,0.12);
  --line-on-dark: rgba(255,253,249,0.16);

  --display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --radius: 18px;
  --radius-sm: 10px;
  --container: 1180px;
  --ease: cubic-bezier(.19,1,.22,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--body);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer;}
ul{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4{font-family:var(--display); margin:0; font-weight:600; letter-spacing:-0.01em;}
p{margin:0;}

.wrap{max-width:var(--container); margin:0 auto; padding:0 28px;}

:focus-visible{outline:2px solid var(--orange); outline-offset:3px;}

/* -------- eyebrow / mono "EXIF" tag — the site's signature motif -------- */
.exif{
  font-family:var(--mono);
  font-size:12.5px;
  letter-spacing:0.09em;
  text-transform:uppercase;
  color:var(--orange);
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.exif::before{
  content:"";
  width:7px; height:7px;
  border-radius:50%;
  background:var(--orange);
  box-shadow:0 0 0 3px rgba(239,90,40,0.18);
  flex-shrink:0;
}
.exif.on-dark{color:var(--amber);}
.exif.on-dark::before{background:var(--amber); box-shadow:0 0 0 3px rgba(246,166,35,0.22);}

/* -------- viewfinder corner-bracket frame -------- */
.frame{position:relative;}
.frame::before,.frame::after,
.frame .fc-tl,.frame .fc-tr,.frame .fc-bl,.frame .fc-br{content:"";}
.frame{padding:0;}
.corner{
  position:absolute; width:22px; height:22px;
  border-color:var(--amber);
  border-style:solid;
  border-width:0;
  opacity:0.9;
  z-index:2;
  pointer-events:none;
}
.corner.tl{top:14px; left:14px; border-top-width:2px; border-left-width:2px;}
.corner.tr{top:14px; right:14px; border-top-width:2px; border-right-width:2px;}
.corner.bl{bottom:14px; left:14px; border-bottom-width:2px; border-left-width:2px;}
.corner.br{bottom:14px; right:14px; border-bottom-width:2px; border-right-width:2px;}

/* ============================= NAV ============================= */
.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:16px 0;
  transition:background 0.35s var(--ease), box-shadow 0.35s var(--ease), padding 0.35s var(--ease);
}
.site-nav .wrap{display:flex; align-items:center; justify-content:space-between; gap:18px;}
.site-nav.scrolled{
  background:rgba(255,253,249,0.86);
  backdrop-filter:blur(14px) saturate(1.4);
  box-shadow:0 1px 0 var(--line);
  padding:10px 0;
}
.brand{display:flex; align-items:center; gap:10px;}
.brand img{
  height:38px; width:38px; border-radius:50%;
  background:var(--cream);
  padding:2px;
  transition:height 0.35s var(--ease), width 0.35s var(--ease);
}
.site-nav.scrolled .brand img{height:32px; width:32px;}
.brand-word{font-family:var(--display); font-weight:600; font-size:19px; letter-spacing:0.01em; color:var(--cream);}
.site-nav.scrolled .brand-word{color:var(--navy);}
.brand-word span{color:var(--orange);}

.nav-links{display:flex; align-items:center; gap:30px;}
.nav-links a{
  font-size:14.5px; font-weight:500; color:var(--cream);
  position:relative; padding:4px 0;
}
.site-nav.scrolled .nav-links a{color:var(--ink);}
.nav-links a:not(.btn)::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1px;
  background:currentColor; transition:right 0.3s var(--ease);
}
.nav-links a:not(.btn):hover::after{right:0;}

.nav-actions{display:flex; align-items:center; gap:14px; position:relative; z-index:101;}
.lang-toggle{
  font-family:var(--mono); font-size:12px; letter-spacing:0.04em;
  color:var(--cream); background:rgba(255,253,249,0.14);
  border:1px solid var(--line-on-dark); border-radius:20px;
  padding:6px 12px; display:flex; gap:6px; align-items:center;
}
.site-nav.scrolled .lang-toggle{color:var(--ink); background:rgba(46,49,64,0.06); border-color:var(--line);}
.lang-toggle b{opacity:0.35; font-weight:600;}
.lang-toggle b.active{opacity:1; color:var(--orange);}

.hamburger{display:none; background:none; border:0; padding:6px; flex-direction:column; gap:5px;}
.hamburger span{width:22px; height:2px; background:var(--cream); display:block; transition:background .3s, transform .35s var(--ease), opacity .2s;}
.site-nav.scrolled .hamburger span{background:var(--ink);}
.hamburger.active span{background:var(--cream) !important;}
.hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.active span:nth-child(2){opacity:0;}
.hamburger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ============================= BUTTONS ============================= */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-weight:600; font-size:14.5px;
  padding:13px 24px; border-radius:100px;
  border:1px solid transparent;
  transition:transform 0.25s var(--ease), box-shadow 0.25s var(--ease), background 0.25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
  white-space:nowrap;
}
.btn-primary{background:var(--orange); color:var(--cream); box-shadow:0 8px 20px -8px rgba(239,90,40,0.65);}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 12px 26px -8px rgba(239,90,40,0.75);}
.btn-ghost{background:transparent; border-color:var(--line-on-dark); color:var(--cream);}
.btn-ghost:hover{border-color:var(--cream); transform:translateY(-2px);}
.site-nav.scrolled .btn-ghost{border-color:var(--line); color:var(--ink);}
.btn-dark{background:var(--navy); color:var(--cream);}
.btn-dark:hover{transform:translateY(-2px); background:var(--navy-deep);}
.btn-block{width:100%;}
.btn-lg{padding:16px 30px; font-size:15.5px;}

/* ============================= HERO ============================= */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  overflow:hidden; background:var(--navy-deep);
}
.hero.hero-compact{min-height:72vh;}
.hero.hero-compact .hero-content{padding-top:130px;}
.hero-media{position:absolute; inset:0;}
.hero-media img{width:100%; height:100%; object-fit:cover; object-position:60% 40%; transform:scale(1.06);}
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(29,31,41,0.55) 0%, rgba(29,31,41,0.15) 32%, rgba(29,31,41,0.35) 62%, rgba(29,31,41,0.94) 100%);
}
.hero-content{position:relative; z-index:2; width:100%; padding-bottom:9vh;}
.hero-content .wrap{max-width:900px;}
.hero .exif{margin-bottom:22px;}
.hero h1{
  color:var(--cream);
  font-size:clamp(2.4rem, 5.6vw, 4.4rem);
  line-height:1.03;
  font-weight:600;
  max-width:14ch;
}
.hero h1 em{font-style:italic; color:var(--amber); font-weight:500;}
.hero p.lead{
  color:rgba(255,253,249,0.82);
  font-size:clamp(1rem, 1.4vw, 1.2rem);
  max-width:46ch;
  margin-top:22px;
}
.hero-cta{display:flex; gap:14px; margin-top:36px; flex-wrap:wrap;}

.hero-strip{
  position:relative; z-index:2;
  border-top:1px solid var(--line-on-dark);
  background:rgba(29,31,41,0.55);
  backdrop-filter:blur(6px);
}
.hero-strip .wrap{
  display:flex; gap:0; overflow-x:auto;
}
.hero-strip .stat{
  flex:1 1 0; min-width:140px;
  padding:16px 22px; border-right:1px solid var(--line-on-dark);
}
.hero-strip .stat:last-child{border-right:0;}
.hero-strip .stat b{
  display:block; font-family:var(--mono); font-size:12px; letter-spacing:.06em;
  color:var(--amber); text-transform:uppercase; margin-bottom:4px;
}
.hero-strip .stat span{color:var(--cream); font-size:14px; font-weight:500;}

/* ============================= SECTION SCAFFOLDING ============================= */
section{padding:112px 0;}
.section-tight{padding:80px 0;}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head .exif{margin-bottom:16px;}
.section-head h2{font-size:clamp(1.9rem, 3.4vw, 2.7rem); line-height:1.1;}
.section-head p{color:var(--ink-soft); margin-top:16px; font-size:1.05rem; max-width:52ch;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

.on-navy{background:var(--navy); color:var(--cream);}
.on-navy .section-head p{color:rgba(255,253,249,0.72);}
.on-navy h2, .on-navy h3{color:var(--cream);}

/* ============================= CIRCUIT CARDS ============================= */
.circuit-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:26px;
}
.circuit-card{
  background:#fff; border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--line);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.circuit-card:hover{transform:translateY(-6px); box-shadow:0 24px 40px -22px rgba(46,49,64,0.35);}
.circuit-card .media{position:relative; aspect-ratio:4/3; overflow:hidden;}
.circuit-card .media img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.circuit-card:hover .media img{transform:scale(1.06);}
.circuit-card .body{padding:22px 22px 26px;}
.circuit-card .exif{margin-bottom:10px;}
.circuit-card h3{font-size:1.28rem; margin-bottom:8px;}
.circuit-card p{color:var(--ink-soft); font-size:0.96rem;}

.circuit-note{
  margin-top:34px; display:flex; align-items:center; gap:12px;
  font-size:0.92rem; color:var(--ink-soft); font-style:italic;
}
.circuit-note svg{flex-shrink:0;}

/* ============================= ATELIER PHOTO ============================= */
.atelier{position:relative; overflow:hidden;}
.atelier-top{display:grid; grid-template-columns:1.05fr 0.95fr; gap:60px; align-items:center;}
.atelier-copy p.lead{color:rgba(255,253,249,0.78); font-size:1.08rem; margin-top:18px; max-width:50ch;}
.chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:28px;}
.chip{
  font-family:var(--mono); font-size:12px; letter-spacing:.04em;
  padding:8px 14px; border-radius:100px;
  border:1px solid var(--line-on-dark); color:rgba(255,253,249,0.88);
}
.price-plate{
  background:var(--amber); color:var(--navy-deep);
  border-radius:var(--radius); padding:26px 28px;
  display:flex; align-items:flex-end; justify-content:space-between; gap:16px;
  margin-top:32px;
}
.price-plate .num{font-family:var(--display); font-size:2.1rem; font-weight:700; line-height:1;}
.price-plate .cur{font-family:var(--mono); font-size:13px; letter-spacing:.04em; margin-top:6px; display:block;}
.price-plate .who{font-family:var(--mono); font-size:12px; letter-spacing:.05em; text-transform:uppercase; opacity:.75; text-align:right;}
.price-plate .who span{display:block;}
.atelier-media{position:relative;}
.atelier-media .frame img{border-radius:var(--radius); width:100%; aspect-ratio:3/4; object-fit:cover;}

.skills-grid{
  margin-top:76px; display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line-on-dark); border:1px solid var(--line-on-dark); border-radius:var(--radius); overflow:hidden;
}
.skill{background:var(--navy); padding:30px 26px;}
.skill .exif{margin-bottom:16px;}
.skill h3, .skill h4{color:var(--cream); font-size:1.05rem; margin-bottom:10px; line-height:1.25;}
.skill p{color:rgba(255,253,249,0.68); font-size:0.9rem;}

.gear-note{
  margin-top:30px; display:flex; gap:14px; align-items:flex-start;
  background:rgba(255,253,249,0.06); border:1px solid var(--line-on-dark);
  border-radius:var(--radius-sm); padding:18px 20px;
}
.gear-note svg{flex-shrink:0; margin-top:2px; color:var(--amber);}
.gear-note p{font-size:0.92rem; color:rgba(255,253,249,0.82);}
.gear-note b{color:var(--amber);}

/* ============================= GUIDE ============================= */
.guide{display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px; align-items:center;}
.guide-media{position:relative;}
.guide-media .frame img{border-radius:var(--radius); width:100%; aspect-ratio:1/1; object-fit:cover;}
.guide-copy .exif{margin-bottom:16px;}
.guide-copy h2{font-size:clamp(1.8rem,3vw,2.4rem); line-height:1.14;}
.guide-copy p{margin-top:18px; color:var(--ink-soft); font-size:1.02rem;}
.guide-copy p+p{margin-top:14px;}

/* ============================= GALLERY ============================= */
.gallery-grid{
  display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:130px; gap:10px;
}
.gallery-grid .g-item{position:relative; overflow:hidden; border-radius:12px;}
.gallery-grid .g-item img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.gallery-grid .g-item:hover img{transform:scale(1.08);}
.gallery-grid .g-item:nth-child(1){grid-column:span 3; grid-row:span 3;}
.gallery-grid .g-item:nth-child(2){grid-column:span 3; grid-row:span 2;}
.gallery-grid .g-item:nth-child(3){grid-column:span 3; grid-row:span 2;}
.gallery-grid .g-item:nth-child(4){grid-column:span 2; grid-row:span 2;}
.gallery-grid .g-item:nth-child(5){grid-column:span 4; grid-row:span 2;}
.g-item .g-cap{
  position:absolute; left:0; right:0; bottom:0; padding:12px 14px;
  background:linear-gradient(0deg, rgba(29,31,41,0.85), transparent);
  font-family:var(--mono); font-size:11px; letter-spacing:.05em; color:var(--cream); text-transform:uppercase;
  opacity:0; transition:opacity .3s;
}
.g-item:hover .g-cap{opacity:1;}

/* ============================= CTA BANNER ============================= */
.cta-banner{
  background:linear-gradient(120deg, var(--orange), var(--amber));
  border-radius:28px; padding:64px 56px; text-align:center;
  color:var(--navy-deep); margin:0 28px;
}
.cta-banner h2{font-size:clamp(1.8rem,3.4vw,2.6rem); color:var(--navy-deep);}
.cta-banner p{margin-top:14px; font-size:1.05rem; color:rgba(29,31,41,0.78); max-width:44ch; margin-left:auto; margin-right:auto;}
.cta-banner .btn-dark{margin-top:28px;}

/* ============================= FOOTER ============================= */
footer{background:var(--navy-deep); color:rgba(255,253,249,0.7); padding:76px 0 30px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px;}
.footer-brand{display:flex; align-items:center; gap:12px; margin-bottom:16px;}
.footer-brand img{height:40px; width:40px; border-radius:50%; background:var(--cream); padding:2px;}
.footer-brand span{font-family:var(--display); color:var(--cream); font-size:1.15rem; font-weight:600;}
.footer-col h5{font-family:var(--mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--amber); margin-bottom:16px;}
.footer-col li{margin-bottom:10px; font-size:0.92rem;}
.footer-col a:hover{color:var(--cream);}
.foot-bottom{
  margin-top:60px; padding-top:24px; border-top:1px solid var(--line-on-dark);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-size:0.82rem; color:rgba(255,253,249,0.4);
}
.placeholder-fill{
  color:var(--amber);
  border-bottom:1px dashed rgba(246,166,35,0.55);
  padding-bottom:1px;
}
footer a.placeholder-fill{color:var(--amber);}

/* ============================= RESERVATION PAGE ============================= */
.res-hero{
  padding:168px 0 60px; background:var(--navy);
  position:relative; overflow:hidden;
}
.res-hero::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(1200px 500px at 15% 0%, rgba(239,90,40,0.22), transparent 60%);
  pointer-events:none;
}
.res-hero .wrap{position:relative; z-index:1;}
.res-hero h1{color:var(--cream); font-size:clamp(2rem,4vw,3rem); max-width:16ch;}
.res-hero p{color:rgba(255,253,249,0.72); margin-top:16px; max-width:56ch; font-size:1.05rem;}
.res-hero .exif{margin-bottom:18px;}

.tour-picker{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:-46px; position:relative; z-index:3;}
.tour-card{
  background:#fff; border-radius:var(--radius); border:2px solid var(--line);
  padding:26px; cursor:pointer; transition:border-color .25s, transform .25s, box-shadow .25s;
  position:relative;
}
.tour-card:hover{transform:translateY(-3px);}
.tour-card.active{border-color:var(--orange); box-shadow:0 20px 34px -20px rgba(239,90,40,0.4);}
.tour-card input{position:absolute; opacity:0; pointer-events:none;}
.tour-card .exif{margin-bottom:12px;}
.tour-card h3{font-size:1.2rem; margin-bottom:6px;}
.tour-card p{color:var(--ink-soft); font-size:0.9rem; margin-bottom:14px;}
.tour-card .tprice{display:flex; align-items:baseline; gap:6px; font-family:var(--mono);}
.tour-card .tprice b{font-size:1.3rem; font-family:var(--display); color:var(--navy);}
.tour-card .tprice span{font-size:11.5px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em;}
.tour-card .radio-dot{
  position:absolute; top:24px; right:24px; width:20px; height:20px; border-radius:50%;
  border:2px solid var(--line); display:flex; align-items:center; justify-content:center;
}
.tour-card.active .radio-dot{border-color:var(--orange);}
.tour-card.active .radio-dot::after{content:""; width:10px; height:10px; border-radius:50%; background:var(--orange);}

.res-layout{
  display:grid; grid-template-columns:1.3fr 0.9fr; gap:56px; align-items:start;
  max-width:var(--container); margin:0 auto; padding:80px 28px 120px;
}
.res-layout > *{min-width:0;}
.form-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:38px;}
.form-card h2{font-size:1.5rem; margin-bottom:6px;}
.form-card>p{color:var(--ink-soft); font-size:0.94rem; margin-bottom:30px;}

.field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.field-row > .field{min-width:0;}
.field{margin-bottom:20px;}
.field label{
  display:block; font-family:var(--mono); font-size:11.5px; letter-spacing:.05em;
  text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px;
}
.field input, .field select, .field textarea{
  width:100%; border:1px solid var(--line); border-radius:10px;
  padding:13px 14px; font-family:var(--body); font-size:0.96rem; color:var(--ink);
  background:var(--cream); transition:border-color .2s, box-shadow .2s;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--orange); box-shadow:0 0 0 3px rgba(239,90,40,0.14);
}
.field textarea{resize:vertical; min-height:90px;}
.field-note{font-size:0.8rem; color:var(--ink-soft); margin-top:6px;}

.pax-stepper{display:flex; align-items:center; gap:14px;}
.pax-stepper button{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line);
  background:var(--cream); font-size:18px; color:var(--navy); display:flex; align-items:center; justify-content:center;
}
.pax-stepper button:hover{border-color:var(--orange); color:var(--orange);}
.pax-stepper span{font-family:var(--mono); font-size:1.05rem; min-width:20px; text-align:center;}

.form-actions{margin-top:8px; display:flex; flex-direction:column; gap:12px;}
.form-actions .btn{width:100%;}
.form-note{font-size:0.82rem; color:var(--ink-soft); text-align:center; margin-top:4px;}

.summary-card{
  background:var(--navy); color:var(--cream); border-radius:var(--radius); padding:32px;
  position:sticky; top:110px;
}
.summary-card h3{font-size:1.1rem; margin-bottom:20px; color:var(--cream);}
.summary-row{display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--line-on-dark); font-size:0.92rem;}
.summary-row:last-of-type{border-bottom:0;}
.summary-row span:first-child{color:rgba(255,253,249,0.6);}
.summary-total{margin-top:18px; padding-top:18px; border-top:1px solid var(--line-on-dark); display:flex; justify-content:space-between; align-items:baseline;}
.summary-total b{font-family:var(--display); font-size:1.6rem;}
.summary-list{margin-top:24px; padding-top:24px; border-top:1px solid var(--line-on-dark);}
.summary-list h5{font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--amber); margin-bottom:14px;}
.summary-list li{font-size:0.86rem; color:rgba(255,253,249,0.75); margin-bottom:10px; padding-left:18px; position:relative;}
.summary-list li::before{content:"—"; position:absolute; left:0; color:var(--amber);}

/* reveal-on-scroll */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}

/* ============================= BREADCRUMB ============================= */
.breadcrumb{
  font-family:var(--mono); font-size:12px; letter-spacing:.04em;
  display:flex; align-items:center; gap:8px; margin-bottom:18px;
  color:rgba(255,253,249,0.6);
}
.breadcrumb a{color:rgba(255,253,249,0.85);}
.breadcrumb a:hover{color:var(--amber);}
.breadcrumb span[aria-current]{color:var(--amber);}

/* ============================= PHOTO DUO ============================= */
.duo-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:56px;}
.duo-item .frame img{border-radius:var(--radius); width:100%; aspect-ratio:4/3; object-fit:cover;}
.duo-item .exif{margin-top:16px;}
.duo-item h4{font-size:1.05rem; margin-top:6px;}

/* ============================= FAQ ============================= */
.faq-list{max-width:820px;}
.faq-item{
  border-bottom:1px solid var(--line);
  padding:6px 0;
}
.faq-item summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:20px 4px; font-family:var(--display); font-size:1.1rem; font-weight:600; color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+"; font-family:var(--mono); font-size:1.4rem; color:var(--orange); flex-shrink:0;
  transition:transform .3s var(--ease);
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{color:var(--ink-soft); padding:0 4px 22px; max-width:66ch;}

/* ============================= CROSS-LINK BOX ============================= */
.cross-link{
  margin-top:56px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  background:var(--cream-dim); border:1px solid var(--line); border-radius:var(--radius);
  padding:26px 30px;
}
.cross-link p{font-size:0.98rem; color:var(--ink);}
.cross-link p b{display:block; font-family:var(--display); font-size:1.15rem; margin-bottom:4px;}

/* ============================= RESPONSIVE ============================= */
@media (max-width: 980px){
  .circuit-grid{grid-template-columns:1fr;}
  .atelier-top{grid-template-columns:1fr; gap:40px;}
  .atelier-media{order:-1;}
  .skills-grid{grid-template-columns:repeat(2,1fr);}
  .guide{grid-template-columns:1fr; gap:36px;}
  .footer-grid{grid-template-columns:1fr 1fr; row-gap:36px;}
  .res-layout{grid-template-columns:1fr;}
  .summary-card{position:static;}
  .gallery-grid{grid-template-columns:repeat(4,1fr); grid-auto-rows:110px;}
  .gallery-grid .g-item:nth-child(1){grid-column:span 4; grid-row:span 2;}
  .gallery-grid .g-item:nth-child(2){grid-column:span 2; grid-row:span 2;}
  .gallery-grid .g-item:nth-child(3){grid-column:span 2; grid-row:span 2;}
  .gallery-grid .g-item:nth-child(4){grid-column:span 2; grid-row:span 2;}
  .gallery-grid .g-item:nth-child(5){grid-column:span 4; grid-row:span 2;}
}
@media (max-width: 760px){
  .duo-grid{grid-template-columns:1fr; gap:20px;}
  .cross-link{flex-direction:column; align-items:flex-start;}
  section{padding:76px 0;}
  .nav-links{
    position:fixed; inset:0 0 0 auto; width:min(320px,84vw); height:100svh;
    background:var(--navy-deep); flex-direction:column; align-items:flex-start;
    padding:100px 30px 30px; gap:26px; transform:translateX(100%);
    transition:transform .4s var(--ease); z-index:99;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a{color:var(--cream); font-size:1.05rem;}
  .hamburger{display:flex;}
  .nav-actions .btn-ghost{display:none;}
  .hero-strip .wrap{padding:0 20px;}
  .field-row{grid-template-columns:1fr;}
  .tour-picker{grid-template-columns:1fr;}
  .cta-banner{margin:0 16px; padding:48px 26px;}
  .price-plate{flex-direction:column; align-items:flex-start; gap:14px;}
  .price-plate .who{text-align:left;}
}
@media (max-width: 560px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-grid .g-item:nth-child(1),
  .gallery-grid .g-item:nth-child(2),
  .gallery-grid .g-item:nth-child(3),
  .gallery-grid .g-item:nth-child(4),
  .gallery-grid .g-item:nth-child(5){grid-column:span 2; grid-row:span 2;}
}
