
/* IDEOMORFO 2026 — overrides sobre Forty */
:root{--ideo-bg:#111214;--ideo-bg2:#181a1d;--ideo-paper:#f4f1eb;--ideo-text:#ffffff;--ideo-muted:#c9c9c5;--ideo-ink:#161719;--ideo-accent:#f15a3b;--ideo-line:rgba(255,255,255,.18)}
html{scroll-behavior:smooth}
body,input,select,textarea{font-family:"inter",Inter,Arial,sans-serif;letter-spacing:0;color:var(--ideo-text)}
h1,h2,h3,h4,h5,h6,.logo strong{font-family:"dunbar-tall","Arial Narrow",Arial,sans-serif;letter-spacing:.02em;text-transform:none}
body{background:var(--ideo-bg)}
#header{background:rgba(17,18,20,.96)}#header.alt{background:transparent}.logo{display:flex!important;gap:.65rem;align-items:baseline}.logo strong{font-size:1.2rem;letter-spacing:.08em}.logo span{font-size:.62rem;letter-spacing:.16em;opacity:.75}
#menu{background:#101113}#menu .button.primary,.button.primary,input[type=submit].primary{background:var(--ideo-accent)!important;color:#fff!important}.button.primary:hover{background:#ff6a48!important}
#banner.major{min-height:88vh;background-image:linear-gradient(90deg,rgba(12,13,15,.92),rgba(12,13,15,.44)),url('../../images/banner.jpg');background-size:cover;background-position:center}#banner.major:after{background:none}.ideomorfo-hero h1{font-size:clamp(4rem,9vw,8.5rem);line-height:.82;max-width:8ch}.ideomorfo-hero .content{align-items:flex-end}.ideomorfo-hero .content p{font-size:1.05rem;max-width:54rem}
.eyebrow,.kicker{font-size:.72rem!important;line-height:1.2!important;font-weight:700;letter-spacing:.17em!important;text-transform:uppercase;color:var(--ideo-accent);margin:0 0 1rem}.inner>h2,.inner header h2{line-height:1.02}.major> :first-child:after{background:var(--ideo-accent)}
#trust{background:var(--ideo-paper);color:var(--ideo-ink);text-align:center}#trust .inner{padding-top:4rem;padding-bottom:4rem}#trust h2{color:var(--ideo-ink);max-width:22ch;margin:0 auto;font-size:2.6rem}
.tiles article{min-height:32rem}.tiles article:before{background:rgba(10,11,12,.56)!important}.tiles article:hover:before{background:rgba(10,11,12,.32)!important}.tiles article header{width:78%}.tiles article h3{font-size:2.25rem}.tiles article p{font-size:.8rem;line-height:1.55;letter-spacing:.07em}.service-tiles article:nth-child(4n+1):before,.service-tiles article:nth-child(4n+2):before,.service-tiles article:nth-child(4n+3):before,.service-tiles article:nth-child(4n+4):before{background:rgba(10,11,12,.58)!important}
.value-section{background:var(--ideo-paper);color:var(--ideo-ink)}.value-section h2,.value-section h3{color:var(--ideo-ink)}.value-section>.inner{padding-top:6rem;padding-bottom:6rem}.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:6rem;align-items:center}.process-mini{display:grid;gap:.75rem}.process-mini span{border-top:1px solid rgba(20,20,20,.25);padding-top:.75rem;font-family:"dunbar-tall",Arial,sans-serif;font-size:1.65rem}.process-mini i{font-style:normal;color:var(--ideo-accent)}.text-link{font-weight:700;color:var(--ideo-accent)!important}
.spotlights>section{background:#17191c}.spotlights>section:nth-child(2n){background:#101113}.spotlights>section>.content>.inner{padding:5rem 5rem 4rem 5rem}.spotlights h2{font-size:3rem}.spotlights .image img{filter:saturate(.78) contrast(1.04)}
.products-section,.projects-preview,.audiences,.extras,.how,.faq,.applications,.brief-form{background:#101113}.products-section>.inner,.projects-preview>.inner,.audiences>.inner,.extras>.inner,.how>.inner,.faq>.inner,.applications>.inner,.brief-form>.inner{padding-top:6rem;padding-bottom:6rem}.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ideo-line);border:1px solid var(--ideo-line);margin-top:2rem}.product-grid a{background:#15171a;padding:2.25rem 1.5rem;text-align:center;text-decoration:none}.product-grid a:hover{background:var(--ideo-accent)}.product-grid span{font-family:"dunbar-tall",Arial,sans-serif;font-size:1.35rem}
.case-grid,.audience-grid,.cap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin:2.25rem 0}.case-grid article,.audience-grid article,.cap-grid article{border:1px solid var(--ideo-line);padding:2rem;background:#16181b}.case-tag{display:block;color:var(--ideo-accent);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1.2rem}.case-grid h3,.audience-grid h3,.cap-grid h3{font-size:1.6rem;margin-bottom:.6rem}.case-grid p,.audience-grid p,.cap-grid p{font-size:.92rem;color:#d7d7d2}.projects-preview{background:#1a1c1f}.audiences{background:var(--ideo-paper);color:var(--ideo-ink)}.audiences h2,.audiences h3{color:var(--ideo-ink)}.audiences .audience-grid article{background:transparent;border-color:rgba(15,15,15,.2)}.audiences .audience-grid p{color:#4c4c49}
.extras-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ideo-line);border:1px solid var(--ideo-line)}.extras-grid span{padding:1.5rem;background:#15171a}.note,.form-note{font-size:.82rem;color:#aaa}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}.steps article{border-top:1px solid var(--ideo-line);padding-top:1.5rem}.steps strong{color:var(--ideo-accent);font-size:.8rem}.steps h3{margin:.5rem 0}.steps p{font-size:.85rem;color:#c8c8c5}
.quote-guide{background:var(--ideo-accent);color:white}.quote-guide>.inner{padding-top:5rem;padding-bottom:5rem}.quote-guide .eyebrow{color:white;opacity:.8}.quote-guide h2{color:white}.quote-items{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;margin:2rem 0;background:rgba(255,255,255,.35)}.quote-items span{background:var(--ideo-accent);padding:1.25rem;font-weight:700}.quote-items b{display:block;font-size:.7rem;opacity:.7;margin-bottom:.4rem}
.faq details{border-top:1px solid var(--ideo-line);padding:1.25rem 0}.faq details:last-child{border-bottom:1px solid var(--ideo-line)}.faq summary{cursor:pointer;font-weight:700;font-size:1.05rem}.faq details p{max-width:58rem;color:#d1d1cc;margin:.9rem 0 0}
#banner.style2.service-hero,#banner.style2.quote-hero{min-height:62vh}.service-hero h1,.quote-hero h1{font-size:clamp(3.4rem,7vw,6.3rem);line-height:.9;max-width:14ch}.service-hero .content p,.quote-hero .content p{max-width:48rem}.applications{background:var(--ideo-paper);color:var(--ideo-ink)}.applications h2,.applications h3{color:var(--ideo-ink)}.applications .audience-grid article{background:transparent;border-color:rgba(15,15,15,.2)}.applications .audience-grid p{color:#4c4c49}.cap-grid{grid-template-columns:repeat(3,1fr)}
.compact-contact{background:#0b0c0e}.compact-contact>.inner>section:first-child{width:58%}.compact-contact>.inner>.split{width:42%}.compact-contact .button.primary{border-color:var(--ideo-accent)}
#footer{background:#08090a}.footer-brand strong{font-family:"dunbar-tall",Arial,sans-serif;font-size:1.5rem;letter-spacing:.08em}.footer-brand span{display:block;font-size:.65rem;letter-spacing:.16em;opacity:.7}.footer-brand p{margin:.4rem 0 1.5rem}.wa-float{position:fixed;z-index:10000;right:1.25rem;bottom:1.25rem;background:#25D366;color:#061b0e!important;border-radius:999px;padding:.85rem 1.15rem;font-weight:800;box-shadow:0 8px 30px rgba(0,0,0,.25);display:flex;gap:.55rem;align-items:center}.wa-float:hover{transform:translateY(-2px)}
.brief-form form{max-width:58rem}.brief-form input[type=file]{border:1px solid var(--ideo-line);padding:1rem;width:100%}
@media screen and (max-width:980px){.two-col{grid-template-columns:1fr;gap:3rem}.case-grid,.audience-grid{grid-template-columns:repeat(2,1fr)}.cap-grid{grid-template-columns:repeat(2,1fr)}.product-grid,.extras-grid{grid-template-columns:repeat(3,1fr)}.steps{grid-template-columns:repeat(2,1fr)}.quote-items{grid-template-columns:repeat(2,1fr)}}
@media screen and (max-width:736px){#header .logo span{display:none}.ideomorfo-hero h1{font-size:4.2rem}.tiles article{min-height:22rem}.tiles article header{width:88%}.product-grid,.extras-grid,.case-grid,.audience-grid,.cap-grid,.steps,.quote-items{grid-template-columns:1fr}.spotlights>section>.content>.inner{padding:3rem 2rem}.compact-contact>.inner>section:first-child,.compact-contact>.inner>.split{width:100%}.wa-float span:last-child{display:none}.wa-float{width:3.4rem;height:3.4rem;justify-content:center;padding:0}.service-hero h1,.quote-hero h1{font-size:3.7rem}}

/* ============================================================
   IDEOMORFO 2026 — V3 brand + responsive corrections
   Brand rule: cyan is accent only; large color fields use blue.
   ============================================================ */
:root {
  --ideo-accent: #48B5E8;
  --ideo-brand: #232F65;
}

/* Accent system */
a:hover,
.text-link,
.process-mini i,
.case-tag,
.steps strong,
.eyebrow,
.kicker {
  color: var(--ideo-accent);
}

#menu .button.primary,
.button.primary,
input[type="submit"].primary {
  background: var(--ideo-accent) !important;
  border-color: var(--ideo-accent) !important;
  color: #08121a !important;
}

#menu .button.primary:hover,
.button.primary:hover,
input[type="submit"].primary:hover {
  background: #6CC5EE !important;
  border-color: #6CC5EE !important;
  color: #08121a !important;
}

.major > :first-child:after {
  background: var(--ideo-accent);
}

.product-grid a:hover {
  background: var(--ideo-brand);
  color: #fff !important;
}

/* Any large branded field must use the primary blue, never cyan. */
.quote-guide {
  background: var(--ideo-brand);
  color: #fff;
}
.quote-guide .quote-items {
  background: rgba(255,255,255,.22);
}
.quote-guide .quote-items span {
  background: var(--ideo-brand);
}

/* Generic safety: prevent text/content from exceeding its column or viewport. */
*, *:before, *:after {
  min-width: 0;
}
img, video, iframe, svg {
  max-width: 100%;
}
p, li, h1, h2, h3, h4, h5, h6, a, span, summary {
  overflow-wrap: anywhere;
  word-break: normal;
}

/* Forty uses max-content on major headers. That causes long headings to
   overrun split layouts. Keep the underline behavior but make headers fluid. */
header.major {
  width: 100%;
  max-width: 100%;
}
header.major > :first-child {
  width: 100%;
  max-width: 100%;
}
header.major > :first-child:after {
  width: 100%;
  max-width: 100%;
}

/* Spotlight split sections: keep both text and image inside their columns. */
.spotlights > section,
.spotlights > section > .content,
.spotlights > section > .image,
.spotlights > section > .content > .inner {
  min-width: 0;
  max-width: 100%;
}
.spotlights > section > .content {
  overflow: hidden;
}
.spotlights > section > .content > .inner {
  width: 100%;
}
.spotlights h2 {
  font-size: clamp(2.25rem, 3.2vw, 3.5rem);
  line-height: 1.02;
  max-width: 100%;
}

/* Service and quotation heroes */
#banner .inner,
#banner .content,
.service-hero .inner,
.quote-hero .inner {
  min-width: 0;
  max-width: 100%;
}
.service-hero h1,
.quote-hero h1 {
  font-size: clamp(3rem, 6vw, 6rem);
  line-height: .94;
  max-width: min(14ch, 100%);
}
.service-hero .content p,
.quote-hero .content p,
.ideomorfo-hero .content p {
  max-width: min(54rem, 100%);
}

/* Actions/buttons must wrap instead of forcing horizontal overflow. */
ul.actions {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
}
ul.actions li {
  padding: 0;
  max-width: 100%;
}
.button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
  max-width: 100%;
  white-space: normal;
  height: auto;
  min-height: 3.5em;
  line-height: 1.35;
  padding-top: .9em;
  padding-bottom: .9em;
  text-align: center;
}

/* Grid cards should never create horizontal overflow. */
.product-grid,
.case-grid,
.audience-grid,
.cap-grid,
.extras-grid,
.steps,
.quote-items,
.two-col {
  max-width: 100%;
}

@media screen and (max-width: 980px) {
  .spotlights > section > .content {
    overflow: visible;
  }
  .spotlights h2 {
    font-size: clamp(2.25rem, 6vw, 3.25rem);
  }
  .service-hero h1,
  .quote-hero h1 {
    font-size: clamp(3rem, 8vw, 5rem);
  }
}

@media screen and (max-width: 736px) {
  html, body, #wrapper {
    max-width: 100%;
    overflow-x: hidden;
  }
  .ideomorfo-hero h1 {
    font-size: clamp(3.15rem, 14vw, 4.2rem);
    line-height: .88;
    max-width: 100%;
  }
  .service-hero h1,
  .quote-hero h1 {
    font-size: clamp(2.8rem, 13vw, 3.7rem);
    line-height: .94;
    max-width: 100%;
  }
  .spotlights > section > .content > .inner {
    padding-left: 0;
    padding-right: 0;
  }
  .spotlights h2 {
    font-size: clamp(2.15rem, 10vw, 3rem);
    line-height: 1.02;
  }
  .spotlights > section > .content p,
  .value-section p,
  .applications p,
  .faq p {
    max-width: 100%;
  }
  ul.actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }
  ul.actions li,
  ul.actions li .button,
  ul.actions li a.button {
    width: 100%;
    max-width: 100%;
  }
  .button.icon:before {
    margin-right: .65em;
  }
}

@media screen and (max-width: 480px) {
  .spotlights > section > .content {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .spotlights h2 {
    font-size: clamp(2rem, 10vw, 2.65rem);
  }
  .service-hero h1,
  .quote-hero h1 {
    font-size: clamp(2.6rem, 13vw, 3.25rem);
  }
}

/* ============================================================
   IDEOMORFO 2026 — V4 mobile headline fit corrections
   Prevent service titles from splitting inside words or clipping.
   ============================================================ */

/* Headings should wrap only between words. Body copy may still use
   emergency wrapping if an unusually long URL/string appears. */
h1, h2, h3, h4, h5, h6,
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

/* Service tiles on Home */
.service-tiles article,
.service-tiles article header,
.service-tiles article header.major,
.service-tiles article h3,
.service-tiles article h3 a,
.service-tiles article p {
  max-width: 100%;
  min-width: 0;
}

.service-tiles article h3 {
  font-size: clamp(1.9rem, 3.3vw, 2.65rem);
  line-height: .98;
  letter-spacing: 0;
  text-wrap: balance;
}

.service-tiles article h3 a {
  display: block;
  white-space: normal;
}

.service-tiles article p {
  overflow-wrap: normal;
  word-break: normal;
}

/* Generic large headings: fluid size and safe wrapping at every viewport. */
#main h1,
#main h2,
#main h3,
#banner h1,
.spotlights h2 {
  max-width: 100%;
}

@media screen and (max-width: 736px) {
  /* At phone/tablet widths, every service tile gets the full line so long
     category names have enough room and no word is orphaned. */
  .service-tiles article {
    width: 100% !important;
    height: auto;
    min-height: 21rem;
    padding: 3rem 1.5rem 2.25rem;
  }

  .service-tiles article header {
    width: 100%;
  }

  .service-tiles article h3 {
    font-size: clamp(1.85rem, 8.2vw, 2.5rem);
    line-height: 1;
    margin-bottom: 1rem;
  }

  .service-tiles article p:not(.eyebrow) {
    font-size: clamp(.76rem, 2.7vw, .88rem);
    line-height: 1.5;
    letter-spacing: .055em;
  }

  /* Service-page and spotlight headlines also scale continuously instead
     of using one fixed mobile size. */
  .service-hero h1,
  .quote-hero h1,
  .spotlights h2,
  .inner > header.major h2,
  .inner > h2 {
    font-size: clamp(2rem, 9.5vw, 3.25rem);
    line-height: 1;
    max-width: 100%;
    text-wrap: balance;
  }
}

@media screen and (max-width: 480px) {
  .service-tiles article {
    height: auto;
    min-height: 20rem;
  }

  .service-tiles article h3 {
    font-size: clamp(1.75rem, 8.7vw, 2.25rem);
  }
}

/* ============================================================
   IDEOMORFO 2026 — V5 content + header + CTA corrections
   ============================================================ */

/* Negative logo in header: no white badge, white wordmark on dark header. */
#header .logo,
#header .logo:hover,
#header .logo:active {
  text-decoration: none;
}
#header .logo strong,
#header.alt .logo strong,
#header .logo:hover strong,
#header .logo:active strong {
  background: transparent !important;
  color: #fff !important;
  padding: 0 !important;
  margin-right: 0 !important;
  line-height: inherit;
  box-shadow: none !important;
}
#header .logo span {
  color: #fff !important;
}
#header .logo:hover strong,
#header .logo:hover span {
  color: var(--ideo-accent) !important;
}

