.decision-section { background: #f7f7f0; }
.decision-flow { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); position: relative; gap: 24px; }
.decision-step { position:relative; z-index:1; display:flex; flex-direction:column; align-items:flex-start; text-decoration:none; color:var(--ink); padding:0 14px 18px 0; border-radius:12px; }
.decision-node { display:flex; align-items:center; gap:16px; width:100%; height:40px; color:#587060; font-size:14px; font-weight:500; line-height:1; letter-spacing:0; margin-bottom:24px; }
.decision-number { flex:0 0 2ch; font-variant-numeric:lining-nums tabular-nums; }
.decision-node svg { width:20px; height:20px; flex:0 0 20px; fill:none; stroke:currentColor; stroke-width:1.5; }
.decision-node::after { content:''; flex:1; height:1px; background:#c78c6c; transform-origin:left; }
.decision-step small { text-transform:uppercase; letter-spacing:.1em; font-size:11px; font-weight:650; color:#577062; }
.decision-step h3 { margin:10px 0 13px; max-width:100%; overflow-wrap:anywhere; hyphens:auto; font-size:clamp(20px,2vw,28px); line-height:1.2; }
.decision-step p { font-size:15px; line-height:1.65; color:#5a6660; margin:0; }
.decision-foundation { display:grid; grid-template-columns:1fr 1fr; margin-top:24px; border:1px solid #d2dbcb; border-radius:16px; background:#edf1e7; overflow:hidden; }
.decision-foundation>a { display:grid; grid-template-columns:38px minmax(0,1fr) 18px; align-items:start; gap:19px; padding:27px; color:var(--ink); text-decoration:none; }
.decision-foundation>a+a { border-left:1px solid #d2dbcb; }
.decision-foundation strong { display:block; font-size:18px; line-height:1.4; margin-bottom:8px; }
.decision-foundation span span { font-size:14px; line-height:1.7; display:block; color:#526355; }
.foundation-symbol svg { width:32px; height:32px; fill:none; stroke:#537d60; stroke-width:1.4; }
@media(hover:hover) {
 .decision-step:hover h3 { color:#a94f29; }
 .decision-foundation>a:hover { background:#e2ead9; }
}
.decision-node svg,.decision-foundation>a { transition:transform .2s,background .2s; }
.decision-step:focus-visible,.decision-foundation>a:focus-visible { outline:3px solid #b5673c; outline-offset:5px; }
.home-compact .product-gallery { display:grid; grid-template-columns:205px minmax(0,1fr); column-gap:24px; align-items:start; }
.product-gallery .gallery-categories { grid-column:1/-1; }
.product-gallery .gallery-toolbar { grid-column:2; grid-row:2; min-height:66px; border-radius:14px 14px 0 0; }
.product-gallery .gallery-main { grid-column:2; grid-row:3; width:100%; min-width:0; min-height:0; aspect-ratio:16/10; background:#eef1ed; padding:12px; }
.product-gallery .gallery-main img { width:100%; height:100%; object-fit:contain; }
.home-compact .product-gallery .gallery-thumbs { grid-column:1; grid-row:2/5; display:flex; flex-direction:column; gap:8px; overflow:auto; max-height:710px; margin:0; padding:0 8px 12px 0; scroll-snap-type:none; }
.product-gallery .gallery-thumb { display:flex; align-items:center; gap:10px; min-height:58px; width:100%; flex-shrink:0; border:1px solid #d4ddcc; border-radius:10px; padding:10px 12px; text-align:left; background:#fff; transition:background .2s,border-color .2s; }
.product-gallery .gallery-thumb[hidden] { display:none; }
.product-gallery .gallery-thumb .thumb-image { width:44px; height:32px; flex-shrink:0; border-radius:4px; overflow:hidden; margin:0; opacity:.8; }
.product-gallery .gallery-thumb .thumb-image img { width:100%; height:100%; object-fit:cover; }
.product-gallery .gallery-thumb>span:last-child { min-width:0; overflow-wrap:anywhere; hyphens:auto; padding:0; font-size:12px; line-height:1.4; font-weight:600; }
.product-gallery .gallery-thumb[aria-pressed=true] { border-color:#345644; background:#e5edde; box-shadow:inset 3px 0 #345644; color:#1d392b; }
.product-gallery .gallery-description { grid-column:2; grid-row:4; align-items:start; padding-top:20px; }
.product-gallery .gallery-description h3 { font-size:22px; }
.product-gallery .gallery-description p { max-width:700px; }
.product-gallery>.image-note { grid-column:2; margin-top:12px; }
.product-gallery>.gallery-variants:not([hidden]) { grid-column:2; grid-row:3; z-index:2; align-self:start; justify-self:start; margin:14px; box-shadow:0 3px 12px #203a2826; background:white; border-radius:8px; }
.product-gallery:has(>.gallery-variants:not([hidden])) .gallery-main { padding-top:76px; }
.film-chapters { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(min-width:1000px) {
 .decision-flow.reveal-in .decision-node::after { animation:decision-trace 1.15s cubic-bezier(.16,1,.3,1) both; }
 .decision-flow.reveal-in .decision-step { animation:decision-arrive .6s both; animation-delay:calc(var(--step) * 100ms); }
 .decision-foundation.reveal-in .foundation-symbol { animation:decision-arrive .55s both; }
}
@keyframes decision-trace { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes decision-arrive { from { opacity:.5; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:999px) {
 .decision-flow { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .decision-node { margin-bottom:12px; }
 .home-compact .product-gallery { grid-template-columns:1fr; }
 .product-gallery .gallery-toolbar { grid-column:1; grid-row:3; }
 .product-gallery .gallery-main { grid-column:1; grid-row:4; }
 .home-compact .product-gallery .gallery-thumbs { grid-column:1; grid-row:2; flex-direction:row; max-height:none; margin:0 0 15px; padding:2px 2px 10px; }
 .product-gallery .gallery-thumb { width:175px; }
 .product-gallery .gallery-description { grid-column:1; grid-row:5; }
 .product-gallery>.image-note { grid-column:1; }
 .product-gallery>.gallery-variants:not([hidden]) { grid-column:1; grid-row:4; }
}
@media(max-width:600px) {
 .decision-flow { gap:22px 15px; }
 .decision-step { padding-right:0; }
 .decision-step h3 { font-size:21px; }
 .decision-step p { font-size:13px; }
 .decision-foundation { grid-template-columns:1fr; }
 .decision-foundation>a { padding:22px 18px; gap:12px; }
 .decision-foundation>a+a { border-left:0; border-top:1px solid #d2dbcb; }
 .product-gallery .gallery-main { aspect-ratio:4/3; padding:6px; }
 .product-gallery .gallery-description { gap:15px; flex-direction:column; }
 .product-gallery .gallery-description h3 { font-size:20px; }
 .product-gallery .gallery-categories { gap:6px; }
 .product-gallery .gallery-categories button { font-size:12px; min-height:44px; padding:10px; }
 .film-chapters { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(prefers-reduced-motion:reduce) {
 .decision-flow.reveal-in .decision-node::after,.decision-flow.reveal-in .decision-step,.decision-foundation.reveal-in .foundation-symbol { animation:none; }
 .decision-node svg,.decision-foundation>a,.product-gallery .gallery-thumb { transition:none; }
}

/* Four planning perspectives, with the original-resolution image given the full width. */
.home-compact .planning-gallery { display:flex; flex-direction:column; gap:0; }
.planning-gallery > * { width:100%; }
.planning-gallery .gallery-categories { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); order:0; gap:10px; }
.planning-gallery .gallery-categories button { min-height:64px; justify-content:center; font-size:16px; font-weight:600; overflow-wrap:anywhere; }
.gallery-perspective { display:grid; grid-template-columns:1fr 2fr; gap:32px; align-items:start; padding:22px 0 30px; order:1; }
.gallery-perspective h3 { font-size:26px; margin:0; overflow-wrap:anywhere; }
.gallery-perspective p { margin:0; max-width:790px; color:#5a6660; line-height:1.7; }
.home-compact .planning-gallery .gallery-thumbs { display:flex; flex-direction:row; order:2; max-height:none; gap:8px; overflow-x:auto; padding:2px 2px 14px; margin:0 0 10px; }
.planning-gallery .gallery-thumb { width:190px; min-height:60px; }
.planning-gallery .gallery-toolbar { order:3; }
.planning-gallery > .gallery-variants:not([hidden]) { position:static; order:4; margin:0; border-radius:0; box-shadow:none; }
.planning-gallery .gallery-main { order:5; aspect-ratio:16/10; padding:8px; }
.planning-gallery:has(>.gallery-variants:not([hidden])) .gallery-main { padding-top:8px; }
.planning-gallery .gallery-main.is-portrait { width:min(100%,340px); aspect-ratio:664/1170; align-self:center; margin:24px 0 6px; padding:7px; border:7px solid #20352d; border-radius:28px; background:#f6f7f3; box-shadow:0 18px 40px #20352d22; }
.planning-gallery .gallery-main.is-portrait img { border-radius:15px; }
.planning-gallery .gallery-description { order:6; }
.planning-gallery > .image-note { order:7; }
.lightbox-image-wrap img.is-portrait { width:min(100%,420px); min-width:0; max-width:100%; height:auto; }
@media(max-width:760px) {
 .planning-gallery .gallery-categories { grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
 .planning-gallery .gallery-categories button { min-height:54px; font-size:14px; }
 .gallery-perspective { grid-template-columns:1fr; gap:10px; padding:15px 0 22px; }
 .gallery-perspective h3 { font-size:23px; }
 .gallery-perspective p { font-size:14px; }
 .planning-gallery .gallery-main { aspect-ratio:4/3; }
 .planning-gallery .gallery-main.is-portrait { width:min(85%,340px); }
 .planning-gallery .gallery-thumb { width:160px; }
}
