/* ============================================
   CASAMO — Digital Brutalism Lite
   ============================================ */

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

:root{
  --color-bg: #f4f2ec;
  --color-bg-alt: #e6e2d8;
  --color-surface: #fbfaf6;
  --color-ink: #1e211c;
  --color-ink-soft: #565f56;
  --color-ink-faint: #8a9088;
  --color-accent: #3c6b5a;
  --color-accent-dark: #2b4d40;
  --color-accent-soft: #d7e6de;
  --color-yellow: #e3b23c;
  --color-yellow-soft: #f6e3b8;
  --color-line: #cac5b6;
  --color-line-strong: #a9a293;

  --font-head: 'Gabarito', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs: 0.75rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2.5rem;
  --space-xl: 4rem;
  --space-2xl: 6rem;
  --space-3xl: 9rem;

  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 28px;
  --radius-full: 999px;

  --shadow-sm: 0 1px 2px rgba(30,33,28,0.06), 0 1px 1px rgba(30,33,28,0.04);
  --shadow-md: 0 6px 16px rgba(30,33,28,0.08), 0 2px 6px rgba(30,33,28,0.05);
  --shadow-lg: 0 24px 48px rgba(30,33,28,0.14), 0 8px 20px rgba(30,33,28,0.08);

  --container: 1240px;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  background: var(--color-bg);
  color: var(--color-ink);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; height:auto; }
a{ color: inherit; text-decoration: none; }
ul, ol{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; cursor:pointer; }
input, select, textarea{ font-family: inherit; font-size: 1rem; }

h1,h2,h3,h4{ font-family: var(--font-head); font-weight:700; line-height:1.12; margin: 0 0 var(--space-sm); color: var(--color-ink); }
h1{ font-size: clamp(2.4rem, 5vw + 1rem, 4.6rem); font-weight:800; letter-spacing:-0.02em; }
h2{ font-size: clamp(1.8rem, 2.6vw + 1rem, 2.8rem); letter-spacing:-0.01em; }
h3{ font-size: clamp(1.15rem, 1vw + 1rem, 1.4rem); }
p{ margin: 0 0 var(--space-sm); color: var(--color-ink-soft); }

.tagLabel{
  display:inline-flex; align-items:center; gap:.4rem;
  font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--color-accent-dark);
  background: var(--color-accent-soft); padding: .35rem .8rem;
  border-radius: var(--radius-full); margin-bottom: var(--space-sm);
}
.tagLabel-light{ background: rgba(255,255,255,0.14); color: var(--color-yellow-soft); }


.siteWrapper{
  position: relative;
  background: var(--color-bg);
  transition: transform 0.45s cubic-bezier(.2,.8,.2,1);
  min-height: 100vh;
  display:flex; flex-direction:column;
}
body.navOpen .siteWrapper{
  transform: translateX(-280px) scale(0.95);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}
body.navOpen{ overflow:hidden; }


.siteHeader{
  position: sticky; top:0; z-index: 60;
  background: rgba(244,242,236,0.9);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--color-line);
  transition: transform 0.4s ease;
}
.siteHeader.navHidden{ transform: translateY(-100%); }
.siteHeader_inner{
  max-width: var(--container); margin: 0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding: 0.9rem 1.5rem;
}
.siteHeader_logo{
  display:flex; align-items:center; gap:.6rem;
  font-family: var(--font-head); font-weight:800; font-size:1.2rem;
}
.siteHeader_nav{ display:flex; gap: 2rem; }
.siteHeader_nav a{
  font-size: 0.95rem; font-weight:500; color: var(--color-ink-soft);
  position:relative; padding: .3rem 0; transition: color .3s ease;
}
.siteHeader_nav a::after{
  content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px;
  background: var(--color-accent); transition: width .3s ease;
}
.siteHeader_nav a:hover, .siteHeader_nav a.isActive{ color: var(--color-ink); }
.siteHeader_nav a:hover::after, .siteHeader_nav a.isActive::after{ width:100%; }

.siteHeader_burger{
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; width:44px; height:44px;
  align-items:center; justify-content:center;
}
.siteHeader_burger span{
  width: 22px; height:2px; background: var(--color-ink); border-radius:2px;
  transition: all .3s ease;
}


