@import url('https://fonts.googleapis.com/css2?family=Merriweather:wght@400;700;900&family=Outfit:wght@400;500;600&display=swap');

:root{
  --colorInk:#1c1f26;
  --colorInkSoft:#3a3d44;
  --colorPaper:#faf7f2;
  --colorPaperAlt:#f1ece2;
  --colorAccentTint:#ecdcd2;
  --colorAccent:#a45c40;
  --colorAccentDark:#8a4a32;
  --colorLine:#ddd6c7;
  --colorLineStrong:#bfb49d;
  --colorMuted:#6f6a5e;

  --fontHeading:'Merriweather', serif;
  --fontBody:'Outfit', sans-serif;

  --shadowSm:0 1px 2px rgba(28,31,38,0.06), 0 1px 1px rgba(28,31,38,0.04);
  --shadowMd:0 12px 28px -12px rgba(28,31,38,0.18), 0 4px 10px -4px rgba(28,31,38,0.10);
  --shadowLg:0 32px 64px -20px rgba(28,31,38,0.30), 0 12px 24px -8px rgba(28,31,38,0.14);

  --radiusSm:6px;
  --radiusMd:16px;
  --radiusLg:30px;

  --maxW:1240px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--fontBody);
  color:var(--colorInk);
  background:var(--colorPaper);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
h1,h2,h3,h4{font-family:var(--fontHeading); font-weight:700; line-height:1.24; margin:0 0 .6em;}
p{margin:0 0 1em;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
button{font-family:var(--fontBody); cursor:pointer; border:none; background:none;}
ul{margin:0; padding:0; list-style:none;}
.container{max-width:var(--maxW); margin:0 auto; padding-inline:clamp(1.25rem,4vw,3rem);}


.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding:.85em 1.7em; border-radius:var(--radiusSm);
  font-size:.95rem; font-weight:600; letter-spacing:.01em;
  transition:transform .35s ease, box-shadow .35s ease, background .35s ease, color .35s ease, border-color .35s ease;
  min-height:48px;
}
.btn-primary{background:var(--colorInk); color:var(--colorPaper); box-shadow:var(--shadowSm);}
.btn-primary:hover{background:var(--colorAccentDark); transform:translateY(-2px); box-shadow:var(--shadowMd);}
.btn-outline{background:transparent; color:var(--colorInk); border:1px solid var(--colorInk);}
.btn-outline:hover{background:var(--colorInk); color:var(--colorPaper); transform:translateY(-2px);}


.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease;}
.reveal.isVisible{opacity:1; transform:translateY(0);}


.siteHeader{position:fixed; top:0; left:0; right:0; z-index:1000; background:var(--colorPaper); perspective:1400px; transition:box-shadow .25s ease;}
.siteHeader_flipWrap{position:relative; width:100%; height:76px; transform-style:preserve-3d; transition:height .6s cubic-bezier(.6,0,.3,1), transform .6s cubic-bezier(.6,0,.3,1); background:var(--colorPaper); border-bottom:1px solid var(--colorLine);}
.siteHeader.isFlipped .siteHeader_flipWrap{height:100vh; transform:rotateX(180deg); border-bottom:none;}
.siteHeader_face{position:absolute; inset:0; backface-visibility:hidden;}
.siteHeader_front{display:flex; align-items:center;}
.siteHeader_inner{width:100%; max-width:var(--maxW); margin:0 auto; padding-inline:clamp(1.25rem,4vw,3rem); display:flex; align-items:center; justify-content:space-between; gap:1.5rem;}
.siteHeader_logo{display:flex; align-items:center; gap:.6rem;}
.siteHeader_logoImg{width:32px; height:32px;}
.siteHeader_logoText{font-family:var(--fontHeading); font-weight:700; font-size:1.05rem; letter-spacing:.01em;}
.siteHeader_nav{display:flex; align-items:center; gap:clamp(1rem,2vw,2rem);}
.siteHeader_navLink{position:relative; font-size:.92rem; font-weight:500; padding:.3em 0; transition:color .3s ease;}
.siteHeader_navLink::after{content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1px; background:var(--colorAccent); transition:right .35s ease;}
.siteHeader_navLink:hover::after,.siteHeader_navLink-active::after{right:0;}
.siteHeader_navLink:hover, .siteHeader_navLink-active{color:var(--colorAccentDark);}
.siteHeader_navLink-cta{border:1px solid var(--colorInk); border-radius:var(--radiusSm); padding:.55em 1.2em;}
.siteHeader_navLink-cta::after{display:none;}
.siteHeader_navLink-cta:hover{background:var(--colorInk); color:var(--colorPaper);}
.siteHeader_toggle{display:none; flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; align-items:center;}
.siteHeader_toggle span{width:22px; height:1.5px; background:var(--colorInk); transition:transform .3s ease, opacity .3s ease;}

