/* =========================================================
   BUXABE — Isometric Accent stylesheet
   Sections: Reset, Tokens, Base, Layout, Isometric shapes,
   Header/Nav, Mobile Drawer, Hero, Buttons, Sections generic,
   About, Steps, Services, Calculator, Map, CTA, Footer,
   Forms, Legal, Cookie consent, Thanks, Responsive
   ========================================================= */


*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body, h1, h2, h3, p, figure, ul, ol, dl, dd { margin: 0; }
ul { list-style: none; padding: 0; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
input, textarea { font: inherit; }


:root{
  --color-bg: #FAF9F5;
  --color-bg-alt: #F1EEE5;
  --color-bg-deep: #EDE9DD;
  --color-surface: #FFFFFF;
  --color-ink: #1A1C30;
  --color-ink-soft: #4B4F6B;
  --color-ink-faint: #7A7E98;
  --color-primary: #232A52;
  --color-primary-dark: #12162B;
  --color-secondary: #5B6789;
  --color-accent: #E2A63B;
  --color-accent-dark: #C2842A;
  --color-accent-2: #3DBEA6;
  --color-border: #E3DFD2;
  --color-border-dark: #2C3157;

  --shadow-1: 0 1px 2px rgba(20,22,40,.07), 0 1px 1px rgba(20,22,40,.04);
  --shadow-2: 0 8px 20px -6px rgba(20,22,40,.16), 0 3px 8px -2px rgba(20,22,40,.10);
  --shadow-3: 0 28px 56px -16px rgba(15,17,32,.28), 0 10px 24px -8px rgba(15,17,32,.18);
  --shadow-inset: inset 0 1px 0 rgba(255,255,255,.06);

  --radius-xs: 6px;
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --radius-pill: 999px;

  --space-3xs: .25rem;
  --space-2xs: .5rem;
  --space-xs: .75rem;
  --space-sm: 1.25rem;
  --space-md: 2rem;
  --space-lg: 3.75rem;
  --space-xl: 6.5rem;
  --space-2xl: 9.5rem;

  --font-heading: 'Outfit', sans-serif;
  --font-body: 'Work Sans', sans-serif;

  --container: 1240px;
}


body{
  font-family: var(--font-body);
  color: var(--color-ink);
  background: var(--color-bg);
  line-height: 1.65;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
h1,h2,h3,h4{
  font-family: var(--font-heading);
  color: var(--color-primary);
  line-height: 1.12;
  font-weight: 700;
  letter-spacing: -0.01em;
}
p { color: var(--color-ink-soft); }
mark{
  background: linear-gradient(180deg, transparent 55%, rgba(226,166,59,.45) 55%);
  color: inherit;
  padding: 0 .1em;
}
small{ font-size: .8rem; color: var(--color-ink-faint); }
.mod-container{ max-width: var(--container); margin: 0 auto; padding: 0 var(--space-md); }
.mod-skip-link{
  position:absolute; left:-999px; top:0; background:var(--color-accent); color:var(--color-primary-dark);
  padding:.6rem 1rem; z-index:999; border-radius:0 0 var(--radius-sm) 0; font-weight:600;
}
.mod-skip-link:focus{ left:0; }


.mod-page-shell{
  transition: transform .45s cubic-bezier(.4,0,.2,1);
  transform-origin: left center;
  position: relative;
  background: var(--color-bg);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
body.menu-open .mod-page-shell{
  transform: translateX(-78%) scale(.95);
  cursor: pointer;
}
body.menu-open{ overflow: hidden; }
.mod-page-shell main{ flex: 1; }


.iso-cube{ position:absolute; width:96px; height:112px; pointer-events:none; z-index:0; }
.iso-cube span{ position:absolute; display:block; border-radius:4px; }
.iso-cube .iso-top{
  width:96px; height:56px; top:-28px; left:0;
  background: var(--cube-top, var(--color-accent));
  transform: rotate(-30deg) skewX(-30deg) scaleY(.866);
}
.iso-cube .iso-left{
  width:48px; height:84px; top:28px; left:0;
  background: var(--cube-left, var(--color-primary));
  transform: skewY(30deg);
  border-radius: 4px 0 0 4px;
}
.iso-cube .iso-right{
  width:48px; height:84px; top:28px; left:48px;
  background: var(--cube-right, var(--color-accent-dark));
  transform: skewY(-30deg);
  border-radius: 0 4px 4px 0;
}
.iso-cube--sm{ transform: scale(.6); }
.iso-cube--lg{ transform: scale(1.5); }
.iso-cube--fade{ opacity:.5; }
.iso-grid-bg{
  position:absolute; inset:0; z-index:0; opacity:.5; pointer-events:none;
  background-image:
    linear-gradient(30deg, transparent 24%, rgba(226,166,59,.06) 25%, rgba(226,166,59,.06) 26%, transparent 27%, transparent 74%, rgba(226,166,59,.06) 75%, rgba(226,166,59,.06) 76%, transparent 77%),
    linear-gradient(150deg, transparent 24%, rgba(61,190,166,.06) 25%, rgba(61,190,166,.06) 26%, transparent 27%, transparent 74%, rgba(61,190,166,.06) 75%, rgba(61,190,166,.06) 76%, transparent 77%);
  background-size: 64px 110px;
}


.mod-header{
  position: sticky; top: 0; z-index: 100;
  background: var(--color-primary-dark);
  transition: background .35s ease, box-shadow .35s ease;
}
.mod-header.is-solid{
  background: rgba(250,249,245,.92);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow-1);
}
.mod-nav{
  max-width: var(--container); margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--space-sm) var(--space-md);
  gap: var(--space-md);
}
.mod-nav-brand img{ width: 140px; height: auto; }
.mod-nav-menu{
  display: flex; align-items: center; gap: var(--space-md);
  font-weight: 500; font-size: .95rem;
}
.mod-nav-menu a{
  position: relative; padding: .4rem 0; color: var(--color-primary);
  transition: color .3s ease;
}
.mod-header:not(.is-solid) .mod-nav-menu a{ color: var(--color-surface); text-shadow: 0 1px 4px rgba(0,0,0,.25); }
.mod-nav-menu a::after{
  content:""; position:absolute; left:0; bottom:-2px; height:2px; width:0;
  background: var(--color-accent); transition: width .3s ease;
}
.mod-nav-menu a:hover::after,
.mod-nav-menu a[aria-current="page"]::after{ width: 100%; }
.mod-nav-menu a[aria-current="page"]{ font-weight: 700; }
.mod-nav-cta{
  background: var(--color-accent); color: var(--color-primary-dark);
  padding: .7rem 1.4rem; border-radius: var(--radius-pill);
  font-weight: 600; font-size: .9rem; box-shadow: var(--shadow-1);
  transition: transform .3s ease, box-shadow .3s ease, background .3s ease;
  white-space: nowrap;
}
.mod-nav-cta:hover{ transform: translateY(-2px); box-shadow: var(--shadow-2); background: var(--color-accent-dark); }
.mod-nav-toggle{
  display: none; flex-direction: column; gap: 5px; width: 44px; height: 44px;
  align-items: center; justify-content: center; z-index: 20;
}
.mod-nav-toggle span{
  width: 24px; height: 2px; background: var(--color-primary); border-radius: 2px; transition: all .3s ease;
}
.mod-header:not(.is-solid) .mod-nav-toggle span{ background: var(--color-surface); }
.mod-nav-progress{
  height: 3px; width: 0%; background: linear-gradient(90deg, var(--color-accent), var(--color-accent-2));
  transition: width .1s linear;
}


.mod-drawer{
  position: fixed; top: 0; right: 0; width: min(78%, 320px); height: 100%;
  background: var(--color-primary-dark); color: var(--color-surface);
  transform: translateX(100%);
  transition: transform .45s cubic-bezier(.4,0,.2,1);
  z-index: 150; padding: var(--space-xl) var(--space-md) var(--space-md);
  display: flex; flex-direction: column; gap: var(--space-lg);
  box-shadow: -20px 0 60px rgba(0,0,0,.35);
}
body.menu-open .mod-drawer{ transform: translateX(0); }
.mod-drawer-menu{ display: flex; flex-direction: column; gap: var(--space-sm); font-family: var(--font-heading); }
.mod-drawer-menu a{ font-size: 1.4rem; font-weight: 600; color: var(--color-surface); }
.mod-drawer-cta{
  align-self: flex-start; background: var(--color-accent); color: var(--color-primary-dark);
  padding: .8rem 1.5rem; border-radius: var(--radius-pill); font-weight: 600;
}


.btn{
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .95rem 1.9rem; border-radius: var(--radius-pill); font-weight: 600; font-size: .95rem;
  transition: transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease;
  min-height: 44px;
}
.btn--primary{ background: var(--color-accent); color: var(--color-primary-dark); box-shadow: var(--shadow-2); }
.btn--primary:hover{ transform: translateY(-3px); box-shadow: var(--shadow-3); background: var(--color-accent-dark); }
.btn--ghost{ background: transparent; border: 1.5px solid rgba(250,249,245,.4); color: var(--color-surface); }
.btn--ghost:hover{ background: rgba(250,249,245,.12); transform: translateY(-3px); }
.btn--outline{ background: transparent; border: 1.5px solid var(--color-primary); color: var(--color-primary); }
.btn--outline:hover{ background: var(--color-primary); color: var(--color-surface); transform: translateY(-3px); }


.mod-hero{
  position: relative; overflow: hidden;
  background: radial-gradient(circle at 15% 20%, #2c3563 0%, var(--color-primary-dark) 55%, #0d1022 100%);
  padding: var(--space-2xl) 0 var(--space-xl);
  color: var(--color-surface);
}
.mod-hero--page{ padding: calc(var(--space-xl) + 2rem) 0 var(--space-lg); }
.mod-hero-inner{
  max-width: var(--container); margin: 0 auto; padding: 0 var(--space-md);
  display: grid; grid-template-columns: 1.1fr .9fr; gap: var(--space-lg); align-items: center;
  position: relative; z-index: 2;
}
.mod-hero--page .mod-hero-inner{ grid-template-columns: 1fr; max-width: 900px; }
.mod-hero-eyebrow{
  display: inline-flex; align-items: center; gap: .5rem; font-size: .85rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase; color: var(--color-accent); margin-bottom: var(--space-sm);
}
.mod-hero-eyebrow::before{ content:""; width: 26px; height: 2px; background: var(--color-accent); display: inline-block; }
.mod-hero-title{
  font-size: clamp(2.6rem, 1.6rem + 3.6vw, 5.4rem);
  color: var(--color-surface); margin-bottom: var(--space-sm); font-weight: 700;
}
.mod-hero-text{
  font-size: clamp(1.05rem, .95rem + .4vw, 1.25rem); color: rgba(250,249,245,.82);
  max-width: 44ch; margin-bottom: var(--space-md);
}
.mod-hero-actions{ display: flex; flex-wrap: wrap; gap: var(--space-sm); margin-bottom: var(--space-lg); }
.mod-hero-meter-block{
  display: flex; flex-direction: column; gap: var(--space-xs); max-width: 420px;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12);
  padding: var(--space-sm); border-radius: var(--radius-md);
}
.mod-hero-meter-row{ display: flex; align-items: center; gap: var(--space-sm); font-size: .9rem; }
.mod-hero-meter-row span:first-child{ width: 145px; flex-shrink: 0; color: rgba(250,249,245,.8); }
meter{ width: 100%; height: 10px; }
.mod-hero-visual{ position: relative; min-height: 420px; }
.mod-hero-figure{
  position: relative; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-3);
  transform: rotate(1.5deg);
  border: 6px solid rgba(255,255,255,.08);
}
.mod-hero-figure img{ width: 100%; height: 480px; object-fit: cover; }
.mod-hero-figure figcaption{ position: absolute; bottom: 0; left: 0; right: 0; padding: var(--space-sm); background: linear-gradient(0deg, rgba(10,12,24,.85), transparent); color: var(--color-surface); font-size: .85rem; }