.mobileDrawer{
  position: fixed; top:0; right:0; height:100vh; width: 280px;
  background: var(--color-accent-dark); color: #fff;
  transform: translateX(100%);
  transition: transform 0.45s cubic-bezier(.2,.8,.2,1);
  z-index: 100; display:flex; flex-direction:column;
  padding: 1.6rem;
}
.mobileDrawer.isOpen{ transform: translateX(0); }
.mobileDrawer_close{
  align-self:flex-end; background:none; border:none; color:#fff;
  font-size:1.3rem; width:44px; height:44px;
}
.mobileDrawer_links{ display:flex; flex-direction:column; gap:1.2rem; margin-top: 2rem; }
.mobileDrawer_links a{ font-family: var(--font-head); font-size:1.3rem; font-weight:600; color:#fff; }
.mobileDrawer_contact{ margin-top:auto; display:flex; flex-direction:column; gap:.8rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,0.2); }
.mobileDrawer_contact a{ font-size:.9rem; color: var(--color-yellow-soft); display:flex; gap:.5rem; align-items:center; }


.section_frame{
  max-width: var(--container); margin: 0 auto;
  padding: var(--space-2xl) var(--space-md);
  border-left: 1px solid var(--color-line);
  border-right: 1px solid var(--color-line);
}


.mainHero{
  position: relative; overflow:hidden;
  padding: var(--space-2xl) var(--space-md) var(--space-xl);
  border-bottom: 1px solid var(--color-line);
}
.mainHero_grid{
  position:absolute; inset:0; pointer-events:none; opacity:0.5;
  background-image:
    linear-gradient(to right, var(--color-line) 1px, transparent 1px);
  background-size: 25% 100%;
}
.mainHero_inner{
  position:relative; max-width: var(--container); margin:0 auto;
  display:grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--space-2xl);
  align-items:center;
}
.mainHero_greeting{
  font-family: var(--font-mono); font-size: 0.85rem; letter-spacing:0.1em;
  text-transform: uppercase; color: var(--color-accent-dark); margin-bottom: .6rem;
}
.mainHero_title{ margin-bottom: var(--space-md); animation: heroFadeUp .8s ease both; }
@keyframes heroFadeUp{ from{ opacity:0; transform: translateY(24px);} to{ opacity:1; transform:none; } }
.mainHero_rotateWrap{ display:inline-block; overflow:hidden; vertical-align: bottom; }
.mainHero_rotate{
  display:inline-block; color: var(--color-accent);
  background: linear-gradient(135deg, var(--color-accent), var(--color-yellow));
  -webkit-background-clip: text; background-clip:text; -webkit-text-fill-color: transparent;
  animation: rotateFade 0.5s ease;
}
@keyframes rotateFade{ from{ opacity:0; transform: translateY(10px);} to{ opacity:1; transform:none; } }
.mainHero_lead{ font-size: 1.08rem; max-width: 46ch; }
.mainHero_cta{ display:flex; gap: 1rem; flex-wrap:wrap; margin-top: var(--space-md); }
.mainHero_media{ position:relative; }
.mainHero_media img{ border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.mainHero_mediaTag{
  position:absolute; bottom: -14px; left: 20px;
  background: var(--color-ink); color: var(--color-bg);
  font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: .06em;
  padding: .5rem 1rem; border-radius: var(--radius-sm); box-shadow: var(--shadow-md);
}


.btn{
  display:inline-flex; align-items:center; gap:.5rem; justify-content:center;
  padding: .85rem 1.6rem; border-radius: var(--radius-full);
  font-weight:600; font-size: 0.95rem; border: 2px solid transparent;
  transition: all .3s ease; min-height:44px;
}
.btn-primary{ background: var(--color-accent); color:#fff; box-shadow: var(--shadow-sm); }
.btn-primary:hover{ background: var(--color-accent-dark); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.btn-ghost{ background: transparent; border-color: var(--color-ink); color: var(--color-ink); }
.btn-ghost:hover{ background: var(--color-ink); color: var(--color-bg); }
.btn-lg{ padding: 1rem 2rem; font-size: 1.02rem; }
.btn-sm{ padding: .55rem 1.1rem; font-size: .85rem; min-height:36px; }


.introEditorial{
  display:grid; grid-template-columns: 1.2fr 0.8fr; gap: var(--space-2xl); align-items:start;
}
.introEditorial_dropcap::first-letter{
  font-family: var(--font-head); font-size: 3.6rem; font-weight:800; float:left;
  line-height:0.8; margin-right:.5rem; margin-top:.4rem; color: var(--color-accent);
}
.introEditorial_media img{ border-radius: var(--radius-md); box-shadow: var(--shadow-md); }


.benefitsSection{ padding: var(--space-xl) var(--space-md); background: var(--color-bg-alt); }
.benefitsSection_head{ max-width: var(--container); margin: 0 auto var(--space-lg); text-align:left; }
.benefitsSection_head p{ max-width:60ch; }
.benefitsSection_grid{
  max-width: var(--container); margin:0 auto;
  display:grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-md);
}
.serviceCard{
  background: var(--color-surface); padding: var(--space-lg) var(--space-md);
  border-radius: var(--radius-md); border: 1px solid var(--color-line);
  box-shadow: var(--shadow-sm); transition: transform .35s ease, box-shadow .35s ease;
}
.serviceCard:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); }
.serviceCard-featured{ grid-column: span 2; background: linear-gradient(135deg, var(--color-accent-soft), var(--color-surface)); }
.serviceCard_icon{
  width:52px; height:52px; border-radius: var(--radius-sm); background: var(--color-accent);
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.3rem;
  margin-bottom: var(--space-sm);
}
.serviceCard-featured .serviceCard_icon{ background: var(--color-ink); }


