:root{
  --c-ink: #16181f;
  --c-ink-soft: #4b4e5a;
  --c-ink-faint: #7b7e8a;
  --c-paper: #faf7f1;
  --c-paper-alt: #f1ebe0;
  --c-surface: #ffffff;
  --c-accent: #c17a3d;
  --c-accent-dark: #a3612c;
  --c-accent-soft: #f1e0cb;
  --c-teal: #2f5d54;
  --c-teal-dark: #23453e;
  --c-line: #e3ddce;

  --shadow-sm: 0 1px 2px rgba(20,18,15,.06), 0 1px 1px rgba(20,18,15,.04);
  --shadow-md: 0 6px 16px rgba(20,18,15,.08), 0 2px 6px rgba(20,18,15,.05);
  --shadow-lg: 0 24px 48px -16px rgba(20,18,15,.22), 0 10px 20px -10px rgba(20,18,15,.12);

  --radius-xs: 6px;
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 32px;
  --radius-full: 999px;

  --space-xs: .5rem;
  --space-sm: 1rem;
  --space-md: 1.75rem;
  --space-lg: 2.75rem;
  --space-xl: 4.5rem;
  --space-2xl: 6.5rem;

  --container-wide: 1180px;
  --container-narrow: 700px;

  --font-head: 'Space Grotesk', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-serif: Georgia, 'Times New Roman', serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x: hidden;}
body{
  margin:0;
  background:var(--c-paper);
  color:var(--c-ink-soft);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:var(--font-head);
  color:var(--c-ink);
  margin:0;
  line-height:1.15;
  font-weight:600;
  letter-spacing:-.01em;
}
p{margin:0;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block; height:auto;}
ul{list-style:none; margin:0; padding:0;}
button{font-family:inherit; cursor:pointer; border:none; background:none;}

.Container-wide{max-width:var(--container-wide); margin:0 auto; padding:0 1.5rem;}
.Container-narrow{max-width:var(--container-narrow); margin:0 auto; padding:0 1.5rem;}


.Btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.9rem 1.75rem;
  border-radius:var(--radius-full);
  font-weight:600; font-size:.95rem;
  transition:transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
  min-height:48px;
  white-space:nowrap;
}
.Btn--primary{
  background:linear-gradient(135deg, var(--c-accent), var(--c-accent-dark));
  color:#fff;
  box-shadow:var(--shadow-md);
}
.Btn--primary:hover{transform:translateY(-2px); box-shadow:var(--shadow-lg);}
.Btn--outline{
  background:transparent; color:var(--c-ink);
  border:1.5px solid var(--c-line);
}
.Btn--outline:hover{border-color:var(--c-accent); color:var(--c-accent-dark); transform:translateY(-2px);}
.Btn--lg{padding:1.1rem 2.25rem; font-size:1.05rem;}
.Btn--full{width:100%;}


.SiteHeader{
  position:fixed; top:0; left:0; right:0; z-index:200;
  background:rgba(250,247,241,.55);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid rgba(227,221,206,.5);
  transition:background .4s ease, box-shadow .4s ease, border-color .4s ease;
}
.SiteHeader.is-scrolled{
  background:rgba(250,247,241,.92);
  box-shadow:var(--shadow-sm);
  border-color:var(--c-line);
}
.SiteHeader-inner{
  max-width:var(--container-wide); margin:0 auto; padding:0 1.5rem;
  display:flex; align-items:center; justify-content:space-between;
  height:76px;
}
.SiteHeader-logo img{height:30px; width:auto;}
.SiteHeader-nav{display:none;}
.SiteHeader-navList{display:flex; gap:2rem;}
.SiteHeader-navLink{
  font-size:.95rem; font-weight:500; color:var(--c-ink-soft);
  position:relative; padding:.3rem 0;
  transition:color .3s ease;
}
.SiteHeader-navLink::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:2px;
  background:var(--c-accent); transition:width .3s ease;
}
.SiteHeader-navLink:hover, .SiteHeader-navLink.is-active{color:var(--c-ink);}
.SiteHeader-navLink:hover::after, .SiteHeader-navLink.is-active::after{width:100%;}
.SiteHeader-cta{
  display:none;
  background:var(--c-ink); color:#fff !important;
  padding:.65rem 1.5rem; border-radius:var(--radius-full);
  font-size:.9rem; font-weight:600;
  transition:background .3s ease, transform .3s ease;
}
.SiteHeader-cta:hover{background:var(--c-accent-dark); transform:translateY(-2px);}
.SiteHeader-toggle{
  width:44px; height:44px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px;
  z-index:300; position:relative;
}
.SiteHeader-toggle span{
  width:24px; height:2px; background:var(--c-ink); border-radius:2px;
  transition:transform .35s ease, opacity .35s ease;
}
.SiteHeader-toggle.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.SiteHeader-toggle.is-active span:nth-child(2){opacity:0;}
.SiteHeader-toggle.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media(min-width:900px){
  .SiteHeader-nav{display:block;}
  .SiteHeader-cta{display:inline-flex;}
  .SiteHeader-toggle{display:none;}
}


