/* Shared responsive layout, including long translated headings. */
.foam-content { margin-top: 48px; }
.foam-section { margin: 0 0 44px; }
.foam-section > p { max-width: 1000px; color: var(--muted); }
.foam-section h2 { margin-bottom: 22px; }
.foam-methods, .foam-problems { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.foam-methods article { padding: 26px; background: #fff; border: 1px solid var(--line); border-top: 2px solid var(--brand); }
.foam-content h3 { font-size: 22px; line-height: 1.4; margin-bottom: 14px; color: var(--ink); }
.foam-content p, .foam-content li { font-size: 17px; line-height: 1.8; }
.foam-methods p, .foam-problems p { color: var(--muted); margin-bottom: 0; }
.foam-formulation { border-left: 2px solid var(--brand); padding-left: 26px; }
.foam-problems article { padding: 22px 0; border-top: 1px solid var(--line); }
.foam-section li { margin-bottom: 10px; padding-left: 4px; }
.foam-section li::marker { color: var(--brand); }
.foam-note { margin-top: 24px; border-left: 2px solid var(--brand); padding-left: 22px; }
.foam-sources { margin-bottom: 30px; font-size: 14px; color: var(--muted); }
.foam-sources summary { cursor: pointer; padding: 12px 0; }
.foam-sources a { text-decoration: underline; text-underline-offset: 3px; }
@media(max-width:760px) { .foam-content { margin-top: 36px; } .foam-methods,.foam-problems { grid-template-columns: minmax(0,1fr); gap: 18px; } .foam-methods article { padding: 22px; } .foam-formulation { padding-left: 18px; } .foam-content h3 { font-size: 21px; } .foam-section { margin-bottom: 32px; } }
.cards.solution-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.solution-summary .card { display: flex; flex-direction: column; }
.solution-summary .card-art { position: relative; height: auto; min-height: 0; aspect-ratio: 16 / 9; flex: none; }
.solution-summary .card-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.solution-summary .card-content { padding: 24px; min-width: 0; display: flex; flex-direction: column; flex: 1; }
.solution-summary .card h3 { min-height: 0; margin-bottom: 16px; }
.solution-summary .card p { min-height: 0; margin-bottom: 24px; }
.solution-summary .card p strong { font-weight: 600; color: var(--ink); }
.solution-summary .more { margin-top: auto; }
@media(max-width:760px) {
  .cards.solution-summary { grid-template-columns: minmax(0,1fr); }
  .solution-summary .card-content { padding: 22px; }
}
.contact-grid { align-items: start; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 60px); }
.contact-form-inline { margin-top: 30px; }
.contact-form-inline .enquiry-form { max-width: none; }
.contact-form-inline .form-grid { gap: 18px; }
.contact-form-inline textarea { min-height: 150px; }
@media(max-width:1100px) { .contact-form-inline .form-grid { grid-template-columns: minmax(0,1fr); } }
@media(max-width:900px) { .contact-grid { grid-template-columns: minmax(0,1fr); } }
.contact-info-card { padding: 30px; background: var(--paper); border: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.contact-info-card h3 { color: var(--ink); font-size: 26px; font-weight: 500; letter-spacing: -.5px; line-height: 1.3; margin-bottom: 22px; }
.contact-info-row { display: flex; gap: 12px; align-items: center; padding: 14px 0; min-height: 44px; overflow-wrap: anywhere; border-bottom: 1px solid var(--line); }
.contact-info-row > span:last-child { min-width: 0; }
.contact-info-row:hover, .contact-info-phone a:hover { color: var(--brand); }
.contact-info-icon { width: 30px; height: 30px; flex: 0 0 30px; display: grid; place-items: center; border-radius: 50%; }
.contact-info-icon svg { width: 18px; height: 18px; }
.whatsapp-icon { background: #e4f6e9; color: #16863e; }
.email-icon { background: #fce9e5; color: var(--brand); }
.contact-info-phone { margin: 14px 0; }
.contact-address { margin: 18px 0; line-height: 1.8; }
.contact-map { height: 280px; overflow: hidden; border: 1px solid var(--line); border-radius: 0; background: var(--paper); }
.contact-map iframe { display: block; width: 100%; height: 100%; border: 0; }
.map-link { display: inline-block; padding: 12px 0 0; min-height: 44px; color: var(--brand); text-decoration: underline; text-underline-offset: 4px; }
.company-copy .contact-story-highlight { margin: 28px 0 0; padding: 20px 24px; border-left: 3px solid var(--brand); background: transparent; color: var(--ink); }
@media(max-width:760px) { .company-copy .contact-story-highlight { padding: 16px 18px; } }
.contact .contact-base { margin: 24px 0 8px; color: var(--ink); font-size: 18px; font-weight: 600; }
.contact .contact-address { margin-top: 0; }
.contact .contact-coverage { border-left: 2px solid var(--brand); padding-left: 14px; margin: 20px 0; color: var(--ink); }
@media(max-width:760px) { .contact-info-card { padding: 22px 18px; } .contact-info-row { font-size: 14px; gap: 9px; } .contact-map { height: 250px; } }
.sector-section { padding-bottom: 80px; }
.sector-heading { margin-bottom: 28px; }
.sector-heading h2 { margin-bottom: 12px; }
.sector-heading p { color: var(--muted); margin-bottom: 0; }
.sector-tiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.sector-tile { min-width: 0; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; transition: box-shadow .2s, border-color .2s; }
.sector-tile:hover { border-color: var(--brand); box-shadow: 0 8px 24px #252a2912; }
.sector-tile:focus-visible { outline-offset: 4px; }
.sector-image { position: relative; width: 100%; aspect-ratio: 3 / 2; flex: none; min-height: 0; overflow: hidden; background: #e7e9e0; display: grid; place-items: center; border-bottom: 1px solid var(--line); }
.sector-image span { font-size: 12px; color: var(--muted); padding: 12px; text-align: center; }
.sector-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.sector-tile-copy { padding: 16px; display: flex; flex-direction: column; flex: 1; }
.sector-tile h3 { font-size: 18px; line-height: 1.35; font-weight: 600; margin-bottom: 16px; }
.sector-action { margin-top: auto; padding-top: 10px; border-top: 1px solid var(--line); color: var(--brand); font-size: 12px; }
@media(max-width:1100px) { .sector-tiles { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media(max-width:760px) { .sector-section { padding-bottom: 44px; } .sector-tiles { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; } }
@media(max-width:480px) { .sector-tiles { grid-template-columns: minmax(0,1fr); } .sector-image { aspect-ratio: 16 / 9; } }
@media(prefers-reduced-motion:reduce) { .sector-tile { transition: none; } }
.header > *, .hero > *, .cards > *, .contact-grid > *, .form-grid > *,
.steps > *, .detail-body > *, .solutions-intro > *, .application-grid > * {
  min-width: 0;
}
h1, h2, h3, .breadcrumbs, .button, .company-copy, .form-privacy {
  overflow-wrap: anywhere;
}
img { max-width: 100%; }
.button { max-width: 100%; text-align: center; justify-content: center; }

@media (max-width: 1100px) {
  .header {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 16px;
    padding: 16px 0;
    min-height: 88px;
  }
  .logo { justify-self: start; }
  .menu {
    display: block;
    grid-column: 3;
    grid-row: 1;
    margin: 0;
    width: 44px;
    height: 44px;
    border: 1px solid var(--line);
    background: transparent;
    font-size: 20px;
  }
  .languages { grid-column: 2; grid-row: 1; }
  .header #navigation {
    display: none;
    grid-column: 1 / -1;
    width: 100%;
    padding: 8px 0 0;
    flex-direction: column;
    gap: 0;
    border-top: 1px solid var(--line);
  }
  .header #navigation.open { display: flex; }
  #navigation a { padding: 12px 0; min-height: 44px; }
}

@media (max-width: 900px) {
  .hero { grid-template-columns: minmax(0, 1fr); gap: 24px; min-height: 0; }
  .hero .lead { max-width: 650px; }
  .building {
    width: 100%;
    max-width: 520px;
    height: auto;
    aspect-ratio: 520 / 470;
    margin: 0 auto;
    transform: none;
    container-type: inline-size;
  }
  /* Scale the drawing itself with its container, without negative margins. */
  .building .sun { width: 44.23cqw; height: 44.23cqw; top: 6.73cqw; right: 2.88cqw; }
  .building .ground { width: 73.08cqw; height: 38.46cqw; left: 7.69cqw; bottom: 3.85cqw; }
  .building .wall { height: 23.65cqw; border-bottom-width: 1.92cqw; }
  .building .front { left: 17.5cqw; width: 43.08cqw; top: 46.54cqw; }
  .building .side { left: 60.58cqw; width: 24.62cqw; top: 46.73cqw; }
  .building .roof { width: 49.62cqw; height: 29.04cqw; left: 26.54cqw; }
  .building .roof-bottom { top: 34.62cqw; }
  .building .roof-mid { top: 28.27cqw; }
  .building .roof-top { top: 20.58cqw; }
  .building .window { width: 6.92cqw; height: 8.85cqw; border-width: .77cqw; }
  .building .w1 { left: 22.12cqw; top: 52.5cqw; }
  .building .w2 { left: 34.04cqw; top: 56.54cqw; }
  .building .w3 { left: 45.77cqw; top: 60.58cqw; }
  .contact-grid, .detail-body { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}

@media (max-width: 760px) {
  .wrap { width: calc(100% - 36px); }
  .header { gap: 10px; }
  .hero { padding: 36px 0 24px; }
  .hero h1, .detail h1, .company-page h1, .section > h1 {
    font-size: clamp(30px, 7.5vw, 44px);
    line-height: 1.15;
    letter-spacing: -1px;
  }
  h2, .solutions-intro h2 { font-size: clamp(27px, 6.8vw, 34px); letter-spacing: -.7px; }
  .hero h1 br, .solutions-intro h2 br { display: none; }
  .hero h1 em, .solutions-intro h2 span { display: block; }
  .eyebrow { line-height: 1.6; letter-spacing: 1px; font-size: 10px; }
  .section, .company-page, .detail { padding-top: 44px; padding-bottom: 44px; }
  .cards, .form-grid { grid-template-columns: minmax(0, 1fr); }
  .card h3, .card p { min-height: 0; }
  .card-content { padding: 22px; }
  .card-art { height: 165px; }
  .contact-links, .enquiry-form { padding-right: 0; }
  input, textarea, select { font-size: 16px; }
  .company-photo { min-width: 0; }
  .breadcrumbs { margin-bottom: 28px; }
  .contact, .process { padding: 44px 0; }
  .steps { margin-top: 28px; }
  .steps h3 { margin-top: 0; }
  .floating-contact {
    flex-direction: row;
    gap: 10px;
    bottom: max(12px, env(safe-area-inset-bottom));
  }
  footer.wrap { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
}

@media (max-width: 480px) {
  .steps { grid-template-columns: minmax(0, 1fr); }
  .header { column-gap: 8px; }
  .languages a { min-width: 28px; }
  .mark { font-size: 32px; }
  .logo-sub { letter-spacing: 2px; }
}

.application-card{padding:0;overflow:hidden;border-radius:10px}.application-image{aspect-ratio:16 / 9;overflow:hidden;background:#e7e9e0}.application-image img{display:block;width:100%;height:100%;object-fit:cover}.application-content{padding:30px}@media(max-width:760px){.application-content{padding:22px}}

/* A quieter type scale shared by all languages. */
body {
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3 { font-weight: 400; }
h1, .hero h1, .detail h1, .company-page h1, .section > h1 {
  font-size: clamp(34px, 3.8vw, 54px);
  line-height: 1.18;
  letter-spacing: -1.2px;
}
h2, .solutions-intro h2 {
  font-size: clamp(28px, 2.7vw, 38px);
  line-height: 1.3;
  letter-spacing: -.6px;
}
.lead, .hero .lead, .company-copy {
  font-size: 18px;
  line-height: 1.85;
}
.company-copy p { margin-bottom: 22px; }
.company-copy strong, .solutions-intro-copy strong,
.contact-info-card strong { font-weight: 600; }
.card h3, .sector-tile h3 {
  font-size: 19px;
  line-height: 1.45;
  font-weight: 500;
  letter-spacing: 0;
}
.application-card h2, .detail-body h2, .company-cta h2,
.contact-info-card h3, .contact-form-wrap h3 {
  font-size: clamp(23px, 2.2vw, 27px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -.25px;
}
.application-card p, .detail-body p, .contact-grid > div > p,
.contact-info-row, .contact-info-phone, .contact-address,
.contact-coverage, .solutions-intro-copy p {
  font-size: 17px;
  line-height: 1.8;
}
.card p { font-size: 16px; line-height: 1.8; }
.contact .contact-base { font-size: 18px; font-weight: 500; }
.eyebrow { font-weight: 500; letter-spacing: 1.5px; }
.button { font-weight: 500; font-size: 16px; }
label { font-size: 14px; }
@media(max-width:760px) {
  h1, .hero h1, .detail h1, .company-page h1, .section > h1 {
    font-size: clamp(31px, 7vw, 40px);
    letter-spacing: -.7px;
    line-height: 1.22;
  }
  h2, .solutions-intro h2 { font-size: 29px; letter-spacing: -.4px; }
  .application-card h2, .detail-body h2, .company-cta h2,
  .contact-info-card h3, .contact-form-wrap h3 { font-size: 24px; }
  .company-copy, .lead, .hero .lead { font-size: 18px; line-height: 1.8; }
}

#navigation{font-size:16px}.more,.sector-action,.text-link{font-size:14px}.form-privacy,.form-status{font-size:14px}@media(max-width:760px){body{font-size:17px}.company-copy,.lead,.hero .lead{font-size:17px}.card p{font-size:16px}.button{font-size:15px}}

/* Two-column introduction with equal space above and below. */
.hero { min-height: 0; padding-bottom: 0; }
#solutions { --intro-spacing: 72px; }
#solutions { padding-top: 0; }
#solutions .solutions-intro {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr);
  align-items: start;
  gap: clamp(22px, 2.5vw, 36px);
  max-width: none;
  margin: 0 auto;
  padding-block: var(--intro-spacing);
  text-align: left;
}
#solutions .solutions-intro h2 {
  max-width: none;
  margin: 0;
  text-wrap: balance;
}
#solutions .solutions-intro h2 br { display: none; }
#solutions .solutions-intro h2 span { display: block; }
#solutions .solutions-intro h2 span::before { content: " "; }
#solutions .solutions-intro-copy {
  border: 0;
  border-left: 2px solid var(--brand);
  padding: 0 0 0 24px;
  max-width: none;
  margin: 0;
}
#solutions .solutions-intro-copy p { margin-bottom: 12px; }
#solutions .solutions-intro-copy p:last-child { margin-bottom: 0; }
@media(max-width:760px) {
  #solutions { --intro-spacing: 48px; }
  #solutions .solutions-intro { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  #solutions .solutions-intro h2 { margin-bottom: 0; }
  #solutions .solutions-intro-copy { padding-left: 18px; }
}

.sector-heading h2 span{color:var(--brand)}.sector-heading>p{border-left:2px solid var(--brand);padding-left:24px;line-height:1.8;margin-top:20px}@media(max-width:760px){.sector-heading>p{padding-left:18px}}

.foam-methods .method-photo { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 60%; margin-bottom: 24px; }
.membrane-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-block: 28px; }
.membrane-gallery img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 65%; border-radius: 10px; }
@media(max-width:760px) {
  .membrane-gallery { grid-template-columns: minmax(0, 1fr); gap: 16px; margin-block: 24px; }
}
.hero-video-frame { position: relative; width: min(100%, 480px); justify-self: center; border-radius: 12px; box-shadow: 0 8px 24px -16px rgba(37, 42, 41, .18); }
.hero-video-frame::before { content: ""; position: absolute; pointer-events: none; left: -10px; bottom: -10px; width: 28%; height: 38%; border-left: 2px solid var(--brand); border-bottom: 2px solid var(--brand); border-bottom-left-radius: 18px; }
.hero-video-frame::after { content: ""; position: absolute; pointer-events: none; right: -10px; top: -10px; width: 28%; height: 38%; border-right: 2px solid var(--brand); border-top: 2px solid var(--brand); border-top-right-radius: 18px; }
.hero-video { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; background: transparent; border-radius: 12px; filter: saturate(.72) contrast(.92); opacity: .94; }
.fibrocement-image { display: block; width: min(100%, 620px); height: auto; margin: 28px auto; border-radius: 10px; }
.sate-layer-image { display: block; width: min(100%, 840px); height: auto; margin: 28px auto; border-radius: 10px; }
.agriculture-section-image { display: block; width: auto; height: auto; max-width: min(100%, 480px); max-height: 360px; object-fit: contain; margin: 24px auto; border-radius: 10px; }
.industrial-section-image { display: block; width: min(100%, 640px); height: auto; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 55%; margin: 24px auto; border-radius: 10px; }
.industrial-section-image[src$="/impermeabilizacionbarcos.jpg"] { width: auto; height: auto; max-width: min(100%, 640px); max-height: 480px; aspect-ratio: auto; object-fit: contain; }
.agriculture-section-image[src$="/espumausoagricola.jpeg"] { width: min(100%, 640px); max-width: 100%; height: auto; max-height: none; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 55%; }
.agriculture-page .breadcrumbs { display: block; margin-bottom: 40px; color: var(--muted); }
.agriculture-hero { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 40px; align-items: center; }
.agriculture-hero > img { display: block; width: 100%; height: 420px; object-fit: cover; border-radius: 12px; }
.agriculture-hero .lead { max-width: none; }
.agriculture-page .research-source { display: inline-block; font-size: 13px; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; margin: 14px 18px 0 0; overflow-wrap: anywhere; }
/* Editorial emphasis: one main takeaway per page, with shorter bold phrases. */
.company-story-links { display: flex; flex-wrap: wrap; justify-content: center; text-align: center; gap: 12px 28px; list-style: none; margin: 0 0 24px; padding: 0; }
.company-story-links a { display: inline-block; padding-block: 8px; text-decoration: underline; text-underline-offset: 5px; text-decoration-color: var(--brand); overflow-wrap: anywhere; }
.company-story-links a:hover { color: var(--brand); }
.project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; max-width:1000px; margin:40px auto 0; }
.project-card { background:#fff; border:1px solid var(--line); border-top:2px solid var(--brand); overflow:hidden; }
.project-card-link { display:block; color:inherit; text-decoration:none; transition:transform .2s, box-shadow .2s; }
.project-card-link:hover { transform:translateY(-4px); box-shadow:0 10px 28px #252a2918; }
.project-card img { display:block; width:100%; height:230px; object-fit:cover; }
.project-card-body { padding:30px; }
.project-location { color:var(--brand); font-size:13px; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:10px; }
.project-card h2 { font-size:25px; line-height:1.3; margin-bottom:16px; }
.project-card p { color:var(--muted); }
.project-solution { border-left:2px solid var(--brand); padding-left:14px; margin-top:18px; }
.project-cta { margin-top:52px; padding:30px; border-top:2px solid var(--brand); background:#fff; }
.project-mini-section { margin-top:72px; }
.project-mini-section > h2 { display:inline-block; padding-bottom:10px; border-bottom:2px solid var(--brand); }
.project-mini-grid { display:grid; grid-template-columns:repeat(3,minmax(0,220px)); gap:18px; margin-top:28px; }
.project-mini-card { display:flex; flex-direction:column; height:100%; overflow:hidden; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:#fff; transition:box-shadow .2s, border-color .2s; }
.project-mini-card img { display:block; width:100%; height:220px; flex:0 0 220px; object-fit:cover; background:#f4f3ef; transition:transform .25s; }
.project-mini-copy { display:flex; flex:1; flex-direction:column; padding:18px; }
.project-mini-copy strong { font-size:19px; line-height:1.35; font-weight:500; }
.project-mini-copy em { margin-top:auto; padding-top:11px; border-top:1px solid var(--line); color:var(--brand); font-size:14px; font-style:normal; }
.project-mini-card:hover { border-color:var(--brand); box-shadow:0 8px 24px #252a2912; }
.project-mini-card:hover img { transform:scale(1.04); }
@media(max-width:760px){.project-mini-section{margin-top:50px}.project-mini-grid{grid-template-columns:repeat(2,minmax(0,220px));gap:14px}.project-mini-copy{padding:15px}.project-mini-copy strong{font-size:17px}}
@media(max-width:480px){.project-mini-grid{grid-template-columns:minmax(0,220px)}}
.project-detail-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:36px 0 44px; }
.project-gallery-link { display:block; overflow:hidden; border-radius:10px; background:#f4f3ef; }
.project-detail-gallery img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:10px; transition:transform .25s; }
.project-gallery-link:hover img { transform:scale(1.02); }
.castellon-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:760px){.project-detail-gallery,.castellon-gallery{grid-template-columns:1fr;gap:16px;margin:28px 0 34px}}
@media(max-width:760px){.project-grid{gap:18px}.project-card img{height:200px}.project-card-body{padding:22px}.project-card h2{font-size:23px}.project-cta{padding:22px}}
main p strong, main li strong {
  color: var(--ink, #252a29);
  font-weight: 600;
}
main h1 .title-accent { color: var(--brand); }
main .reading-highlight,
.company-copy .contact-story-highlight.reading-highlight {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  border-left: 2px solid var(--brand);
  background: transparent;
  padding: 0 0 0 24px;
  margin-block: 24px;
  border-radius: 0;
  color: #363c39;
  line-height: 1.85;
}
.foam-section > p.reading-highlight { color: #363c39; }
.foam-formulation:has(> .reading-highlight) { border-left: 0; padding-left: 0; }
#solutions .solutions-intro-copy.reading-highlight {
  padding: 0 0 0 24px;
  margin: 0;
  border-left-width: 2px;
}
@media (max-width: 760px) {
  main .reading-highlight,
  .company-copy .contact-story-highlight.reading-highlight,
  #solutions .solutions-intro-copy.reading-highlight { padding: 0 0 0 18px; }
}
@media(max-width:760px) {
  .agriculture-hero { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .agriculture-hero > img { height: auto; aspect-ratio: 3 / 2; }
  .agriculture-page .breadcrumbs { margin-bottom: 28px; }
}

/* Keep the footer at the bottom on pages with little content. */
body {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}
main { flex: 1 0 auto; }
footer.wrap {
  flex: 0 0 auto;
  padding-bottom: 40px;
}
@media(max-width:760px) {
  footer.wrap { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
}

/* Contextual links between solutions, applications and completed projects. */
.related-content {
  margin: 58px 0 34px;
  padding: 32px;
  border: 1px solid var(--line);
  border-top: 2px solid var(--brand);
  background: #fff;
}
.related-content > h2 { margin-bottom: 26px; font-size: clamp(26px, 2.4vw, 34px); }
.related-content-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 42px; }
.related-content h3 { margin-bottom: 10px; font-size: 18px; font-weight: 600; }
.related-content ul { margin: 0; padding: 0; list-style: none; }
.related-content li { border-top: 1px solid var(--line); }
.related-content a { display: block; padding: 10px 0; color: var(--brand); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; }
.related-content a:hover { text-decoration-color: currentColor; }
@media(max-width:760px) {
  .related-content { margin: 42px 0 26px; padding: 24px 20px; }
  .related-content-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
}

/* Cookie consent and legal navigation. */
.footer-legal { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 22px; font-size:12px; color:var(--muted); }
.footer-legal a { text-decoration:underline; text-underline-offset:3px; }
.footer-legal a:hover { color:var(--brand); }
.cookie-banner { position:fixed; z-index:100; left:50%; bottom:20px; width:min(920px,calc(100% - 32px)); transform:translateX(-50%); display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px; padding:24px; border:1px solid rgba(37,42,41,.08); border-radius:16px; background:rgba(255,255,255,.9); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); box-shadow:0 6px 24px rgba(37,42,41,.1); }
.cookie-banner h2 { margin:0 0 8px; font-size:22px; }
.cookie-banner p { margin:0; color:var(--muted); font-size:15px; line-height:1.6; }
.cookie-banner a { color:var(--brand); text-decoration:underline; text-underline-offset:3px; }
.cookie-actions { display:grid; grid-template-columns:repeat(2,minmax(120px,1fr)); gap:10px; }
.cookie-choice { min-height:44px; padding:8px 16px; border:1px solid rgba(203,70,52,.18); border-radius:8px; background:rgba(203,70,52,.055); color:#934b40; cursor:pointer; font-size:14px; font-weight:400; transition:background .15s ease,border-color .15s ease; }
.cookie-choice:hover { background:rgba(203,70,52,.1); border-color:rgba(203,70,52,.28); }
.cookie-choice:focus-visible { outline:2px solid #686d68; outline-offset:3px; }
.legal-page { max-width:900px; }
.legal-page h2 { margin-top:48px; font-size:30px; }
.legal-page h3 { margin-top:30px; font-size:21px; }
.legal-page table { width:100%; border-collapse:collapse; margin:24px 0; background:#fff; }
.legal-page th,.legal-page td { padding:14px; border:1px solid var(--line); text-align:left; vertical-align:top; }
.legal-page th { font-weight:600; }
.legal-page a { color:var(--brand); text-decoration:underline; text-underline-offset:3px; }
@media(max-width:760px) {
  .footer-legal { justify-content:flex-start; margin-top:22px; }
  .cookie-banner { bottom:12px; grid-template-columns:1fr; gap:18px; padding:20px; }
  .cookie-actions { grid-template-columns:1fr 1fr; }
  .legal-page table { display:block; overflow-x:auto; }
}
