:root{
  --cream: #FBF4ED;
  --paper: #F5EBE2;
  --ink: #6D6E71;
  --ink-deep: #302E2B;
  --rose: #B08D7A;
  --rose-deep: #8F6E5C;
  --gold: #F2CD73;
  --gold-deep: #997332;
  --line: #D9CDBF;
  --line-soft: #E6DACB;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--ink-deep);
  font-family:'Poppins', sans-serif;
  font-weight:300;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}

.eyebrow{
  font-family:'Poppins', sans-serif;
  font-size:11px;
  letter-spacing:0.32em;
  text-transform:uppercase;
  color:var(--rose-deep);
  font-weight:500;
}
.serif{font-family:'Fraunces', serif;}
.serif-italic{font-family:'Fraunces', serif; font-style:italic; font-weight:400;}

.wrap{max-width:1180px; margin:0 auto; padding:0 40px;}

/* ---------- NAV ---------- */
header.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(251,244,237,0.92);
  backdrop-filter: blur(6px);
  border-bottom:1px solid var(--line-soft);
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 40px;
  max-width:1180px; margin:0 auto;
}
.nav-brand{display:flex; align-items:center; transition:opacity .25s ease;}
.nav-brand:hover{opacity:0.75;}
.nav-brand img{height:34px; width:auto;}
.nav-links{display:flex; align-items:center; gap:38px;}
.nav-links a{
  font-size:12.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink);
  font-weight:500;
  padding-bottom:3px;
  border-bottom:1px solid transparent;
  transition:border-color .25s ease, color .25s ease;
}
.nav-links a:hover{ color:var(--rose-deep); border-color:var(--rose-deep); }
.nav-links a.active{ color:var(--rose-deep); border-color:var(--rose-deep); }
.nav-item{ position:relative; display:flex; align-items:center; height:100%; }
.nav-item > a{ display:inline-flex; align-items:center; gap:5px; }
.nav-item > a .caret{ font-size:9px; transition:transform .2s ease; }
.nav-item:hover > a .caret, .nav-item:focus-within > a .caret{ transform:rotate(180deg); }
.nav-dropdown{
  position:absolute; top:100%; left:50%; transform:translateX(-50%);
  padding-top:14px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s ease;
}
.nav-item:hover .nav-dropdown, .nav-item:focus-within .nav-dropdown{
  opacity:1; visibility:visible; pointer-events:auto;
}
.nav-dropdown-panel{
  background:var(--cream);
  border:1px solid var(--line-soft);
  min-width:250px;
  padding:8px 0;
  box-shadow:0 16px 32px rgba(48,46,43,0.10);
  transform:translateY(4px);
  transition:transform .18s ease;
}
.nav-item:hover .nav-dropdown-panel, .nav-item:focus-within .nav-dropdown-panel{
  transform:translateY(0);
}
.nav-dropdown a{
  display:block; padding:11px 22px;
  font-size:12px; letter-spacing:0.03em; text-transform:none; font-weight:400;
  color:var(--ink-deep); border-bottom:none;
}
.nav-dropdown a:hover{ color:var(--rose-deep); background:var(--paper); }
.nav-cta{
  font-size:12px; letter-spacing:0.14em; text-transform:uppercase; font-weight:500;
  color:var(--cream); background:var(--ink-deep);
  padding:12px 24px;
  border:1px solid var(--ink-deep);
  transition:background .25s ease, color .25s ease;
  white-space:nowrap;
}
.nav-cta:hover{ background:transparent; color:var(--ink-deep); }
.nav-toggle{display:none;}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  overflow:hidden;
  padding:96px 40px 60px;
}
.hero-inner{
  max-width:1180px; margin:0 auto;
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:40px;
  align-items:center;
  position:relative;
  min-height:520px;
}
.hero-inner.hero-inner--center{ grid-template-columns:1fr; min-height:auto; }
.hero-symbol{
  position:absolute;
  right:-60px; top:50%; transform:translateY(-50%);
  width:620px; max-width:60vw;
  opacity:0.08;
  pointer-events:none;
}
.hero-text{position:relative; z-index:2;}
.hero-text .eyebrow{margin-bottom:22px; display:block;}
.hero-text h1{
  font-size:clamp(40px, 5.2vw, 68px);
  font-weight:300;
  line-height:1.06;
  letter-spacing:-0.01em;
  color:var(--ink-deep);
  max-width:11.5ch;
}
.hero-text.hero-text--wide h1{ max-width:none; }
.hero-text h1 em{
  font-style:italic; font-weight:400;
  color:var(--rose-deep);
}
.hero-text p{
  margin-top:26px;
  font-size:16.5px;
  color:var(--ink);
  max-width:38ch;
  font-weight:300;
}
.hero-text.hero-text--wide p{ max-width:56ch; margin-left:auto; margin-right:auto; }
.hero-actions{
  margin-top:38px;
  display:flex; align-items:center; gap:28px; flex-wrap:wrap;
}
.btn-primary{
  font-size:12.5px; letter-spacing:0.16em; text-transform:uppercase; font-weight:500;
  color:var(--cream); background:var(--ink-deep);
  padding:16px 34px;
  border:1px solid var(--ink-deep);
  transition:background .25s ease, color .25s ease;
  display:inline-block;
}
.btn-primary:hover{background:var(--rose-deep); border-color:var(--rose-deep);}
.btn-text{
  font-size:12.5px; letter-spacing:0.14em; text-transform:uppercase; font-weight:500;
  color:var(--ink-deep);
  border-bottom:1px solid var(--ink-deep);
  padding-bottom:4px;
}