.mod-section{ padding: var(--space-xl) 0; position: relative; }
.mod-section--alt{ background: var(--color-bg-alt); }
.mod-section--deep{ background: var(--color-bg-deep); }
.mod-section--dark{ background: linear-gradient(160deg, var(--color-primary-dark), #1c2140); color: var(--color-surface); }
.mod-section--dark p, .mod-section--dark h2, .mod-section--dark h3{ color: var(--color-surface); }
.mod-section-head{ max-width: 700px; margin-bottom: var(--space-lg); }
.mod-section-head--wide{ max-width: 900px; }
.mod-section-eyebrow{
  font-size: .82rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--color-accent-dark);
  display: block; margin-bottom: var(--space-xs);
}
.mod-section--dark .mod-section-eyebrow{ color: var(--color-accent); }
.mod-section-title{ font-size: clamp(2rem, 1.6rem + 1.6vw, 3.1rem); margin-bottom: var(--space-sm); }
.mod-section-lead{ font-size: 1.08rem; }


.mod-about-grid{ display: grid; grid-template-columns: .85fr 1.15fr; gap: var(--space-lg); align-items: center; }
.mod-about-figure{ position: relative; }
.mod-about-figure img{
  width: 100%; height: 420px; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-2);
}
.mod-about-figure figcaption{ margin-top: var(--space-xs); font-style: italic; }
.mod-about-content p{ margin-bottom: var(--space-sm); }
.mod-about-content p:last-child{ margin-bottom: 0; }
.mod-about--reverse .mod-about-grid{ grid-template-columns: 1.15fr .85fr; }
.mod-about--reverse .mod-about-figure{ order: 2; }