.processTimeline_head{ text-align:left; max-width: 60ch; margin-bottom: var(--space-lg); }
.processTimeline_list{ display:flex; flex-direction:column; gap: 0; border-top: 1px solid var(--color-line); }
.processTimeline_item{
  display:flex; gap: var(--space-lg); padding: var(--space-md) 0;
  border-bottom: 1px solid var(--color-line); align-items:flex-start;
}
.processTimeline_num{
  font-family: var(--font-mono); font-size: 1.6rem; color: var(--color-ink-faint);
  min-width: 70px; font-weight:600;
}
.processTimeline_item:hover .processTimeline_num{ color: var(--color-accent); }


.imageBreak{ position: relative; }
.imageBreak img{ width:100%; height: 60vh; min-height:320px; object-fit:cover; }
.imageBreak_overlay{
  position:absolute; inset:0; display:flex; align-items:flex-end;
  background: linear-gradient(to top, rgba(20,24,20,0.75), rgba(20,24,20,0.05) 60%);
  padding: var(--space-xl) var(--space-md);
}
.imageBreak_overlay p{
  color: #fff; font-family: var(--font-head); font-size: clamp(1.4rem, 2.4vw, 2.2rem);
  font-weight:600; max-width: 720px; margin:0;
}


.editorialBlock{
  display:grid; grid-template-columns: 0.9fr 1.1fr; gap: var(--space-2xl); align-items:center;
}
.editorialBlock-reverse{ direction: rtl; }
.editorialBlock-reverse > *{ direction: ltr; }
.editorialBlock_media img{ border-radius: var(--radius-md); box-shadow: var(--shadow-md); }