.hero-right{position:relative; z-index:2; display:flex; justify-content:center;}
.hero-card{
  background:var(--paper);
  border:1px solid var(--line-soft);
  padding:36px 34px;
  max-width:300px;
  position:relative;
}
.hero-card .num{
  font-family:'Fraunces', serif; font-style:italic; font-size:15px; color:var(--rose-deep); margin-bottom:14px; display:block;
}
.hero-card p{
  font-family:'Fraunces', serif; font-size:19px; line-height:1.5; color:var(--ink-deep); font-weight:400;
}
.hero-card .cite{
  margin-top:18px; font-family:'Poppins',sans-serif; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink);
}

/* ribbon divider */
.ribbon{ width:100%; display:block; }
.ribbon-sm{ height:34px; }

/* ---------- PHILOSOPHY / LEAD TEXT ---------- */
.philosophy{
  padding:70px 40px 90px;
  text-align:center;
}
.philosophy .wrap{max-width:760px;}
.philosophy p.lead{
  font-family:'Fraunces', serif;
  font-weight:300;
  font-size:clamp(22px, 3vw, 30px);
  line-height:1.5;
  color:var(--ink-deep);
}
.philosophy p.lead em{font-style:italic; color:var(--rose-deep); font-weight:400;}

/* ---------- STORY GRID (About) ---------- */
.story-grid{
  display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:start;
  text-align:left;
}
.story-grid h2{
  font-family:'Fraunces', serif; font-weight:300; font-size:clamp(24px,3vw,32px);
  margin-bottom:24px; line-height:1.3;
}
.story-grid p{ color:var(--ink); font-size:15px; margin-bottom:18px; }
.story-grid p:last-child{ margin-bottom:0; }