.mod-steps-grid{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-md);
  counter-reset: step; position: relative;
}
.mod-step-card{
  background: var(--color-surface); border-radius: var(--radius-lg); padding: var(--space-md);
  box-shadow: var(--shadow-1); border: 1px solid var(--color-border);
  transition: transform .35s ease, box-shadow .35s ease;
  position: relative; overflow: hidden;
}
.mod-step-card:hover{ transform: translateY(-8px); box-shadow: var(--shadow-3); }
.mod-step-number{
  font-family: var(--font-heading); font-size: 3.2rem; font-weight: 800; color: var(--color-accent);
  opacity: .9; line-height: 1; display: block; margin-bottom: var(--space-sm);
}
.mod-step-card header{ display: flex; align-items: center; gap: var(--space-sm); margin-bottom: var(--space-xs); }
.mod-step-icon{
  width: 46px; height: 46px; border-radius: var(--radius-sm); background: var(--color-bg-alt);
  display: flex; align-items: center; justify-content: center; color: var(--color-primary); font-size: 1.2rem; flex-shrink: 0;
}
.mod-step-card h3{ font-size: 1.25rem; }
.mod-step-card::after{
  content:""; position: absolute; right: -30px; top: -30px; width: 100px; height: 100px;
  background: var(--color-accent); opacity: .06; border-radius: 30%; transform: rotate(20deg);
}