.calloutSection{
  background: var(--color-accent-dark); color:#fff;
  padding: var(--space-2xl) var(--space-md);
  background-image: linear-gradient(135deg, var(--color-accent-dark), #223d33);
}
.calloutSection_inner{ max-width: 800px; margin:0 auto; text-align:center; }
.calloutSection_quote{
  font-family: var(--font-head); font-size: clamp(1.3rem, 2.4vw, 2rem);
  font-weight:600; color: #fff; line-height:1.4;
}


.faqSection_head{ max-width: 60ch; margin-bottom: var(--space-lg); }
.faqSection_list{ display:flex; flex-direction:column; gap: .8rem; }
.faqItem{
  background: var(--color-surface); border: 1px solid var(--color-line);
  border-radius: var(--radius-md); padding: 1.1rem 1.4rem;
}
.faqItem summary{
  cursor:pointer; font-family: var(--font-head); font-weight:600; font-size:1.05rem;
  list-style:none; display:flex; align-items:center; justify-content:space-between;
}
.faqItem summary::-webkit-details-marker{ display:none; }
.faqItem summary::after{
  content:'+'; font-size:1.4rem; color: var(--color-accent); transition: transform .3s ease;
}
.faqItem[open] summary::after{ transform: rotate(45deg); }
.faqItem p{ margin-top: .8rem; }


.ctaBand{ padding: var(--space-xl) var(--space-md); background: var(--color-yellow-soft); }
.ctaBand_inner{
  max-width: var(--container); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap: var(--space-lg);
  flex-wrap:wrap;
}
.ctaBand_inner h2{ margin-bottom:.3rem; }
.ctaBand_inner p{ margin:0; max-width: 46ch; }


.pageHeader{
  max-width: var(--container); margin: 0 auto; padding: var(--space-2xl) var(--space-md) var(--space-xl);
  display:grid; grid-template-columns: 1fr; gap: var(--space-lg);
}
.pageHeader-yellow{ background: linear-gradient(180deg, var(--color-yellow-soft), transparent); }
.pageHeader_inner{ max-width: 70ch; }
.pageHeader:has(.pageHeader_media){ grid-template-columns: 1.2fr 0.8fr; align-items:center; }
.pageHeader_media img{ border-radius: var(--radius-md); box-shadow: var(--shadow-md); }


.valuesGrid_list{ display:grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-md); margin-top: var(--space-lg); }
.valuesGrid_item{
  padding: var(--space-md); border: 1px solid var(--color-line); border-radius: var(--radius-md);
  background: var(--color-surface); transition: transform .3s ease, box-shadow .3s ease;
}
.valuesGrid_item:hover{ transform: translateY(-4px); box-shadow: var(--shadow-md); }
.valuesGrid_num{
  font-family: var(--font-mono); font-size: 2rem; font-weight:700; color: var(--color-accent-soft);
  -webkit-text-stroke: 1px var(--color-accent); display:block; margin-bottom:.5rem;
}


.checklistSection_grid{ display:grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-md); margin-top: var(--space-lg); }
.checklistSection_item{
  display:flex; gap: var(--space-sm); padding: var(--space-md);
  background: var(--color-surface); border-radius: var(--radius-md); border:1px solid var(--color-line);
}
.checklistSection_mark{
  width:34px; height:34px; min-width:34px; border-radius:50%; background: var(--color-accent-soft);
  color: var(--color-accent-dark); display:flex; align-items:center; justify-content:center;
}


.stagesSection{ display:flex; flex-direction:column; gap: var(--space-xl); }
.stagesSection_item{ display:grid; grid-template-columns: 120px 1fr; gap: var(--space-lg); }
.stagesSection_item-alt{ background: var(--color-bg-alt); margin: 0 calc(var(--space-md) * -1); padding: var(--space-lg) var(--space-md); border-radius: var(--radius-lg); }
.stagesSection_num{ font-family: var(--font-mono); font-size: 2.6rem; font-weight:700; color: var(--color-accent); }
.stagesSection_img{ margin-top: var(--space-md); border-radius: var(--radius-md); box-shadow: var(--shadow-md); max-width: 420px; }