/* ---------- SERVICES / CARDS ---------- */
.services{ padding:20px 40px 100px; background:var(--paper); }
.services-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  max-width:1180px; margin:0 auto 50px; gap:30px; flex-wrap:wrap;
  padding-top:80px;
}
.services-head h2{
  font-family:'Fraunces', serif; font-weight:300; font-size:clamp(28px,3.4vw,40px);
  max-width:14ch;
}
.services-head p{ max-width:34ch; color:var(--ink); font-size:14.5px; }
.services-grid{
  max-width:1180px; margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.service-card{
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:40px 28px 44px;
  transition:background .3s ease;
  display:flex; flex-direction:column;
}
.service-card:hover{ background:var(--cream); }
.service-card .mark{
  font-family:'Fraunces', serif; font-style:italic; font-size:14px; color:var(--rose-deep); display:block; margin-bottom:26px;
}
.service-card h3{
  font-family:'Fraunces', serif; font-weight:400; font-size:19px; margin-bottom:14px; line-height:1.3;
}
.service-card p{ font-size:13.5px; color:var(--ink); line-height:1.65; }
.service-book{
  display:inline-block; margin-top:18px;
  font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; font-weight:500;
  color:var(--ink-deep); border-bottom:1px solid var(--ink-deep); padding-bottom:2px;
}
.service-book:hover{ color:var(--rose-deep); border-color:var(--rose-deep); }
.card-list{ margin-top:16px; }
.card-list span{
  font-size:12.5px; color:var(--ink); line-height:1.6; padding-left:14px; position:relative; display:block; margin-bottom:7px;
}
.card-list span:last-child{ margin-bottom:0; }
.card-list span:before{ content:"—"; position:absolute; left:0; color:var(--rose-deep); }
.card-spacer{ flex:1; }
.expand{ margin-top:16px; }
.expand summary{ list-style:none; cursor:pointer; }
.expand summary::-webkit-details-marker{ display:none; }
.expand summary::marker{ content:""; }
.expand .label-open{ display:none; }
.expand[open] .label-open{ display:inline; }
.expand[open] .label-closed{ display:none; }
.expand-body{ margin-top:14px; font-size:13px; color:var(--ink); line-height:1.75; }
.expand-body p{ margin-bottom:10px; }
.expand-body p:last-child{ margin-bottom:0; }

/* ---------- PROCESS ---------- */
.process{ padding:110px 40px; }
.process-head{ text-align:center; max-width:600px; margin:0 auto 60px; }
.process-head h2{
  font-family:'Fraunces', serif; font-weight:300; font-size:clamp(28px,3.4vw,38px);
  line-height:1.2; margin-bottom:16px;
}
.process-head h2 em{font-style:italic; color:var(--rose-deep); font-weight:400;}
.process-head p{ color:var(--ink); font-size:14.5px; }
.process-grid{
  max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:repeat(3,1fr); gap:36px;
}
.process-step .mark{
  font-family:'Fraunces', serif; font-style:italic; font-size:15px; color:var(--rose-deep); display:block; margin-bottom:18px;
}
.process-step h3{
  font-family:'Fraunces', serif; font-weight:400; font-size:19px; margin-bottom:10px;
}
.process-step p{ font-size:13.5px; color:var(--ink); line-height:1.65; }

/* ---------- METHOD / PALETTE ---------- */
.method{ padding:110px 40px; }
.method-inner{
  max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; align-items:center;
}
.method h2{
  font-family:'Fraunces', serif; font-weight:300; font-size:clamp(28px,3.4vw,38px);
  line-height:1.2; margin-bottom:22px;
}
.method h2 em{font-style:italic; color:var(--rose-deep); font-weight:400;}
.method p{ color:var(--ink); font-size:14.5px; max-width:42ch; margin-bottom:30px; }
.swatchbar{
  display:block; width:100%; height:auto; border:1px solid var(--line);
}
.method-caption{
  margin-top:16px; font-size:11.5px; letter-spacing:0.08em; color:var(--ink); text-transform:uppercase;
}
.season-labels{
  display:grid; grid-template-columns:repeat(4,1fr);
  margin-top:44px; gap:20px;
}
.season-labels div{ text-align:left; }
.season-labels .swatch-mini{ width:26px; height:26px; margin-bottom:10px; border:1px solid var(--line); }
.season-labels h4{ font-family:'Fraunces', serif; font-weight:400; font-size:15px; margin-bottom:4px; }
.season-labels p{ font-size:12px; color:var(--ink); margin:0; }

/* ---------- ROLES GRID (About) ---------- */
.roles-grid{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:28px 24px;
}
.roles-grid h4{ font-family:'Fraunces', serif; font-weight:400; font-size:15.5px; margin-bottom:8px; }
.roles-grid p{ font-size:12.5px; color:var(--ink); max-width:none; margin:0; }

/* ---------- QUOTE ---------- */
.quote{
  padding:100px 40px;
  background:var(--ink-deep);
  color:var(--cream);
  text-align:center;
  position:relative;
  overflow:hidden;
}
.quote .wrap{max-width:820px; position:relative; z-index:2;}
.quote blockquote{
  font-family:'Fraunces', serif; font-style:italic; font-weight:300;
  font-size:clamp(24px, 3.6vw, 36px);
  line-height:1.5;
}
.quote cite{
  display:block; margin-top:28px;
  font-style:normal; font-family:'Poppins',sans-serif;
  font-size:11.5px; letter-spacing:0.18em; text-transform:uppercase; color:var(--rose);
}
.quote-symbol{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:560px; opacity:0.05; filter:invert(1) brightness(2);
}

/* ---------- CTA BAND ---------- */
.cta-band{
  padding:110px 40px;
  text-align:center;
}
.cta-band .wrap{max-width:640px;}
.cta-band h2{
  font-family:'Fraunces', serif; font-weight:300; font-size:clamp(28px,3.6vw,42px);
  margin-bottom:22px; line-height:1.2;
}
.cta-band h2 em{font-style:italic; color:var(--rose-deep); font-weight:400;}
.cta-band p{ color:var(--ink); font-size:15px; margin-bottom:38px; }

/* ---------- CERTIFICATION BADGES ---------- */
.badges-row{
  display:flex; align-items:flex-start; justify-content:center;
  gap:64px; flex-wrap:wrap;
}
.badge-item{ display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center; }
.badge-item img{ height:228px; width:auto; }
.badge-item span{ font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink); max-width:20ch; }