.siteHeader_back{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2rem; background:var(--colorInk); transform:rotateX(180deg);}
.siteHeader_close{position:absolute; top:24px; right:24px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; color:var(--colorPaper); border:1px solid rgba(250,247,242,.3); border-radius:50%;}
.siteHeader_backNav{display:flex; flex-direction:column; align-items:center; gap:1.6rem;}
.siteHeader_backLink{font-family:var(--fontHeading); font-size:clamp(1.4rem,4vw,2rem); color:var(--colorPaper); position:relative; padding-bottom:.2em;}
.siteHeader_backLink::after{content:""; position:absolute; left:50%; bottom:0; width:0; height:1px; background:var(--colorAccentSoft,#c98a6d); transition:width .3s ease, left .3s ease;}
.siteHeader_backLink:hover::after{width:100%; left:0;}

@media (max-width:900px){
  .siteHeader_nav{display:none;}
  .siteHeader_toggle{display:flex;}
}


.disclaimerBar{margin-top:76px; background:var(--colorPaperAlt); border-bottom:1px solid var(--colorLine);}
.disclaimerBar p{max-width:var(--maxW); margin:0 auto; padding:.7em clamp(1.25rem,4vw,3rem); font-size:.82rem; color:var(--colorMuted); display:flex; align-items:center; gap:.5em;}


.mainHero{display:flex; min-height:calc(100vh - 76px); flex-wrap:wrap;}
.mainHero_media{flex:1 1 55%; min-width:320px; overflow:hidden; position:relative; min-height:340px;}
.mainHero_img{width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease;}
.mainHero_media:hover .mainHero_img{transform:scale(1.06);}
.mainHero_content{flex:1 1 45%; display:flex; flex-direction:column; justify-content:center; gap:1rem; padding:clamp(2.5rem,5vw,5rem);}
.mainHero_kicker{font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; color:var(--colorAccent); font-weight:600;}
.mainHero_title{font-size:clamp(2.2rem,5vw,3.6rem); line-height:1.12;}
.mainHero_lead{font-size:clamp(1rem,1.5vw,1.15rem); color:var(--colorInkSoft); max-width:46ch;}
.mainHero_actions{display:flex; gap:1rem; flex-wrap:wrap; margin-top:.5rem;}

@media (max-width:900px){
  .mainHero{flex-direction:column;}
  .mainHero_media{min-height:340px;}
}


.sectionHead{max-width:760px; margin:0 auto clamp(2.5rem,5vw,4rem); text-align:center; padding-inline:clamp(1.25rem,4vw,3rem);}
.sectionHead_line{display:inline-block; width:56px; height:1px; background:var(--colorAccent); margin-bottom:1.4rem;}
.sectionHead_title{font-size:clamp(1.7rem,3.2vw,2.5rem);}
.sectionHead_text{color:var(--colorMuted); font-size:1.02rem;}


.topicsSection{padding:clamp(4rem,8vw,7rem) 0;}
.topicsGrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:clamp(1.2rem,2.5vw,2rem); max-width:var(--maxW); margin:0 auto; padding-inline:clamp(1.25rem,4vw,3rem);}
.topicCard{background:var(--colorPaper); border:1px solid var(--colorLine); border-radius:var(--radiusMd); padding:2rem 1.7rem; transition:box-shadow .35s ease, border-color .35s ease, transform .35s ease;}
.topicCard:hover{box-shadow:var(--shadowMd); border-color:var(--colorLineStrong); transform:translateY(-4px);}
.topicCard_icon{width:52px; height:52px; border:1px solid var(--colorAccent); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.3rem; color:var(--colorAccent); margin-bottom:1.2rem;}
.topicCard_title{font-size:1.15rem; margin-bottom:.5rem;}
.topicCard_text{color:var(--colorMuted); font-size:.94rem;}
.topicCard_link{display:inline-flex; align-items:center; gap:.4em; font-size:.88rem; font-weight:600; margin-top:.8rem; color:var(--colorAccentDark); border-bottom:1px solid transparent; transition:border-color .3s ease;}
.topicCard_link:hover{border-color:var(--colorAccentDark);}


.gradientScroll{position:relative; padding:clamp(4rem,8vw,6rem) 0; background:var(--colorPaper); transition:background-color .1s linear;}
.gradientScroll_track{position:absolute; left:50%; top:60px; bottom:60px; width:1px; background:var(--colorLineStrong); transform:translateX(-50%);}
.gradientScroll_stage{position:relative; max-width:440px; margin:0 auto clamp(4rem,8vw,6rem); padding:clamp(1.6rem,3vw,2.2rem); background:var(--colorPaper); border:1px solid var(--colorLine); border-radius:var(--radiusMd); box-shadow:var(--shadowSm); text-align:left;}
.gradientScroll_stage:last-child{margin-bottom:0;}
.gradientScroll_stage-right{margin-left:auto; margin-right:calc(50% - 380px);}
.gradientScroll_stage:not(.gradientScroll_stage-right){margin-right:auto; margin-left:calc(50% - 380px);}
.gradientScroll_num{font-family:var(--fontHeading); color:var(--colorAccent); font-size:.85rem; letter-spacing:.1em;}
.gradientScroll_stage h3{margin-top:.5rem;}
.gradientScroll_stage p{color:var(--colorMuted); font-size:.95rem; margin-bottom:0;}

@media (max-width:900px){
  .gradientScroll_track{left:20px;}
  .gradientScroll_stage,.gradientScroll_stage-right{margin-left:44px !important; margin-right:1rem !important; max-width:none;}
}


.comparisonSection{padding:clamp(4rem,8vw,7rem) 0; background:var(--colorPaperAlt);}
.comparisonTable_wrap{max-width:var(--maxW); margin:0 auto; padding-inline:clamp(1.25rem,4vw,3rem); overflow-x:auto;}
.comparisonTable{width:100%; border-collapse:collapse; min-width:680px; background:var(--colorPaper); border-radius:var(--radiusMd); overflow:hidden; box-shadow:var(--shadowMd);}
.comparisonTable th,.comparisonTable td{padding:1rem 1.2rem; border-bottom:1px solid var(--colorLine); text-align:left; font-size:.92rem;}
.comparisonTable thead th{font-family:var(--fontHeading); font-weight:700; background:var(--colorInk); color:var(--colorPaper); border-bottom:none;}
.comparisonTable_feature{font-weight:600;}
.comparisonTable td .fa-solid.fa-check{color:var(--colorAccentDark);}
.comparisonTable td .fa-solid.fa-xmark{color:var(--colorMuted);}
.comparisonTable_highlight{background:var(--colorAccentTint);}
.comparisonTable_badge{display:block; font-size:.68rem; font-weight:600; letter-spacing:.03em; text-transform:uppercase; color:var(--colorPaper); background:var(--colorAccentDark); border-radius:20px; padding:.25em .7em; margin-top:.4em; width:fit-content;}
.comparisonTable_footnote{max-width:var(--maxW); margin:1.5rem auto 0; padding-inline:clamp(1.25rem,4vw,3rem); color:var(--colorMuted); font-size:.85rem;}


.guidesSection{padding:clamp(4rem,8vw,7rem) 0;}
.guidesGrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:clamp(1.4rem,2.5vw,2rem); max-width:var(--maxW); margin:0 auto; padding-inline:clamp(1.25rem,4vw,3rem);}
.guideCard{border:1px solid var(--colorLine); border-radius:var(--radiusMd); overflow:hidden; background:var(--colorPaper); transition:box-shadow .35s ease, transform .35s ease;}
.guideCard:hover{box-shadow:var(--shadowMd); transform:translateY(-4px);}
.guideCard_media{aspect-ratio:4/3; overflow:hidden;}
.guideCard_media img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
.guideCard:hover .guideCard_media img{transform:scale(1.06);}
.guideCard_body{padding:1.5rem;}
.guideCard_tag{font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--colorAccent); font-weight:600;}
.guideCard_title{font-size:1.1rem; margin:.5rem 0;}
.guideCard_text{color:var(--colorMuted); font-size:.9rem;}
.guideCard_link{display:inline-flex; align-items:center; gap:.4em; font-size:.86rem; font-weight:600; color:var(--colorAccentDark); border-bottom:1px solid transparent; transition:border-color .3s ease;}
.guideCard_link:hover{border-color:var(--colorAccentDark);}