.contactSection{ display:grid; grid-template-columns: 1.3fr 0.9fr; gap: var(--space-2xl); align-items:start; }
.contactSection_info{ display:flex; flex-direction:column; gap: var(--space-md); }
.contactSection_info img{ border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.contactSection_details{ background: var(--color-accent-soft); border-radius: var(--radius-md); padding: var(--space-md); }
.contactSection_details p{ display:flex; gap:.6rem; align-items:center; color: var(--color-ink); }
.contactSection_details i{ color: var(--color-accent-dark); }

.urgentSection{ padding-top:0; }
.urgentSection_inner{
  display:flex; gap: var(--space-md); align-items:flex-start;
  background: var(--color-yellow-soft); border: 1px solid var(--color-yellow);
  border-radius: var(--radius-md); padding: var(--space-md);
}
.urgentSection_icon{ font-size: 1.6rem; color: #a9740f; }

.mapSection iframe{ display:block; filter: grayscale(15%); }


.wizardForm_dots{ display:flex; gap:.8rem; margin-bottom: var(--space-lg); }
.wizardForm_dot{
  width: 36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border: 2px solid var(--color-line); font-family: var(--font-mono); font-weight:600; color: var(--color-ink-faint);
  transition: all .3s ease;
}
.wizardForm_dot.isActive{ border-color: var(--color-accent); color: var(--color-accent); background: var(--color-accent-soft); }
.wizardForm{ background: var(--color-surface); border:1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-lg); overflow:hidden; }
.wizardForm_panel{ display:none; flex-direction:column; gap: var(--space-md); animation: panelSlide .4s ease; }
.wizardForm_panel.isActive{ display:flex; }
@keyframes panelSlide{ from{ opacity:0; transform: translateX(24px);} to{ opacity:1; transform:none; } }
.wizardForm_panel label{ display:flex; flex-direction:column; gap:.4rem; font-weight:600; font-size:.92rem; color: var(--color-ink); }
.wizardForm_panel input, .wizardForm_panel select, .wizardForm_panel textarea{
  padding: .8rem 1rem; border-radius: var(--radius-sm); border: 1px solid var(--color-line);
  background: var(--color-bg); transition: border-color .3s ease, box-shadow .3s ease;
}
.wizardForm_panel input:focus, .wizardForm_panel select:focus, .wizardForm_panel textarea:focus{
  outline:none; border-color: var(--color-accent); box-shadow: 0 0 0 3px var(--color-accent-soft);
}
.wizardForm_checkbox{ flex-direction:row !important; align-items:flex-start; gap:.6rem !important; font-weight:400 !important; }
.wizardForm_checkbox input{ width:20px; height:20px; margin-top:.15rem; }
.wizardForm_nav{ display:flex; justify-content:space-between; margin-top: .5rem; }


.legalSection_head{ margin-bottom: var(--space-lg); max-width: 70ch; }
.legalSection_updated{ font-family: var(--font-mono); font-size:.85rem; color: var(--color-ink-faint); }
.legalSection_body h2{ margin-top: var(--space-lg); font-size: 1.4rem; }
.legalSection_body p{ max-width: 78ch; }
.legalTable{ width:100%; border-collapse: collapse; margin: var(--space-md) 0 var(--space-lg); font-size: .92rem; }
.legalTable th, .legalTable td{ border: 1px solid var(--color-line); padding: .7rem .9rem; text-align:left; }
.legalTable th{ background: var(--color-bg-alt); font-family: var(--font-head); }
.legalDefinitionList{ margin: var(--space-md) 0; }
.legalDefinitionList dt{ font-weight:700; font-family: var(--font-head); margin-top: var(--space-sm); }
.legalDefinitionList dd{ margin: .3rem 0 0; color: var(--color-ink-soft); }


.thanksSection{
  max-width: 640px; margin: 0 auto; padding: var(--space-3xl) var(--space-md) var(--space-2xl);
  text-align:center; display:flex; flex-direction:column; align-items:center;
}
.envelope{ position:relative; width:160px; height:110px; margin-bottom: var(--space-xl); }
.envelope_body{
  position:absolute; inset:0; background: var(--color-accent); border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md); z-index:1;
}
.envelope_flap{
  position:absolute; top:0; left:0; width:0; height:0;
  border-left: 80px solid transparent; border-right: 80px solid transparent;
  border-top: 55px solid var(--color-accent-dark);
  transform-origin: top; z-index:3;
  animation: flapOpen 1.4s ease forwards; animation-delay: .3s;
}
@keyframes flapOpen{ 0%{ transform: rotateX(0deg);} 100%{ transform: rotateX(180deg);} }
.envelope_letter{
  position:absolute; left:20px; bottom:8px; width:120px; height:80px;
  background: var(--color-surface); border-radius: 4px; box-shadow: var(--shadow-sm);
  z-index:2; transform: translateY(0); animation: letterUp 1.4s ease forwards; animation-delay: 1s;
}
@keyframes letterUp{ 0%{ transform: translateY(10px);} 100%{ transform: translateY(-70px);} }
.thanksSection_title{ animation: heroFadeUp .7s ease both; animation-delay: 1.6s; opacity:0; }
.thanksSection_text{ animation: heroFadeUp .7s ease both; animation-delay: 1.8s; opacity:0; max-width: 52ch; }
.thanksSection .btn{ animation: heroFadeUp .7s ease both; animation-delay: 2s; opacity:0; margin-top: var(--space-sm); }