/* Proposal value is now a single content block after removing the process strip. */
.value-section .inner.value-single {
  display: block;
  width: 100%;
  max-width: 74rem;
}
.value-section .inner.value-single > div {
  max-width: 58rem;
}
.value-section .inner.value-single .text-link {
  display: inline-block;
  margin-top: .5rem;
}

/* Compact contact now contains only direct contact methods. */
.compact-contact > .inner > section:first-child {
  width: 62%;
}
.compact-contact > .inner > .split {
  width: 38%;
}
.compact-contact .split > section {
  width: 100%;
}

/* CTA hardening: text must remain inside the control at every viewport. */
a.button,
.button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  width: auto;
  min-width: 0;
  height: auto !important;
  min-height: 3.5em;
  padding: .9em 1.65em;
  line-height: 1.3 !important;
  white-space: normal !important;
  overflow: hidden;
  overflow-wrap: anywhere;
  word-break: normal;
  text-align: center;
}
a.button.icon:before,
.button.icon:before {
  flex: 0 0 auto;
}
ul.actions,
ul.actions li {
  min-width: 0;
  max-width: 100%;
}

@media screen and (max-width: 980px) {
  .compact-contact > .inner > section:first-child,
  .compact-contact > .inner > .split {
    width: 100%;
  }
}