.aboutSplit{display:flex; flex-wrap:wrap; align-items:center; gap:0; background:var(--colorPaperAlt);}
.aboutSplit_media{flex:1 1 45%; min-width:300px;}
.aboutSplit_media img{width:100%; height:100%; object-fit:cover; min-height:340px;}
.aboutSplit_content{flex:1 1 50%; min-width:300px; padding:clamp(2.5rem,5vw,4.5rem);}
.aboutSplit_title{font-size:clamp(1.6rem,3vw,2.2rem);}
.aboutSplit_text{color:var(--colorInkSoft); max-width:56ch;}
.aboutSplit_link{display:inline-flex; align-items:center; gap:.5em; font-weight:600; color:var(--colorAccentDark); border-bottom:1px solid var(--colorAccentDark); padding-bottom:2px; margin-top:.5rem;}


.faqSection{padding:clamp(4rem,8vw,7rem) 0;}
.faqList{max-width:760px; margin:0 auto; padding-inline:clamp(1.25rem,4vw,3rem);}
.faqItem{border-bottom:1px solid var(--colorLine);}
.faqItem_head{width:100%; display:flex; align-items:center; justify-content:space-between; padding:1.3rem 0; font-family:var(--fontHeading); font-size:1.02rem; text-align:left; color:var(--colorInk); transition:color .3s ease;}
.faqItem_head i{transition:transform .35s ease; color:var(--colorAccent);}
.faqItem.isOpen .faqItem_head i{transform:rotate(45deg);}
.faqItem_body{max-height:0; overflow:hidden; transition:max-height .45s ease;}
.faqItem_body p{padding-bottom:1.3rem; color:var(--colorMuted); max-width:64ch;}
.faqItem.isOpen .faqItem_body{max-height:260px;}