.mod-services-grid{
  display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-md);
}
.mod-service-card{
  background: var(--color-surface); border-radius: var(--radius-md); padding: var(--space-md);
  box-shadow: var(--shadow-1); transition: transform .35s ease, box-shadow .35s ease;
  border-top: 4px solid var(--color-accent);
}
.mod-service-card:nth-child(2){ border-top-color: var(--color-accent-2); }
.mod-service-card:nth-child(3){ border-top-color: var(--color-secondary); }
.mod-service-card:nth-child(4){ border-top-color: var(--color-primary); }
.mod-service-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-2); }
.mod-service-card i{ font-size: 1.6rem; color: var(--color-accent-dark); margin-bottom: var(--space-xs); display: block; }
.mod-service-card h3{ font-size: 1.15rem; margin-bottom: var(--space-2xs); }


.mod-calculator{ background: linear-gradient(155deg, var(--color-primary-dark), #1b2040); color: var(--color-surface); position: relative; overflow: hidden; }
.mod-calculator-grid{ display: grid; grid-template-columns: .9fr 1.1fr; gap: var(--space-lg); align-items: flex-start; position: relative; z-index: 2; }
.mod-calculator-figure img{ border-radius: var(--radius-lg); height: 380px; width: 100%; object-fit: cover; box-shadow: var(--shadow-3); }
.mod-calculator-panel{
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius-lg);
  padding: var(--space-md);
}
.mod-calculator-form{ display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-sm); margin-bottom: var(--space-md); }
.mod-calculator-field{ display: flex; flex-direction: column; gap: .4rem; }
.mod-calculator-field label{ font-size: .85rem; color: rgba(250,249,245,.75); }
.mod-calculator-field input{
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius-sm);
  padding: .7rem .9rem; color: var(--color-surface);
}
.mod-calculator-field input:focus{ outline: 2px solid var(--color-accent); }
.mod-calculator-result{
  background: rgba(0,0,0,.2); border-radius: var(--radius-md); padding: var(--space-sm); border: 1px dashed rgba(255,255,255,.25);
}
.mod-calculator-result-value{ font-family: var(--font-heading); font-size: 1.6rem; color: var(--color-accent); margin-bottom: .3rem; }
.mod-calculator-result meter{ width: 100%; margin: .6rem 0; }


