@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600&display=swap');

:root{
  --colorBg:#FAF6F0;
  --colorBgAlt:#F0E7D8;
  --colorBgDark:#2A2420;
  --colorBgDarkAlt:#332B24;
  --colorInk:#2B2420;
  --colorInkSoft:#5B4F45;
  --colorInkOnDark:#F3EBDD;
  --colorInkSoftOnDark:#CBBBA8;
  --colorPrimary:#B5563C;
  --colorPrimaryDark:#8C3F2A;
  --colorPrimaryLight:#E0846A;
  --colorSecondary:#4A5D45;
  --colorSecondaryDark:#33422F;
  --colorAccent:#D8A13B;
  --colorAccentLight:#F0C878;
  --colorCard:#FFFDF8;
  --colorLine:#E4D8C3;
  --shadowSm:0 1px 2px rgba(43,36,32,0.08),0 1px 1px rgba(43,36,32,0.05);
  --shadowMd:0 6px 16px -4px rgba(43,36,32,0.18),0 3px 6px -2px rgba(43,36,32,0.1);
  --shadowLg:0 24px 48px -14px rgba(43,36,32,0.3),0 10px 20px -8px rgba(43,36,32,0.16);
  --radiusSm:10px;
  --radiusMd:20px;
  --radiusLg:32px;
  --radiusBlob:63% 37% 41% 59% / 47% 45% 55% 53%;
  --spacingXs:.5rem;
  --spacingSm:1rem;
  --spacingMd:2rem;
  --spacingLg:4rem;
  --spacingXl:7rem;
  --fontHead:'Playfair Display', serif;
  --fontBody:'Plus Jakarta Sans', sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--fontBody);
  background:var(--colorBg);
  color:var(--colorInk);
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}
body::before{
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:9998;
  opacity:.035;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
body.noScroll{ overflow:hidden; }
h1,h2,h3,h4{ font-family:var(--fontHead); color:var(--colorInk); font-weight:700; margin:0 0 .6em; line-height:1.15; }
p{ margin:0 0 1em; color:var(--colorInkSoft); }
a{ color:var(--colorPrimary); text-decoration:none; transition:color .3s ease; }
img{ max-width:100%; display:block; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
input,textarea{ font-family:inherit; font-size:1rem; }

.container{ max-width:1240px; margin:0 auto; padding:0 1.5rem; }


.btnPrimary, .btnGhost{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.9rem 1.8rem; border-radius:var(--radiusMd);
  font-weight:600; font-size:.98rem; transition:transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease;
  min-height:44px;
}
.btnPrimary{ background:var(--colorPrimary); color:#fff; box-shadow:var(--shadowMd); }
.btnPrimary:hover{ transform:translateY(-2px); box-shadow:var(--shadowLg); background:var(--colorPrimaryDark); }
.btnPrimary--light{ background:var(--colorAccent); color:var(--colorInk); }
.btnPrimary--light:hover{ background:var(--colorAccentLight); }
.btnGhost{ background:transparent; color:var(--colorInk); border:2px solid var(--colorLine); }
.btnGhost:hover{ border-color:var(--colorPrimary); color:var(--colorPrimary); transform:translateY(-2px); }


section{ padding:var(--spacingXl) 0; position:relative; }
.sectionKicker{ display:inline-block; font-weight:600; letter-spacing:.06em; text-transform:uppercase; font-size:.8rem; color:var(--colorPrimary); margin-bottom:.75rem; }
.sectionKicker--light{ color:var(--colorAccentLight); }
.sectionHeading{ font-size:clamp(1.8rem, 3.4vw, 2.8rem); max-width:720px; }
.sectionHeading--light{ color:var(--colorInkOnDark); }
.sectionHeading_underline{ color:var(--colorAccent); display:block; margin-bottom:1.5rem; }
.sectionLead{ max-width:640px; font-size:1.05rem; color:var(--colorInkSoft); margin-bottom:2.5rem; }
.sectionLead--light{ color:var(--colorInkSoftOnDark); }


.siteHeader{
  position:sticky; top:0; z-index:500;
  padding:1.1rem 0;
  transition:background .4s ease, box-shadow .4s ease;
  background:rgba(250,246,240,.7);
  backdrop-filter:blur(14px);
}
.siteHeader_inner{ max-width:1240px; margin:0 auto; padding:0 1.5rem; display:flex; flex-direction:column; align-items:center; gap:.6rem; position:relative; }
.siteHeader_logo{ display:flex; align-items:center; gap:.6rem; font-family:var(--fontHead); font-weight:700; font-size:1.2rem; color:var(--colorInk); transition:color .4s ease; }
.siteHeader_nav{ width:100%; display:flex; justify-content:center; }
.siteHeader_links{ display:flex; gap:2rem; }
.siteHeader_link{ font-weight:600; font-size:.95rem; color:var(--colorInk); position:relative; padding:.2rem 0; transition:color .4s ease; }
.siteHeader_link::after{ content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--colorPrimary); transition:width .3s ease; }
.siteHeader_link:hover::after, .siteHeader_link.isActive::after{ width:100%; }
.siteHeader[data-navstate="onDark"]{ background:rgba(42,36,32,.65); }
.siteHeader[data-navstate="onDark"] .siteHeader_logo,
.siteHeader[data-navstate="onDark"] .siteHeader_link{ color:var(--colorInkOnDark); }
.siteHeader_menuToggle{ display:none; position:absolute; right:1.5rem; top:50%; transform:translateY(-50%); width:44px; height:44px; flex-direction:column; align-items:center; justify-content:center; gap:5px; border-radius:50%; }
.siteHeader_menuToggle span{ width:22px; height:2px; background:var(--colorInk); border-radius:2px; transition:background .4s ease; }
.siteHeader[data-navstate="onDark"] .siteHeader_menuToggle span{ background:var(--colorInkOnDark); }


.mobileSheet{ position:fixed; inset:0; z-index:900; visibility:hidden; }
.mobileSheet_backdrop{ position:absolute; inset:0; background:rgba(43,36,32,.5); opacity:0; transition:opacity .35s ease; }
.mobileSheet_panel{
  position:absolute; left:0; right:0; bottom:0;
  background:var(--colorCard);
  border-radius:28px 28px 0 0;
  padding:1rem 1.5rem 2.2rem;
  transform:translateY(100%);
  transition:transform .4s cubic-bezier(.32,.72,0,1);
  box-shadow:var(--shadowLg);
}
.mobileSheet.isOpen{ visibility:visible; }
.mobileSheet.isOpen .mobileSheet_backdrop{ opacity:1; }
.mobileSheet.isOpen .mobileSheet_panel{ transform:translateY(0); }
.mobileSheet_handle{ width:44px; height:5px; border-radius:5px; background:var(--colorLine); margin:.3rem auto 1.4rem; }
.mobileSheet_links li a{ display:flex; align-items:center; gap:1rem; padding:1rem .5rem; font-weight:600; font-size:1.05rem; color:var(--colorInk); border-bottom:1px solid var(--colorLine); min-height:44px; }
.mobileSheet_links li:last-child a{ border-bottom:none; }
.mobileSheet_links i{ width:22px; text-align:center; color:var(--colorPrimary); }


.mainHero{ padding-top:var(--spacingLg); padding-bottom:var(--spacingXl); overflow:hidden; }
.mainHero_blob{ position:absolute; border-radius:var(--radiusBlob); filter:blur(2px); opacity:.5; z-index:0; }
.mainHero_blob-1{ width:340px; height:340px; background:var(--colorAccentLight); top:-80px; left:-100px; opacity:.35; }
.mainHero_blob-2{ width:220px; height:220px; background:var(--colorSecondary); bottom:-60px; right:-60px; opacity:.15; }
.mainHero_inner{ display:flex; align-items:center; gap:3.5rem; position:relative; z-index:1; }
.mainHero_content{ flex:0 0 45%; }
.mainHero_kicker{ display:inline-flex; align-items:center; gap:.6rem; font-weight:600; font-size:.9rem; letter-spacing:.04em; text-transform:uppercase; color:var(--colorPrimary); margin-bottom:1.4rem; }
.mainHero_compass{ animation:spinSlow 12s linear infinite; }
@keyframes spinSlow{ from{ transform:rotate(0deg);} to{ transform:rotate(360deg);} }
.mainHero_title{ font-size:clamp(2.4rem, 5vw, 3.8rem); margin-bottom:1.3rem; }
.mainHero_title em{ font-style:italic; color:var(--colorPrimary); }
.mainHero_lead{ font-size:1.08rem; margin-bottom:2rem; max-width:520px; }
.mainHero_actions{ display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:2.6rem; }
.mainHero_stats{ display:flex; gap:2.2rem; flex-wrap:wrap; }
.mainHero_stat span{ font-family:var(--fontHead); font-size:2rem; font-weight:700; color:var(--colorPrimary); display:block; }
.mainHero_stat small{ color:var(--colorInkSoft); font-size:.85rem; }
.mainHero_visual{ flex:0 0 55%; position:relative; }
.mainHero_atropos{ width:100%; aspect-ratio:4/5; border-radius:var(--radiusLg); }
.mainHero_image{ width:100%; height:100%; object-fit:cover; border-radius:var(--radiusLg); box-shadow:var(--shadowLg); }
.mainHero_floatingCard{
  position:absolute; left:-2rem; bottom:2rem; background:var(--colorCard); padding:1.1rem 1.3rem; border-radius:var(--radiusMd);
  box-shadow:var(--shadowLg); display:flex; align-items:center; gap:.9rem; max-width:260px; border:1px solid var(--colorLine);
}
.mainHero_floatingCard i{ font-size:1.4rem; color:var(--colorPrimary); }
.mainHero_floatingCard p{ margin:0; font-size:.88rem; font-weight:600; color:var(--colorInk); }
.mainHero_tag{ position:absolute; top:1.4rem; right:1.4rem; background:rgba(43,36,32,.75); color:var(--colorInkOnDark); font-size:.75rem; font-weight:600; padding:.5rem .9rem; border-radius:var(--radiusSm); }


.factStrip{ background:var(--colorBgDark); color:var(--colorInkOnDark); padding:var(--spacingLg) 0; }
.factStrip_lead{ font-family:var(--fontHead); font-size:1.3rem; color:var(--colorInkOnDark); margin-bottom:1.6rem; }
.factStrip_grid{ display:flex; flex-wrap:wrap; gap:1.2rem; }
.factStrip_item{ display:flex; align-items:center; gap:.7rem; background:rgba(255,255,255,.06); padding:.9rem 1.2rem; border-radius:var(--radiusMd); flex:1 1 220px; }
.factStrip_item i{ color:var(--colorAccentLight); font-size:1.1rem; }
.factStrip_item span{ font-size:.92rem; color:var(--colorInkSoftOnDark); font-weight:500; }


.serviceGrid{ container-type:inline-size; container-name:serviceGrid; display:flex; flex-direction:column; gap:1.5rem; margin-top:1rem; }
.serviceCard{
  background:var(--colorCard); border:1px solid var(--colorLine); border-radius:var(--radiusLg);
  padding:2rem; display:flex; flex-direction:column; gap:1.2rem; box-shadow:var(--shadowSm);
  transition:box-shadow .35s ease, transform .35s ease;
}
.serviceCard:hover{ box-shadow:var(--shadowLg); transform:translateY(-4px); }
.serviceCard_icon{
  width:56px; height:56px; border-radius:var(--radiusBlob); background:var(--colorBgAlt); color:var(--colorPrimary);
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; flex-shrink:0;
}
.serviceCard_body h3{ font-size:1.25rem; margin-bottom:.5rem; }
.serviceCard_body p{ margin:0; font-size:.96rem; }
@container serviceGrid (min-width:640px){
  .serviceCard{ flex-direction:row; align-items:flex-start; }
}


.processSection{ background:var(--colorBgDark); }
.processTimeline{ position:relative; display:flex; flex-direction:column; gap:2.5rem; margin-top:2rem; }
.processTimeline::before{ content:''; position:absolute; left:32px; top:0; bottom:0; width:2px; background:linear-gradient(var(--colorAccent), transparent); }
.processTimeline_item{ display:flex; gap:1.6rem; align-items:flex-start; padding-left:0; }
.processTimeline_marker{
  flex-shrink:0; width:66px; height:66px; border-radius:var(--radiusBlob); background:var(--colorPrimary); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:var(--fontHead); font-weight:700; font-size:1rem; z-index:1;
}
.processTimeline_card{ background:var(--colorBgDarkAlt); border-radius:var(--radiusMd); padding:1.6rem 1.8rem; flex:1; }
.processTimeline_card h3{ color:var(--colorInkOnDark); font-size:1.15rem; }
.processTimeline_card p{ color:var(--colorInkSoftOnDark); margin:0; font-size:.94rem; }
.processTimeline_item--right{ margin-left:0; }


.cityCompare{ container-type:inline-size; container-name:cityCompare; display:flex; flex-wrap:wrap; gap:2rem; margin-top:1rem; }
.cityCompare_card{ flex:1 1 320px; background:var(--colorCard); border-radius:var(--radiusLg); padding:1.8rem; border:1px solid var(--colorLine); box-shadow:var(--shadowSm); }
.cityCompare_image{ width:100%; height:200px; object-fit:cover; border-radius:var(--radiusMd); margin-bottom:1.2rem; }
.cityCompare_list{ margin-top:1rem; display:flex; flex-direction:column; gap:.6rem; }
.cityCompare_list li{ display:flex; align-items:flex-start; gap:.6rem; font-size:.92rem; color:var(--colorInkSoft); }
.cityCompare_list i{ color:var(--colorSecondary); margin-top:.2rem; }


.galleryGrid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.2rem; margin-top:1.5rem; }
.galleryGrid_img{ width:100%; height:260px; object-fit:cover; border-radius:var(--radiusLg); box-shadow:var(--shadowMd); transition:transform .4s ease; }
.galleryGrid_img:hover{ transform:scale(1.02); }
.galleryGrid_img--tall{ grid-row:span 2; height:100%; }


.philosophySection{ background:var(--colorBgDark); }
.philosophySection_inner{ display:flex; gap:3rem; align-items:flex-start; flex-wrap:wrap; }
.philosophySection_text{ flex:1 1 420px; }
.philosophySection_text p{ color:var(--colorInkSoftOnDark); }
.philosophySection_note{
  flex:0 0 320px; background:rgba(216,161,59,.12); border:1px solid rgba(216,161,59,.35); border-radius:var(--radiusMd);
  padding:1.6rem; display:flex; gap:1rem; align-items:flex-start;
}
.philosophySection_note i{ color:var(--colorAccentLight); font-size:1.4rem; margin-top:.2rem; }
.philosophySection_note p{ margin:0; color:var(--colorInkSoftOnDark); font-size:.92rem; }


.faqAccordion{ display:flex; flex-direction:column; gap:1rem; margin-top:1rem; }
.faqAccordion_item{ background:var(--colorCard); border:1px solid var(--colorLine); border-radius:var(--radiusMd); overflow:hidden; box-shadow:var(--shadowSm); transition:box-shadow .3s ease; }
.faqAccordion_item:hover{ box-shadow:var(--shadowMd); }
.faqAccordion_question{ width:100%; text-align:left; padding:1.3rem 1.6rem; font-family:var(--fontHead); font-weight:600; font-size:1.05rem; color:var(--colorInk); display:flex; justify-content:space-between; align-items:center; gap:1rem; min-height:44px; }
.faqAccordion_question i{ color:var(--colorPrimary); transition:transform .35s ease; flex-shrink:0; }
.faqAccordion_item.isOpen .faqAccordion_question i{ transform:rotate(45deg); }
.faqAccordion_answer{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .4s ease; }
.faqAccordion_item.isOpen .faqAccordion_answer{ grid-template-rows:1fr; }
.faqAccordion_answerInner{ overflow:hidden; }
.faqAccordion_answerInner p{ padding:0 1.6rem 1.5rem; margin:0; font-size:.95rem; }


.ctaBanner{ background:var(--colorPrimary); background-image:linear-gradient(120deg, var(--colorPrimary), var(--colorPrimaryDark)); padding:var(--spacingLg) 0; }
.ctaBanner_inner{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1.5rem; }
.ctaBanner_inner h2{ color:#fff; font-size:clamp(1.5rem,3vw,2.2rem); max-width:640px; margin:0; }


.innerHero{ padding-top:var(--spacingLg); }
.innerHero--compact{ padding-bottom:2rem; }
.innerHero_inner{ display:flex; align-items:center; gap:3rem; flex-wrap:wrap; }
.innerHero_inner > div{ flex:1 1 420px; }
.innerHero_title{ font-size:clamp(2.2rem,4.5vw,3.2rem); margin-bottom:1.1rem; }
.innerHero_lead{ font-size:1.05rem; max-width:520px; }
.innerHero_image{ flex:1 1 380px; width:100%; height:340px; object-fit:cover; border-radius:var(--radiusLg); box-shadow:var(--shadowLg); }


.partnersSection--alt{ background:var(--colorBgAlt); }
.partnerGrid{ container-type:inline-size; container-name:partnerGrid; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.5rem; margin-top:1rem; }
.partnerGrid_card{ background:var(--colorCard); border:1px solid var(--colorLine); border-radius:var(--radiusMd); padding:1.6rem; box-shadow:var(--shadowSm); transition:transform .3s ease, box-shadow .3s ease; }
.partnerGrid_card:hover{ transform:translateY(-4px); box-shadow:var(--shadowMd); }
.partnerGrid_icon{ width:48px; height:48px; border-radius:var(--radiusBlob); background:var(--colorBgAlt); color:var(--colorPrimary); display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin-bottom:1rem; }
.partnerGrid_card h3{ font-size:1.1rem; margin-bottom:.5rem; }
.partnerGrid_card p{ font-size:.92rem; margin:0; }

.partnersSection_imageRow{ display:flex; align-items:center; gap:2.5rem; flex-wrap:wrap; margin-top:1.5rem; }
.partnersSection_imageRow--reverse{ flex-direction:row-reverse; }
.partnersSection_image{ flex:1 1 380px; width:100%; height:300px; object-fit:cover; border-radius:var(--radiusLg); box-shadow:var(--shadowMd); }
.partnersSection_note{ flex:1 1 320px; background:var(--colorCard); border:1px solid var(--colorLine); border-radius:var(--radiusMd); padding:1.6rem; display:flex; gap:1rem; align-items:flex-start; box-shadow:var(--shadowSm); }
.partnersSection_note i{ color:var(--colorPrimary); font-size:1.3rem; margin-top:.2rem; }
.partnersSection_note p{ margin:0; font-size:.92rem; }

.partnerLogosStrip{ display:flex; flex-wrap:wrap; gap:1.2rem; margin-top:1.5rem; }
.partnerLogosStrip span{ display:flex; align-items:center; gap:.6rem; background:rgba(255,255,255,.06); color:var(--colorInkOnDark); padding:.8rem 1.2rem; border-radius:var(--radiusMd); font-size:.9rem; font-weight:500; }
.partnerLogosStrip i{ color:var(--colorAccentLight); }


.contactSection_grid{ display:flex; gap:3rem; flex-wrap:wrap; align-items:flex-start; }
.contactSection_info{ flex:1 1 320px; display:flex; flex-direction:column; gap:1.2rem; }
.contactInfoCard{ display:flex; gap:1rem; align-items:flex-start; background:var(--colorCard); border:1px solid var(--colorLine); border-radius:var(--radiusMd); padding:1.3rem 1.5rem; box-shadow:var(--shadowSm); }
.contactInfoCard i{ color:var(--colorPrimary); font-size:1.3rem; margin-top:.15rem; }
.contactInfoCard strong{ display:block; margin-bottom:.2rem; }
.contactInfoCard p{ margin:0; font-size:.94rem; }
.contactMap{ border-radius:var(--radiusMd); overflow:hidden; box-shadow:var(--shadowMd); border:1px solid var(--colorLine); }

.chatForm{ flex:1 1 420px; background:var(--colorCard); border-radius:var(--radiusLg); padding:2rem; box-shadow:var(--shadowMd); border:1px solid var(--colorLine); }
.chatForm_bubble{ max-width:85%; margin-bottom:1rem; }
.chatForm_bubble--company{ background:var(--colorBgAlt); border-radius:var(--radiusMd) var(--radiusMd) var(--radiusMd) 4px; padding:.9rem 1.2rem; margin-right:auto; }
.chatForm_bubble--company p{ margin:0; font-size:.94rem; color:var(--colorInk); font-weight:500; }
.chatForm_bubble--user{ margin-left:auto; background:var(--colorPrimary); border-radius:var(--radiusMd) var(--radiusMd) 4px var(--radiusMd); padding:.9rem 1.2rem; }
.chatForm_label{ display:block; color:rgba(255,255,255,.85); font-size:.78rem; margin-bottom:.4rem; font-weight:600; }
.chatForm_bubble--user input, .chatForm_bubble--user textarea{
  width:100%; border:none; border-radius:var(--radiusSm); padding:.7rem .9rem; background:#fff; color:var(--colorInk);
  resize:vertical; min-height:44px; transition:box-shadow .3s ease;
}
.chatForm_bubble--user input:focus, .chatForm_bubble--user textarea:focus{ outline:none; box-shadow:0 0 0 3px rgba(216,161,59,.5); }
.chatForm_bubble--privacy{ background:transparent; padding:0; }
.chatForm_checkboxLabel{ display:flex; align-items:flex-start; gap:.6rem; background:var(--colorPrimary); border-radius:var(--radiusMd); padding:.9rem 1.2rem; color:#fff; font-size:.85rem; }
.chatForm_checkboxLabel input{ margin-top:.2rem; width:18px; height:18px; }
.chatForm_checkboxLabel a{ color:var(--colorAccentLight); text-decoration:underline; }
.chatForm_send{
  display:flex; align-items:center; gap:.6rem; margin-left:auto; margin-top:.5rem; background:var(--colorSecondary); color:#fff;
  padding:.9rem 1.6rem; border-radius:var(--radiusMd); font-weight:600; box-shadow:var(--shadowMd); transition:background .3s ease, transform .3s ease;
  min-height:44px;
}
.chatForm_send:hover{ background:var(--colorSecondaryDark); transform:translateY(-2px); }


.thanksSection{ padding:var(--spacingXl) 0; }
.thanksSection_inner{ max-width:520px; margin:0 auto; text-align:center; }
.thanksSection_icon{ font-size:4rem; color:var(--colorPrimary); margin-bottom:1.5rem; }
.thanksSection_inner h1{ font-size:clamp(1.8rem,4vw,2.6rem); }
.thanksSection_inner p{ margin-bottom:2rem; }


.legalPage{ padding:var(--spacingLg) 0 var(--spacingXl); }
.legalPage_inner{ display:flex; gap:3rem; align-items:flex-start; }
.legalToc{ flex:0 0 260px; position:sticky; top:110px; background:var(--colorCard); border:1px solid var(--colorLine); border-radius:var(--radiusMd); padding:1.5rem; box-shadow:var(--shadowSm); }
.legalToc_title{ font-weight:700; margin-bottom:1rem; font-size:.85rem; text-transform:uppercase; letter-spacing:.05em; color:var(--colorPrimary); }
.legalToc ul{ display:flex; flex-direction:column; gap:.5rem; }
.legalToc_link{ font-size:.88rem; color:var(--colorInkSoft); font-weight:500; display:block; padding:.3rem .5rem; border-radius:8px; transition:background .3s ease, color .3s ease; }
.legalToc_link.isActive, .legalToc_link:hover{ background:var(--colorBgAlt); color:var(--colorPrimary); }
.legalToc_mobileToggle{ display:none; width:100%; text-align:left; padding:1rem 1.2rem; background:var(--colorCard); border:1px solid var(--colorLine); border-radius:var(--radiusMd); font-weight:600; margin-bottom:1rem; justify-content:space-between; align-items:center; }
.legalContent{ flex:1; max-width:760px; }
.legalContent_updated{ font-size:.85rem; color:var(--colorInkSoft); font-style:italic; margin-bottom:.5rem; }
.legalContent h1{ font-size:clamp(2rem,4vw,2.6rem); margin-bottom:1.2rem; }
.legalContent section{ margin-bottom:2.2rem; scroll-margin-top:120px; }
.legalContent h2{ font-size:1.3rem; margin-bottom:.7rem; }
.legalContent p{ font-size:.96rem; }


.pageFooter{ background:var(--colorBgDark); color:var(--colorInkSoftOnDark); position:relative; overflow:hidden; padding-top:var(--spacingLg); }
.pageFooter_illustration{ position:absolute; inset:0; opacity:.06; background-image:radial-gradient(circle at 15% 20%, var(--colorAccent) 0, transparent 40%), radial-gradient(circle at 85% 75%, var(--colorSecondary) 0, transparent 45%), radial-gradient(circle at 50% 50%, var(--colorPrimary) 0, transparent 35%); pointer-events:none; }
.pageFooter_grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:2.5rem; padding-bottom:3rem; }
.pageFooter_brand{ display:flex; flex-direction:column; gap:1rem; }
.pageFooter_brand .siteHeader_logo{ color:var(--colorInkOnDark); }
.pageFooter_brand p{ color:var(--colorInkSoftOnDark); font-size:.9rem; }
.pageFooter_col h3{ color:var(--colorInkOnDark); font-size:1.05rem; margin-bottom:1rem; }
.pageFooter_col ul{ display:flex; flex-direction:column; gap:.65rem; }
.pageFooter_col a{ color:var(--colorInkSoftOnDark); font-size:.9rem; transition:color .3s ease; }
.pageFooter_col a:hover{ color:var(--colorAccentLight); }
.pageFooter_col li{ display:flex; align-items:flex-start; gap:.6rem; font-size:.9rem; }
.pageFooter_col i{ color:var(--colorAccentLight); margin-top:.2rem; }
.pageFooter_bottom{ position:relative; z-index:1; border-top:1px solid rgba(255,255,255,.1); padding:1.5rem 0; }
.pageFooter_bottomInner p{ margin:0; font-size:.82rem; color:var(--colorInkSoftOnDark); text-align:center; }


.cookieModal{ position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; padding:1.5rem; }
.cookieModal.isOpen{ display:flex; }
.cookieModal_backdrop{ position:absolute; inset:0; background:rgba(43,36,32,.6); backdrop-filter:blur(3px); }
.cookieModal_dialog{ position:relative; background:var(--colorCard); border-radius:var(--radiusLg); padding:2.2rem; max-width:480px; width:100%; box-shadow:var(--shadowLg); max-height:85vh; overflow-y:auto; }
.cookieModal_dialog h2{ font-size:1.4rem; margin-bottom:.8rem; }
.cookieModal_dialog p{ font-size:.92rem; }
.cookieModal_categories{ display:flex; flex-direction:column; gap:.9rem; margin:1.4rem 0; }
.cookieModal_category{ display:flex; align-items:flex-start; gap:.8rem; background:var(--colorBgAlt); border-radius:var(--radiusMd); padding:.9rem 1.1rem; cursor:pointer; }
.cookieModal_category input{ margin-top:.2rem; width:18px; height:18px; }
.cookieModal_category strong{ font-size:.92rem; display:block; }
.cookieModal_category small{ font-size:.8rem; color:var(--colorInkSoft); }
.cookieModal_actions{ display:flex; gap:.8rem; flex-wrap:wrap; }
.cookieModal_actions button{ flex:1 1 140px; }


@media (max-width:1000px){
  .mainHero_inner{ flex-direction:column; }
  .mainHero_content, .mainHero_visual{ flex:1 1 100%; }
  .mainHero_floatingCard{ left:1rem; }
  .pageFooter_grid{ grid-template-columns:1fr 1fr; }
  .legalToc{ position:static; width:100%; display:none; }
  .legalToc.isOpen{ display:block; }
  .legalToc_mobileToggle{ display:flex; }
  .legalPage_inner{ flex-direction:column; }
}
@media (max-width:860px){
  .siteHeader_nav{ display:none; }
  .siteHeader_menuToggle{ display:flex; }
  .siteHeader_inner{ flex-direction:row; justify-content:center; }
  .galleryGrid{ grid-template-columns:1fr; }
  .galleryGrid_img--tall{ height:260px; }
  .philosophySection_inner{ flex-direction:column; }
  .ctaBanner_inner{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:640px){
  .pageFooter_grid{ grid-template-columns:1fr; }
  .mainHero_stats{ gap:1.4rem; }
  section{ padding:3rem 0; }
  .innerHero_image{ height:240px; }
  .chatForm{ padding:1.4rem; }
}