:root {
  --ivory: #f8f6f0;
  --paper: #fcfbf7;
  --green-950: #123e30;
  --green-800: #1d513e;
  --green-600: #617961;
  --sage: #a8b8a1;
  --stone: #d8d1c4;
  --ink: #243027;
  --muted: #667067;
  --line: rgba(33, 63, 48, 0.18);
  --section-space: clamp(72px, 7.5vw, 118px);
  --edge: clamp(24px, 5.5vw, 88px);
  --module-label-title: 20px;
  --module-title-copy: 24px;
  --module-copy-action: 28px;
  --title: 'Forum', Georgia, serif;
  --wordmark: 'Forum', Georgia, serif;
  --sans: 'Montserrat', Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ivory); color: var(--ink); font-family: var(--sans); }
a { color: inherit; }
button { font: inherit; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.content-frame { width: min(1440px, 100%); margin: 0 auto; padding-left: var(--edge); padding-right: var(--edge); }
.section-space { margin-top: var(--section-space); }
.eyebrow { margin: 0 0 15px; color: var(--green-800); font-size: 0.69rem; font-weight: 600; letter-spacing: 0.22em; line-height: 1.2; text-transform: uppercase; }
.eyebrow-light { color: rgba(255, 255, 255, 0.88); display: flex; align-items: center; gap: 12px; }
.eyebrow-light i { display: block; width: 28px; height: 1px; background: currentColor; opacity: 0.7; }
h1, h2, h3, p { margin: 0; }
.text-module { display: flex; flex-direction: column; }
.text-module > .eyebrow { margin: 0; }
.text-module > h1,
.text-module > h2 { margin-top: var(--module-label-title); }
.text-module > p:not(.eyebrow) { margin-top: var(--module-title-copy); }
.text-module > .button { margin-top: var(--module-copy-action); }
h1, h2 { font-family: var(--title); font-weight: 400; letter-spacing: -0.035em; text-wrap: balance; }
h3 { text-wrap: balance; }
p, .service-content small { text-wrap: pretty; }
h1 { max-width: 950px; color: #fff; font-size: clamp(3.35rem, 6vw, 6.8rem); line-height: 0.95; }
h2 { color: var(--green-950); font-size: clamp(2.55rem, 4.2vw, 4.9rem); line-height: 0.98; }

.site-header { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 38px; width: 100%; max-width: none; margin: 0; padding: 15px max(var(--edge), calc((100vw - 1440px) / 2 + var(--edge))); border-bottom: 1px solid var(--line); background: #fff; position: relative; z-index: 10; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--green-950); font-family: var(--wordmark); font-size: clamp(1.28rem, 1.7vw, 1.72rem); line-height: 1; text-decoration: none; white-space: nowrap; }
.brand > span { transform: translateY(3px); font-weight: 500; -webkit-text-stroke: .14px currentColor; paint-order: stroke fill; }
.brand-mark { width: 31px; height: 31px; flex: 0 0 auto; }
.site-nav { display: flex; align-items: center; justify-content: flex-end; gap: clamp(14px, 1.75vw, 30px); font-size: 0.82rem; white-space: nowrap; }
.site-nav a { color: var(--ink); padding: 10px 0 8px; text-decoration: none; transition: color 180ms ease; }
.site-nav a:hover { color: var(--green-800); }
.site-nav .is-active { color: var(--green-950); border-bottom: 2px solid var(--green-950); }
.site-nav .nav-contact { padding: 10px 17px; border: 1px solid var(--green-950); border-radius: 999px; }
.site-nav .nav-contact span { padding-left: 6px; }
.menu-toggle { display: none; background: transparent; border: 0; color: var(--green-950); cursor: pointer; }

.hero { position: relative; width: 100%; max-width: none; min-height: clamp(560px, 60vw, 800px); overflow: hidden; background: var(--green-950); }
.hero-image, .hero-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-image { object-fit: cover; object-position: center 53%; }
.hero-overlay { background: linear-gradient(90deg, rgba(9, 40, 29, 0.7) 0%, rgba(9, 40, 29, 0.32) 43%, rgba(9, 40, 29, 0.02) 75%), linear-gradient(0deg, rgba(9, 40, 29, 0.42) 0%, rgba(9, 40, 29, 0) 44%); }
.hero-content { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: flex-end; min-height: inherit; padding-top: 130px; padding-bottom: 74px; }
.hero-lede { color: #fff; font-size: clamp(0.95rem, 1.35vw, 1.25rem); line-height: 1.45; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 15px; width: max-content; margin-top: 28px; padding: 14px 22px; border: 1px solid var(--green-950); border-radius: 999px; background: var(--green-950); color: #fff; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.01em; text-decoration: none; transition: background 180ms ease, color 180ms ease, transform 180ms ease; }
.button:hover { background: var(--green-800); transform: translateY(-2px); }
.button-light { border-color: #fff; background: var(--paper); color: var(--green-950); }
.button-light:hover { background: #fff; }

.intro-copy { width: 100%; max-width: none; margin: 0 auto; text-align: center; }
.intro-copy > .eyebrow,
.intro-copy > p:last-child { align-self: center; }
.intro-copy h2 { width: 100%; max-width: none; text-align: center; white-space: nowrap; }
.intro-copy > p:last-child { max-width: 940px; color: #3e493f; font-size: 1.02rem; line-height: 1.62; }
.sector-strip { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 44px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.sector-item { min-height: 170px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; border-right: 1px solid var(--line); transition: background 180ms ease; }
.sector-item:last-child { border-right: 0; }
.sector-item:hover { background: rgba(168, 184, 161, 0.12); }
.sector-item svg { width: 38px; height: 38px; fill: none; stroke: var(--green-800); stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.sector-icon-supplied { display: block; flex: 0 0 38px; width: 38px; height: 38px; background-color: var(--green-800); -webkit-mask: var(--sector-icon) center / contain no-repeat; mask: var(--sector-icon) center / contain no-repeat; }
.sector-icon-shop { --sector-icon: url('/manus-storage/noun_Shop_8493366(1)_3b50f4a1.svg'); }
.sector-icon-lotus { --sector-icon: url('/manus-storage/noun_Lotus_7885125_cff4f5dd.svg'); flex-basis: 46px; width: 46px; height: 42px; }
.sector-item svg.sector-icon-hotel-custom { width: 44px; height: 44px; stroke-width: 1.3; }
.sector-item svg.sector-icon-wine-custom { width: 40px; height: 40px; }
.sector-item h3 { margin: 0; color: var(--green-950); font-family: var(--title); font-size: 1.6rem; font-weight: 400; }
.sector-item p { max-width: 210px; color: var(--muted); font-size: 0.73rem; line-height: 1.45; text-align: center; }
.sector-strip-six { grid-template-columns: repeat(3, 1fr); }
.sector-strip-six .sector-item { min-height: 206px; padding: 24px 20px; }
.sector-strip-six .sector-item:nth-child(3n) { border-right: 0; }
.sector-strip-six .sector-item:nth-child(-n+3) { border-bottom: 1px solid var(--line); }

.services-heading { display: flex; flex-direction: column; text-align: center; }
.services-heading h2 { white-space: nowrap; }
.services-note { max-width: 580px; align-self: center; color: var(--muted); font-size: 0.88rem; line-height: 1.55; }
.service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 38px; }
.business-service-grid .service-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
.service-card { position: relative; display: block; min-height: 355px; overflow: hidden; border-radius: 18px; color: #fff; background: var(--green-950); text-decoration: none; isolation: isolate; }
.service-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 550ms cubic-bezier(.2,.7,.2,1); }
.card-shade { position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(8, 44, 33, 0.7) 0%, rgba(8, 44, 33, 0.3) 40%, rgba(8, 44, 33, 0.01) 73%); }
.service-card:hover img, .service-card:focus-visible img { transform: scale(1.05); }
.service-card:focus-visible { outline: 3px solid var(--sage); outline-offset: 4px; }
.service-content { position: absolute; z-index: 2; right: 30px; bottom: 29px; left: 30px; display: flex; flex-direction: column; align-items: flex-start; }
.service-content strong { font-family: var(--title); font-size: clamp(1.45rem, 2.2vw, 2rem); font-weight: 400; letter-spacing: -0.035em; line-height: 1.05; white-space: nowrap; }
.service-content small { margin-top: 7px; font-size: 0.84rem; line-height: 1.3; }
.service-content em { display: inline-flex; align-items: center; margin-top: 15px; padding: 7px 11px; border: 1px solid rgba(255,255,255,.72); border-radius: 999px; font-size: 0.7rem; font-style: normal; font-weight: 600; letter-spacing: 0.02em; }
.service-content b { padding-left: 7px; font-size: 1rem; font-weight: 400; }

.service-chapter { margin-top: var(--section-space); }
.chapter-heading { display: flex; flex-direction: column; align-items: center; max-width: 980px; margin: 0 auto; text-align: center; }
.chapter-heading .eyebrow { margin: 0; }
.chapter-heading h2 { margin-top: var(--module-label-title); white-space: normal; }
.chapter-heading > p:last-child { max-width: 760px; margin-top: var(--module-title-copy); color: var(--muted); font-size: 0.96rem; line-height: 1.62; }
.service-grid--five { margin-top: 44px; }
.service-grid--five .service-card--wide { grid-column: 1 / -1; min-height: 420px; }
.service-chapter--sage { padding-top: clamp(72px, 7.5vw, 116px); padding-bottom: clamp(72px, 7.5vw, 116px); background: #e9eee7; }
.service-chapter--sage .service-grid { margin-bottom: 0; }

.external-hero { width: 100%; max-width: none; }
.external-hero .hero-image { object-position: center 52%; }
.external-hero h1 { white-space: nowrap; font-size: clamp(3.4rem, 5.3vw, 6rem); }
.interior-hero .hero-image { object-position: center 51%; }
.interior-hero h1 { white-space: nowrap; font-size: clamp(3.35rem, 5.1vw, 5.9rem); }
.events-hero .hero-image { object-position: center 50%; }
.events-hero h1 { max-width: 980px; font-size: clamp(3.35rem, 5.5vw, 6.25rem); }

.rental-manifest { margin-top: 0; padding: clamp(54px, 6vw, 88px) 0 0; background: #e9eee7; }
.rental-manifest-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.72fr); gap: clamp(42px, 9vw, 136px); align-items: center; }
.rental-copy h2 { max-width: 700px; }
.rental-copy > p:last-child { max-width: 690px; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.rental-image { position: relative; aspect-ratio: 4 / 3; min-height: 0; margin: 0; overflow: hidden; border-radius: 20px; background: var(--green-950); }
.rental-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.rental-steps { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(46px, 6vw, 86px); padding-left: var(--edge); padding-right: var(--edge); list-style: none; border-top: 1px solid var(--line); }
.rental-steps li { min-height: 186px; padding: 28px clamp(20px, 3vw, 46px) 35px 0; border-right: 1px solid var(--line); }
.rental-steps li + li { padding-left: clamp(20px, 3vw, 46px); }
.rental-steps li:last-child { border-right: 0; }
.rental-steps span { display: block; margin-bottom: 17px; color: var(--green-600); font-family: var(--title); font-size: 1.15rem; }
.rental-steps strong { color: var(--green-950); font-family: var(--title); font-size: clamp(1.5rem, 2vw, 2rem); font-weight: 400; letter-spacing: -0.025em; }
.rental-steps p { max-width: 280px; margin-top: 10px; color: var(--muted); font-size: .78rem; line-height: 1.56; }

.event-scene { margin-top: var(--section-space); }
.event-scene--indoor { padding: clamp(72px, 7vw, 108px) 0; background: var(--green-950); color: rgba(255,255,255,.88); }
.event-scene-grid { display: grid; grid-template-columns: minmax(300px, .71fr) minmax(0, 1.08fr); gap: clamp(44px, 8vw, 140px); align-items: start; }
.event-scene-grid--reverse .event-scene-media { order: 2; }
.event-scene-media { position: sticky; top: 30px; min-height: 610px; margin: 0; overflow: hidden; border-radius: 20px; background: var(--green-950); isolation: isolate; }
.event-scene-media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.event-scene-media--outdoor::after { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(0deg, rgba(8, 38, 29, .7) 0%, rgba(8, 38, 29, .18) 28%, transparent 53%); pointer-events: none; }
.event-scene-media figcaption { position: absolute; z-index: 2; right: 24px; bottom: 22px; left: 24px; color: #fff; font-family: var(--title); font-size: 1.8rem; letter-spacing: -0.02em; }
.event-scene-content > .eyebrow { margin-bottom: var(--module-label-title); }
.event-scene-content h2 { max-width: 690px; }
.event-scene-lede { max-width: 610px; margin-top: var(--module-title-copy); color: var(--muted); font-size: .98rem; line-height: 1.65; }
.event-scene--indoor .eyebrow { color: #c8d8c1; }
.event-scene--indoor h2 { color: var(--ivory); }
.event-scene--indoor .event-scene-lede { color: rgba(248,246,240,.72); }
.event-accordion { margin-top: 43px; border-top: 1px solid var(--line); }
.event-accordion details { border-bottom: 1px solid var(--line); }
.event-accordion summary { display: grid; grid-template-columns: 42px minmax(0, 1fr) 28px; gap: 16px; align-items: center; padding: 22px 0; color: var(--green-950); cursor: pointer; list-style: none; }
.event-accordion summary::-webkit-details-marker { display: none; }
.event-accordion summary span { color: var(--green-600); font-family: var(--title); font-size: 1.12rem; }
.event-accordion summary strong { font-family: var(--title); font-size: clamp(1.5rem, 2.25vw, 2.25rem); font-weight: 400; letter-spacing: -0.028em; line-height: 1; text-wrap: balance; }
.event-accordion summary b { font-size: 1.35rem; font-weight: 400; transition: transform 180ms ease; }
.event-accordion details[open] summary b { transform: rotate(45deg); }
.event-accordion details > div { max-width: 700px; padding: 0 42px 25px 58px; color: var(--muted); font-size: .86rem; line-height: 1.62; }
.event-accordion details > div p + p { margin-top: 8px; }
.event-accordion em { color: var(--green-800); font-style: normal; font-weight: 600; }
.event-scene--indoor .event-accordion { border-color: rgba(248,246,240,.22); }
.event-scene--indoor .event-accordion details { border-color: rgba(248,246,240,.22); }
.event-scene--indoor .event-accordion summary { color: var(--ivory); }
.event-scene--indoor .event-accordion summary span, .event-scene--indoor .event-accordion em { color: #c8d8c1; }
.event-scene--indoor .event-accordion details > div { color: rgba(248,246,240,.7); }

.exterior-chapter { margin-top: var(--section-space); }
.exterior-chapter--sage { padding-top: clamp(72px, 7.5vw, 116px); padding-bottom: clamp(72px, 7.5vw, 116px); background: #e9eee7; }
.exterior-chapter-head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.72fr); gap: clamp(38px, 8vw, 138px); align-items: end; margin-bottom: 47px; }
.exterior-chapter-head .eyebrow { margin-bottom: var(--module-label-title); }
.exterior-chapter-head h2 { max-width: 760px; white-space: normal; }
.exterior-chapter-head > p { max-width: 470px; margin: 0 0 6px; color: var(--muted); font-size: 0.98rem; line-height: 1.63; }
.service-entry-list { border-top: 1px solid var(--line); }
.service-entry { display: grid; grid-template-columns: 50px minmax(250px, 1.04fr) minmax(220px, 0.76fr) 300px 28px; gap: clamp(16px, 2.2vw, 34px); align-items: center; min-height: 204px; margin: 0 -18px; padding: 18px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: background 180ms ease, padding 180ms ease; }
.service-entry:hover, .service-entry:focus-visible { padding-right: 27px; padding-left: 27px; background: rgba(168, 184, 161, 0.18); outline: 0; }
.service-entry-number { align-self: start; padding-top: 9px; color: var(--green-600); font-family: var(--title); font-size: 1.25rem; }
.service-entry-title { display: flex; flex-direction: column; gap: 9px; }
.service-entry-title strong { color: var(--green-950); font-family: var(--title); font-size: clamp(1.85rem, 2.7vw, 3.1rem); font-weight: 400; letter-spacing: -0.035em; line-height: 0.98; text-wrap: balance; }
.service-entry-title small { color: var(--green-600); font-size: 0.77rem; line-height: 1.42; }
.service-entry-description { color: var(--muted); font-size: 0.82rem; line-height: 1.58; text-wrap: pretty; }
.service-entry-image { display: block; height: 166px; overflow: hidden; border-radius: 16px; background: var(--green-950); }
.service-entry-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 450ms cubic-bezier(.2,.7,.2,1); }
.service-entry:hover .service-entry-image img, .service-entry:focus-visible .service-entry-image img { transform: scale(1.06); }
.service-entry-arrow { color: var(--green-950); font-size: 1.5rem; transition: transform 180ms ease; }
.service-entry:hover .service-entry-arrow, .service-entry:focus-visible .service-entry-arrow { transform: translate(3px, -3px); }

.contact-cta { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.contact-cta-inner { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 50px; padding-top: 50px; padding-bottom: 50px; }
.contact-cta h2 { font-size: clamp(2.6rem, 4.3vw, 4.8rem); }
.contact-cta p:last-child { color: var(--muted); }
.contact-cta .button { margin-top: 0; }

.site-footer { margin-top: var(--section-space); border-top: 0; background: #0d3126; color: rgba(248,246,240,.76); }
.footer-main { display: grid; grid-template-columns: 2fr 1fr 1fr 1.2fr; gap: 42px; padding-top: 48px; padding-bottom: 48px; }
.footer-brand { color: var(--ivory); font-size: 1.62rem; }
.footer-main .footer-brand-block > p { max-width: 280px; margin: 24px 0 0; color: rgba(248,246,240,.68); font-size: 0.86rem; line-height: 1.55; }
.footer-main > div:not(:first-child) { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; color: rgba(248,246,240,.72); font-size: 0.83rem; line-height: 1.35; }
.footer-main a { color: inherit; text-decoration: none; }
.footer-main a:hover { color: #d4e0cc; }
.footer-main p { margin: 0; }
.footer-title { margin-bottom: 10px !important; color: #b6c9af !important; font-size: 0.65rem !important; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; }
.footer-bottom { display: flex; justify-content: space-between; gap: 30px; padding-top: 18px; padding-bottom: 34px; border-top: 1px solid rgba(248,246,240,.17); color: rgba(248,246,240,.58); font-size: 0.73rem; }
.footer-bottom > span:last-child { display: flex; gap: 18px; }
.footer-bottom a { text-decoration: none; }

.service-dialog { width: min(510px, calc(100% - 32px)); border: 0; padding: 46px; color: var(--ink); background: var(--paper); box-shadow: 0 24px 80px rgba(10, 43, 32, 0.3); }
.service-dialog::backdrop { background: rgba(9, 34, 26, 0.55); backdrop-filter: blur(4px); }
.service-dialog h2 { font-size: 3.3rem; }
.service-dialog > p:not(.eyebrow) { max-width: 420px; color: var(--muted); line-height: 1.6; }
.dialog-close { position: absolute; top: 16px; right: 18px; display: grid; width: 34px; height: 34px; place-items: center; border: 0; background: transparent; color: var(--green-950); font-size: 2rem; cursor: pointer; }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 20; max-width: 310px; padding: 14px 17px; transform: translateY(20px); border: 1px solid rgba(255,255,255,.25); background: var(--green-950); color: #fff; font-size: 0.85rem; line-height: 1.4; opacity: 0; pointer-events: none; transition: opacity 180ms ease, transform 180ms ease; }
.toast.is-visible { transform: translateY(0); opacity: 1; }

@media (max-width: 1120px) {
  .site-header { gap: 22px; }
  .site-nav { gap: 14px; font-size: 0.75rem; }
  .service-card { min-height: 310px; }
}

@media (max-width: 860px) {
  .site-header { min-height: 76px; }
  .menu-toggle { display: inline-flex; flex-direction: column; gap: 6px; align-items: flex-end; padding: 8px; }
  .menu-toggle span:not(.sr-only) { display: block; width: 24px; height: 1.5px; background: currentColor; transition: transform 200ms ease; }
  .menu-toggle.is-open span:nth-child(2) { transform: translateY(3.75px) rotate(45deg); }
  .menu-toggle.is-open span:nth-child(3) { transform: translateY(-3.75px) rotate(-45deg); }
  .site-nav { position: absolute; top: 100%; right: 0; left: 0; display: grid; gap: 0; max-height: 0; overflow: hidden; padding: 0 var(--edge); background: var(--paper); border-bottom: 1px solid transparent; opacity: 0; transition: max-height 260ms ease, opacity 200ms ease, border-color 200ms ease; }
  .site-nav.is-open { max-height: 570px; padding-top: 16px; padding-bottom: 22px; border-color: var(--line); opacity: 1; }
  .site-nav a { padding: 12px 0; }
  .site-nav .nav-contact { width: max-content; margin-top: 8px; padding: 10px 17px; }
  .hero { min-height: 650px; }
  .hero-overlay { background: linear-gradient(0deg, rgba(9, 40, 29, 0.77) 0%, rgba(9, 40, 29, 0.22) 70%), linear-gradient(90deg, rgba(9, 40, 29, 0.28), transparent); }
  .hero-content { padding-bottom: 48px; }
  .hero-lede { max-width: 560px; white-space: normal; }
  .external-hero h1, .interior-hero h1 { white-space: normal; }
  .intro-copy h2 { white-space: normal; }
  .sector-strip { grid-template-columns: repeat(2, 1fr); }
  .sector-item:nth-child(2) { border-right: 0; }
  .sector-item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .sector-strip-six .sector-item:nth-child(odd) { border-right: 1px solid var(--line); }
  .sector-strip-six .sector-item:nth-child(even) { border-right: 0; }
  .sector-strip-six .sector-item:nth-child(-n+4) { border-bottom: 1px solid var(--line); }
  .services-heading, .contact-cta-inner { grid-template-columns: 1fr; display: grid; }
  .services-heading h2 { white-space: normal; }
  .services-note { max-width: 580px; }
  .service-chapter--sage { padding-top: 72px; padding-bottom: 72px; }
  .exterior-chapter-head { grid-template-columns: 1fr; gap: 26px; }
  .exterior-chapter-head > p { max-width: 670px; margin: 0; }
  .service-entry { grid-template-columns: 36px minmax(0, 1fr) 132px 22px; grid-template-areas: 'number title image arrow' '. description image arrow'; min-height: 150px; gap: 10px 20px; }
  .service-entry-number { grid-area: number; }
  .service-entry-title { grid-area: title; }
  .service-entry-description { grid-area: description; }
  .service-entry-image { grid-area: image; height: 114px; }
  .service-entry-arrow { grid-area: arrow; }
  .contact-cta .button { margin-top: 0; }
  .footer-main { grid-template-columns: 1.4fr 1fr; }
  .rental-manifest-grid, .event-scene-grid { grid-template-columns: 1fr; gap: 34px; }
  .rental-image { aspect-ratio: 4 / 3; min-height: 0; border-radius: 18px; }
  .rental-steps { grid-template-columns: 1fr; margin-top: 42px; }
  .rental-steps li, .rental-steps li + li { min-height: auto; padding: 24px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .rental-steps li:last-child { border-bottom: 0; }
  .event-scene-grid--reverse .event-scene-media { order: initial; }
  .event-scene-media { position: relative; top: auto; min-height: 460px; }
  .event-scene--indoor { padding-top: 72px; padding-bottom: 72px; }
}

@media (max-width: 620px) {
  :root { --edge: 20px; --section-space: 72px; }
  h1 { font-size: clamp(3.15rem, 14vw, 4.7rem); }
  h2 { font-size: clamp(2.45rem, 11vw, 3.85rem); }
  .chapter-heading h2 { font-size: clamp(2.25rem, 9vw, 3.15rem); }
  .brand { font-size: 1.25rem; }
  .brand-mark { width: 27px; height: 27px; }
  .hero { min-height: 610px; }
  .service-grid { grid-template-columns: 1fr; gap: 20px; }
  .service-card { min-height: 330px; }
  .service-grid--five .service-card--wide { grid-column: auto; min-height: 330px; }
  .service-content { right: 23px; bottom: 22px; left: 23px; }
  .service-content strong { white-space: normal; }
  .exterior-chapter-head { margin-bottom: 31px; }
  .exterior-chapter-head h2 { font-size: clamp(2.2rem, 9.5vw, 3.25rem); }
  .service-entry { grid-template-columns: 30px minmax(0, 1fr) 94px; grid-template-areas: 'number title image' '. description image'; gap: 8px 12px; min-height: 132px; margin: 0 -8px; padding: 14px 8px; }
  .service-entry:hover, .service-entry:focus-visible { padding-right: 12px; padding-left: 12px; }
  .service-entry-title strong { font-size: 1.65rem; }
  .service-entry-title small { font-size: 0.68rem; }
  .service-entry-description { font-size: 0.73rem; line-height: 1.48; }
  .service-entry-image { height: 102px; }
  .service-entry-arrow { display: none; }
  .contact-cta-inner { gap: 28px; padding-top: 43px; padding-bottom: 43px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 34px 20px; }
  .footer-brand-block { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; gap: 12px; }
  .footer-bottom > span:last-child { flex-wrap: wrap; gap: 10px 16px; }
  .service-dialog { padding: 42px 26px 28px; }
  .service-dialog h2 { font-size: 2.7rem; }
  .events-hero h1 { font-size: clamp(3.05rem, 13.4vw, 4.65rem); }
  .rental-manifest { padding-top: 54px; }
  .rental-copy > p:last-child, .event-scene-lede { font-size: .92rem; }
  .event-scene-media { min-height: 390px; border-radius: 16px; }
  .event-scene-media figcaption { right: 18px; bottom: 16px; left: 18px; font-size: 1.55rem; }
  .event-accordion { margin-top: 32px; }
  .event-accordion summary { grid-template-columns: 30px minmax(0, 1fr) 20px; gap: 10px; padding: 19px 0; }
  .event-accordion summary strong { font-size: 1.52rem; }
  .event-accordion details > div { padding: 0 18px 20px 40px; font-size: .78rem; }
}

/* Sustainability atlas */
.sustainability-hero .hero-image { object-position: center 55%; }
.sustainability-hero h1 { max-width: 850px; font-size: clamp(3.55rem, 5.65vw, 6.35rem); }
.sustainability-manifest { padding: clamp(74px, 8vw, 128px) 0 0; background: #e7eee6; }
.sustainability-manifest-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(250px, .54fr); gap: clamp(42px, 10vw, 160px); align-items: end; }
.sustainability-manifest-copy h2 { max-width: 800px; }
.sustainability-manifest-copy > p:last-child { max-width: 690px; color: var(--muted); font-size: 1rem; line-height: 1.66; }
.manifest-aside { max-width: 390px; padding: 0 0 8px 28px; border-left: 1px solid var(--green-600); color: var(--green-800); font-family: var(--title); font-size: clamp(1.35rem, 2vw, 2.1rem); letter-spacing: -0.025em; line-height: 1.13; }
.sustainability-index { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(58px, 7vw, 95px); padding-left: var(--edge); padding-right: var(--edge); border-top: 1px solid var(--line); }
.sustainability-index a { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; min-height: 112px; padding: 22px clamp(15px, 2.8vw, 40px) 22px 0; border-right: 1px solid var(--line); color: var(--green-950); text-decoration: none; transition: background 180ms ease, padding 180ms ease; }
.sustainability-index a + a { padding-left: clamp(15px, 2.8vw, 40px); }
.sustainability-index a:last-child { border-right: 0; }
.sustainability-index a:hover { padding-left: clamp(24px, 3.4vw, 48px); background: rgba(255,255,255,.35); }
.sustainability-index span { color: var(--green-600); font-family: var(--title); font-size: 1.16rem; }
.sustainability-index strong { font-family: var(--title); font-size: clamp(1.25rem, 1.8vw, 1.75rem); font-weight: 400; letter-spacing: -0.02em; }
.sustainability-index i { color: var(--green-800); font-size: 1.1rem; font-style: normal; }

.atlas-chapter { padding: clamp(76px, 8vw, 126px) 0; }
.atlas-chapter--water { background: var(--ivory); }
.atlas-chapter--soil { background: #e4ece1; }
.atlas-chapter--architecture { background: #10392c; color: rgba(248,246,240,.82); }
.atlas-layout { display: grid; grid-template-columns: minmax(250px, .76fr) minmax(330px, 1.24fr); grid-template-areas: 'intro image' 'services services'; gap: clamp(42px, 7vw, 112px) clamp(40px, 8vw, 142px); align-items: end; }
.atlas-layout--reverse { grid-template-columns: minmax(330px, 1.24fr) minmax(250px, .76fr); grid-template-areas: 'image intro' 'services services'; }
.atlas-intro { position: relative; z-index: 1; grid-area: intro; padding-top: 20px; }
.atlas-number { position: absolute; top: -34px; left: -7px; z-index: -1; color: rgba(29, 81, 62, .09); font-family: var(--title); font-size: clamp(7rem, 12vw, 13.5rem); line-height: .7; letter-spacing: -.08em; }
.atlas-intro .eyebrow { margin-bottom: var(--module-label-title); }
.atlas-intro h2 { max-width: 530px; font-size: clamp(3rem, 4.55vw, 5.25rem); }
.atlas-intro > p:last-child { max-width: 410px; margin-top: var(--module-title-copy); color: var(--muted); font-size: .98rem; line-height: 1.66; }
.atlas-image { grid-area: image; position: relative; min-height: 475px; margin: 0; overflow: hidden; border-radius: 24px; background: var(--green-950); }
.atlas-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.atlas-services { grid-area: services; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.atlas-services li { position: relative; min-height: 215px; padding: 25px clamp(16px, 2.8vw, 42px) 26px 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.atlas-services li:nth-child(3n + 2), .atlas-services li:nth-child(3n + 3) { padding-left: clamp(16px, 2.8vw, 42px); }
.atlas-services li:nth-child(3n) { border-right: 0; }
.atlas-services li:nth-last-child(-n + 3) { border-bottom: 0; }
.atlas-services span { display: block; margin-bottom: 15px; color: var(--green-600); font-family: var(--title); font-size: 1.07rem; }
.atlas-services h3 { max-width: 360px; color: var(--green-950); font-family: var(--title); font-size: clamp(1.42rem, 1.85vw, 1.95rem); font-weight: 400; letter-spacing: -.025em; line-height: 1.04; }
.atlas-services p { max-width: 350px; margin-top: 10px; color: var(--muted); font-size: .78rem; line-height: 1.58; }
.atlas-chapter--architecture .atlas-number { color: rgba(248,246,240,.08); }
.atlas-chapter--architecture .atlas-intro .eyebrow { color: #c8d8c1; }
.atlas-chapter--architecture .atlas-intro h2 { color: var(--ivory); }
.atlas-chapter--architecture .atlas-intro > p:last-child { color: rgba(248,246,240,.68); }
.atlas-chapter--architecture .atlas-services { border-color: rgba(248,246,240,.22); }
.atlas-chapter--architecture .atlas-services li { border-color: rgba(248,246,240,.22); }
.atlas-chapter--architecture .atlas-services span { color: #c8d8c1; }
.atlas-chapter--architecture .atlas-services h3 { color: var(--ivory); }
.atlas-chapter--architecture .atlas-services p { color: rgba(248,246,240,.68); }

@media (max-width: 860px) {
  .sustainability-manifest-grid { grid-template-columns: 1fr; gap: 34px; }
  .manifest-aside { max-width: 520px; }
  .sustainability-index { grid-template-columns: 1fr; margin-top: 50px; }
  .sustainability-index a, .sustainability-index a + a { min-height: 76px; padding: 20px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .sustainability-index a:last-child { border-bottom: 0; }
  .atlas-layout, .atlas-layout--reverse { grid-template-columns: 1fr; grid-template-areas: 'intro' 'image' 'services'; gap: 38px; }
  .atlas-image { min-height: 530px; }
  .atlas-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .atlas-services li:nth-child(3n) { border-right: 1px solid var(--line); }
  .atlas-services li:nth-last-child(-n + 3) { border-bottom: 1px solid var(--line); }
  .atlas-services li:nth-child(even) { border-right: 0; }
  .atlas-services li:nth-child(odd) { padding-left: 0; }
  .atlas-services li:nth-child(even) { padding-left: clamp(16px, 3vw, 42px); }
  .atlas-services li:nth-last-child(-n + 2) { border-bottom: 0; }
  .atlas-chapter--architecture .atlas-services li { border-color: rgba(248,246,240,.22); }
}

@media (max-width: 620px) {
  .sustainability-hero h1 { font-size: clamp(3.15rem, 13.7vw, 4.65rem); }
  .sustainability-manifest { padding-top: 64px; }
  .manifest-aside { padding-left: 20px; font-size: 1.38rem; }
  .atlas-chapter { padding-top: 74px; padding-bottom: 74px; }
  .atlas-intro h2 { font-size: clamp(2.75rem, 11vw, 3.7rem); }
  .atlas-image { min-height: 390px; border-radius: 18px; }
  .atlas-services { grid-template-columns: 1fr; }
  .atlas-services li, .atlas-services li:nth-child(3n), .atlas-services li:nth-last-child(-n + 3) { min-height: auto; padding: 22px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .atlas-services li:nth-child(even), .atlas-services li:nth-child(odd) { padding-left: 0; }
  .atlas-services li:last-child { border-bottom: 0; }
  .atlas-services h3 { font-size: 1.62rem; }
  .atlas-services p { font-size: .77rem; }
  .atlas-chapter--architecture .atlas-services li { border-color: rgba(248,246,240,.22); }
}


/* About / competence network */
.about-hero .hero-image { object-position: center 54%; }
.about-hero h1 { max-width: 900px; font-size: clamp(3.55rem, 5.65vw, 6.4rem); }
.about-manifest { padding: clamp(82px, 9vw, 138px) 0; background: #e5ece3; }
.about-manifest-grid { display: grid; grid-template-columns: minmax(0, 1.13fr) minmax(300px, .62fr); gap: clamp(46px, 10vw, 166px); align-items: center; }
.about-manifest-copy h2 { max-width: 760px; }
.about-manifest-copy > p:last-child { max-width: 680px; color: var(--muted); font-size: 1rem; line-height: 1.68; }
.about-process-image { position: relative; min-height: 480px; margin: 0; overflow: hidden; border-radius: 24px; background: var(--green-950); }
.about-process-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }

.core-team { padding: clamp(82px, 9vw, 142px) 0; background: #10392c; color: rgba(248,246,240,.76); }
.core-team-head { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(260px, .52fr); gap: clamp(42px, 10vw, 166px); align-items: end; }
.core-team .eyebrow { color: #c8d8c1; }
.core-team h2 { color: var(--ivory); }
.core-team-head > p { max-width: 430px; margin-bottom: 6px; color: rgba(248,246,240,.68); font-size: .98rem; line-height: 1.66; }
.core-streams { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(58px, 7vw, 100px); padding: 0; border-top: 1px solid rgba(248,246,240,.22); }
.core-stream { position: relative; min-height: 430px; padding: 31px clamp(20px, 3.4vw, 50px) 36px 0; border-right: 1px solid rgba(248,246,240,.22); }
.core-stream + .core-stream { padding-left: clamp(20px, 3.4vw, 50px); }
.core-stream:last-child { border-right: 0; }
.core-stream-number { display: block; color: #b9ccaf; font-family: var(--title); font-size: 1.13rem; }
.core-stream-label { margin-top: 37px; color: #b9ccaf; font-size: .66rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.core-stream h3 { margin-top: 18px; color: var(--ivory); font-family: var(--title); font-size: clamp(2.1rem, 3vw, 3.45rem); font-weight: 400; letter-spacing: -.04em; line-height: .95; }
.core-stream ul { display: grid; gap: 8px; margin: 31px 0 0; padding: 0; list-style: none; }
.core-stream li { max-width: 305px; color: rgba(248,246,240,.74); font-size: .83rem; line-height: 1.42; }
.core-stream li::before { content: '—'; padding-right: 8px; color: #b9ccaf; }

.partners-section { padding: clamp(82px, 9vw, 142px) 0 clamp(72px, 7.5vw, 116px); background: var(--ivory); }
.partners-heading { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(240px, .48fr); gap: clamp(42px, 10vw, 166px); align-items: end; }
.partners-heading h2 { max-width: 810px; }
.partners-heading .text-module > p:last-child { max-width: 660px; color: var(--muted); font-size: 1rem; line-height: 1.66; }
.partners-side-note { max-width: 345px; margin-bottom: 5px; padding-left: 25px; border-left: 1px solid var(--green-600); color: var(--green-800); font-family: var(--title); font-size: clamp(1.25rem, 1.8vw, 1.85rem); letter-spacing: -.025em; line-height: 1.12; }
.partner-network { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: auto 160px auto; gap: 38px 26px; min-height: 550px; margin-top: clamp(58px, 7vw, 102px); padding-top: 10px; }
.partner-network::before { position: absolute; top: 50%; right: 12.5%; left: 12.5%; height: 1px; content: ''; background: var(--line); }
.partner-network::after { position: absolute; top: 18%; bottom: 18%; left: 50%; width: 1px; content: ''; background: var(--line); }
.partner-hub { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; grid-column: 2 / 4; grid-row: 2; justify-self: center; width: 188px; height: 188px; border: 1px solid var(--green-800); border-radius: 50%; background: var(--green-950); color: var(--ivory); box-shadow: 0 0 0 14px var(--ivory); text-align: center; }
.partner-hub span { margin-bottom: 7px; color: #c8d8c1; font-size: .62rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.partner-hub strong { font-family: var(--title); font-size: 1.6rem; font-weight: 400; letter-spacing: -.025em; line-height: .96; }
.partner-node { position: relative; z-index: 1; align-self: center; width: min(100%, 258px); padding: 18px 18px 18px 20px; border: 1px solid var(--line); border-radius: 15px; background: var(--paper); color: var(--green-950); box-shadow: 0 7px 18px rgba(18,62,48,.04); }
.partner-node span { display: block; margin-bottom: 11px; color: var(--green-600); font-family: var(--title); font-size: 1.02rem; }
.partner-node strong { display: block; font-family: var(--title); font-size: clamp(1.28rem, 1.7vw, 1.72rem); font-weight: 400; letter-spacing: -.025em; line-height: 1.01; }
.partner-node--1 { grid-column: 1; grid-row: 1; justify-self: start; }
.partner-node--2 { grid-column: 2; grid-row: 1; justify-self: center; }
.partner-node--3 { grid-column: 3; grid-row: 1; justify-self: center; }
.partner-node--4 { grid-column: 4; grid-row: 1; justify-self: end; }
.partner-node--5 { grid-column: 1; grid-row: 3; justify-self: start; }
.partner-node--6 { grid-column: 2; grid-row: 3; justify-self: center; }
.partner-node--7 { grid-column: 3; grid-row: 3; justify-self: center; }
.partner-node--8 { grid-column: 4; grid-row: 3; justify-self: end; }

@media (max-width: 860px) {
  .about-manifest-grid, .core-team-head, .partners-heading { grid-template-columns: 1fr; gap: 36px; }
  .about-process-image { min-height: 460px; }
  .core-team-head > p { margin: 0; }
  .core-streams { grid-template-columns: 1fr; margin-top: 56px; }
  .core-stream, .core-stream + .core-stream { min-height: auto; padding: 28px 0 34px; border-right: 0; border-bottom: 1px solid rgba(248,246,240,.22); }
  .core-stream:last-child { border-bottom: 0; }
  .core-stream-label { margin-top: 26px; }
  .core-stream ul { margin-top: 24px; }
  .partners-side-note { margin: 0; }
  .partner-network { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; gap: 16px; min-height: 0; }
  .partner-network::before, .partner-network::after { display: none; }
  .partner-hub { grid-column: 1 / -1; grid-row: auto; width: 164px; height: 164px; margin: 8px 0 28px; }
  .partner-node, .partner-node--1, .partner-node--2, .partner-node--3, .partner-node--4, .partner-node--5, .partner-node--6, .partner-node--7, .partner-node--8 { grid-column: auto; grid-row: auto; justify-self: stretch; width: auto; }
}

@media (max-width: 620px) {
  .about-hero h1 { font-size: clamp(3.05rem, 13.1vw, 4.55rem); }
  .about-manifest, .core-team, .partners-section { padding-top: 72px; padding-bottom: 72px; }
  .about-process-image { min-height: 390px; border-radius: 18px; }
  .core-team h2, .partners-heading h2 { font-size: clamp(2.65rem, 11vw, 3.6rem); }
  .core-stream h3 { font-size: 2.5rem; }
  .partner-network { grid-template-columns: 1fr; gap: 12px; margin-top: 46px; }
  .partner-hub { width: 150px; height: 150px; margin-bottom: 20px; }
  .partner-node, .partner-node--1, .partner-node--2, .partner-node--3, .partner-node--4, .partner-node--5, .partner-node--6, .partner-node--7, .partner-node--8 { grid-column: 1; padding: 17px 18px; }
}

@media (max-width: 620px) {
  .about-desktop-break { display: none; }
}

@media (max-width: 620px) {
  .about-manifest-copy h2 { font-size: clamp(2.1rem, 8.6vw, 2.85rem); }
}


/* Private service detail: maintenance */
.maintenance-page { overflow-x: hidden; }
.maintenance-subhero { padding: clamp(42px, 5vw, 78px) 0; background: #e7eee5; }
.maintenance-subhero-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(38px, 5vw, 78px); align-items: center; }
.maintenance-subhero-copy { padding: 22px 0; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-bottom: clamp(44px, 7vw, 92px); color: var(--muted); font-size: .72rem; }
.breadcrumbs a { color: var(--green-800); text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }
.maintenance-subhero h1 { max-width: 720px; color: var(--green-950); font-size: clamp(3.6rem, 5.65vw, 6.3rem); line-height: .89; }
.maintenance-subhero-copy > p:last-of-type { max-width: 630px; color: var(--muted); font-size: 1rem; line-height: 1.67; }
.maintenance-subhero-image { position: relative; aspect-ratio: 4 / 3; min-height: 0; margin: 0; overflow: hidden; border-radius: 26px; background: var(--green-950); isolation: isolate; }
.maintenance-subhero-image::after { position: absolute; z-index: 1; inset: 0; content: ''; background: linear-gradient(0deg, rgba(8, 41, 30, .68), transparent 42%); pointer-events: none; }
.maintenance-subhero-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.maintenance-subhero-image figcaption { position: absolute; z-index: 2; right: 24px; bottom: 23px; left: 24px; display: flex; flex-direction: column; gap: 5px; color: #fff; }
.maintenance-subhero-image figcaption span { font-size: .66rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.maintenance-subhero-image figcaption strong { font-family: var(--title); font-size: 1.62rem; font-weight: 400; letter-spacing: -.025em; }

.maintenance-overview { padding: clamp(82px, 9vw, 144px) 0; background: var(--ivory); }
.maintenance-overview-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(280px, .65fr); gap: clamp(46px, 11vw, 182px); align-items: end; }
.maintenance-overview h2 { max-width: 785px; }
.maintenance-overview-copy { max-width: 510px; padding: 0 0 8px 26px; border-left: 1px solid var(--green-600); color: var(--muted); font-size: .95rem; line-height: 1.68; }
.maintenance-overview-copy p + p { margin-top: 17px; }
.maintenance-overview-copy a { color: var(--green-800); font-weight: 600; text-decoration-color: rgba(29,81,62,.45); text-underline-offset: 3px; }

.maintenance-contexts { padding: clamp(56px, 5vw, 80px) 0; background: #e5ece3; }
.maintenance-context-list { margin-top: 0; }
.maintenance-context { display: grid; grid-template-columns: minmax(190px, .64fr) minmax(250px, .93fr) minmax(250px, .82fr); gap: clamp(26px, 4vw, 72px); padding: clamp(34px, 4.5vw, 62px) 0; border-bottom: 1px solid var(--line); }
.maintenance-context:last-child { border-bottom: 0; }
.maintenance-context-title > span { display: block; margin-bottom: 22px; color: var(--green-600); font-family: var(--title); font-size: 1.16rem; }
.maintenance-context-title h3 { color: var(--green-950); font-family: var(--title); font-size: clamp(2rem, 3.1vw, 3.35rem); font-weight: 400; letter-spacing: -.04em; line-height: .95; }
.maintenance-context-title > p { max-width: 280px; margin-top: 17px; color: var(--muted); font-size: .8rem; line-height: 1.57; }
.maintenance-context-activity { min-width: 0; padding-top: 7px; }
.activity-label { display: inline-flex; padding: 7px 10px; border: 1px solid rgba(29,81,62,.32); border-radius: 999px; color: var(--green-800); font-size: .64rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.maintenance-context-activity ul { display: grid; gap: 11px; margin: 21px 0 0; padding: 0; list-style: none; }
.maintenance-context-activity li { position: relative; padding-left: 16px; color: #4f5c51; font-size: .81rem; line-height: 1.54; }
.maintenance-context-activity li::before { position: absolute; left: 0; content: '—'; color: var(--green-600); }

.maintenance-method { padding: clamp(82px, 9vw, 140px) 0; background: var(--ivory); }
.maintenance-method-grid { display: grid; grid-template-columns: minmax(300px, .74fr) minmax(0, 1.06fr); gap: clamp(46px, 10vw, 168px); align-items: center; }
.maintenance-method-image { position: relative; min-height: 540px; margin: 0; overflow: hidden; border-radius: 24px; background: var(--green-950); }
.maintenance-method-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.maintenance-method-copy h2 { max-width: 670px; }
.maintenance-method-copy > p:last-of-type { max-width: 590px; color: var(--muted); font-size: .98rem; line-height: 1.66; }
.maintenance-method-copy ol { display: grid; gap: 0; margin: clamp(40px, 5vw, 67px) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.maintenance-method-copy li { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.maintenance-method-copy li > span { color: var(--green-600); font-family: var(--title); font-size: 1.06rem; }
.maintenance-method-copy strong { color: var(--green-950); font-family: var(--title); font-size: clamp(1.45rem, 2vw, 1.95rem); font-weight: 400; letter-spacing: -.025em; }
.maintenance-method-copy li p { margin-top: 7px; color: var(--muted); font-size: .8rem; line-height: 1.55; }

.maintenance-faq-section { padding: clamp(82px, 9vw, 140px) 0; background: #10392c; color: rgba(248,246,240,.78); }
.maintenance-faq-grid { display: grid; grid-template-columns: minmax(270px, .68fr) minmax(0, 1.12fr); gap: clamp(50px, 10vw, 180px); align-items: start; }
.maintenance-faq-section .eyebrow { color: #c8d8c1; }
.maintenance-faq-section h2 { color: var(--ivory); }
.maintenance-faq-grid > .text-module > p:last-child { max-width: 360px; color: rgba(248,246,240,.7); font-size: .94rem; line-height: 1.64; }
.maintenance-faq { border-top: 1px solid rgba(248,246,240,.22); }
.maintenance-faq details { border-bottom: 1px solid rgba(248,246,240,.22); }
.maintenance-faq summary { display: grid; grid-template-columns: 36px minmax(0, 1fr) 24px; gap: 16px; align-items: center; padding: 22px 0; color: var(--ivory); cursor: pointer; list-style: none; }
.maintenance-faq summary::-webkit-details-marker { display: none; }
.maintenance-faq summary span { color: #c8d8c1; font-family: var(--title); font-size: 1.06rem; }
.maintenance-faq summary strong { font-family: var(--title); font-size: clamp(1.38rem, 2.05vw, 2.08rem); font-weight: 400; letter-spacing: -.025em; line-height: 1.05; }
.maintenance-faq summary b { font-size: 1.32rem; font-weight: 400; transition: transform 180ms ease; }
.maintenance-faq details[open] summary b { transform: rotate(45deg); }
.maintenance-faq details > div { max-width: 680px; padding: 0 20px 23px 52px; color: rgba(248,246,240,.7); font-size: .84rem; line-height: 1.63; }

.related-private-services { padding: clamp(80px, 8vw, 128px) 0; background: #e7eee5; }
.related-private-head { display: flex; justify-content: space-between; gap: 35px; align-items: end; }
.related-private-head h2 { max-width: 720px; }
.text-link { padding-bottom: 7px; border-bottom: 1px solid var(--green-800); color: var(--green-800); font-size: .79rem; font-weight: 600; text-decoration: none; white-space: nowrap; }
.text-link span { padding-left: 8px; font-size: 1rem; }
.related-private-list { display: grid; grid-template-columns: repeat(5, 1fr); margin-top: clamp(44px, 6vw, 82px); border-top: 1px solid var(--line); }
.related-private-list a { display: flex; flex-direction: column; justify-content: space-between; min-height: 208px; padding: 23px clamp(14px, 2vw, 31px) 23px 0; border-right: 1px solid var(--line); color: var(--green-950); text-decoration: none; transition: background 180ms ease, padding 180ms ease; }
.related-private-list a + a { padding-left: clamp(14px, 2vw, 31px); }
.related-private-list a:last-child { border-right: 0; }
.related-private-list a:hover { padding-top: 29px; background: rgba(255,255,255,.36); }
.related-private-list span { color: var(--green-600); font-family: var(--title); font-size: 1.06rem; }
.related-private-list strong { max-width: 180px; font-family: var(--title); font-size: clamp(1.3rem, 1.8vw, 1.9rem); font-weight: 400; letter-spacing: -.028em; line-height: 1.02; }
.related-private-list i { margin-top: 24px; color: var(--green-800); font-size: 1.15rem; font-style: normal; }

@media (min-width: 1001px) {
  .maintenance-page[class*="business-"] .related-private-list { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .maintenance-page[class*="business-"] .related-private-list a { min-height: 182px; padding: 20px clamp(9px, 1.15vw, 18px) 20px 0; }
  .maintenance-page[class*="business-"] .related-private-list a + a { padding-left: clamp(9px, 1.15vw, 18px); }
  .maintenance-page[class*="business-"] .related-private-list a:hover { padding-top: 26px; }
  .maintenance-page[class*="business-"] .related-private-list strong { max-width: none; font-size: clamp(1.05rem, 1.25vw, 1.38rem); line-height: 1.04; }
  .maintenance-page.business-pareti-verticali-page .maintenance-subhero h1 { white-space: nowrap; }
  .maintenance-page.exterior-gardens-page .related-private-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.maintenance-contact { padding: clamp(82px, 9vw, 140px) 0; background: var(--green-950); color: rgba(248,246,240,.75); }
.maintenance-contact-grid { display: grid; grid-template-columns: minmax(270px, .76fr) minmax(0, 1fr); gap: clamp(50px, 10vw, 180px); align-items: start; }
.maintenance-contact .eyebrow { color: #c8d8c1; }
.maintenance-contact h2 { color: var(--ivory); max-width: 600px; }
.maintenance-contact-copy > p:not(.eyebrow) { max-width: 460px; color: rgba(248,246,240,.72); font-size: .96rem; line-height: 1.66; }
.maintenance-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 21px 18px; }
.form-field { display: flex; flex-direction: column; gap: 9px; }
.form-field--full, .form-consent, .form-status, .form-submit { grid-column: 1 / -1; }
.form-field label, .form-consent { color: rgba(248,246,240,.86); font-size: .74rem; line-height: 1.5; }
.form-field em, .form-consent em { color: #c8d8c1; font-style: normal; }
.maintenance-form input:not([type="checkbox"]), .maintenance-form select, .maintenance-form textarea { width: 100%; border: 1px solid rgba(248,246,240,.3); border-radius: 0; outline: 0; padding: 14px 15px; background: rgba(255,255,255,.06); color: var(--ivory); font: inherit; font-size: .84rem; transition: border-color 180ms ease, background 180ms ease; }
.maintenance-form select { color: var(--ivory); }
.maintenance-form option { color: var(--ink); background: #fff; }
.maintenance-form textarea { min-height: 138px; resize: vertical; }
.maintenance-form input::placeholder, .maintenance-form textarea::placeholder { color: rgba(248,246,240,.48); }
.maintenance-form input:focus, .maintenance-form select:focus, .maintenance-form textarea:focus { border-color: #c8d8c1; background: rgba(255,255,255,.1); }
.maintenance-form [aria-invalid="true"] { border-color: #ecc6b0 !important; }
.form-consent { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; align-items: start; }
.form-consent input { width: 16px; height: 16px; margin: 2px 0 0; accent-color: #c8d8c1; }
.form-consent a { color: #d8e5d2; }
.form-error:not(:empty), .form-status:not(:empty) { display: block; }
.form-error { color: #f1c6b3; font-size: .7rem; line-height: 1.4; }
.form-status { display: none; padding: 12px 14px; border: 1px solid rgba(200,216,193,.55); color: #d8e5d2; font-size: .78rem; line-height: 1.5; }
.form-status--error { border-color: rgba(241,198,179,.55); color: #f1c6b3; }
.maintenance-form .form-submit { margin-top: 8px; border-color: #dce7d8; background: #dce7d8; color: var(--green-950); cursor: pointer; }
.maintenance-form .form-submit:hover { background: #fff; }
.maintenance-form .form-submit[disabled] { cursor: wait; opacity: .65; transform: none; }
.honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; }

@media (max-width: 1000px) {
  .maintenance-context { grid-template-columns: minmax(170px, .55fr) 1fr; }
  .maintenance-context-title { grid-row: span 2; }
  .maintenance-context-activity { padding-top: 0; }
  .related-private-list { grid-template-columns: repeat(3, 1fr); }
  .related-private-list a:nth-child(3) { border-right: 0; }
  .related-private-list a:nth-child(-n + 3) { border-bottom: 1px solid var(--line); }
  .related-private-list a:nth-child(4) { padding-left: 0; }
}

@media (max-width: 860px) {
  .maintenance-subhero-grid, .maintenance-overview-grid, .maintenance-contexts-head, .maintenance-method-grid, .maintenance-faq-grid, .maintenance-contact-grid { grid-template-columns: 1fr; gap: 36px; }
  .maintenance-subhero-copy { padding-bottom: 0; }
  .breadcrumbs { margin-bottom: 42px; }
  .maintenance-subhero-image { aspect-ratio: 4 / 3; min-height: 0; }
  .maintenance-overview-copy { max-width: 700px; margin: 0; }
  .maintenance-context { grid-template-columns: 1fr 1fr; gap: 28px; }
  .maintenance-context-title { grid-column: 1 / -1; grid-row: auto; }
  .maintenance-context-title > p { max-width: 490px; }
  .maintenance-method-image { min-height: 480px; }
  .maintenance-faq-grid > .text-module > p:last-child { max-width: 540px; }
  .related-private-list { grid-template-columns: repeat(2, 1fr); }
  .related-private-list a:nth-child(3) { border-right: 1px solid var(--line); }
  .related-private-list a:nth-child(-n + 3) { border-bottom: 1px solid var(--line); }
  .related-private-list a:nth-child(even) { border-right: 0; }
  .related-private-list a:nth-child(odd) { padding-left: 0; }
  .maintenance-form { max-width: 740px; }
}

@media (max-width: 620px) {
  .maintenance-subhero { padding-top: 30px; padding-bottom: 64px; }
  .maintenance-subhero h1 { font-size: clamp(3.3rem, 14vw, 4.65rem); }
  .maintenance-subhero-image { aspect-ratio: 1 / 1; min-height: 0; border-radius: 18px; }
  .maintenance-overview, .maintenance-method, .maintenance-faq-section, .related-private-services, .maintenance-contact { padding-top: 72px; padding-bottom: 72px; }
  .maintenance-contexts { padding-top: 56px; padding-bottom: 56px; }
  .maintenance-overview h2, .maintenance-contexts-head h2, .maintenance-method h2, .maintenance-faq-section h2, .related-private-head h2, .maintenance-contact h2 { font-size: clamp(2.65rem, 11vw, 3.65rem); }
  .maintenance-overview-copy { padding-left: 19px; font-size: .89rem; }
  .maintenance-context-list { margin-top: 46px; }
  .maintenance-context { grid-template-columns: 1fr; gap: 28px; padding: 34px 0; }
  .maintenance-context-title > span { margin-bottom: 16px; }
  .maintenance-context-title h3 { font-size: 2.5rem; }
  .maintenance-context-activity ul { margin-top: 16px; }
  .maintenance-context-activity li { font-size: .78rem; }
  .maintenance-method-image { min-height: 360px; border-radius: 18px; }
  .maintenance-method-copy ol { margin-top: 36px; }
  .maintenance-faq summary { grid-template-columns: 29px minmax(0, 1fr) 18px; gap: 10px; padding: 18px 0; }
  .maintenance-faq summary strong { font-size: 1.48rem; }
  .maintenance-faq details > div { padding: 0 8px 20px 39px; font-size: .78rem; }
  .related-private-head { display: grid; gap: 27px; align-items: start; }
  .text-link { width: max-content; }
  .related-private-list { grid-template-columns: 1fr; margin-top: 42px; }
  .related-private-list a, .related-private-list a:nth-child(3), .related-private-list a:nth-child(even), .related-private-list a:nth-child(odd), .related-private-list a:nth-child(4) { min-height: 125px; padding: 21px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .related-private-list a:last-child { border-bottom: 0; }
  .related-private-list a strong { max-width: 300px; font-size: 1.62rem; }
  .related-private-list a i { margin-top: 13px; }
  .maintenance-form { grid-template-columns: 1fr; gap: 18px; }
  .form-field, .form-field--full, .form-consent, .form-status, .form-submit { grid-column: 1; }
  .maintenance-form textarea { min-height: 128px; }
}

@media (max-width: 620px) {
  .maintenance-desktop-break { display: none; }
  .maintenance-faq-section h2 { font-size: clamp(2.25rem, 9.1vw, 3.15rem); }
  .maintenance-faq summary strong { font-size: 1.28rem; line-height: 1.12; }
}

@media (min-width: 621px) {
  .maintenance-faq-section h2 { font-size: clamp(2.3rem, 3vw, 3rem); }
}

@media (max-width: 620px) {
  .maintenance-overview-break { display: none; }
}


/* Private design detail: visualization dossier */
.project-visualization { padding: clamp(80px, 9vw, 136px) 0; background: #10392c; color: rgba(248,246,240,.76); }
.project-visualization-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(48px, 9vw, 150px); align-items: center; }
.project-visualization-image { position: relative; aspect-ratio: 4 / 3; margin: 0; overflow: hidden; border-radius: 24px; background: #0a2e23; isolation: isolate; }
.project-visualization-image::after { position: absolute; z-index: 1; inset: 0; content: ''; background: linear-gradient(0deg, rgba(4,28,20,.72), transparent 46%); pointer-events: none; }
.project-visualization-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.project-visualization-image figcaption { position: absolute; z-index: 2; right: 24px; bottom: 22px; left: 24px; display: flex; flex-direction: column; gap: 5px; color: var(--ivory); }
.project-visualization-image figcaption span { color: #c8d8c1; font-size: .66rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.project-visualization-image figcaption strong { font-family: var(--title); font-size: 1.62rem; font-weight: 400; letter-spacing: -.025em; }
.project-visualization .eyebrow { color: #c8d8c1; }
.project-visualization h2 { max-width: 650px; color: var(--ivory); }
.project-visualization-copy > p:last-of-type { max-width: 650px; color: rgba(248,246,240,.73); font-size: .98rem; line-height: 1.67; }
.project-dossier-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: clamp(36px, 5vw, 62px) 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(248,246,240,.22); }
.project-dossier-list li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; min-height: 124px; padding: 19px 20px 19px 0; border-bottom: 1px solid rgba(248,246,240,.22); }
.project-dossier-list li:nth-child(even) { padding-right: 0; padding-left: 20px; border-left: 1px solid rgba(248,246,240,.22); }
.project-dossier-list span { color: #c8d8c1; font-family: var(--title); font-size: 1.03rem; }
.project-dossier-list strong { display: block; color: var(--ivory); font-family: var(--title); font-size: clamp(1.24rem, 1.6vw, 1.65rem); font-weight: 400; letter-spacing: -.025em; line-height: 1.02; }
.project-dossier-list p { margin-top: 8px; color: rgba(248,246,240,.68); font-size: .76rem; line-height: 1.52; }

@media (max-width: 860px) {
  .project-visualization-grid { grid-template-columns: 1fr; gap: 48px; }
  .project-visualization-image { max-width: 680px; }
}

@media (max-width: 620px) {
  .project-visualization { padding-top: 72px; padding-bottom: 72px; }
  .project-visualization-image { border-radius: 18px; }
  .project-visualization-image figcaption { right: 18px; bottom: 17px; left: 18px; }
  .project-visualization-image figcaption strong { font-size: 1.36rem; }
  .project-dossier-list { grid-template-columns: 1fr; margin-top: 38px; }
  .project-dossier-list li, .project-dossier-list li:nth-child(even) { min-height: 0; padding: 18px 0; border-left: 0; }
}


/* Private design detail: taller before-and-after visualization */
@media (min-width: 861px) {
  .project-page .project-visualization-image { aspect-ratio: 4 / 5; }
}

@media (max-width: 860px) {
  .project-page .project-visualization-image { aspect-ratio: 4 / 3; }
}

/* Business design detail: the before/after needs enough height for both stages. */
.business-project-page .project-visualization-image { aspect-ratio: 4 / 5; }

/* Exterior space detail: service cards */
.exterior-space-page { overflow-x: hidden; }
.exterior-space-subhero .exterior-space-audiences { margin: 25px 0 0; }
.exterior-space-subhero .button { margin-top: 22px; }
.exterior-space-audiences { display: flex; flex-wrap: wrap; gap: 8px; }
.exterior-space-audiences span { padding: 8px 11px; border: 1px solid rgba(29, 81, 62, .34); border-radius: 999px; color: var(--green-800); font-size: .64rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
@media (min-width: 861px) {
  .exterior-space-subhero .breadcrumbs { margin-bottom: clamp(46px, 4.5vw, 64px); }
}

.exterior-space-intro { padding: clamp(82px, 9vw, 140px) 0; background: var(--ivory); }
.exterior-space-intro-copy { max-width: 850px; margin: 0 auto; align-items: center; text-align: center; }
.exterior-space-intro-copy > .eyebrow { align-self: center; }
.exterior-space-intro-copy h2 { max-width: none; }
.exterior-intro-mobile-break { display: none; }
.exterior-space-lede { max-width: 730px; color: var(--muted); font-size: .96rem; line-height: 1.68; }

.exterior-service-catalog { padding: clamp(82px, 9vw, 140px) 0; background: #10392c; }
.exterior-service-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2vw, 30px); margin: 0; padding: 0; list-style: none; }
.exterior-service-card { position: relative; display: flex; flex-direction: column; min-height: 270px; padding: clamp(23px, 2.4vw, 34px); border: 1px solid rgba(248, 246, 240, .72); border-radius: 20px; color: rgba(248, 246, 240, .72); }
.exterior-service-number { display: block; color: #c8d8c1; font-family: var(--title); font-size: 1.12rem; }
.exterior-service-icon { position: absolute; top: clamp(23px, 2.4vw, 34px); right: clamp(23px, 2.4vw, 34px); width: 33px; height: 33px; fill: none; stroke: #c8d8c1; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.45; }
.exterior-service-icon-dot { fill: #c8d8c1; stroke: none; }
.exterior-service-card h3 { max-width: 500px; margin-top: clamp(26px, 3vw, 40px); color: var(--ivory); font-family: var(--title); font-size: clamp(1.7rem, 2.25vw, 2.5rem); font-weight: 400; letter-spacing: -.04em; line-height: .98; }
.exterior-service-card div > p { max-width: 440px; margin-top: 15px; color: rgba(248, 246, 240, .7); font-size: .82rem; line-height: 1.6; }

.exterior-space-application { padding: clamp(82px, 9vw, 142px) 0; background: var(--ivory); }
.exterior-space-application-grid { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(0, .92fr); gap: clamp(48px, 10vw, 166px); align-items: center; }
.exterior-space-application-image { position: relative; min-height: 540px; margin: 0; overflow: hidden; border-radius: 32px; background: var(--green-950); }
.exterior-space-application-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.exterior-space-application-copy h2 { max-width: 640px; }
.exterior-space-application-copy > p:last-of-type { max-width: 560px; color: var(--muted); font-size: .96rem; line-height: 1.68; }
.exterior-space-application-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: clamp(38px, 5vw, 58px); padding-top: 21px; border-top: 1px solid var(--line); }
.exterior-space-application-list div + div { padding-left: 28px; border-left: 1px solid var(--line); }
.exterior-space-application-list strong { display: block; color: var(--green-950); font-family: var(--title); font-size: clamp(1.32rem, 1.7vw, 1.75rem); font-weight: 400; letter-spacing: -.025em; line-height: 1.03; }
.exterior-space-application-list span { display: block; margin-top: 9px; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.exterior-space-page .exterior-related-services { background: #e5ece3; }

@media (max-width: 860px) {
  .exterior-service-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .exterior-space-application-grid { grid-template-columns: 1fr; gap: 36px; }
  .exterior-space-application-image { min-height: 475px; }
}

@media (max-width: 620px) {
  .exterior-space-subhero .exterior-space-audiences { margin-top: 21px; }
  .exterior-space-intro, .exterior-service-catalog, .exterior-space-application { padding-top: 72px; padding-bottom: 72px; }
  .exterior-space-intro-copy h2, .exterior-space-application h2 { font-size: clamp(2.55rem, 10.7vw, 3.62rem); }
  .exterior-intro-mobile-break { display: inline; }
  .exterior-space-lede { font-size: .88rem; }
  .exterior-service-cards { grid-template-columns: 1fr; gap: 12px; }
  .exterior-service-card { min-height: 0; padding: 24px 22px; }
  .exterior-service-icon { top: 24px; right: 22px; width: 30px; height: 30px; }
  .exterior-service-card h3 { margin-top: 25px; font-size: clamp(1.82rem, 8vw, 2.32rem); line-height: 1.02; }
  .exterior-service-card div > p { margin-top: 11px; font-size: .78rem; }
  .exterior-space-application-image { min-height: 0; aspect-ratio: 1 / 1; border-radius: 25px; }
  .exterior-space-application-list { grid-template-columns: 1fr; gap: 20px; }
  .exterior-space-application-list div + div { padding: 20px 0 0; border-top: 1px solid var(--line); border-left: 0; }
}

/* Outdoor living: examples by setting */
.outdoor-realizations { padding: clamp(82px, 9vw, 142px) 0; background: var(--ivory); }
.outdoor-realizations-head { max-width: 770px; margin: 0 auto; align-items: center; text-align: center; }
.outdoor-realizations-head > .eyebrow { align-self: center; }
.outdoor-realizations-head h2 { max-width: 620px; }
.outdoor-realizations-head > p:last-child { max-width: 610px; color: var(--muted); font-size: .96rem; line-height: 1.68; }
.outdoor-realizations-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.2vw, 32px); margin-top: clamp(48px, 6vw, 82px); }
.outdoor-realization { min-width: 0; }
.outdoor-realization figure { position: relative; aspect-ratio: 4 / 5; margin: 0; overflow: hidden; border-radius: 24px; background: var(--green-950); }
.outdoor-realization figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.outdoor-realization > .eyebrow { margin-top: 22px; margin-bottom: 0; color: var(--green-600); }
.outdoor-realization h3 { margin-top: 14px; color: var(--green-950); font-family: var(--title); font-size: clamp(1.7rem, 2.35vw, 2.45rem); font-weight: 400; letter-spacing: -.035em; line-height: .99; }
.outdoor-realization > p:last-child { max-width: 360px; margin-top: 14px; color: var(--muted); font-size: .8rem; line-height: 1.58; }

@media (max-width: 860px) {
  .outdoor-realizations-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .outdoor-realization:last-child { grid-column: 1 / -1; max-width: calc(50% - 10px); }
}

@media (max-width: 620px) {
  .outdoor-realizations { padding-top: 72px; padding-bottom: 72px; }
  .outdoor-realizations-head h2 { font-size: clamp(2.55rem, 10.7vw, 3.62rem); }
  .outdoor-realizations-head > p:last-child { font-size: .88rem; }
  .outdoor-realizations-grid { grid-template-columns: 1fr; gap: 42px; margin-top: 46px; }
  .outdoor-realization:last-child { grid-column: auto; max-width: none; }
  .outdoor-realization figure { aspect-ratio: 4 / 5; border-radius: 20px; }
  .outdoor-realization h3 { font-size: 2rem; }
}


/* Sustainable solutions: editorial photographic detail pages */
.sustainable-solution-page { overflow-x: hidden; }
.sustainable-hero { padding: clamp(34px, 5vw, 76px) 0; background: #e7eee5; }
.sustainable-hero-visual { position: relative; aspect-ratio: 16 / 8.4; margin: 0; overflow: hidden; border-radius: clamp(26px, 3vw, 38px); background: var(--green-950); isolation: isolate; }
.sustainable-hero-visual::after { position: absolute; z-index: 1; inset: 0; content: ''; background: linear-gradient(90deg, rgba(5, 37, 27, .83) 0%, rgba(5, 37, 27, .53) 43%, rgba(5, 37, 27, .08) 76%, rgba(5, 37, 27, .18) 100%); pointer-events: none; }
.sustainable-hero-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sustainable-hero-overlay { position: absolute; z-index: 2; bottom: clamp(32px, 4.2vw, 68px); left: clamp(26px, 5vw, 84px); max-width: min(630px, 52%); color: var(--ivory); }
.sustainable-hero .breadcrumbs { margin: 0 0 clamp(28px, 4vw, 56px); color: rgba(248, 246, 240, .68); }
.sustainable-hero .breadcrumbs a { color: var(--ivory); }
.sustainable-hero .eyebrow { color: #d6e2d0; }
.sustainable-hero h1 { max-width: 680px; color: var(--ivory); font-size: clamp(3.65rem, 6.2vw, 7.3rem); line-height: .88; }
.sustainable-hero-lede { max-width: 570px; margin-top: 22px; color: rgba(248, 246, 240, .86); font-size: 1rem; line-height: 1.65; }
.sustainable-hero .button { margin-top: 26px; border-color: #dce7d8; background: #dce7d8; color: var(--green-950); }
.sustainable-hero .button:hover { background: var(--ivory); }

.sustainable-intro { padding: clamp(88px, 10vw, 154px) 0; background: var(--ivory); }
.sustainable-intro-copy { max-width: 875px; margin: 0 auto; align-items: center; text-align: center; }
.sustainable-intro-copy > .eyebrow { align-self: center; }
.sustainable-intro-copy h2 { max-width: 760px; }
.sustainable-intro-copy > p:last-child { max-width: 740px; color: var(--muted); font-size: 1rem; line-height: 1.72; }

.sustainable-insights { padding: clamp(82px, 9vw, 142px) 0; background: #e5ece3; }
.sustainable-insights-head { max-width: 750px; }
.sustainable-insights-head > p:last-child { max-width: 600px; color: var(--muted); font-size: .96rem; line-height: 1.68; }
.sustainable-insights-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(54px, 6vw, 92px); border-top: 1px solid var(--line); }
.sustainable-insight { min-width: 0; min-height: 292px; padding: clamp(24px, 3vw, 42px) clamp(22px, 3vw, 42px) 32px 0; border-right: 1px solid var(--line); }
.sustainable-insight + .sustainable-insight { padding-left: clamp(22px, 3vw, 42px); }
.sustainable-insight:last-child { border-right: 0; }
.sustainable-insight-number { display: block; color: var(--green-600); font-family: var(--title); font-size: 1.14rem; }
.sustainable-insight h3 { max-width: 330px; margin-top: 30px; color: var(--green-950); font-family: var(--title); font-size: clamp(1.78rem, 2.35vw, 2.5rem); font-weight: 400; letter-spacing: -.04em; line-height: .98; }
.sustainable-insight p { max-width: 365px; margin-top: 15px; color: var(--muted); font-size: .82rem; line-height: 1.62; }
.sustainable-insight .sustainable-species { color: var(--green-800); font-size: .75rem; font-style: italic; line-height: 1.58; }
.sustainable-solution-page .related-private-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sustainable-solution-page .related-private-services { background: #f1f3ed; }

/* Form fields: softer corners and a comfortably inset select indicator. */
.maintenance-form input:not([type="checkbox"]), .maintenance-form select, .maintenance-form textarea { border-radius: 15px; }
.maintenance-form textarea { border-radius: 18px; }
.maintenance-form select { appearance: none; -webkit-appearance: none; padding-right: 52px; background-color: rgba(255,255,255,.06); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='m1 1.25 5 5 5-5' stroke='%23D8E5D2' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 20px center; background-size: 12px 8px; }
.maintenance-form select:focus { background-color: rgba(255,255,255,.1); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='m1 1.25 5 5 5-5' stroke='%23D8E5D2' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 20px center; background-size: 12px 8px; }

@media (max-width: 860px) {
  .sustainable-hero-visual { aspect-ratio: 4 / 3; }
  .sustainable-hero-overlay { max-width: min(620px, 72%); }
  .sustainable-insights-grid { grid-template-columns: 1fr; }
  .sustainable-insight, .sustainable-insight + .sustainable-insight { min-height: 0; padding: 31px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .sustainable-insight:last-child { border-bottom: 0; }
}

@media (max-width: 620px) {
  .sustainable-hero { padding-top: 20px; padding-bottom: 62px; }
  .sustainable-hero-visual { aspect-ratio: 1 / 1.08; border-radius: 22px; }
  .sustainable-hero-visual::after { background: linear-gradient(0deg, rgba(5, 37, 27, .86) 0%, rgba(5, 37, 27, .48) 54%, rgba(5, 37, 27, .12) 100%); }
  .sustainable-hero-overlay { right: 22px; bottom: 25px; left: 22px; max-width: none; }
  .sustainable-hero .breadcrumbs { margin-bottom: 31px; font-size: .67rem; }
  .sustainable-hero h1 { font-size: clamp(3.15rem, 13.1vw, 4.5rem); }
  .sustainable-hero h1.sustainable-hero-title--compact { font-size: clamp(2.12rem, 9.15vw, 2.55rem); letter-spacing: -.045em; white-space: nowrap; }
  .sustainable-hero-lede { margin-top: 15px; font-size: .88rem; line-height: 1.58; }
  .sustainable-hero .button { margin-top: 19px; }
  .sustainable-intro, .sustainable-insights { padding-top: 72px; padding-bottom: 72px; }
  .sustainable-intro-copy h2, .sustainable-insights-head h2 { font-size: clamp(2.55rem, 10.5vw, 3.55rem); }
  .sustainable-intro-copy > p:last-child, .sustainable-insights-head > p:last-child { font-size: .88rem; }
  .sustainable-insights-grid { margin-top: 46px; }
  .sustainable-insight h3 { margin-top: 23px; font-size: 2rem; }
  .sustainable-insight p { margin-top: 12px; font-size: .79rem; }
  .maintenance-form select, .maintenance-form select:focus { padding-right: 50px; background-position: right 18px center; }
}


/* Sensory garden pilot: distinct botanical, benefit and application bands */
.sustainable-hero-overlay { bottom: clamp(52px, 5.7vw, 96px); }
.sensory-mobile-break { display: none; }
.sensory-botanicals, .sensory-benefits, .sensory-applications { padding: clamp(82px, 9vw, 142px) 0; }
.sensory-botanicals { background: #e5ece3; }
.sensory-benefits { background: var(--ivory); }
.sensory-band-head { max-width: 660px; }
.sensory-band-head--center { max-width: 800px; margin: 0 auto; align-items: center; text-align: center; }
.sensory-band-head--center > .eyebrow { align-self: center; }
.sensory-band-head h2 { max-width: 650px; }
.sensory-band-head > p:last-child { max-width: 620px; color: var(--muted); font-size: .96rem; line-height: 1.68; }
.sensory-band-head--center > p:last-child { max-width: 680px; }
.sensory-botanicals-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: clamp(52px, 6vw, 88px); border-top: 1px solid var(--line); }
.sensory-botanical { min-width: 0; min-height: 252px; padding: clamp(25px, 3vw, 40px) clamp(18px, 2.6vw, 38px) 30px 0; border-right: 1px solid var(--line); }
.sensory-botanical + .sensory-botanical { padding-left: clamp(18px, 2.6vw, 38px); }
.sensory-botanical:last-child { border-right: 0; }
.sensory-botanical > span, .sensory-benefit > span, .sensory-application > span { color: var(--green-600); font-family: var(--title); font-size: 1.13rem; }
.sensory-botanical h3 { margin-top: 28px; color: var(--green-950); font-family: var(--title); font-size: clamp(1.72rem, 2.15vw, 2.35rem); font-weight: 400; letter-spacing: -.04em; line-height: .98; }
.sensory-botanical p { max-width: 270px; margin-top: 14px; color: var(--muted); font-size: .8rem; line-height: 1.6; }
.sensory-benefits { position: relative; }
.sensory-benefits .content-frame { display: grid; grid-template-columns: minmax(260px, .66fr) minmax(0, 1.12fr); gap: clamp(50px, 9vw, 156px); align-items: end; }
.sensory-benefits-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.sensory-benefit { min-width: 0; min-height: 282px; padding: 28px clamp(18px, 2.2vw, 34px) 28px 0; border-right: 1px solid var(--line); }
.sensory-benefit + .sensory-benefit { padding-left: clamp(18px, 2.2vw, 34px); }
.sensory-benefit:last-child { border-right: 0; }
.sensory-benefit h3 { margin-top: 27px; color: var(--green-950); font-family: var(--title); font-size: clamp(1.58rem, 1.9vw, 2.15rem); font-weight: 400; letter-spacing: -.035em; line-height: .99; }
.sensory-benefit p { margin-top: 15px; color: var(--muted); font-size: .78rem; line-height: 1.61; }
.sensory-applications { background: #10392c; color: rgba(248,246,240,.74); }
.sensory-applications .eyebrow { color: #c8d8c1; }
.sensory-applications-head { max-width: 760px; }
.sensory-applications h2 { max-width: 750px; color: var(--ivory); }
.sensory-applications-head > p:last-child { max-width: 625px; color: rgba(248,246,240,.72); font-size: .96rem; line-height: 1.68; }
.sensory-applications-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2.2vw, 32px); margin-top: clamp(52px, 6vw, 84px); }
.sensory-application { min-height: 258px; padding: clamp(24px, 3vw, 38px); border: 1px solid rgba(248,246,240,.4); border-radius: 20px; }
.sensory-application > span { color: #c8d8c1; }
.sensory-application h3 { margin-top: 31px; color: var(--ivory); font-family: var(--title); font-size: clamp(1.8rem, 2.3vw, 2.5rem); font-weight: 400; letter-spacing: -.04em; line-height: .98; }
.sensory-application p { max-width: 330px; margin-top: 16px; color: rgba(248,246,240,.7); font-size: .81rem; line-height: 1.6; }
.sensory-faq { background: #0e3328; }

@media (max-width: 1000px) {
  .sensory-benefits .content-frame { grid-template-columns: 1fr; gap: 52px; }
}

@media (max-width: 860px) {
  .sensory-botanicals-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sensory-botanical:nth-child(2) { border-right: 0; }
  .sensory-botanical:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .sensory-botanical:nth-child(3) { padding-left: 0; }
  .sensory-benefits-grid { grid-template-columns: 1fr; }
  .sensory-benefit, .sensory-benefit + .sensory-benefit { min-height: 0; padding: 28px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .sensory-benefit:last-child { border-bottom: 0; }
}

@media (max-width: 620px) {
  .sustainable-hero-overlay { bottom: 42px; }
  .sensory-mobile-break { display: inline; }
  .sensory-botanicals, .sensory-benefits, .sensory-applications { padding-top: 72px; padding-bottom: 72px; }
  .sensory-band-head h2, .sensory-applications h2 { font-size: clamp(2.48rem, 10.1vw, 3.42rem); }
  .sensory-band-head > p:last-child, .sensory-applications-head > p:last-child { font-size: .88rem; }
  .sensory-botanicals-grid { margin-top: 46px; }
  .sensory-botanical, .sensory-botanical + .sensory-botanical { min-height: 0; padding: 24px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .sensory-botanical:last-child { border-bottom: 0; }
  .sensory-botanical h3 { margin-top: 20px; font-size: 1.9rem; }
  .sensory-botanical p { margin-top: 10px; font-size: .78rem; }
  .sensory-benefits .content-frame { gap: 42px; }
  .sensory-benefit h3 { margin-top: 21px; font-size: 1.9rem; }
  .sensory-benefit p { margin-top: 11px; font-size: .78rem; }
  .sensory-applications-grid { grid-template-columns: 1fr; gap: 12px; margin-top: 44px; }
  .sensory-application { min-height: 0; padding: 25px 22px; border-radius: 18px; }
  .sensory-application h3 { margin-top: 21px; font-size: 2rem; }
  .sensory-application p { margin-top: 11px; font-size: .79rem; }
}


/* Sensory garden pilot: hero offset, botanical visual and light FAQ treatment */
.sustainable-hero-overlay { bottom: clamp(78px, 7.6vw, 124px); }
.sensory-botanicals-title, .sensory-applications-title { max-width: none; }
.sensory-botanicals-layout { display: grid; grid-template-columns: minmax(290px, .82fr) minmax(0, 1.18fr); gap: clamp(34px, 5.5vw, 92px); align-items: stretch; margin-top: clamp(52px, 6vw, 88px); }
.sensory-botanicals-visual { min-height: 440px; margin: 0; overflow: hidden; border-radius: 24px; background: var(--green-800); }
.sensory-botanicals-visual img { width: 100%; height: 100%; object-fit: cover; }
.sensory-botanicals-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0; }
.sensory-botanical:nth-child(odd) { padding-left: 0; }
.sensory-botanical:nth-child(even) { border-right: 0; }
.sensory-botanical:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
.sensory-botanical:nth-child(3), .sensory-botanical:nth-child(4) { padding-top: clamp(25px, 3vw, 40px); }
.sensory-faq { background: #e5ece3; }
.sensory-faq .eyebrow { color: var(--green-600); }
.sensory-faq h2 { color: var(--green-950); }
.sensory-faq .text-module > p:last-child { color: var(--muted); }
.sensory-faq .maintenance-faq { border-top-color: var(--line); }
.sensory-faq .maintenance-faq details { border-bottom-color: var(--line); }
.sensory-faq .maintenance-faq summary span { color: var(--green-600); }
.sensory-faq .maintenance-faq summary strong { color: var(--green-950); }
.sensory-faq .maintenance-faq summary b { border-color: var(--green-950); color: var(--green-950); }
.sensory-faq .maintenance-faq details > div { color: var(--muted); }

@media (min-width: 621px) {
  .sensory-botanicals-title, .sensory-applications-title { white-space: nowrap; }
}

@media (max-width: 1000px) {
  .sensory-botanicals-layout { grid-template-columns: 1fr; }
  .sensory-botanicals-visual { min-height: 390px; aspect-ratio: 16 / 8; }
}

@media (max-width: 620px) {
  .sustainable-hero-overlay { bottom: 64px; }
  .sensory-botanicals-layout { gap: 38px; margin-top: 46px; }
  .sensory-botanicals-visual { min-height: 0; aspect-ratio: 4 / 3; border-radius: 20px; }
  .sensory-botanicals-grid { grid-template-columns: 1fr; }
  .sensory-botanical:nth-child(-n + 2), .sensory-botanical:nth-child(even) { border-right: 0; }
  .sensory-botanical:nth-child(3), .sensory-botanical:nth-child(4) { padding-top: 24px; }
  .sensory-faq { background: #e5ece3; }
}


/* Detail-page footer continuity */
.maintenance-page .site-footer { margin-top: 0; }
.related-mobile-break { display: none; }
@media (min-width: 621px) {
  .sustainable-related-title { max-width: none; white-space: nowrap; }
}
@media (max-width: 620px) {
  .related-mobile-break { display: inline; }
}


/* Sustainable solution applications: photographed contexts for people and places */
.sustainable-solution-page .sensory-application { display: flex; flex-direction: column; min-height: 0; padding: 0; overflow: hidden; }
.sensory-application-media { aspect-ratio: 4 / 3; margin: 0; overflow: hidden; border-bottom: 1px solid rgba(248,246,240,.28); background: var(--green-800); }
.sensory-application-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sensory-application-copy { display: flex; flex: 1; flex-direction: column; padding: clamp(24px, 2.5vw, 36px); }
.sensory-application-copy > span { color: #c8d8c1; font-family: var(--title); font-size: 1.13rem; }
.sensory-application-copy h3 { margin-top: 25px; }
.sensory-application-copy p { margin-top: 15px; }

@media (max-width: 620px) {
  .sustainable-solution-page .sensory-application { padding: 0; }
  .sensory-application-media { aspect-ratio: 16 / 10; }
  .sensory-application-copy { padding: 23px 22px 25px; }
  .sensory-application-copy h3 { margin-top: 20px; }
  .sensory-application-copy p { margin-top: 11px; }
}

/* Sustainable pages: precise desktop title rhythm without changing the mobile line breaks. */
@media (min-width: 621px) {
  .green-roofs-intro-title,
  .soil-intro-title { white-space: nowrap; }
}

.water-title-initial { margin-left: .075em; }

/* Exterior page: closing path from sustainable solutions to the dedicated theme page. */
.exterior-sustainability-cta { display: flex; justify-content: center; margin-top: clamp(46px, 5vw, 76px); }

/* Homes and apartments: reuse the exterior-space composition and balance an optional five-card layout. */
@media (min-width: 621px) {
  .interior-homes-intro-title { white-space: nowrap; }
}

@media (min-width: 900px) {
  .interior-homes-page .exterior-service-card:nth-child(4):nth-last-child(2),
  .interior-homes-page .exterior-service-card:nth-child(5):last-child { transform: translateX(50%); }
  .interior-homes-page .interior-homes-related .related-private-list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* Offices and studios: sustainable choices remain legible as a distinct editorial band. */
@media (min-width: 621px) {
  .interior-office-intro-title { white-space: nowrap; }
}

@media (min-width: 900px) {
  .interior-space-page--five-services .exterior-service-card:nth-child(4):nth-last-child(2),
  .interior-space-page--five-services .exterior-service-card:nth-child(5):last-child { transform: translateX(50%); }
  .interior-office-page .interior-office-related .related-private-list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

.interior-office-sustainability { padding: clamp(82px, 9vw, 144px) 0; background: #e5ece3; }
.interior-office-sustainability-head { max-width: 650px; }
.interior-office-sustainability-head > p:last-child { margin-top: var(--module-copy-gap); max-width: 590px; }
.interior-office-sustainability-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(44px, 5vw, 72px); border-top: 1px solid var(--line); }
.interior-office-sustainability-list article { min-height: 212px; padding: clamp(28px, 3vw, 45px) clamp(18px, 3vw, 42px); border-right: 1px solid var(--line); }
.interior-office-sustainability-list article:first-child { padding-left: 0; }
.interior-office-sustainability-list article:last-child { padding-right: 0; border-right: 0; }
.interior-office-sustainability-list h3 { color: var(--green-950); font-family: var(--title); font-size: clamp(1.85rem, 2.2vw, 2.7rem); font-weight: 400; line-height: .98; }
.interior-office-sustainability-list p { margin: 19px 0 0; color: var(--muted); font-size: .92rem; line-height: 1.75; }
.interior-office-sustainability-cta { display: flex; justify-content: flex-start; margin-top: clamp(42px, 5vw, 68px); }

@media (max-width: 760px) {
  .interior-office-sustainability { padding: 72px 0; }
  .interior-office-sustainability-list { grid-template-columns: 1fr; margin-top: 42px; }
  .interior-office-sustainability-list article,
  .interior-office-sustainability-list article:first-child,
  .interior-office-sustainability-list article:last-child { min-height: 0; padding: 29px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .interior-office-sustainability-list article:last-child { border-bottom: 0; }
  .interior-office-sustainability-list h3 { font-size: 2rem; }
  .interior-office-sustainability-list p { max-width: 470px; font-size: .83rem; }
}

/* Interior space services: compact sustainability link and reception details. */
.interior-catalog-cta { display: flex; justify-content: center; margin-top: clamp(42px, 5vw, 66px); }
.interior-catalog-cta .button { max-width: 100%; text-align: center; white-space: normal; line-height: 1.45; }
.interior-reception-page .exterior-service-card h3 { font-size: clamp(1.5rem, 2.05vw, 2.35rem); }
@media (min-width: 900px) {
  .interior-reception-page .interior-reception-related .related-private-list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .interior-catalog-cta .button { padding: 16px 24px; font-size: .76rem; }
  .interior-reception-page .exterior-service-card h3 { font-size: clamp(1.55rem, 7vw, 2.1rem); }
}

/* Five-service interior pages: balanced lower row and readable retail headings. */
.interior-retail-page .exterior-service-card h3 { font-size: clamp(1.35rem, 1.9vw, 2.15rem); }
@media (min-width: 861px) {
  .interior-space-page--five-services .exterior-service-card:nth-child(4):nth-last-child(2),
  .interior-space-page--five-services .exterior-service-card:nth-child(5):last-child { transform: translateX(50%); }
}
@media (min-width: 900px) {
  .interior-retail-page .interior-retail-related .related-private-list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .interior-retail-page .exterior-service-card h3 { font-size: clamp(1.4rem, 6.4vw, 2rem); }
}

/* Hospitality interiors: six services with balanced two-line headings. */
.interior-hospitality-page .exterior-service-card h3 { font-size: clamp(1.4rem, 1.95vw, 2.2rem); }
@media (min-width: 900px) {
  .interior-hospitality-page .interior-hospitality-related .related-private-list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .interior-hospitality-page .exterior-service-card h3 { font-size: clamp(1.5rem, 6.8vw, 2.1rem); }
}

/* Contacts: one welcoming entry point, five essential fields, optional context. */
.contacts-hero { min-height: clamp(440px, 41vw, 580px); }
.contacts-hero .hero-image { object-position: center; }
.contacts-hero .hero-content { padding-top: 70px; padding-bottom: 62px; }
.contacts-hero h1 { font-size: clamp(3.5rem, 5.9vw, 6.4rem); }
.contacts-hero .hero-lede { max-width: 620px; }
.contacts-main { padding: clamp(76px, 8vw, 118px) 0; background: var(--green-950); color: var(--ivory); }
.contacts-main .eyebrow { color: #c8d8c1; }
.contacts-main h2 { color: var(--ivory); }
.contacts-intro { max-width: 840px; }
.contacts-intro > p:not(.eyebrow) { max-width: 650px; color: rgba(248,246,240,.76); font-size: .98rem; line-height: 1.7; }
.contacts-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: clamp(48px, 7vw, 110px); align-items: start; margin-top: clamp(44px, 5vw, 72px); }
.contacts-form { display: block; min-width: 0; max-width: none; }
.contacts-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.contacts-fieldset legend { width: 100%; padding: 0; color: var(--ivory); font-family: var(--title); font-size: clamp(1.6rem, 2.2vw, 2.2rem); line-height: 1.15; }
.contacts-fieldset legend > span { display: inline-block; margin-right: 13px; color: #c8d8c1; font-size: 1.05rem; }
.contacts-fieldset-note { margin: 12px 0 26px; color: rgba(248,246,240,.71); font-size: .77rem; line-height: 1.65; }
.contacts-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 20px; }
.contacts-fieldset--optional { margin-top: 42px; padding-top: 34px; border-top: 1px solid rgba(248,246,240,.22); }
.contacts-form input:not([type="checkbox"]), .contacts-form select, .contacts-form textarea { border-radius: 15px; }
.contacts-form input:not([type="checkbox"]), .contacts-form select { min-height: 50px; }
.contacts-form select { appearance: none; padding-right: 44px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23c8d8c1' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 18px center; }
.contacts-form input:focus, .contacts-form select:focus, .contacts-form textarea:focus { outline: 2px solid #c8d8c1; outline-offset: 3px; }
.contacts-form label { font-size: .78rem; }
.contacts-form label small { font-size: .7rem; font-weight: 400; color: rgba(248,246,240,.64); }
.contacts-field-help { color: rgba(248,246,240,.63); font-size: .69rem; line-height: 1.5; }
.contacts-form textarea { min-height: 155px; }
.contacts-form .form-error:empty { display: none; }
.contacts-form .form-status { margin-bottom: 24px; border-radius: 12px; }
.contacts-data-note { max-width: 620px; margin-top: 30px; color: rgba(248,246,240,.7); font-size: .74rem; line-height: 1.65; }
.contacts-form .form-submit { margin-top: 24px; }
.contacts-aside { min-width: 0; padding-left: clamp(24px, 3vw, 46px); border-left: 1px solid rgba(248,246,240,.22); }
.contacts-aside h2 { font-size: clamp(2.3rem, 3.4vw, 3.65rem); }
.contacts-aside .text-module > p:not(.eyebrow) { color: rgba(248,246,240,.73); font-size: .9rem; line-height: 1.7; }
.contacts-direct { display: grid; gap: 28px; margin-top: 38px; }
.contacts-direct > div { display: grid; gap: 10px; }
.contacts-direct span { color: #c8d8c1; font-size: .63rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.contacts-direct a, .contacts-direct p { font-size: .84rem; line-height: 1.55; }
.contacts-direct a { overflow-wrap: anywhere; text-decoration: none; }
.contacts-direct a:hover { text-decoration: underline; text-underline-offset: 4px; }
.contacts-direct i { margin-left: 5px; font-style: normal; }
.contacts-aside-note { margin-top: 36px; padding-top: 28px; border-top: 1px solid rgba(248,246,240,.22); }
.contacts-aside-note > p { font-size: .78rem; line-height: 1.65; color: rgba(248,246,240,.7); }
.contacts-aside-note .text-link { display: inline-block; margin-top: 23px; color: #d8e5d2; border-color: #a8b8a1; white-space: normal; }
.contacts-page .site-footer { margin-top: 0; }
#richiesta { scroll-margin-top: 24px; }
@media (max-width: 1000px) {
  .contacts-layout { grid-template-columns: minmax(0, 1.2fr) minmax(230px, .7fr); gap: 38px; }
  .contacts-aside { padding-left: 24px; }
}
@media (max-width: 860px) {
  .contacts-layout { grid-template-columns: 1fr; gap: 58px; }
  .contacts-aside { padding: 34px 0 0; border-left: 0; border-top: 1px solid rgba(248,246,240,.22); }
  .contacts-aside .text-module { max-width: 620px; }
  .contacts-direct { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .contacts-hero { min-height: 495px; }
  .contacts-hero .hero-content { padding-top: 62px; padding-bottom: 48px; }
  .contacts-hero h1 { font-size: clamp(3.25rem, 13.7vw, 4.7rem); }
  .contacts-main { padding: 70px 0; }
  .contacts-main h2 { font-size: clamp(2.4rem, 10.6vw, 3.6rem); }
  .contacts-intro > p:not(.eyebrow) { font-size: .9rem; }
  .contacts-layout { margin-top: 40px; }
  .contacts-fields { grid-template-columns: 1fr; gap: 20px; }
  .contacts-fieldset legend { font-size: 1.68rem; }
  .contacts-fieldset legend > span { margin-right: 8px; }
  .contacts-fieldset--optional { margin-top: 34px; padding-top: 28px; }
  .contacts-form input:not([type="checkbox"]), .contacts-form select, .contacts-form textarea { font-size: 1rem; }
  .contacts-direct { grid-template-columns: 1fr; }
}

/* Home: a botanical editorial overview, separate from audience and service pages. */
.home-band { padding-top: clamp(76px, 8vw, 126px); padding-bottom: clamp(76px, 8vw, 126px); }
.home-page h3 { font-family: var(--title); font-weight: 400; letter-spacing: -.035em; line-height: 1.02; }
.home-page main p:not(.eyebrow) { font-size: .96rem; line-height: 1.72; }
.home-page main a:focus-visible { outline: 3px solid var(--sage); outline-offset: 6px; }
.home-mobile-break { display: none; }
.home-hero { min-height: clamp(600px, 55vw, 790px); }
.home-hero .hero-content { padding-top: 110px; padding-bottom: clamp(68px, 7vw, 106px); }
.home-hero h1 { max-width: 970px; font-size: clamp(3.6rem, 6.8vw, 7rem); line-height: .94; }
.home-page .home-hero .hero-lede { max-width: 840px; font-size: clamp(.97rem, 1.2vw, 1.13rem); line-height: 1.62; }
.home-hero .hero-overlay { background: linear-gradient(90deg, rgba(7,32,24,.73), rgba(7,32,24,.3) 52%, rgba(7,32,24,.06) 80%), linear-gradient(0deg, rgba(7,32,24,.3), transparent 65%); }
.home-intro-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .85fr); gap: clamp(50px, 9vw, 135px); align-items: center; }
.home-intro h2 { font-size: clamp(2.8rem, 4.1vw, 4.3rem); }
.home-intro-copy { max-width: 530px; border-left: 1px solid var(--green-600); padding-left: 26px; color: var(--muted); }
.home-intro-copy p + p { margin-top: 18px; }
.home-audiences { padding-top: 0; }
.home-section-head { max-width: 900px; }
.home-section-head > p:not(.eyebrow) { max-width: 650px; color: var(--muted); }
.home-audience-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(35px, 6vw, 90px); margin-top: 46px; }
.home-audience--business { padding-top: 76px; }
.home-audience-cover { position: relative; display: block; aspect-ratio: 5 / 4; overflow: hidden; border-radius: 24px; background: var(--green-950); }
.home-audience-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 500ms ease; }
.home-audience-cover:hover img { transform: scale(1.025); }
.home-photo-arrow { position: absolute; display: grid; place-items: center; right: 22px; bottom: 22px; width: 47px; height: 47px; border: 1px solid rgba(255,255,255,.8); border-radius: 50%; color: #fff; background: rgba(10,40,30,.6); font-size: 1.4rem; }
.home-audience-copy { padding-top: 25px; }
.home-audience-copy h3 { color: var(--green-950); font-size: clamp(2.2rem, 3vw, 3.3rem); }
.home-audience-copy h3 a { text-decoration: none; }
.home-audience-copy > p { max-width: 490px; margin-top: 15px; color: var(--muted); }
.home-audience-copy .text-link { display: inline-block; margin-top: 25px; white-space: normal; }
.home-spaces { background: #e5ece3; }
.home-space-head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .8fr); gap: clamp(40px, 9vw, 135px); align-items: end; }
.home-space-head > p { color: var(--muted); max-width: 500px; }
.home-space-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 3vw, 44px); margin-top: 46px; }
.home-space-card { position: relative; display: block; min-height: 500px; overflow: hidden; border-radius: 24px; background: var(--green-950); color: #fff; text-decoration: none; isolation: isolate; }
.home-space-card img { position: absolute; inset: 0; height: 100%; width: 100%; object-fit: cover; transition: transform 500ms ease; }
.home-space-card::after { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(6,35,25,.86), rgba(6,35,25,.3) 42%, transparent 76%); }
.home-space-card:hover img { transform: scale(1.025); }
.home-space-content { position: absolute; z-index: 2; right: 32px; left: 32px; bottom: 31px; display: flex; flex-direction: column; align-items: flex-start; }
.home-space-content strong { font-family: var(--title); font-size: clamp(2.5rem, 3.4vw, 3.8rem); font-weight: 400; line-height: 1; }
.home-space-content small { margin-top: 15px; font-size: .88rem; line-height: 1.65; }
.home-space-content em { margin-top: 23px; font-size: .77rem; font-weight: 600; font-style: normal; }
.home-space-content b { margin-left: 15px; font-size: 1rem; font-weight: 400; }
.home-feature-grid { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.08fr); align-items: center; gap: clamp(46px, 8vw, 125px); }
.home-feature-grid--reverse { grid-template-columns: minmax(0, 1.08fr) minmax(0, .86fr); }
.home-feature-copy { max-width: 600px; }
.home-feature-copy p + p { margin-top: 17px; }
.home-feature-copy h2 { font-size: clamp(2.8rem, 4.1vw, 4.8rem); }
.home-feature-image { position: relative; margin: 0; min-height: 560px; overflow: hidden; border-radius: 24px; background: var(--green-800); }
.home-feature-image img { position: absolute; width: 100%; height: 100%; inset: 0; display: block; object-fit: cover; }
.home-events { background: #10392c; }
.home-events h2 { color: var(--ivory); }
.home-events .eyebrow { color: #c8d8c1; }
.home-events .home-feature-copy > p:not(.eyebrow) { color: rgba(248,246,240,.76); }
.home-sustainability .home-feature-copy > p:not(.eyebrow) { color: var(--muted); }
.home-sustainability .home-feature-image { min-height: 675px; }
.home-sustainability-topics { display: grid; gap: 17px; margin-top: 27px; }
.home-sustainability-topics p { padding-left: 19px; border-left: 1px solid var(--green-600); }
.home-sustainability-topics strong { display: block; color: var(--green-950); font-family: var(--title); font-size: 1.65rem; font-weight: 400; line-height: 1.15; }
.home-sustainability-topics span { display: block; margin-top: 6px; color: var(--muted); font-size: .8rem; line-height: 1.65; }
.home-sustainability .button { margin-top: 30px; }
.home-team { background: #e5ece3; }
.home-team-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); gap: clamp(50px, 9vw, 138px); align-items: start; }
.home-team-intro h2 { font-size: clamp(2.8rem, 4.1vw, 4.7rem); }
.home-team-intro > p:not(.eyebrow) { max-width: 560px; color: var(--muted); }
.home-team-details { display: grid; gap: 31px; }
.home-team-details article + article { padding-top: 29px; border-top: 1px solid var(--line); }
.home-team-details article > span { color: var(--green-600); font-size: .66rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.home-team-details h3 { margin-top: 20px; color: var(--green-950); font-size: clamp(1.9rem, 2.5vw, 2.75rem); }
.home-team-details p { margin-top: 14px; color: var(--muted); }
.home-contact { background: var(--green-950); }
.home-contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 38px; align-items: center; }
.home-contact .eyebrow { color: #c8d8c1; }
.home-contact h2 { color: var(--ivory); font-size: clamp(2.8rem, 4.4vw, 4.9rem); }
.home-contact .text-module > p:not(.eyebrow) { max-width: 710px; color: rgba(248,246,240,.76); }
.home-contact .button { margin-top: 0; }
.home-page .site-footer { margin-top: 0; }
@media (max-width: 1000px) {
  .home-feature-grid, .home-feature-grid--reverse, .home-team-grid, .home-intro-grid, .home-space-head { gap: 40px; }
  .home-space-card { min-height: 440px; }
  .home-space-content { right: 25px; left: 25px; bottom: 25px; }
  .home-feature-image { min-height: 540px; }
  .home-contact-grid { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 860px) {
  .home-intro-grid, .home-feature-grid, .home-feature-grid--reverse, .home-team-grid, .home-space-head { grid-template-columns: 1fr; gap: 38px; }
  .home-feature-copy, .home-intro-copy { max-width: 680px; }
  .home-feature-image, .home-sustainability .home-feature-image { min-height: 0; aspect-ratio: 4 / 3; }
  .home-sustainability .home-feature-image { order: 2; }
  .home-audience-grid { gap: 30px; }
  .home-audience--business { padding-top: 50px; }
  .home-team-details { margin-top: 8px; }
  .home-hero { min-height: 635px; }
}
@media (max-width: 620px) {
  .home-band { padding-top: 72px; padding-bottom: 72px; }
  .home-audiences { padding-top: 0; }
  .home-hero { min-height: 590px; }
  .home-hero .hero-content { padding-top: 95px; padding-bottom: 56px; }
  .home-hero .hero-image { object-position: 58% center; }
  .home-hero h1 { font-size: clamp(3rem, 12.3vw, 4.5rem); }
  .home-page .home-hero .hero-lede { font-size: .92rem; max-width: 400px; }
  .home-desktop-break { display: none; }
  .home-mobile-break { display: inline; }
  .home-page main h2 { font-size: clamp(2.4rem, 9.8vw, 3.5rem); }
  .home-page main p:not(.eyebrow) { font-size: .88rem; }
  .home-intro h2 br { display: none; }
  .home-intro-copy { padding-left: 20px; }
  .home-audience-grid, .home-space-grid { grid-template-columns: 1fr; gap: 42px; margin-top: 34px; }
  .home-audience--business { padding-top: 0; }
  .home-audience-cover { aspect-ratio: 5 / 4; border-radius: 20px; }
  .home-audience-copy h3 { font-size: clamp(2rem, 8.4vw, 2.7rem); }
  .home-space-grid { gap: 22px; }
  .home-space-card { min-height: 420px; border-radius: 20px; }
  .home-space-content small { font-size: .82rem; }
  .home-feature-copy h2 br { display: none; }
  .home-feature-copy .button, .home-sustainability .button { max-width: 100%; white-space: normal; font-size: .77rem; gap: 10px; padding-left: 19px; padding-right: 19px; }
  .home-feature-image { border-radius: 20px; }
  .home-team-intro h2 br { display: none; }
  .home-team-details h3 { font-size: 1.94rem; }
  .home-contact .button { font-size: .78rem; }
}
@media (prefers-reduced-motion: reduce) {
  .home-page .home-audience-cover img, .home-page .home-space-card img { transition: none; }
}

/* People, professional network and newsletter: shared footer, scoped page modules. */
.footer-newsletter { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(40px, 8vw, 120px); padding-top: 58px; padding-bottom: 52px; border-bottom: 1px solid rgba(248,246,240,.17); }
.footer-newsletter h2 { margin: 0; color: var(--ivory); font-size: clamp(2.4rem, 3.8vw, 4.1rem); line-height: 1.03; }
.footer-newsletter-copy > p:last-child { margin-top: 17px; color: rgba(248,246,240,.72); font-size: .85rem; line-height: 1.65; }
.newsletter-form { min-width: 0; align-self: center; }
.newsletter-form > label:first-child { display: block; margin-bottom: 10px; color: var(--ivory); font-size: .76rem; font-weight: 500; }
.newsletter-input-row { display: flex; align-items: stretch; gap: 12px; }
.newsletter-input-row input { width: 100%; min-width: 0; min-height: 49px; padding: 13px 17px; border: 1px solid rgba(248,246,240,.45); border-radius: 15px; color: var(--ivory); background: rgba(248,246,240,.055); font: inherit; font-size: .9rem; }
.newsletter-input-row input::placeholder { color: rgba(248,246,240,.5); }
.newsletter-input-row .button { margin: 0; padding: 12px 23px; flex: 0 0 auto; }
.newsletter-consent { display: grid; grid-template-columns: 17px minmax(0, 1fr); align-items: start; gap: 10px; margin-top: 17px; font-size: .7rem; line-height: 1.6; color: rgba(248,246,240,.82); cursor: pointer; }
.newsletter-consent input { width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--sage); }
.newsletter-data-note { margin-top: 10px; font-size: .66rem; line-height: 1.65; color: rgba(248,246,240,.66); }
.newsletter-data-note a { color: inherit; text-underline-offset: 3px; overflow-wrap: anywhere; }
.newsletter-status { margin-top: 13px; color: #dcebd4; font-size: .77rem; line-height: 1.55; }
.newsletter-status:empty { display: none; }
.newsletter-status.is-error { color: #ffd5bf; }
.newsletter-form input:focus-visible, .newsletter-form button:focus-visible { outline: 2px solid var(--sage); outline-offset: 4px; }
.newsletter-form button:disabled, .network-form button:disabled { opacity: .65; cursor: wait; transform: none; }
.network-hero .hero-image { object-position: center 48%; }
.network-hero .hero-overlay { background: linear-gradient(90deg, rgba(6,34,24,.78), rgba(6,34,24,.3) 54%, rgba(6,34,24,.04) 85%); }
.network-hero h1 { max-width: 1050px; font-size: clamp(3.4rem, 6.2vw, 6.4rem); }
.network-intro { padding: clamp(74px, 8vw, 118px) 0; }
.network-intro .text-module { align-items: center; text-align: center; }
.network-intro h2 { max-width: 1040px; font-size: clamp(2.7rem, 4vw, 4.3rem); }
.network-intro .text-module > p:not(.eyebrow) { max-width: 850px; color: var(--muted); font-size: .96rem; line-height: 1.75; }
.network-form .contacts-data-note a { color: inherit; overflow-wrap: anywhere; text-underline-offset: 3px; }
.network-form input[type="file"] { padding: 13px 15px; font-size: .84rem; max-width: 100%; }
.network-form input[type="file"]::file-selector-button { margin: 0 14px 0 0; border: 1px solid rgba(248,246,240,.5); border-radius: 999px; padding: 7px 13px; color: var(--ivory); background: transparent; font: inherit; font-size: .73rem; cursor: pointer; }
.network-form .contacts-field-help { display: block; margin-top: 9px; line-height: 1.6; }
.network-aside-copy { margin-top: 24px; font-size: .88rem; line-height: 1.75; color: rgba(248,246,240,.73); }
.network-aside-copy p + p { margin-top: 18px; }
.engagement-status { margin-bottom: 24px; padding: 16px 18px; border: 1px solid rgba(200,216,193,.4); border-radius: 12px; color: #e3eedc; font-size: .84rem; line-height: 1.6; }
.engagement-status:empty { display: none; }
.engagement-status.is-error { border-color: #d8aa91; color: #ffd5bf; }
.network-page .site-footer { margin-top: 0; }
@media (max-width: 800px) {
  .footer-newsletter { grid-template-columns: 1fr; gap: 30px; }
  .newsletter-form { max-width: 620px; width: 100%; }
}
@media (max-width: 620px) {
  .footer-newsletter { padding-top: 42px; padding-bottom: 38px; }
  .footer-newsletter h2 { font-size: 2.6rem; }
  .newsletter-input-row { gap: 9px; }
  .newsletter-input-row .button { padding: 12px 17px; font-size: .74rem; gap: 9px; }
  .newsletter-input-row input { font-size: 1rem; padding-left: 13px; padding-right: 13px; }
  .newsletter-consent { font-size: .73rem; }
  .newsletter-data-note { font-size: .69rem; }
  .network-hero h1 { font-size: clamp(2.9rem, 12vw, 4.6rem); }
  .network-hero .hero-image { object-position: 65% center; }
  .network-intro { padding-top: 72px; padding-bottom: 72px; }
  .network-intro h2 { font-size: 2.65rem; }
  .network-intro .text-module > p:not(.eyebrow) { font-size: .88rem; }
}

@media (max-width: 620px) {
  .partner-page .network-hero h1 { font-size: clamp(2.2rem, 10.3vw, 3rem); }
}

/* Pittogramma fornito dal cliente: forme e proporzioni originali, 3 novembre 2026. */
.brand-mark[data-blum-pictogram] { color: #134337; }
.footer-brand .brand-mark[data-blum-pictogram] { color: var(--ivory); }

/* Informative e trasparenza: pagine testuali, nessun tracking applicativo. */
.legal-page main { padding-bottom: 0; }
.legal-hero { padding-block: clamp(65px, 8vw, 112px) 48px; background: var(--ivory); }
.legal-hero h1 { color: var(--green-950); max-width: 1050px; font-size: clamp(3rem, 7vw, 6rem); line-height: 1.04; }
.legal-hero .text-module > p:not(.eyebrow) { max-width: 780px; color: var(--muted); line-height: 1.8; }
.legal-version { margin-top: 25px; color: var(--muted); font-size: .73rem; line-height: 1.7; }
.legal-draft { margin-top: 30px; padding: 23px 26px; border: 1px solid #b8aa8f; border-radius: 18px; background: #eee8dc; color: #4f493d; font-size: .84rem; line-height: 1.8; max-width: 950px; }
.legal-draft strong { display: block; margin-bottom: 5px; }
.legal-layout { display: grid; grid-template-columns: minmax(180px, .34fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 110px); padding-top: 20px; padding-bottom: 100px; }
.legal-index { align-self: start; position: sticky; top: 28px; display: flex; flex-direction: column; gap: 15px; padding-right: 25px; border-right: 1px solid var(--line); }
.legal-index a { color: var(--green-800); font-size: .78rem; line-height: 1.6; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.legal-copy { max-width: 850px; min-width: 0; }
.legal-copy section { scroll-margin-top: 35px; }
.legal-copy section + section { margin-top: 45px; padding-top: 35px; border-top: 1px solid var(--line); }
.legal-copy h2 { font-size: clamp(2rem, 3vw, 3rem); line-height: 1.12; }
.legal-copy h3 { margin-top: 25px; color: var(--green-950); font-family: var(--title); font-size: 1.7rem; font-weight: 400; }
.legal-copy p { margin-top: 19px; font-size: .91rem; line-height: 1.9; color: #49554a; overflow-wrap: break-word; }
.legal-copy ul { padding-left: 22px; margin-block: 19px; }
.legal-copy li { padding-left: 4px; margin-top: 12px; font-size: .9rem; line-height: 1.85; color: #49554a; }
.legal-copy a { color: var(--green-800); text-underline-offset: 4px; }
.legal-copy .button { color: white; }
.legal-page .site-footer { margin-top: 0; }
.privacy-request-context { margin-bottom: 28px; padding: 20px; border: 1px solid rgba(248,246,240,.42); border-radius: 16px; }
.contacts-fieldset[hidden] { display: none; }
@media (max-width: 800px) {
  .legal-layout { grid-template-columns: 1fr; gap: 40px; padding-bottom: 72px; }
  .legal-index { position: static; padding-right: 0; padding-bottom: 28px; border-right: 0; border-bottom: 1px solid var(--line); }
}
@media (max-width: 620px) {
  .legal-hero { padding-top: 60px; padding-bottom: 35px; }
  .legal-hero h1 { font-size: clamp(2.8rem, 11vw, 4rem); }
  .legal-draft { padding: 20px; }
  .legal-copy p, .legal-copy li { font-size: .86rem; }
}

/* Recapito confermato: leggibile anche nelle colonne strette del footer. */
.contact-email {
  overflow-wrap: anywhere;
  word-break: normal;
}


/* P.IVA autorizzata nel footer: discreta, senza spaziature da elementi span. */
.footer-bottom {
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  column-gap: 18px;
  row-gap: 12px;
}
.footer-bottom > .footer-vat {
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  color: inherit;
  font-size: .7rem;
  line-height: 1.6;
  white-space: nowrap;
}
.footer-bottom > span:last-child {
  flex-wrap: wrap;
  margin-left: auto;
}
@media (max-width: 620px) {
  .footer-bottom { align-items: flex-start; }
  .footer-bottom > span:last-child { margin-left: 0; }
}

/* Candidature: conferma autonoma di maggiore età sul fondo verde del modulo. */
.contacts-form .career-adult-confirmation {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 24px 0 0;
  color: var(--ivory);
  font-size: .8rem;
  line-height: 1.6;
  cursor: pointer;
}
.career-adult-confirmation input[type="checkbox"] {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 2px 0 0;
  padding: 0;
  accent-color: var(--sage);
}
.career-adult-confirmation input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--ivory);
  outline-offset: 4px;
}
.career-adult-confirmation > span {
  flex: 1;
  min-width: 0;
}

/* Responsive refinements: compact navigation and uncropped private-project image. */
.hero-mobile-space { display: none; }
.site-header .brand > span { -webkit-text-stroke: .24px currentColor; }

.private-project-page .project-visualization-image {
  aspect-ratio: auto;
  min-height: 0;
}
.private-project-page .project-visualization-image img {
  position: static;
  inset: auto;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.private-project-page .project-visualization-image::after { display: none; }
.private-project-page .project-visualization-image figcaption {
  position: static;
  inset: auto;
  padding: 18px 24px 22px;
}

@media (max-width: 860px) {
  .site-nav {
    right: var(--edge);
    left: auto;
    width: max-content;
    max-width: calc(100vw - var(--edge) - var(--edge));
    padding-right: 24px;
    padding-left: 24px;
    justify-content: stretch;
    font-size: 1rem;
    line-height: 1.4;
    border: 1px solid transparent;
    border-radius: 0 0 18px 18px;
    box-shadow: 0 14px 28px rgba(9, 40, 29, .13);
  }
  .site-nav.is-open {
    max-height: min(570px, calc(100dvh - 100px));
    overflow-y: auto;
    border-color: var(--line);
  }
  .home-hero .hero-overlay {
    background: linear-gradient(0deg, rgba(7, 32, 24, .68) 0%, rgba(7, 32, 24, .56) 55%, rgba(7, 32, 24, .32) 85%, rgba(7, 32, 24, .08) 100%);
  }
  .about-page .core-streams {
    padding-right: var(--edge);
    padding-left: var(--edge);
  }
}

@media (max-width: 620px) {
  .hero-desktop-break { display: none; }
  .hero-mobile-space { display: inline; }
  .private-project-page .project-visualization-image figcaption { padding: 16px 18px 20px; }
}