.pageFooter{ margin-top: auto; background: var(--color-ink); color: var(--color-bg); }
.pageFooter_top{
  max-width: var(--container); margin: 0 auto;
  padding: var(--space-2xl) var(--space-md) var(--space-lg);
  display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: var(--space-lg);
}
.pageFooter_brand{ display:flex; flex-direction:column; gap:.4rem; }
.pageFooter_brand p{ font-family: var(--font-head); font-weight:700; font-size:1.2rem; color:#fff; margin:0; }
.pageFooter_tag{ color: #a9b0a5; font-size:.9rem; max-width: 32ch; }
.pageFooter_col h3{ color:#fff; font-size:1rem; margin-bottom: .8rem; }
.pageFooter_links{ display:flex; flex-direction:column; gap:.5rem; }
.pageFooter_links a, .pageFooter address a{ color:#c7ccc4; font-size:.9rem; transition: color .3s ease; }
.pageFooter_links a:hover, .pageFooter address a:hover{ color: var(--color-yellow-soft); }
.pageFooter address{ font-style:normal; color:#c7ccc4; font-size:.9rem; line-height:1.8; }
.pageFooter_bottom{
  border-top: 1px solid rgba(255,255,255,0.12); padding: var(--space-md);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap: .5rem;
  max-width: var(--container); margin: 0 auto; font-size:.82rem; color:#8b9187;
}


.cookieBanner{
  position: fixed; left:0; right:0; bottom:0; z-index: 200;
  background: var(--color-surface); border-top: 2px solid var(--color-ink);
  box-shadow: 0 -12px 32px rgba(0,0,0,0.16);
}
.cookieBanner_inner{
  max-width: var(--container); margin:0 auto; padding: var(--space-md);
  display:grid; grid-template-columns: 1fr 1fr; gap: var(--space-lg); align-items:center;
}
.cookieBanner_info h3{ margin-bottom:.4rem; font-size: 1.1rem; }
.cookieBanner_info p{ font-size:.88rem; margin:0; }
.cookieBanner_info a{ color: var(--color-accent-dark); font-weight:600; }
.cookieBanner_actions{ display:flex; flex-direction:column; gap: .8rem; }
.cookieBanner_toggles{ display:flex; flex-wrap:wrap; gap: 1rem; font-size:.82rem; }
.cookieBanner_toggles label{ display:flex; align-items:center; gap:.4rem; }
.cookieBanner_buttons{ display:flex; gap:.6rem; flex-wrap:wrap; }


.revealOnScroll{ opacity:0; transform: translateY(28px); transition: opacity .6s ease, transform .6s ease; }
.revealOnScroll.isVisible{ opacity:1; transform:none; }


@media (max-width: 960px){
  .mainHero_inner{ grid-template-columns: 1fr; }
  .mainHero_media{ order:-1; }
  .introEditorial{ grid-template-columns: 1fr; }
  .introEditorial_media{ order:-1; }
  .benefitsSection_grid{ grid-template-columns: repeat(2,1fr); }
  .serviceCard-featured{ grid-column: span 2; }
  .editorialBlock{ grid-template-columns: 1fr; }
  .editorialBlock-reverse{ direction: ltr; }
  .valuesGrid_list{ grid-template-columns: repeat(2,1fr); }
  .checklistSection_grid{ grid-template-columns: 1fr; }
  .contactSection{ grid-template-columns: 1fr; }
  .pageFooter_top{ grid-template-columns: 1fr 1fr; }
  .stagesSection_item{ grid-template-columns: 70px 1fr; }
  .pageHeader:has(.pageHeader_media){ grid-template-columns: 1fr; }
  .cookieBanner_inner{ grid-template-columns: 1fr; }
}

@media (max-width: 640px){
  .siteHeader_nav{ display:none; }
  .siteHeader_burger{ display:flex; }
  .benefitsSection_grid{ grid-template-columns: 1fr; }
  .serviceCard-featured{ grid-column: span 1; }
  .valuesGrid_list{ grid-template-columns: 1fr; }
  .pageFooter_top{ grid-template-columns: 1fr; }
  .pageFooter_bottom{ flex-direction:column; text-align:center; }
  .ctaBand_inner{ flex-direction:column; align-items:flex-start; }
  .section_frame{ padding: var(--space-xl) var(--space-sm); }
  .stagesSection_item{ grid-template-columns: 1fr; }
  .stagesSection_num{ font-size:1.8rem; }
  .cookieBanner_buttons{ flex-direction:column; }
  .cookieBanner_buttons .btn{ width:100%; }
}