/* ---------- FAQ ---------- */
.faq-section{ padding:20px 40px 110px; }
.faq-list{ max-width:800px; margin:0 auto; border-top:1px solid var(--line); }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-item summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:26px 4px; font-family:'Fraunces', serif; font-weight:400; font-size:18px; color:var(--ink-deep);
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::marker{ content:""; }
.faq-item summary .faq-icon{
  flex-shrink:0; font-family:'Poppins',sans-serif; font-size:20px; font-weight:300; color:var(--rose-deep);
  transition:transform .2s ease;
}
.faq-item[open] summary .faq-icon{ transform:rotate(45deg); }
.faq-item .faq-answer{ padding:0 4px 28px; font-size:14.5px; color:var(--ink); line-height:1.75; max-width:68ch; }

/* ---------- CONTACT ---------- */
.contact-section{ padding:20px 40px 110px; }
.contact-grid{
  max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:start;
}
.contact-info h2{
  font-family:'Fraunces', serif; font-weight:300; font-size:clamp(24px,3vw,30px);
  margin-bottom:20px; line-height:1.3;
}
.contact-info p{ color:var(--ink); font-size:14.5px; margin-bottom:26px; max-width:38ch; }
.contact-detail{ margin-bottom:24px; }
.contact-detail h5{
  font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--rose-deep);
  margin-bottom:8px; font-weight:500;
}
.contact-detail p, .contact-detail a{ font-size:14.5px; color:var(--ink-deep); display:block; }
.contact-detail a:hover{ color:var(--rose-deep); }
.booking-list{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); }
.booking-item{
  background:var(--cream);
  padding:24px 28px;
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.booking-item h4{ font-family:'Fraunces', serif; font-weight:400; font-size:16.5px; margin-bottom:4px; }
.booking-item p{ font-size:12.5px; color:var(--ink); }
.booking-item .service-book{ margin-top:0; white-space:nowrap; }

/* ---------- FOOTER ---------- */
footer{
  border-top:1px solid var(--line);
  padding:70px 40px 40px;
}
.footer-inner{
  max-width:1180px; margin:0 auto;
  display:grid; grid-template-columns:1.3fr 0.7fr 0.7fr 0.9fr;
  gap:40px;
}
.footer-inner img{height:26px; width:auto; margin-bottom:18px;}
.footer-inner p.tag{ font-size:13px; color:var(--ink); max-width:26ch; }
.footer-col h5{
  font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--rose-deep);
  margin-bottom:18px; font-weight:500;
}
.footer-col a, .footer-col p{
  display:block; font-size:13.5px; color:var(--ink); margin-bottom:10px;
}
.footer-col a:hover{ color:var(--rose-deep); }
.footer-bottom{
  max-width:1180px; margin:60px auto 0; padding-top:26px;
  border-top:1px solid var(--line-soft);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px 24px;
  font-size:11px; letter-spacing:0.05em; color:var(--ink);
}
.footer-bottom a{ color:var(--ink); transition:color .2s ease; }
.footer-bottom a:hover{ color:var(--rose-deep); }