@media screen and (max-width: 736px) {
  a.button,
  .button,
  input[type="submit"],
  input[type="reset"],
  input[type="button"] {
    width: 100%;
    font-size: clamp(.72rem, 3.3vw, .9rem);
    letter-spacing: clamp(.08em, .45vw, .18em);
    padding-left: 1rem;
    padding-right: 1rem;
  }
  #header .logo strong {
    font-size: clamp(1rem, 5vw, 1.2rem);
    letter-spacing: .07em;
  }
}


/* ============================================================
   IDEOMORFO 2026 — Privacy, cookie consent and functional form
   ============================================================ */
.hp-field {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.field-help,
.form-privacy-note,
.privacy-updated {
  font-size: .85em;
  opacity: .78;
}
.privacy-consent {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
}
.privacy-consent input[type="checkbox"] {
  flex: 0 0 auto;
  margin-top: .35rem;
}
.privacy-consent label {
  margin: 0;
  text-transform: none;
  letter-spacing: .02em;
  font-weight: 400;
  line-height: 1.55;
}
.form-status {
  display: none;
  margin: 0 0 1.5rem;
  padding: .9rem 1rem;
  border-left: 3px solid var(--ideo-accent);
  background: rgba(255,255,255,.05);
}
.form-status.is-pending,
.form-status.is-success,
.form-status.is-error { display: block; }
.form-status.is-success { border-left-color: #48B5E8; }
.form-status.is-error { border-left-color: #ff8b8b; }

.privacy-page .inner { max-width: 72rem; }
.privacy-page h2 { margin-top: 2.25rem; }
.privacy-page ul { max-width: 62rem; }
.privacy-legal-note {
  margin-top: 2.5rem;
  padding: 1rem 1.25rem;
  border-left: 3px solid var(--ideo-accent);
  background: rgba(255,255,255,.04);
}

.cookie-banner {
  position: fixed;
  z-index: 10020;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  display: none;
  max-width: 1180px;
  margin: 0 auto;
  padding: 1rem 1.15rem;
  background: #232F65;
  color: #fff;
  border: 1px solid rgba(255,255,255,.15);
  box-shadow: 0 18px 60px rgba(0,0,0,.34);
}
.cookie-banner.is-visible { display: block; }
.cookie-banner__content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
}
.cookie-banner strong { font-family: "dunbar-tall", "Arial Narrow", sans-serif; font-size: 1.2rem; }
.cookie-banner p { margin: .25rem 0 0; max-width: 720px; font-size: .88rem; line-height: 1.55; }
.cookie-banner__actions { display: flex; flex-wrap: wrap; gap: .55rem; justify-content: flex-end; min-width: min(100%, 360px); }
.cookie-banner .button { margin: 0; }

.cookie-modal {
  position: fixed;
  z-index: 10030;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(10,14,34,.78);
}
.cookie-modal.is-visible { display: flex; }
.cookie-modal__panel {
  position: relative;
  width: min(100%, 680px);
  max-height: min(90vh, 760px);
  overflow: auto;
  padding: 2rem;
  background: #232F65;
  color: #fff;
  box-shadow: 0 24px 80px rgba(0,0,0,.4);
}
.cookie-modal__close {
  position: absolute;
  top: .65rem;
  right: .85rem;
  width: 2.2rem;
  height: 2.2rem !important;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 1.8rem;
  cursor: pointer;
}
.cookie-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(255,255,255,.14);
}
.cookie-option p { margin: .25rem 0 0; font-size: .85rem; opacity: .82; }
.cookie-required { font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: #48B5E8; white-space: nowrap; }
.cookie-option--toggle { cursor: pointer; }
.cookie-option--toggle input { position: absolute; opacity: 0; pointer-events: none; }
.cookie-switch {
  position: relative;
  flex: 0 0 auto;
  width: 3.15rem;
  height: 1.7rem;
  border-radius: 2rem;
  background: rgba(255,255,255,.18);
  transition: .2s ease;
}
.cookie-switch:after {
  content: '';
  position: absolute;
  top: .2rem;
  left: .2rem;
  width: 1.3rem;
  height: 1.3rem;
  border-radius: 50%;
  background: #fff;
  transition: .2s ease;
}
.cookie-option--toggle input:checked + .cookie-switch { background: #48B5E8; }
.cookie-option--toggle input:checked + .cookie-switch:after { transform: translateX(1.45rem); }
.cookie-option--toggle input:focus-visible + .cookie-switch { outline: 2px solid #fff; outline-offset: 3px; }
.cookie-modal__actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.25rem; }
.cookie-privacy-link { font-size: .86rem; }
.cookie-modal-open { overflow: hidden; }

@media screen and (max-width: 736px) {
  .cookie-banner { left: .6rem; right: .6rem; bottom: .6rem; padding: 1rem; }
  .cookie-banner__content { display: block; }
  .cookie-banner__actions { margin-top: .9rem; min-width: 0; justify-content: stretch; }
  .cookie-banner__actions .button { width: 100%; }
  .cookie-modal__panel { padding: 1.5rem 1rem 1.2rem; }
  .cookie-option { align-items: flex-start; }
  .cookie-option--toggle .cookie-switch { margin-top: .1rem; }
  .cookie-modal__actions .button { width: 100%; }
  .privacy-consent { display: block; }
}


/* ============================================================
   IDEOMORFO V7.2 — clean URL / critical rendering hardening
   ============================================================ */
/* Critical content must never depend on the preload-removal JS. */
#banner > .inner { opacity: 1; filter: none; transform: none; }
#header.alt { opacity: 1; }

/* Home service tiles have an inline background fallback. If JS runs,
   Forty can still manage the same image normally. */
.service-tiles > article {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.service-tiles > article > .image { display: none; }