.ctaBand{padding:clamp(3.5rem,7vw,6rem) 0; background:var(--colorInk); color:var(--colorPaper); text-align:center;}
.ctaBand_inner{max-width:640px; margin:0 auto; padding-inline:clamp(1.25rem,4vw,3rem);}
.ctaBand_title{font-size:clamp(1.5rem,3vw,2.1rem); color:var(--colorPaper);}
.ctaBand_text{color:#cfc9bd; margin-bottom:1.6rem;}
.ctaBand .btn-primary{background:var(--colorPaper); color:var(--colorInk);}
.ctaBand .btn-primary:hover{background:var(--colorAccent); color:var(--colorPaper);}


.pageHero{padding:clamp(6.5rem,10vw,9rem) 0 clamp(3rem,6vw,4rem); max-width:var(--maxW); margin:0 auto; padding-inline:clamp(1.25rem,4vw,3rem);}
.pageHero-narrow{max-width:820px;}
.pageHero_kicker{font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; color:var(--colorAccent); font-weight:600;}
.pageHero_title{font-size:clamp(2rem,4.5vw,3rem);}
.pageHero_lead{color:var(--colorInkSoft); font-size:1.05rem; max-width:70ch;}


.splitBlock{display:flex; flex-wrap:wrap; align-items:center; gap:clamp(2rem,5vw,4rem); max-width:var(--maxW); margin:0 auto; padding:clamp(2.5rem,5vw,4rem) clamp(1.25rem,4vw,3rem);}
.splitBlock-reverse{flex-direction:row-reverse;}
.splitBlock_media{flex:1 1 40%; min-width:280px;}
.splitBlock_media img{border-radius:var(--radiusMd); box-shadow:var(--shadowMd); width:100%; aspect-ratio:4/3; object-fit:cover;}
.splitBlock_content{flex:1 1 50%; min-width:280px;}
.splitBlock_title{font-size:clamp(1.4rem,2.6vw,1.9rem); border-bottom:1px solid var(--colorLine); padding-bottom:.6rem; margin-bottom:1rem;}
.splitBlock_text{color:var(--colorInkSoft); max-width:60ch;}


.instead{padding:clamp(3rem,6vw,5rem) 0 clamp(5rem,8vw,7rem);}
.insteadGrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.6rem; max-width:var(--maxW); margin:0 auto; padding-inline:clamp(1.25rem,4vw,3rem);}
.insteadCard{border-left:2px solid var(--colorAccent); padding:.4rem 0 .4rem 1.4rem;}
.insteadCard_icon{font-size:1.4rem; color:var(--colorAccent); margin-bottom:.6rem;}
.insteadCard h3{font-size:1.05rem; margin-bottom:.4rem;}
.insteadCard p{color:var(--colorMuted); font-size:.92rem;}