.MobileMenu{
  position:fixed; inset:0; z-index:250;
  background:linear-gradient(160deg, var(--c-ink) 0%, #23263a 100%);
  transform:translateY(-100%);
  transition:transform .6s cubic-bezier(.77,0,.18,1);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:2.5rem;
  padding:2rem;
}
.MobileMenu.is-open{transform:translateY(0);}
.MobileMenu-list{display:flex; flex-direction:column; align-items:center; gap:1.6rem;}
.MobileMenu-link{
  font-family:var(--font-head); font-size:clamp(1.6rem, 6vw, 2.4rem);
  color:#f2ede2; font-weight:600;
  opacity:0; transform:translateY(-30px);
  transition:opacity .5s ease, transform .5s ease;
}
.MobileMenu.is-open .MobileMenu-link{opacity:1; transform:translateY(0);}
.MobileMenu.is-open .MobileMenu-list li:nth-child(1) .MobileMenu-link{transition-delay:.15s;}
.MobileMenu.is-open .MobileMenu-list li:nth-child(2) .MobileMenu-link{transition-delay:.25s;}
.MobileMenu.is-open .MobileMenu-list li:nth-child(3) .MobileMenu-link{transition-delay:.35s;}
.MobileMenu.is-open .MobileMenu-list li:nth-child(4) .MobileMenu-link{transition-delay:.45s;}
.MobileMenu.is-open .MobileMenu-list li:nth-child(5) .MobileMenu-link{transition-delay:.55s;}
.MobileMenu-close{
  position:absolute; bottom:3rem; left:50%; transform:translateX(-50%);
  color:#e7e1d2; font-size:1rem; font-weight:600;
  display:flex; align-items:center; gap:.5rem;
  border:1px solid rgba(255,255,255,.25); padding:.7rem 1.5rem; border-radius:var(--radius-full);
  transition:background .3s ease, border-color .3s ease;
  min-height:44px;
}
.MobileMenu-close:hover{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.5);}


.PageHero{
  padding:9.5rem 1.5rem 4rem;
  display:flex; flex-direction:column; gap:2.5rem;
  max-width:var(--container-wide); margin:0 auto;
  position:relative;
}
.PageHero::before{
  content:''; position:absolute; top:6rem; right:-8rem; width:22rem; height:22rem;
  background:radial-gradient(circle, var(--c-accent-soft) 0%, transparent 70%);
  z-index:-1; opacity:.7;
}
.PageHero-inner{max-width:var(--container-narrow);}
.PageHero-eyebrow{
  font-family:var(--font-serif); font-style:italic; color:var(--c-accent-dark);
  font-size:1.05rem; margin-bottom:1rem; display:block;
}
.PageHero-heading{
  font-size:clamp(2.2rem, 5.5vw, 4rem);
  margin-bottom:1.25rem;
}
.PageHero-heading--accent{
  background:linear-gradient(100deg, var(--c-accent), var(--c-teal));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.PageHero-lead{font-size:1.15rem; line-height:1.75; color:var(--c-ink-soft); max-width:56ch;}
.PageHero-actions{display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.5rem;}
.PageHero-media{
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg);
  max-height:520px;
}
.PageHero-media img{width:100%; height:100%; object-fit:cover; aspect-ratio:16/9;}
.PageHero--inner .PageHero-media img,
.PageHero--home .PageHero-media img{aspect-ratio:16/8;}
.PageHero--contact{padding-bottom:2rem;}


.GradientDivider{height:5rem; width:100%;}
.GradientDivider--heroToSection{background:linear-gradient(to bottom, var(--c-paper), var(--c-paper));}
.GradientDivider--sectionToAlt{background:linear-gradient(to bottom, var(--c-paper), var(--c-paper-alt));}
.GradientDivider--sectionToCta{background:linear-gradient(to bottom, var(--c-paper), var(--c-ink));}