.mod-map-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-lg); align-items: center; }
.mod-map-visual{
  position: relative; height: 360px; border-radius: var(--radius-lg); background: var(--color-surface);
  border: 1px solid var(--color-border); box-shadow: var(--shadow-1); overflow: hidden;
}
.mod-map-regions{ display: flex; flex-direction: column; gap: var(--space-sm); }
.mod-region-card{
  display: flex; gap: var(--space-sm); align-items: flex-start; background: var(--color-surface);
  border-radius: var(--radius-md); padding: var(--space-sm); box-shadow: var(--shadow-1);
  border-left: 4px solid var(--color-accent-2);
  transition: transform .3s ease, box-shadow .3s ease;
}
.mod-region-card:hover{ transform: translateX(4px); box-shadow: var(--shadow-2); }
.mod-region-card i{ font-size: 1.3rem; color: var(--color-primary); margin-top: .2rem; }
.mod-region-card h3{ font-size: 1.05rem; margin-bottom: .2rem; }


.mod-cta{ background: var(--color-primary); color: var(--color-surface); padding: var(--space-lg) 0; position: relative; overflow: hidden; }
.mod-cta-inner{ display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); flex-wrap: wrap; position: relative; z-index: 2; }
.mod-cta h2{ color: var(--color-surface); font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.4rem); max-width: 560px; }


.mod-footer{ background: var(--color-primary-dark); color: rgba(250,249,245,.85); padding: var(--space-lg) 0 var(--space-md); }
.mod-footer-grid{
  display: grid; grid-template-columns: 1.4fr .8fr .8fr 1fr; gap: var(--space-lg);
  padding-bottom: var(--space-lg); border-bottom: 1px solid rgba(255,255,255,.1);
}
.mod-footer-brand img{ width: 130px; margin-bottom: var(--space-sm); }
.mod-footer-brand p{ color: rgba(250,249,245,.6); font-size: .9rem; max-width: 32ch; }
.mod-footer h3{ color: var(--color-surface); font-size: 1rem; margin-bottom: var(--space-sm); }
.mod-footer-links ul, .mod-footer-legal ul{ display: flex; flex-direction: column; gap: .6rem; }
.mod-footer-links a, .mod-footer-legal a{ color: rgba(250,249,245,.7); font-size: .92rem; transition: color .3s ease; }
.mod-footer-links a:hover, .mod-footer-legal a:hover{ color: var(--color-accent); }
.mod-footer-contact p{ color: rgba(250,249,245,.7); font-size: .92rem; margin-bottom: .5rem; }
.mod-footer-contact a:hover{ color: var(--color-accent); }
.mod-footer-bottom{ display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--space-xs); padding-top: var(--space-md); }