.timelineStrip{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.5rem; max-width:var(--maxW); margin:0 auto clamp(3rem,6vw,4rem); padding-inline:clamp(1.25rem,4vw,3rem);}
.timelineStrip_item{border-top:1px solid var(--colorAccent); padding-top:1.1rem;}
.timelineStrip_dot{display:none;}
.timelineStrip_item h3{font-size:1.05rem; margin-bottom:.4rem;}
.timelineStrip_item p{color:var(--colorMuted); font-size:.9rem;}


.guideDetail{display:flex; flex-wrap:wrap; gap:clamp(2rem,5vw,4rem); align-items:flex-start; max-width:var(--maxW); margin:0 auto; padding:clamp(3rem,6vw,4.5rem) clamp(1.25rem,4vw,3rem); border-top:1px solid var(--colorLine);}
.guideDetail:first-of-type{border-top:none;}
.guideDetail-reverse{flex-direction:row-reverse;}
.guideDetail_media{flex:1 1 38%; min-width:280px; position:sticky; top:120px;}
.guideDetail_media img{border-radius:var(--radiusMd); box-shadow:var(--shadowMd); width:100%; aspect-ratio:4/3; object-fit:cover;}
.guideDetail_content{flex:1 1 55%; min-width:280px;}
.guideDetail_tag{display:inline-block; font-size:.75rem; text-transform:uppercase; letter-spacing:.07em; color:var(--colorAccentDark); border:1px solid var(--colorAccent); border-radius:20px; padding:.3em .9em; margin-bottom:1rem;}
.guideDetail_title{font-size:clamp(1.4rem,2.8vw,1.9rem);}
.guideDetail_text{color:var(--colorInkSoft); max-width:66ch;}

@media (max-width:900px){
  .guideDetail,.guideDetail-reverse{flex-direction:column;}
  .guideDetail_media{position:static;}
}


.contactSection{padding:clamp(3rem,6vw,5rem) 0; max-width:var(--maxW); margin:0 auto; padding-inline:clamp(1.25rem,4vw,3rem);}
.contactSection_grid{display:grid; grid-template-columns:minmax(240px,1fr) minmax(280px,1.6fr); gap:clamp(2rem,5vw,4rem);}
.contactSection_title{font-size:1.3rem; border-bottom:1px solid var(--colorLine); padding-bottom:.6rem; margin-bottom:1.2rem;}
.contactSection_item{display:flex; align-items:center; gap:.7em; color:var(--colorInkSoft); margin-bottom:.8rem; font-size:.95rem;}
.contactSection_item i{color:var(--colorAccent); width:20px;}
.contactSection_note{margin-top:1.8rem; padding-top:1.5rem; border-top:1px solid var(--colorLine);}
.contactSection_note h3{font-size:1.02rem; margin-bottom:.5rem;}
.contactSection_note p{color:var(--colorMuted); font-size:.9rem;}