/* ---------- LEGAL / POLICY CONTENT ---------- */
.legal-content{ max-width:760px; margin:0 auto; text-align:left; }
.legal-content h2{
  font-family:'Fraunces', serif; font-weight:300; font-size:clamp(20px,2.4vw,26px);
  margin:44px 0 14px; line-height:1.3;
}
.legal-content h2:first-child{ margin-top:0; }
.legal-content p{ color:var(--ink); font-size:14.5px; line-height:1.7; margin-bottom:14px; }
.legal-content p:last-child{ margin-bottom:0; }
.legal-content .legal-updated{
  font-size:11.5px; letter-spacing:0.05em; color:var(--ink); opacity:0.75; margin-top:50px;
}

/* ---------- RESPONSIVE ---------- */
/* ---------- UPSELL MODAL ---------- */
.upsell-overlay{
  position:fixed; inset:0; z-index:300;
  background:rgba(48,46,43,0.55);
  display:none; align-items:center; justify-content:center;
  padding:24px;
}
.upsell-overlay.open{ display:flex; }
.upsell-modal{
  background:var(--cream);
  border:1px solid var(--line-soft);
  box-shadow:0 24px 60px rgba(48,46,43,0.20);
  max-width:460px; width:100%;
  padding:42px 40px 36px;
  position:relative;
}
.upsell-close{
  position:absolute; top:16px; right:16px;
  width:32px; height:32px;
  background:none; border:none; cursor:pointer;
  font-family:'Poppins',sans-serif; font-size:16px; color:var(--ink);
  transition:color .2s ease;
}
.upsell-close:hover{ color:var(--rose-deep); }
.upsell-modal h3{
  font-family:'Fraunces', serif; font-weight:400; font-size:24px;
  margin:10px 0 16px; line-height:1.25;
}
.upsell-modal .upsell-lead{ font-size:14px; color:var(--ink); line-height:1.6; margin-bottom:18px; }
.upsell-price{
  font-size:12px; letter-spacing:0.08em; text-transform:uppercase; font-weight:500;
  color:var(--gold-deep); margin-bottom:18px;
}
.upsell-price .struck{ text-decoration:line-through; opacity:0.55; color:var(--ink); }
.upsell-modal .card-list{ margin-bottom:18px; }
.upsell-modal .upsell-note{ font-size:12.5px; color:var(--ink); opacity:0.85; line-height:1.55; margin-bottom:0; }
.upsell-actions{
  display:flex; flex-direction:column; align-items:stretch; gap:14px; margin-top:28px;
}
.upsell-actions .btn-primary{ text-align:center; }
.upsell-actions .upsell-continue{
  text-align:center; font-size:12px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--ink); opacity:0.75; border-bottom:none; transition:opacity .2s ease;
}
.upsell-actions .upsell-continue:hover{ opacity:1; color:var(--rose-deep); }

@media (max-width: 520px){
  .upsell-modal{ padding:34px 26px 28px; }
}

/* ---------- NEWSLETTER ---------- */
.footer-newsletter{ margin-top:24px; max-width:320px; }
.footer-newsletter-label{
  display:block; font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--rose-deep); font-weight:500; margin-bottom:12px;
}
.footer-newsletter-fields{ display:flex; flex-direction:column; gap:8px; }
.footer-newsletter-row{ display:flex; gap:8px; }
.footer-newsletter-row input[type="email"],
.footer-newsletter-fields input[type="text"]{
  flex:1; min-width:0; font-family:'Poppins',sans-serif; font-size:13px;
  color:var(--ink-deep); background:var(--paper);
  border:1px solid var(--line); padding:11px 14px;
}
.footer-newsletter-row input[type="email"]:focus,
.footer-newsletter-fields input[type="text"]:focus{ outline:none; border-color:var(--rose); }
.footer-newsletter-row button{
  font-family:'Poppins',sans-serif; font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase;
  font-weight:500; color:var(--cream); background:var(--ink-deep);
  border:1px solid var(--ink-deep); padding:0 18px; cursor:pointer;
  transition:background .2s ease, border-color .2s ease; white-space:nowrap;
}
.footer-newsletter-row button:hover{ background:var(--rose-deep); border-color:var(--rose-deep); }
.footer-newsletter-msg, .newsletter-msg{
  font-size:12px; color:var(--rose-deep); margin-top:10px; min-height:1em;
}