.Section{padding:var(--space-xl) 0;}
.Section--alt{background:var(--c-paper-alt);}
.Section-header{max-width:var(--container-narrow); margin:0 auto var(--space-lg); text-align:center;}
.Section-eyebrow{
  font-family:var(--font-serif); font-style:italic; color:var(--c-accent-dark); font-size:1rem; margin-bottom:.6rem; display:block;
}
.Section-title{font-size:clamp(1.7rem, 3.5vw, 2.6rem); margin-bottom:1rem;}
.Section-title--sm{font-size:clamp(1.4rem, 2.5vw, 1.9rem); text-align:left; margin-bottom:1.5rem;}
.Section-lead{font-size:1.05rem; color:var(--c-ink-soft); max-width:56ch; margin:0 auto;}
.Section-bodyText{font-size:1.1rem; margin-bottom:1.75rem;}

.PullQuote{
  font-family:var(--font-serif); font-style:italic; font-size:clamp(1.35rem, 2.6vw, 1.8rem);
  color:var(--c-ink); line-height:1.5; padding-left:1.5rem; margin:2.5rem 0;
  border-left:3px solid var(--c-accent);
}


.ContentCard{
  display:flex; flex-direction:column; gap:2rem; align-items:center;
  margin-bottom:var(--space-xl);
}
.ContentCard:last-child{margin-bottom:0;}
.ContentCard-media{border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-md); flex:1; width:100%;}
.ContentCard-media img{width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .6s ease;}
.ContentCard-media:hover img{transform:scale(1.04);}
.ContentCard-body{flex:1; width:100%;}
.ContentCard-number{
  font-family:var(--font-head); font-size:.9rem; font-weight:700; color:var(--c-accent);
  letter-spacing:.1em; display:block; margin-bottom:.75rem;
}
.ContentCard-title{font-size:clamp(1.35rem, 2.5vw, 1.75rem); margin-bottom:1rem;}
.ContentCard-text{font-size:1.02rem;}

@media(min-width:800px){
  .ContentCard{flex-direction:row; align-items:center;}
  .ContentCard--reverse{flex-direction:row-reverse;}
}