.contactForm{border:1px solid var(--colorLine); border-radius:var(--radiusMd); padding:clamp(1.5rem,3vw,2.2rem); background:var(--colorPaper); box-shadow:var(--shadowSm);}
.contactForm_row{display:flex; gap:1.2rem; flex-wrap:wrap; margin-bottom:1.2rem;}
.contactForm_field{flex:1 1 160px; display:flex; flex-direction:column; gap:.4rem;}
.contactForm_field-message{flex:2 1 220px;}
.contactForm_field label{font-size:.82rem; font-weight:600; color:var(--colorMuted);}
.contactForm_field input,.contactForm_field textarea{
  border:none; border-bottom:1px solid var(--colorLine); background:transparent; padding:.6em .1em;
  font-family:var(--fontBody); font-size:.95rem; color:var(--colorInk); resize:none; min-height:44px;
  transition:border-color .3s ease;
}
.contactForm_field input:focus,.contactForm_field textarea:focus{outline:none; border-color:var(--colorAccent);}
.contactForm_field input.isInvalid,.contactForm_field textarea.isInvalid{border-color:#a33b2b;}
.contactForm_row-actions{align-items:center; justify-content:space-between; gap:1.5rem;}
.contactForm_privacy{display:flex; align-items:flex-start; gap:.6em; font-size:.85rem; color:var(--colorMuted); flex:1 1 260px;}
.contactForm_privacy input{width:18px; height:18px; margin-top:2px; flex-shrink:0;}
.contactForm_privacy.isInvalid{color:#a33b2b;}
.contactForm_privacy a{text-decoration:underline;}

@media (max-width:760px){
  .contactSection_grid{grid-template-columns:1fr;}
  .contactForm_row{flex-direction:column;}
  .contactForm_row-actions{flex-direction:column; align-items:flex-start;}
}

.mapSection{max-width:var(--maxW); margin:0 auto clamp(4rem,7vw,6rem); padding-inline:clamp(1.25rem,4vw,3rem);}
.mapSection_frame{border:1px solid var(--colorLine); border-radius:var(--radiusMd); overflow:hidden; box-shadow:var(--shadowMd);}
.mapSection_frame iframe{display:block;}


.thanksSection{min-height:calc(100vh - 76px); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:clamp(6rem,10vw,8rem) clamp(1.25rem,4vw,3rem) 4rem;}
.thanksSection_quote{max-width:560px; border:1px solid var(--colorLine); border-radius:var(--radiusLg); padding:clamp(2.2rem,4vw,3rem); background:var(--colorPaperAlt); box-shadow:var(--shadowMd); margin-bottom:2.5rem;}
.thanksSection_quoteIcon{font-size:1.4rem; color:var(--colorAccent); margin-bottom:1rem;}
.thanksSection_quoteText{font-family:var(--fontHeading); font-size:1.2rem; line-height:1.5; color:var(--colorInk);}
.thanksSection_quoteSource{display:block; margin-top:1rem; font-size:.82rem; color:var(--colorMuted); letter-spacing:.03em; text-transform:uppercase;}
.thanksSection_title{font-size:clamp(1.6rem,3vw,2.2rem);}
.thanksSection_text{color:var(--colorMuted); max-width:52ch; margin-bottom:1.6rem;}


.legalSection{max-width:820px; margin:0 auto; padding:clamp(6.5rem,10vw,9rem) clamp(1.25rem,4vw,3rem) clamp(4rem,8vw,6rem);}
.legalSection_updated{font-size:.82rem; color:var(--colorMuted); text-transform:uppercase; letter-spacing:.06em;}
.legalSection_title{font-size:clamp(2rem,4vw,2.6rem); margin-bottom:1rem;}
.legalSection_intro{color:var(--colorInkSoft); font-size:1.02rem; border-bottom:1px solid var(--colorLine); padding-bottom:2rem; margin-bottom:2rem;}
.legalSection h2{font-size:1.2rem; margin-top:2.2rem;}
.legalSection p{color:var(--colorInkSoft); font-size:.96rem;}


.pageFooter{border-top:1px solid var(--colorLine); background:var(--colorPaperAlt); margin-top:auto;}
.pageFooter_inner{max-width:900px; margin:0 auto; padding:clamp(3.5rem,6vw,5rem) clamp(1.25rem,4vw,3rem) clamp(2rem,4vw,3rem); display:flex; flex-direction:column; align-items:center; text-align:center; gap:1.4rem;}
.pageFooter_logo{display:flex; align-items:center; gap:.6rem; font-family:var(--fontHeading); font-weight:700; font-size:1.1rem;}
.pageFooter_logoImg{width:32px; height:32px;}
.pageFooter_tagline{color:var(--colorMuted); max-width:46ch; font-size:.92rem;}
.pageFooter_links{display:flex; flex-wrap:wrap; justify-content:center; gap:1.4rem; padding-top:.6rem; border-top:1px solid var(--colorLine); width:100%; padding-top:1.4rem;}
.pageFooter_links a{font-size:.88rem; color:var(--colorInkSoft); transition:color .3s ease;}
.pageFooter_links a:hover{color:var(--colorAccentDark);}
.pageFooter_contact{display:flex; flex-wrap:wrap; justify-content:center; gap:1.6rem; font-size:.86rem; color:var(--colorMuted);}
.pageFooter_contact i{color:var(--colorAccent); margin-right:.4em;}
.pageFooter_bottom{border-top:1px solid var(--colorLine); width:100%; padding-top:1.4rem; font-size:.8rem; color:var(--colorMuted);}

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


.cookieBanner{position:fixed; left:0; right:0; bottom:-100%; z-index:2000; background:var(--colorPaper); border-top:1px solid var(--colorLineStrong); box-shadow:0 -20px 44px -18px rgba(28,31,38,0.25); display:flex; flex-wrap:wrap; transition:bottom .5s ease;}
.cookieBanner.isVisible{bottom:0;}
.cookieBanner_left{flex:1 1 340px; padding:1.8rem clamp(1.25rem,4vw,3rem); border-right:1px solid var(--colorLine);}
.cookieBanner_title{font-family:var(--fontHeading); font-size:1.05rem; margin-bottom:.5rem;}
.cookieBanner_text{color:var(--colorMuted); font-size:.86rem; max-width:52ch;}
.cookieBanner_right{flex:1 1 340px; padding:1.8rem clamp(1.25rem,4vw,3rem); display:flex; flex-direction:column; gap:1rem;}
.cookieBanner_categories{display:flex; flex-wrap:wrap; gap:1rem;}
.cookieBanner_toggle{display:flex; align-items:center; gap:.5em; font-size:.84rem; color:var(--colorInkSoft);}
.cookieBanner_toggle input{width:16px; height:16px;}
.cookieBanner_actions{display:flex; flex-wrap:wrap; gap:.8rem;}
.cookieBanner_btn{padding:.7em 1.3em; border-radius:var(--radiusSm); font-size:.86rem; font-weight:600; transition:all .3s ease; min-height:44px;}
.cookieBanner_btn-ghost{background:transparent; color:var(--colorMuted); border:1px solid var(--colorLine);}
.cookieBanner_btn-ghost:hover{border-color:var(--colorInk); color:var(--colorInk);}
.cookieBanner_btn-outline{background:transparent; border:1px solid var(--colorInk); color:var(--colorInk);}
.cookieBanner_btn-outline:hover{background:var(--colorPaperAlt);}
.cookieBanner_btn-solid{background:var(--colorInk); color:var(--colorPaper); border:1px solid var(--colorInk);}
.cookieBanner_btn-solid:hover{background:var(--colorAccentDark); border-color:var(--colorAccentDark);}

@media (max-width:760px){
  .cookieBanner{flex-direction:column;}
  .cookieBanner_left{border-right:none; border-bottom:1px solid var(--colorLine);}
}

@media (max-width:600px){
  .siteHeader_inner{padding-inline:1.1rem;}
  .mainHero_content{padding:2rem 1.25rem;}
  .disclaimerBar p{font-size:.75rem;}
}