/* Final public editorial compositions. Loaded after the shared responsive system. */
.home-story,.method-page,.company-page { --editorial-cream:#f6f2e9; --editorial-mint:#edf5f1; --editorial-green:#064c45; --editorial-ink:#092a2d; }
.home-story :is(h1,h2),.method-page :is(h1,h2),.company-page :is(h1,h2) { font-family:var(--font-display); font-weight:500; }
.home-story :is(h2),.method-page :is(h2),.company-page :is(h2) { line-height:1.02; letter-spacing:-.045em; }
.home-story :is(p,small),.method-page :is(p,small),.company-page :is(p,small) { line-height:1.68; }
.home-story :is(h3,strong),.method-page :is(h3,strong),.company-page :is(h3,strong) { color:var(--editorial-ink); }

/* Dark editorial surfaces keep a single, deliberate contrast hierarchy. */
.home-design,.home-trust,.home-finale,.method-decisions,.method-control,.company-promise { color:#fff; }
.home-design__copy :is(h2,h3,strong),.home-trust :is(h2,h3,strong),.home-finale :is(h2,h3,strong),
.method-decisions :is(h2,h3,strong),.method-control :is(h2,h3,strong),.company-promise :is(h2,h3,strong) { color:#fff; }
.public-site .home-design__copy :is(p,small),.public-site .home-finale :is(p,small),.public-site .method-decisions :is(p,small),
.public-site .method-control :is(p,small),.public-site .company-promise :is(p,small) { color:rgb(255 255 255 / 78%); }
.home-design .home-label,.method-decisions .kicker,.method-control .kicker,.method-control__grid > div > span,.company-promise .kicker { color:#d8bc78; }
.method-portal__copy { color:#fff; }
.method-portal__copy :is(h2,h3,strong) { color:#fff; }
.method-portal__copy :is(p,small) { color:rgb(255 255 255 / 76%); }

/* Primary editorial actions */
.public-site .public-cta-band .button--primary,
.public-site .public-footer__lead .button--light { min-width:220px; min-height:52px; padding-inline:1.25rem; justify-content:space-between; color:#fff; border:1px solid #07564e; border-radius:6px; background:#07564e; box-shadow:0 13px 28px rgb(7 75 69 / 16%); }
.public-site .public-cta-band .button--primary:hover,
.public-site .public-footer__lead .button--light:hover { color:#fff; border-color:#043d38; background:#043d38; transform:translateY(-2px); box-shadow:0 16px 34px rgb(7 75 69 / 22%); }
.public-site .public-cta-band .button--primary svg,
.public-site .public-footer__lead .button--light svg { transition:transform 220ms var(--ease-out); }
.public-site .public-cta-band .button--primary:hover svg,
.public-site .public-footer__lead .button--light:hover svg { transform:translateX(4px); }
.company-promise .text-link--light { display:inline-flex; min-height:48px; margin-top:1.25rem; padding:.75rem 1rem; align-items:center; gap:.8rem; color:#fff !important; border:1px solid rgb(255 255 255 / 46%); border-radius:5px; text-decoration:none; transition:color 220ms var(--ease-out),background 220ms var(--ease-out),border-color 220ms var(--ease-out),transform 220ms var(--ease-out); }
.company-promise .text-link--light:hover { color:var(--editorial-green) !important; border-color:#fff; background:#fff; transform:translateY(-2px); }
.corporate-hero .button--light,.home-design .home-button--light,.home-finale .home-button--light { border:1px solid rgb(255 255 255 / 78%); box-shadow:0 12px 28px rgb(3 32 30 / 16%); }
.home-finale__secondary { opacity:.9; text-decoration-color:rgb(255 255 255 / 55%); transition:opacity 180ms ease,text-decoration-color 180ms ease; }
.home-finale__secondary:hover { opacity:1; text-decoration-color:#fff; }

/* Homepage journey */
.home-start { display:block; padding-block:clamp(4.5rem,8vw,7rem); }
.home-start .home-heading { display:grid; margin-bottom:0; grid-template-columns:1.15fr .85fr; align-items:end; gap:clamp(2rem,6vw,6rem); }
.home-start .home-heading h2 { max-width:12ch; }
.home-start .home-heading > p { max-width:38ch; margin:0 0 .45rem; color:#596765; }
.home-start__grid { display:grid; margin-top:2.2rem; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:1rem; }
.home-start__grid > a { position:relative; display:grid; min-width:0; grid-template-rows:auto 1fr; gap:0; overflow:hidden; color:var(--editorial-ink); border:1px solid #e0e5df; border-radius:9px; background:#fff; box-shadow:0 12px 32px rgb(7 35 34 / 5%); text-decoration:none; transition:transform 220ms var(--ease-out),box-shadow 220ms var(--ease-out),border-color 220ms var(--ease-out); }
.home-start__grid > a:hover { transform:translateY(-4px); border-color:#c7d8d1; box-shadow:0 18px 38px rgb(7 35 34 / 11%); }
.home-start__grid img { grid-column:1/-1; width:100%; aspect-ratio:1.55/1; object-fit:cover; transition:transform 450ms var(--ease-out); }
.home-start__grid > a:hover img { transform:scale(1.025); }
.home-start__grid span { display:grid; min-height:122px; padding:1.25rem 4rem 1.35rem 1.3rem; align-content:start; gap:.42rem; }
.home-start__grid strong { font-family:var(--font-display); font-size:clamp(1.18rem,1.55vw,1.45rem); font-weight:500; line-height:1.15; }
.home-start__grid small { color:var(--public-muted); }
.home-start__grid > a > svg { position:absolute; right:1.1rem; bottom:1.25rem; display:grid; width:38px; height:38px; padding:9px; color:var(--public-teal-deep); border:1px solid #d6e2dc; border-radius:50%; background:#f4f8f5; transition:color 220ms var(--ease-out),background 220ms var(--ease-out),transform 220ms var(--ease-out); }
.home-start__grid > a:hover > svg { color:#fff; background:var(--public-teal-deep); transform:translateX(2px); }

/* The hero's live selector reads as one composed, tactile control panel. */
.home-match { grid-template-columns:minmax(0,1fr) 320px; min-height:144px; border-color:rgb(255 255 255 / 75%); border-radius:16px; background:rgb(255 254 250 / 97%); box-shadow:0 22px 56px rgb(4 25 27 / 27%); }
.home-match fieldset { padding:20px clamp(16px,2vw,27px); }
.home-match legend { gap:11px; margin-bottom:13px; color:#45524f; font-size:.68rem; letter-spacing:.12em; }
.home-match legend span { flex:none; width:28px; height:28px; color:#154f48; border-color:#d4d1c8; background:#fff; font-size:.72rem; }
.home-match fieldset > div { gap:7px; }
.home-match fieldset button { min-height:42px; padding:9px 14px; border-radius:6px; transition:color 180ms ease,border-color 180ms ease,background 180ms ease,box-shadow 180ms ease,transform 180ms ease; }
.home-match fieldset button:hover { border-color:#4b7c73; transform:translateY(-1px); }
.home-match fieldset button:focus-visible { outline:3px solid #d5b66c; outline-offset:2px; }
.home-match fieldset button[aria-pressed="true"] { border-color:#064c45; background:#064c45; box-shadow:0 6px 16px rgb(0 76 69 / 19%); }
.home-match__result { min-height:144px; grid-template-columns:minmax(0,1fr) 100px; gap:14px; padding:17px 18px; border-left:1px solid #dedbd2; background:linear-gradient(135deg,#f6f1e8,#eee8dc); }
.home-match__result small { color:#68736e; font-size:.65rem; }
.home-match__result strong { color:#0d3031; font-size:1.55rem; }
.home-match__result em { color:#566e68; line-height:1.45; }
.home-match__result img { width:100px; height:94px; border:1px solid rgb(255 255 255 / 80%); border-radius:8px; box-shadow:0 6px 16px rgb(12 42 39 / 12%); }
.home-match__result > i { right:9px; bottom:9px; width:35px; height:35px; background:#064c45; box-shadow:0 4px 12px rgb(4 35 33 / 24%); }
.public-site .home-showcase--build .home-showcase__note { top:112px; right:28px; max-width:min(330px,32vw); padding:10px 14px; color:#fff; border:1px solid rgb(255 255 255 / 55%); border-radius:5px; background:rgb(4 35 34 / 88%); box-shadow:0 8px 25px rgb(0 0 0 / 17%); font-size:.72rem; font-weight:700; line-height:1.35; letter-spacing:.025em; text-shadow:0 1px 2px rgb(0 0 0 / 28%); }
.home-showcase--build[data-active-system="madera"] .home-showcase__note::before,
.home-showcase--build[data-active-system="hormigon"] .home-showcase__note::before { display:inline-block; width:7px; height:7px; margin-right:8px; border-radius:50%; content:""; background:#d9c185; box-shadow:0 0 0 3px rgb(217 193 133 / 19%); vertical-align:1px; }

.home-collection { padding-top:clamp(5rem,9vw,8rem); }
.home-collection .home-model__image { border-radius:4px; }
.home-design { background:linear-gradient(115deg,#064c45 0%,#033c37 100%); }
.home-design__grid { gap:clamp(3rem,8vw,8rem); }
.home-design__visual > img { min-height:600px; object-fit:cover; }
.home-design__copy h2 { font-family:var(--font-display); font-size:clamp(3.2rem,5.5vw,6rem); font-weight:500; }

.home-land { display:grid; grid-template-columns:.72fr 1.1fr .82fr; align-items:center; gap:clamp(1.5rem,4vw,4rem); }
.home-land__copy h2 { max-width:10ch; }
.home-land__visual { position:relative; margin:0; }
.home-land__visual img { display:block; width:100%; min-height:390px; object-fit:cover; }
.home-land__visual figcaption { position:absolute; right:12px; bottom:12px; padding:.5rem .7rem; color:#fff; background:rgb(5 38 38 / 72%); font-size:.63rem; }
.home-land__choices { border:1px solid var(--public-rule); background:#fff; }
.home-land__choices form { margin:0; }
.home-land__choice { min-height:94px; padding:1rem 1.15rem !important; border:0 !important; border-bottom:1px solid var(--public-rule) !important; border-radius:0 !important; background:#fff !important; box-shadow:none !important; }
.home-land__choices > :last-child .home-land__choice { border-bottom:0 !important; }

.home-method { background:linear-gradient(180deg,#eef7f3,#f9faf7); }
.home-process-gallery { display:grid; margin-top:3rem; grid-template-columns:repeat(4,1fr); gap:.7rem; }
.home-process-gallery article { display:flex; min-width:0; flex-direction:column; background:#fff; box-shadow:0 12px 30px rgb(7 35 34 / 6%); }
.home-process-gallery article > div { min-height:155px; padding:1.3rem; }
.home-process-gallery span { color:var(--public-teal); font-size:.68rem; font-weight:800; }
.home-process-gallery h3 { margin:.9rem 0 .45rem; font-family:var(--font-display); font-size:1.25rem; font-weight:500; }
.home-process-gallery p { margin:0; color:var(--public-muted); font-size:.75rem; }
.home-process-gallery img { width:100%; aspect-ratio:1.42/1; margin-top:auto; object-fit:cover; }

.home-materials { grid-template-columns:1.15fr .85fr; align-items:center; }
.home-materials__compare { display:grid; min-height:570px; grid-template-columns:1fr 1fr; gap:2px; }
.home-materials__compare figure { position:relative; margin:0; overflow:hidden; }
.home-materials__compare img { width:100%; height:100%; object-fit:cover; }
.home-materials__compare figcaption { position:absolute; right:10px; bottom:10px; left:10px; padding:.7rem .8rem; color:#fff; background:rgb(4 37 37 / 70%); font-size:.67rem; }
.home-materials > div:last-child { padding-left:clamp(1rem,4vw,4rem); }
.home-trust { color:#fff; background:var(--editorial-green); }
.home-trust .shell { display:grid; grid-template-columns:repeat(4,1fr); }
.home-trust span { display:grid; min-height:142px; padding:1.6rem; grid-template-columns:auto 1fr; align-content:center; gap:.15rem .8rem; border-right:1px solid rgb(255 255 255 / 18%); }
.home-trust span:first-child { border-left:1px solid rgb(255 255 255 / 18%); }
.home-trust svg { grid-row:1/3; color:#8fe0d6; }
.home-trust strong,.home-trust small { display:block; }
.home-trust strong { font-family:var(--font-display); font-size:1.05rem; font-weight:500; }
.home-trust small { color:rgb(255 255 255 / 68%); }

/* Shared corporate heroes */
.corporate-hero { min-height:calc(100svh - 36px); }
.corporate-hero__content { justify-content:flex-end; }
.corporate-hero__content h1 { max-width:9ch; font-family:var(--font-display); font-size:clamp(4.4rem,7vw,7.7rem); font-weight:500; line-height:.88; }
.corporate-hero__values { width:min(860px,100%); }
.corporate-hero__values span { font-size:.61rem; }

/* Method page */
.method-index { top:0; }
.method-index a { min-height:76px; justify-content:center; text-transform:none; }
.method-index a span { display:grid; width:31px; height:31px; place-items:center; border:1px solid #c8dad5; border-radius:50%; }
.method-opening { display:grid; grid-template-columns:.88fr 1.12fr; align-items:center; gap:clamp(3rem,8vw,8rem); }
.method-opening__copy h2 { max-width:12ch; font-size:clamp(3.2rem,5vw,5.6rem); }
.method-opening__copy > p:last-child { max-width:52ch; }
.method-opening figure { position:relative; margin:0; }
.method-opening figure img { display:block; width:100%; height:clamp(430px,48vw,650px); object-fit:cover; }
.method-opening figcaption { position:absolute; right:-1.4rem; bottom:2rem; display:grid; width:min(320px,72%); padding:1.4rem 1.6rem; color:#fff; background:var(--editorial-green); box-shadow:0 20px 46px rgb(4 35 34 / 18%); }
.method-opening figcaption strong { font-family:var(--font-display); font-size:1.35rem; font-weight:500; }
.method-opening figcaption span { margin-top:.4rem; color:rgb(255 255 255 / 70%); font-size:.7rem; }

.method-plan { padding-block:clamp(5rem,9vw,9rem); background:#fbfaf6; }
.method-plan__grid { grid-template-columns:.8fr 1.2fr; }
.method-plan h2 { font-size:clamp(3rem,4.7vw,5rem); }
.method-plan ol { border-color:#dfe4df; background:#fff; }
.method-plan li { min-height:210px; align-content:start; padding-top:2.2rem; }
.method-plan li strong { font-family:var(--font-display); font-size:1.05rem; font-weight:500; }

.method-decisions { padding-block:clamp(4.5rem,7vw,7rem); }
.method-decisions h2 { font-size:clamp(2.8rem,4.5vw,4.6rem); }
.method-build { padding-block:clamp(5rem,9vw,9rem); }
.method-section-number h2 { max-width:11ch; font-size:clamp(3rem,4.6vw,4.8rem); }
.method-phases { grid-template-columns:repeat(6,minmax(220px,1fr)); border:0; gap:.65rem; background:transparent; }
.method-phases article { border:1px solid var(--public-rule); background:#fff; }
.method-phases img { aspect-ratio:1.16/1; }
.method-phases h3 { font-family:var(--font-display); font-size:1.15rem; font-weight:500; }

.method-systems { margin-top:clamp(4rem,7vw,7rem); padding:clamp(2rem,4vw,4rem); background:var(--editorial-mint); }
.method-systems__intro { grid-template-columns:1.1fr .9fr; }
.method-systems__intro h2 { max-width:13ch; font-size:clamp(2.7rem,4vw,4.3rem); }
.method-systems__cards article { box-shadow:0 12px 30px rgb(8 42 40 / 6%); }
.method-systems__cards h3 { font-family:var(--font-display); font-size:1.3rem; font-weight:500; }

.method-portal { padding-block:clamp(5rem,9vw,9rem); background:linear-gradient(120deg,#06292d,#043d3a); }
.method-portal__copy h2 { max-width:11ch; font-size:clamp(3.1rem,4.8vw,5.2rem); }
.portal-concept { border:5px solid #dfe4e2; border-bottom-width:16px; border-radius:13px; transform:none; }
.method-monitoring { padding-block:clamp(5rem,9vw,9rem); }
.method-monitoring h2 { font-size:clamp(2.4rem,4vw,4rem); }
.method-updates__grid img { height:350px; }
.method-control { padding-block:0; }
.method-control__grid { width:100%; max-width:none; min-height:560px; grid-template-columns:.8fr 1.2fr; align-items:stretch; gap:0; }
.method-control__grid > div { padding:clamp(3rem,7vw,7rem) max(5vw,calc((100vw - 1440px)/2)); }
.method-control__grid figure { position:relative; min-height:560px; height:auto; margin:0; }
.method-control__grid figure img { position:absolute; inset:0; width:100%; height:100%; min-height:0; max-height:none; object-fit:cover; object-position:center 45%; }
.method-control__grid figcaption { position:absolute; z-index:1; right:1rem; bottom:1rem; padding:.55rem .7rem; color:rgb(255 255 255 / 84%); border:1px solid rgb(255 255 255 / 18%); border-radius:3px; background:rgb(3 35 34 / 72%); backdrop-filter:blur(8px); }

/* Company page */
.company-manifesto { display:grid; grid-template-columns:1.1fr .9fr; align-items:end; gap:clamp(3rem,8vw,8rem); }
.company-manifesto > .kicker { grid-column:1/-1; }
.company-manifesto > h2 { font-size:clamp(3.4rem,5.5vw,6rem); }
.company-manifesto > div { display:block; max-width:550px; margin:0 0 .5rem; }
.company-manifesto > div p + p { margin-top:1rem; }
.company-story { padding-block:0; }
.company-story__grid { width:100%; max-width:none; grid-template-columns:1.15fr .85fr; gap:0; }
.company-story__media img { min-height:680px; aspect-ratio:auto; }
.company-story__copy { padding:clamp(3rem,7vw,7rem); }
.company-story__copy h2 { font-size:clamp(3rem,4.7vw,5rem); }

.company-disciplines > header { grid-template-columns:.55fr 1.15fr .8fr; }
.company-disciplines > header h2 { font-size:clamp(2.9rem,4.5vw,4.6rem); }
.company-disciplines__media { margin-top:3.5rem; }
.company-disciplines__grid { margin-top:0; }
.company-disciplines__grid article { min-height:240px; }
.company-disciplines__grid h3 { margin-top:2.6rem; font-family:var(--font-display); font-size:1.3rem; font-weight:500; }

.company-pillars .section-heading { grid-template-columns:1.1fr .55fr; }
.company-pillars .section-heading h2 { max-width:16ch; }
.company-pillars article { min-height:250px; }
.company-pillars h3 { font-family:var(--font-display); font-size:1.35rem; font-weight:500; }
.company-promise { background:linear-gradient(110deg,#064c45,#04332f); }
.company-promise__grid { grid-template-columns:1fr .72fr .85fr; align-items:center; }
.company-promise h2 { font-size:clamp(3rem,4.7vw,5rem); }
.company-promise__grid ul { display:grid; margin:0; padding:0; gap:1rem; list-style:none; }
.company-promise__grid li { display:flex; align-items:center; gap:.75rem; color:rgb(255 255 255 / 82%); font-size:.75rem; }
.company-promise__grid li svg { color:#8fe0d6; }
.company-place__grid { grid-template-columns:.68fr 1.32fr; }
.company-place h2 { font-size:clamp(3rem,4.7vw,5rem); }
.company-next { padding-block:clamp(5rem,8vw,8rem); }
.company-next h2 { font-size:clamp(3rem,4.5vw,4.8rem); }

@media (max-width:1100px) {
  .home-land,.method-opening,.company-manifesto,.company-story__grid,.company-promise__grid { grid-template-columns:1fr; }
  .home-land__visual { order:2; }
  .home-land__choices { order:3; }
  .home-process-gallery { grid-template-columns:repeat(2,1fr); }
  .home-materials { grid-template-columns:1fr; }
  .home-materials > div:last-child { padding:2rem 0 0; }
  .company-story__media img { min-height:520px; }
  .company-promise__grid { align-items:start; }
  .method-control__grid { grid-template-columns:1fr; }
  .method-control__grid figure { min-height:440px; }
  .home-match { grid-template-columns:minmax(0,1fr) 265px; }
  .home-match fieldset { padding-inline:15px; }
  .home-match fieldset button { padding-inline:10px; }
}

@media (min-width:1101px) {
  .public-site .public-header__toggle { display:none; }
  .public-site .public-nav { position:static; display:flex; width:auto; max-height:none; margin-top:0; padding:0; flex-direction:row; align-items:center; overflow:visible; border:0; background:transparent; box-shadow:none; }
  .public-site .public-nav > a { min-height:44px; padding-inline:0; border:0; }
  .public-site .public-nav > a.public-nav__cta { padding-inline:1.15rem; }
}

@media (max-width:767px) {
  .home-start__grid,.home-process-gallery,.home-trust .shell { grid-template-columns:1fr; }
  .home-start .home-heading { grid-template-columns:1fr; gap:1rem; }
  .home-start .home-heading > p { margin:0; }
  .home-start__grid { gap:2.3rem; }
  .home-start__grid img { aspect-ratio:1.45/1; }
  .home-start__grid span { min-height:110px; }
  .home-design__visual > img { min-height:390px; }
  .home-land { gap:2rem; }
  .home-land__visual img { min-height:300px; }
  .home-materials__compare { min-height:390px; }
  .home-trust span,.home-trust span:first-child { min-height:108px; border-right:0; border-bottom:1px solid rgb(255 255 255 / 18%); border-left:0; }
  .corporate-hero__content h1 { font-size:clamp(3.5rem,16vw,5.4rem); }
  .method-opening figcaption { right:1rem; bottom:1rem; }
  .method-opening figure img { height:390px; }
  .method-plan__grid,.method-systems__intro,.company-disciplines > header,.company-place__grid { grid-template-columns:1fr; }
  .method-decisions__list,.method-systems__cards,.company-disciplines__grid,.company-pillars__grid { grid-template-columns:1fr; }
  .method-phases { grid-template-columns:repeat(6,74vw); margin-right:calc(50% - 50vw); overflow-x:auto; scroll-snap-type:x mandatory; }
  .method-phases article { scroll-snap-align:start; }
  .method-monitoring { grid-template-columns:1fr; }
  .method-updates__grid { grid-template-columns:1fr; }
  .method-updates__grid img,.method-updates__grid img:last-child { height:260px; margin:0; }
  .company-story__media img { min-height:420px; }
  .company-story__copy { padding:3rem 1.25rem; }
  .company-disciplines__media img { height:320px; }
  .company-promise__grid { gap:2rem; }
  .public-site .public-cta-band .button--primary,.public-site .public-footer__lead .button--light { min-width:0; }
  .home-match { display:block; min-height:0; }
  .home-match__result { min-height:130px; border-top:1px solid #dedbd2; border-left:0; }
  .public-site .home-showcase--build .home-showcase__note { top:76px; right:16px; max-width:calc(100% - 32px); padding:8px 11px; font-size:.64rem; }
}

@media (max-width:520px) {
  .home-materials__compare { min-height:0; grid-template-columns:1fr; }
  .home-materials__compare figure { height:300px; }
  .method-opening figure img { height:330px; }
  .method-opening figcaption { width:calc(100% - 2rem); }
  .method-systems__cards article { grid-template-columns:1fr; }
  .method-control__grid figure { min-height:320px; }
}

@media (prefers-reduced-motion:reduce) {
  .home-start__grid > a::after { transition:none; }
}