.newsletter-overlay{
  position:fixed; inset:0; z-index:320;
  background:rgba(48,46,43,0.55);
  display:none; align-items:center; justify-content:center;
  padding:24px;
}
.newsletter-overlay.open{ display:flex; }
.newsletter-modal{
  background:var(--cream);
  border:1px solid var(--line-soft);
  box-shadow:0 24px 60px rgba(48,46,43,0.20);
  max-width:440px; width:100%;
  padding:42px 40px 36px;
  position:relative;
  text-align:left;
}
.newsletter-close{
  position:absolute; top:16px; right:16px;
  width:32px; height:32px;
  background:none; border:none; cursor:pointer;
  font-family:'Poppins',sans-serif; font-size:16px; color:var(--ink);
  transition:color .2s ease;
}
.newsletter-close:hover{ color:var(--rose-deep); }
.newsletter-modal h3{
  font-family:'Fraunces', serif; font-weight:400; font-size:24px;
  margin:10px 0 16px; line-height:1.25;
}
.newsletter-lead{ font-size:14px; color:var(--ink); line-height:1.6; margin-bottom:22px; }
.newsletter-modal .footer-newsletter-row button{ padding:0 22px; }
.newsletter-continue{
  display:block; width:100%; text-align:center; margin-top:18px;
  font-size:12px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--ink); opacity:0.75; background:none; border:none; cursor:pointer;
  transition:opacity .2s ease;
}
.newsletter-continue:hover{ opacity:1; color:var(--rose-deep); }

@media (max-width: 520px){
  .newsletter-modal{ padding:34px 26px 28px; }
  .footer-newsletter-row{ flex-direction:column; }
  .footer-newsletter-row button{ padding:11px 18px; }
}

/* ---------- PRIVACY NOTICE BANNER ---------- */
.privacy-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:310;
  background:var(--ink-deep); color:var(--cream);
  padding:16px 24px;
  display:none; align-items:center; justify-content:center; gap:24px; flex-wrap:wrap;
}
.privacy-banner.open{ display:flex; }
.privacy-banner p{
  font-size:12.5px; line-height:1.6; max-width:760px; margin:0;
}
.privacy-banner a{ color:var(--cream); text-decoration:underline; text-underline-offset:2px; }
.privacy-banner a:hover{ color:var(--gold); }
.privacy-banner button{
  font-family:'Poppins',sans-serif; font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase;
  font-weight:500; color:var(--ink-deep); background:var(--cream);
  border:1px solid var(--cream); padding:10px 22px; cursor:pointer; white-space:nowrap;
  transition:background .2s ease, color .2s ease;
}
.privacy-banner button:hover{ background:var(--rose); border-color:var(--rose); color:var(--cream); }

@media (max-width: 600px){
  .privacy-banner{ justify-content:flex-start; text-align:left; padding:16px 20px; }
}

@media (max-width: 900px){
  .nav-links{display:none;}
  .hero-inner{grid-template-columns:1fr; min-height:auto;}
  .hero-symbol{position:static; transform:none; opacity:0.10; width:70%; margin:30px auto 0; right:auto; top:auto;}
  .hero-right{order:3; margin-top:10px;}
  .hero-text h1{max-width:none;}
  .story-grid{grid-template-columns:1fr; gap:36px;}
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .process-grid{grid-template-columns:1fr; gap:40px;}
  .method-inner{grid-template-columns:1fr; gap:40px;}
  .roles-grid{grid-template-columns:repeat(2,1fr);}
  .season-labels{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:1fr; gap:50px;}
  .footer-inner{grid-template-columns:1fr 1fr; row-gap:36px;}
  .badges-row{gap:40px;}
  .badge-item img{height:175px;}
}
@media (max-width: 520px){
  .wrap, .nav-inner, .hero, .services, .process, .method, .quote, .cta-band, .faq-section, .contact-section, footer{padding-left:22px; padding-right:22px;}
  .services-grid{grid-template-columns:1fr;}
  .roles-grid{grid-template-columns:1fr;}
  .footer-inner{grid-template-columns:1fr;}
  .badge-item img{height:147px;}
  .booking-item{flex-direction:column; align-items:flex-start;}
}

:focus-visible{ outline:2px solid var(--rose-deep); outline-offset:3px; }
@media (prefers-reduced-motion: reduce){
  *{transition:none !important; scroll-behavior:auto !important;}
}