.FeatureGrid{
  display:grid; grid-template-columns:1fr; gap:0;
}
@media(min-width:750px){
  .FeatureGrid{grid-template-columns:1fr 1fr; gap:0 3rem;}
}
.FeatureItem{
  padding:2rem 0; border-bottom:1px solid var(--c-line);
}
@media(min-width:750px){
  .FeatureItem:nth-child(2n){border-left:1px solid var(--c-line); padding-left:3rem;}
  .FeatureItem:nth-child(2n-1){padding-right:1rem;}
}
.FeatureItem-icon{
  width:52px; height:52px; border-radius:var(--radius-sm);
  background:linear-gradient(135deg, var(--c-accent-soft), #fff);
  display:flex; align-items:center; justify-content:center;
  color:var(--c-accent-dark); font-size:1.3rem; margin-bottom:1.25rem;
  box-shadow:var(--shadow-sm);
}
.FeatureItem-title{font-size:1.25rem; margin-bottom:.6rem;}
.FeatureItem-text{font-size:.98rem;}


.ProcessList{display:flex; flex-direction:column; gap:2.25rem;}
.ProcessList-item{display:flex; gap:1.5rem; align-items:flex-start;}
.ProcessList-step{
  flex-shrink:0; width:44px; height:44px; border-radius:50%;
  background:var(--c-ink); color:#fff; font-family:var(--font-head); font-weight:600;
  display:flex; align-items:center; justify-content:center;
}
.ProcessList-title{font-size:1.15rem; margin-bottom:.4rem;}
.ProcessList-text{font-size:.98rem;}


.CtaBanner{
  background:linear-gradient(150deg, var(--c-ink) 0%, #262a3d 100%);
  color:#f2ede2; text-align:center; padding:var(--space-2xl) 0;
}
.CtaBanner-heading{color:#fff; font-size:clamp(1.7rem, 3.5vw, 2.5rem); margin-bottom:1rem;}
.CtaBanner-text{color:#cfc9bb; font-size:1.05rem; max-width:48ch; margin:0 auto 2rem;}


.SiteFooter{background:var(--c-ink); color:#cfc9bb; margin-top:auto;}
.SiteFooter-inner{max-width:var(--container-wide); margin:0 auto; padding:var(--space-xl) 1.5rem var(--space-lg);}
.SiteFooter-grid{display:grid; grid-template-columns:1fr; gap:2.5rem;}
@media(min-width:750px){.SiteFooter-grid{grid-template-columns:1.4fr 1fr 1fr 1fr;}}
.SiteFooter-col img{margin-bottom:1rem; filter:brightness(0) invert(1);}
.SiteFooter-text{font-size:.92rem; line-height:1.6;}
.SiteFooter-title{color:#fff; font-size:.95rem; margin-bottom:1.1rem; letter-spacing:.03em;}
.SiteFooter-list li{margin-bottom:.7rem; font-size:.92rem;}
.SiteFooter-list a{transition:color .3s ease;}
.SiteFooter-list a:hover{color:var(--c-accent);}
.SiteFooter-legal{border-top:1px solid rgba(255,255,255,.1); margin-top:2.5rem; padding-top:1.5rem; font-size:.82rem; color:#9a947f;}
.SiteFooter-legal a{transition:color .3s ease;}
.SiteFooter-legal a:hover{color:#fff;}

body{display:flex; flex-direction:column; min-height:100vh;}
main{flex:1;}


.ValueGrid{display:grid; grid-template-columns:1fr; gap:2.5rem;}
@media(min-width:700px){.ValueGrid{grid-template-columns:1fr 1fr;}}
.ValueCard{
  background:var(--c-surface); padding:2.25rem; border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm); transition:box-shadow .3s ease, transform .3s ease;
}
.ValueCard:hover{box-shadow:var(--shadow-md); transform:translateY(-4px);}
.ValueCard-index{
  font-family:var(--font-head); color:var(--c-accent); font-weight:700; font-size:1.1rem;
}
.ValueCard-title{font-size:1.25rem; margin:.75rem 0;}
.ValueCard-text{font-size:.98rem;}


.PricingGrid{display:grid; grid-template-columns:1fr; gap:2rem;}
@media(min-width:950px){.PricingGrid{grid-template-columns:repeat(3, 1fr);}}
.PricingCard{
  background:var(--c-surface); border-radius:var(--radius-lg); padding:2.5rem 2rem;
  box-shadow:var(--shadow-sm); border:1px solid var(--c-line); position:relative;
  display:flex; flex-direction:column; transition:box-shadow .3s ease, transform .3s ease;
}
.PricingCard:hover{box-shadow:var(--shadow-lg); transform:translateY(-6px);}
.PricingCard--featured{border-color:var(--c-accent); background:linear-gradient(180deg, #fff, var(--c-accent-soft) 220%);}
.PricingCard-badge{
  position:absolute; top:-14px; left:2rem; background:var(--c-accent); color:#fff;
  font-size:.75rem; font-weight:600; padding:.35rem .9rem; border-radius:var(--radius-full);
  box-shadow:var(--shadow-sm);
}
.PricingCard-title{font-size:1.5rem; margin-bottom:.4rem;}
.PricingCard-subtitle{font-size:.9rem; color:var(--c-accent-dark); font-weight:600; margin-bottom:1rem;}
.PricingCard-desc{font-size:.95rem; margin-bottom:1.5rem;}
.PricingCard-list{margin-bottom:2rem; flex:1;}
.PricingCard-list li{display:flex; gap:.6rem; align-items:flex-start; font-size:.92rem; margin-bottom:.75rem;}
.PricingCard-list i{color:var(--c-teal); margin-top:.2rem;}
.PricingGrid-note{text-align:center; font-size:.9rem; color:var(--c-ink-faint); max-width:60ch; margin:2.5rem auto 0;}


.FaqList{display:flex; flex-direction:column; gap:1rem;}
.FaqItem{
  background:var(--c-surface); border-radius:var(--radius-sm); padding:1.3rem 1.6rem;
  box-shadow:var(--shadow-sm); border:1px solid var(--c-line);
}
.FaqItem-question{
  font-family:var(--font-head); font-weight:600; font-size:1.02rem; cursor:pointer;
  list-style:none; display:flex; justify-content:space-between; align-items:center;
}
.FaqItem-question::-webkit-details-marker{display:none;}
.FaqItem-question::after{content:'+'; font-size:1.4rem; color:var(--c-accent); transition:transform .3s ease;}
.FaqItem[open] .FaqItem-question::after{transform:rotate(45deg);}
.FaqItem-answer{font-size:.95rem; margin-top:1rem; color:var(--c-ink-soft);}


.JobList{display:flex; flex-direction:column; gap:1.5rem;}
.JobCard{
  background:var(--c-surface); border-radius:var(--radius-md); padding:2rem;
  box-shadow:var(--shadow-sm); border:1px solid var(--c-line);
  transition:box-shadow .3s ease, transform .3s ease;
}
.JobCard:hover{box-shadow:var(--shadow-md); transform:translateY(-3px);}
.JobCard-head{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem;}
.JobCard-title{font-size:1.2rem;}
.JobCard-tag{
  background:var(--c-teal); color:#fff; font-size:.78rem; font-weight:600; padding:.35rem .9rem; border-radius:var(--radius-full);
}
.JobCard-text{font-size:.95rem; margin-bottom:1.25rem;}
.JobCard-link{font-weight:600; color:var(--c-accent-dark); display:inline-flex; gap:.5rem; align-items:center; transition:gap .3s ease;}
.JobCard-link:hover{gap:.8rem;}


.ContactLayout{display:grid; grid-template-columns:1fr; gap:3rem;}
@media(min-width:900px){.ContactLayout{grid-template-columns:.9fr 1.1fr;}}
.ContactInfo-image{border-radius:var(--radius-md); box-shadow:var(--shadow-md); margin-bottom:2rem; aspect-ratio:4/3; object-fit:cover; width:100%;}
.ContactInfo-title{font-size:1.3rem; margin-bottom:1.25rem;}
.ContactInfo-list li{display:flex; gap:.75rem; align-items:center; margin-bottom:1rem; font-size:.98rem;}
.ContactInfo-list i{color:var(--c-accent); width:20px;}
.ContactInfo-booking{
  margin-top:2rem; padding:1.75rem; background:var(--c-paper-alt); border-radius:var(--radius-md);
}
.ContactInfo-booking h4{font-size:1.05rem; margin-bottom:.75rem;}
.ContactInfo-booking p{font-size:.92rem; margin-bottom:.75rem;}
.ContactInfo-booking p:last-child{margin-bottom:0;}

.ContactForm{
  background:var(--c-surface); border-radius:var(--radius-lg); padding:2.5rem;
  box-shadow:var(--shadow-md); border:1px solid var(--c-line);
}
.ContactForm-title{font-size:1.4rem; margin-bottom:1.75rem;}
.FormGroup{margin-bottom:1.4rem;}
.FormGroup-label{display:block; font-size:.9rem; font-weight:600; color:var(--c-ink); margin-bottom:.5rem;}
.FormGroup-input{
  width:100%; padding:.85rem 1rem; border-radius:var(--radius-sm); border:1.5px solid var(--c-line);
  background:var(--c-paper); font-family:var(--font-body); font-size:.98rem; color:var(--c-ink);
  transition:border-color .3s ease, box-shadow .3s ease;
  min-height:48px;
}
.FormGroup-input:focus{outline:none; border-color:var(--c-accent); box-shadow:0 0 0 4px var(--c-accent-soft);}
.FormGroup-textarea{min-height:130px; resize:vertical;}
.FormGroup--checkbox{display:flex; align-items:flex-start; gap:.6rem; font-size:.88rem;}
.FormGroup--checkbox input{margin-top:.3rem; width:18px; height:18px; flex-shrink:0;}
.FormGroup--checkbox a{color:var(--c-accent-dark); text-decoration:underline;}

.MapWrap{border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-md); border:1px solid var(--c-line);}
.MapWrap iframe{display:block;}


.ThanksSection{
  max-width:600px; margin:0 auto; padding:11rem 1.5rem 6rem; text-align:center;
}
.ThanksSection-icon{
  width:90px; height:90px; border-radius:50%; margin:0 auto 2rem;
  background:linear-gradient(135deg, var(--c-accent-soft), #fff);
  display:flex; align-items:center; justify-content:center; font-size:2.4rem; color:var(--c-accent-dark);
  box-shadow:var(--shadow-md);
}
.ThanksSection-heading{font-size:clamp(1.8rem, 4vw, 2.6rem); margin-bottom:1.25rem;}
.ThanksSection-text{font-size:1.05rem; margin-bottom:2rem;}
.ThanksSection-text a{color:var(--c-accent-dark); text-decoration:underline;}


.LegalHero{max-width:var(--container-narrow); margin:0 auto; padding:9.5rem 1.5rem 3rem;}
.LegalHero-eyebrow{font-family:var(--font-serif); font-style:italic; color:var(--c-accent-dark); font-size:1rem; display:block; margin-bottom:.75rem;}
.LegalHero-title{font-size:clamp(2rem, 4.5vw, 3rem); margin-bottom:1rem;}
.LegalHero-updated{font-size:.9rem; color:var(--c-ink-faint);}

.Timeline{max-width:var(--container-narrow); margin:0 auto; padding:0 1.5rem 6rem; position:relative;}
.Timeline-line{position:absolute; left:1.9rem; top:0; bottom:3rem; width:2px; background:var(--c-line);}
.Timeline--compact .Timeline-line{left:1.4rem;}
.Timeline-item{position:relative; padding-left:3.5rem; margin-bottom:2.75rem;}
.Timeline--compact .Timeline-item{margin-bottom:2rem; padding-left:2.75rem;}
.Timeline-date{
  position:absolute; left:0; top:0; width:3.75rem; height:2.2rem;
  display:flex; align-items:center; justify-content:center;
  background:var(--c-ink); color:#fff; font-family:var(--font-head); font-size:.78rem; font-weight:600;
  border-radius:var(--radius-full); box-shadow:var(--shadow-sm);
}
.Timeline--compact .Timeline-date{width:2.2rem; background:var(--c-accent);}
.Timeline-content h2{font-size:1.3rem; margin-bottom:.85rem;}
.Timeline-content p{font-size:.98rem;}


.Reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
.Reveal.is-visible{opacity:1; transform:translateY(0);}


.CookieCard{
  position:fixed; top:100px; left:1.25rem; z-index:400;
  width:300px; max-width:calc(100vw - 2.5rem);
  background:var(--c-surface); border-radius:var(--radius-md); box-shadow:var(--shadow-lg);
  padding:1.5rem; border:1px solid var(--c-line);
  transform:translateX(-140%); transition:transform .5s cubic-bezier(.2,.8,.2,1);
}
.CookieCard.is-visible{transform:translateX(0);}
.CookieCard-icon{
  width:38px; height:38px; border-radius:50%; background:var(--c-accent-soft); color:var(--c-accent-dark);
  display:flex; align-items:center; justify-content:center; margin-bottom:.9rem;
}
.CookieCard-text{font-size:.85rem; margin-bottom:.5rem; color:var(--c-ink-soft);}
.CookieCard-link{font-size:.8rem; margin-bottom:1rem;}
.CookieCard-link a{color:var(--c-accent-dark); text-decoration:underline;}
.CookieCard-actions{display:flex; gap:.6rem;}
.CookieCard-btn{
  flex:1; font-size:.8rem; font-weight:600; padding:.6rem .8rem; border-radius:var(--radius-full);
  transition:background .3s ease, color .3s ease, border-color .3s ease; min-height:40px;
}
.CookieCard-btn--ghost{border:1.5px solid var(--c-line); color:var(--c-ink);}
.CookieCard-btn--ghost:hover{border-color:var(--c-accent);}
.CookieCard-btn--solid{background:var(--c-ink); color:#fff;}
.CookieCard-btn--solid:hover{background:var(--c-accent-dark);}


.CookieModal{position:fixed; inset:0; z-index:500; display:none; align-items:center; justify-content:center; padding:1.5rem;}
.CookieModal.is-open{display:flex;}
.CookieModal-overlay{position:absolute; inset:0; background:rgba(20,18,15,.55); backdrop-filter:blur(4px);}
.CookieModal-box{
  position:relative; background:var(--c-surface); border-radius:var(--radius-lg); padding:2.25rem;
  max-width:480px; width:100%; box-shadow:var(--shadow-lg); max-height:85vh; overflow-y:auto;
}
.CookieModal-title{font-size:1.35rem; margin-bottom:.9rem;}
.CookieModal-text{font-size:.9rem; margin-bottom:1.5rem;}
.CookieModal-option{
  display:flex; justify-content:space-between; align-items:flex-start; gap:1rem;
  padding:1rem 0; border-top:1px solid var(--c-line);
}
.CookieModal-option h4{font-size:.95rem; margin-bottom:.3rem;}
.CookieModal-option p{font-size:.82rem; color:var(--c-ink-faint);}
.CookieModal-option input{width:20px; height:20px; flex-shrink:0; margin-top:.2rem;}
.CookieModal-actions{display:flex; gap:1rem; margin-top:1.5rem;}
.CookieModal-actions .Btn{flex:1;}

@media(max-width:480px){
  .PageHero{padding-top:8rem;}
  .LegalHero{padding-top:8rem;}
  .ThanksSection{padding-top:8.5rem;}
}