.mod-contact-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-lg); align-items: start; }
.mod-contact-details{ display: flex; flex-direction: column; gap: var(--space-sm); }
.mod-contact-item{ display: flex; gap: var(--space-sm); align-items: flex-start; }
.mod-contact-item i{ font-size: 1.3rem; color: var(--color-accent-dark); margin-top: .15rem; }
.mod-contact-form-wrap{
  background: var(--color-surface); border-radius: var(--radius-lg); padding: var(--space-md);
  box-shadow: var(--shadow-2); border: 1px solid var(--color-border);
}
.mod-form-row{ display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-sm); margin-bottom: var(--space-sm); }
.mod-form-field{ display: flex; flex-direction: column; gap: .4rem; }
.mod-form-field label{ font-size: .85rem; font-weight: 500; color: var(--color-ink); }
.mod-form-field input, .mod-form-field textarea{
  border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: .75rem .9rem;
  background: var(--color-bg); transition: border-color .3s ease, box-shadow .3s ease;
  resize: none;
}
.mod-form-field textarea{ min-height: 44px; }
.mod-form-field input:focus, .mod-form-field textarea:focus{ outline: none; border-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(226,166,59,.2); }
.mod-form-actions{ display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-sm); }
.mod-form-privacy{ display: flex; align-items: flex-start; gap: .5rem; font-size: .85rem; color: var(--color-ink-soft); }
.mod-form-privacy input{ width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; }
.mod-form-note{ margin-top: var(--space-sm); display: block; }
.mod-service-area{ margin-top: var(--space-xl); }
.mod-map-embed{ border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-2); border: 1px solid var(--color-border); margin-top: var(--space-md); }
.mod-map-embed iframe{ width: 100%; height: 380px; border: 0; display: block; }


.mod-legal{ padding: var(--space-xl) 0; max-width: 880px; margin: 0 auto; }
.mod-legal-header{ margin-bottom: var(--space-lg); }
.mod-legal-updated{
  display: inline-block; background: var(--color-bg-alt); padding: .4rem .9rem; border-radius: var(--radius-pill);
  font-size: .82rem; font-weight: 600; color: var(--color-primary); margin-top: var(--space-xs);
}
.mod-legal-section{ margin-bottom: var(--space-lg); }
.mod-legal-summary{
  background: rgba(226,166,59,.1); border-left: 4px solid var(--color-accent); border-radius: var(--radius-sm);
  padding: var(--space-sm); font-weight: 600; color: var(--color-primary); margin-bottom: var(--space-sm);
}
.mod-legal-details p{ margin-bottom: var(--space-sm); }
.mod-legal-details ul{ list-style: disc; padding-left: 1.4rem; margin-bottom: var(--space-sm); }
.mod-legal-details li{ margin-bottom: .4rem; color: var(--color-ink-soft); }
.mod-legal-letterhead{ font-family: var(--font-heading); font-size: 1.5rem; color: var(--color-accent-dark); font-weight: 800; margin-bottom: .4rem; }
.mod-legal blockquote{ border-left: 3px solid var(--color-secondary); padding-left: var(--space-sm); font-style: italic; color: var(--color-ink-soft); margin: 0 0 var(--space-sm); }
.mod-legal details{ background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-sm); margin-bottom: var(--space-sm); }
.mod-legal summary{ font-weight: 700; cursor: pointer; color: var(--color-primary); font-family: var(--font-heading); font-size: 1.05rem; }
.mod-legal details p{ margin-top: var(--space-sm); }
.mod-legal table{ width: 100%; border-collapse: collapse; margin: var(--space-sm) 0; font-size: .9rem; }
.mod-legal th, .mod-legal td{ text-align: left; padding: .6rem .8rem; border-bottom: 1px solid var(--color-border); }
.mod-legal th{ color: var(--color-primary); font-family: var(--font-heading); }


.mod-cookie{
  position: fixed; bottom: var(--space-sm); left: var(--space-sm); max-width: 360px; width: calc(100% - 2 * var(--space-sm));
  background: var(--color-surface); border-radius: var(--radius-lg); box-shadow: var(--shadow-3);
  border: 1px solid var(--color-border); padding: var(--space-sm); z-index: 300;
  transform: translateY(140%); transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.mod-cookie.is-visible{ transform: translateY(0); }
.mod-cookie h2{ font-size: 1.05rem; margin-bottom: .4rem; }
.mod-cookie p{ font-size: .87rem; margin-bottom: var(--space-sm); }
.mod-cookie-actions{ display: flex; flex-direction: column; gap: .6rem; }
.mod-cookie-btn{ width: 100%; padding: .7rem 1rem; border-radius: var(--radius-sm); font-weight: 600; font-size: .88rem; transition: all .3s ease; }
.mod-cookie-btn--accept{ background: var(--color-accent); color: var(--color-primary-dark); }
.mod-cookie-btn--accept:hover{ background: var(--color-accent-dark); }
.mod-cookie-btn--reject{ background: var(--color-bg-alt); color: var(--color-primary); }
.mod-cookie-btn--reject:hover{ background: var(--color-border); }
.mod-cookie-btn--customize{ background: transparent; color: var(--color-secondary); text-decoration: underline; padding: .3rem; }
.mod-cookie-customize{ max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.mod-cookie-customize.is-open{ max-height: 400px; margin-top: var(--space-sm); }
.mod-cookie-category{ display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-sm); padding: .6rem 0; border-top: 1px solid var(--color-border); }
.mod-cookie-category strong{ font-size: .88rem; display: block; }
.mod-cookie-category small{ display: block; margin-top: .2rem; }
.mod-cookie-category input[type="checkbox"]{ width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; }


.mod-thanks{ padding: var(--space-2xl) 0; text-align: center; }
.mod-thanks-icon{ font-size: 4.5rem; color: var(--color-accent-dark); margin-bottom: var(--space-md); }
.mod-thanks h1{ font-size: clamp(2rem, 1.6rem + 1.6vw, 3rem); margin-bottom: var(--space-sm); }
.mod-thanks p{ max-width: 52ch; margin: 0 auto var(--space-md); font-size: 1.05rem; }


@media (max-width: 1080px){
  .mod-hero-inner{ grid-template-columns: 1fr; }
  .mod-hero-visual{ min-height: 320px; }
  .mod-about-grid, .mod-about--reverse .mod-about-grid{ grid-template-columns: 1fr; }
  .mod-about-figure{ order: 0 !important; }
  .mod-steps-grid{ grid-template-columns: 1fr 1fr; }
  .mod-services-grid{ grid-template-columns: 1fr 1fr; }
  .mod-calculator-grid{ grid-template-columns: 1fr; }
  .mod-calculator-figure img{ height: 260px; }
  .mod-map-grid{ grid-template-columns: 1fr; }
  .mod-contact-grid{ grid-template-columns: 1fr; }
  .mod-footer-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px){
  :root{ --space-xl: 4.5rem; --space-2xl: 6rem; }
  .mod-nav-menu, .mod-nav-cta{ display: none; }
  .mod-nav-toggle{ display: flex; }
  .mod-hero-title{ font-size: clamp(2.2rem, 1.6rem + 4vw, 3rem); }
  .mod-steps-grid{ grid-template-columns: 1fr; }
  .mod-services-grid{ grid-template-columns: 1fr; }
  .mod-calculator-form{ grid-template-columns: 1fr; }
  .mod-form-row{ grid-template-columns: 1fr; }
  .mod-form-actions{ flex-direction: column; align-items: stretch; }
  .mod-footer-grid{ grid-template-columns: 1fr; }
  .mod-cta-inner{ flex-direction: column; align-items: flex-start; }
  .mod-cookie{ left: var(--space-2xs); bottom: var(--space-2xs); max-width: calc(100% - 1rem); }
}