/* Components: independently replaceable CMS media and field-safe layouts. */
.promo { display:flex; align-items:center; min-height:73px; background:var(--banner-background); color:var(--banner-color); overflow:hidden; position:relative; }
.ticker-window { overflow:hidden; flex:1; min-width:0; }
.ticker-track { display:flex; width:max-content; animation:ticker var(--banner-duration) linear infinite; }
.ticker-original,.ticker-copy { white-space:nowrap; padding:15px 35px; flex-shrink:0; }
.ticker-link { font-family:var(--display);font-weight:900;font-size:clamp(21px,2.7vw,34px);letter-spacing:.01em;color:inherit;text-decoration:none; }
.ticker-controls { display:flex; align-self:stretch; background:var(--banner-background); position:relative; z-index:1; padding-inline:8px; }
.ticker-controls button { color:inherit; background:transparent; border:0; width:42px; font-size:21px; }
.promo.paused .ticker-track,.promo:hover .ticker-track,.promo:focus-within .ticker-track { animation-play-state:paused; }
.promo.reverse .ticker-track { animation-direction:reverse; }
.promo.is-static .ticker-track { animation:none; width:100%; }.promo.is-static .ticker-original { white-space:normal; padding:15px 25px; }.promo.is-static .ticker-copy {display:none}
.promo.is-static [data-ticker-pause]{display:none}
[data-promo-fallback] { margin:0;padding:20px; }
@keyframes ticker { to{transform:translateX(-50%)} }
.services-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:22px; }
.service-card { border:1px solid var(--line);background:var(--color-background);transition:transform .3s,border-color .3s;min-width:0; }
.service-card:hover {transform:translateY(-5px);border-color:var(--color-lime)}
.service-photo {height:190px;overflow:hidden;position:relative}
.service-photo img {width:100%;height:100%;object-position:50% 30%;filter:saturate(.78);transition:transform .5s,filter .5s}
.service-card:hover img {transform:scale(1.035);filter:saturate(1)}
.card-number {position:absolute;bottom:9px;left:12px;font-family:var(--display);font-size:32px;color:#fff;text-shadow:0 2px 8px #000}
.service-body {padding:20px}.service-body h3{font-family:var(--display);font-size:25px;letter-spacing:.01em;margin-bottom:12px}.service-body p{font-size:13px;color:var(--muted);min-height:65px}.service-body .text-link{font-size:10px}
.gallery-section {background:var(--color-forest);overflow:hidden}
.gallery-toolbar {display:flex;justify-content:space-between;align-items:center;gap:20px;margin:32px 0 25px}
.gallery-filters {display:flex;gap:10px;flex-wrap:wrap}
.gallery-filters button {border:1px solid var(--line);background:transparent;color:var(--color-text);padding:12px 25px;font-size:12px;font-weight:700;min-height:46px;border-radius:2px}
.gallery-filters button[aria-pressed=true] {background:var(--color-lime);border-color:var(--color-lime);color:#17191a}
.gallery-arrows {display:flex;gap:10px}
.gallery-track {display:flex;gap:23px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding:4px 0 18px;scrollbar-width:thin;scrollbar-color:var(--color-lime) transparent;scroll-behavior:smooth}
.gallery-card {flex:0 0 calc((100% - 46px)/3);scroll-snap-align:start;min-width:0}
.gallery-photo{overflow:hidden;background:var(--color-surface)}
.gallery-photo img{width:100%;aspect-ratio: .78;transition:transform .6s;object-position:50% 30%}
.gallery-card:hover img{transform:scale(1.025)}
.gallery-caption{padding:20px 0 3px}.gallery-caption h3{font-family:var(--display);font-size:28px;margin-bottom:6px;letter-spacing:.02em}.gallery-caption p{font-size:13px;color:var(--muted);margin:0}
.gallery-status{color:var(--muted);margin:12px 0 0}
.retro-section {background:#e6ddcb;color:#17191a;overflow:hidden}
.retro-section .eyebrow{color:#79512d}.retro-section .section-intro{color:#47443e}.retro-section a{color:inherit}
.retro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px 28px}
.retro-card{border:1px solid #17191a;background:#f4f0e8;box-shadow:5px 6px 0 #17191a;position:relative;transition:transform .3s,box-shadow .3s}
.retro-card:nth-child(3n+1){rotate:-1.5deg}.retro-card:nth-child(3n){rotate:1.5deg}
.retro-card:hover{transform:translateY(-6px);box-shadow:8px 12px 0 #17191a}
.retro-photo {position:relative;margin:12px;overflow:hidden}
.retro-photo img{width:100%;aspect-ratio:1.12;object-position:50% 20%;filter:saturate(.74) contrast(1.05);transition:transform .5s}
.retro-card:hover img{transform:scale(1.04)}
.retro-badge{position:absolute;bottom:8px;left:10px;background:var(--color-lime);color:#17191a;padding:4px 9px;font-size:10px;font-weight:800;letter-spacing:.09em;transform:rotate(-4deg);margin:0}
.retro-card:nth-child(3n+2) .retro-badge{background:var(--color-accent)}
.retro-card:nth-child(3n) .retro-badge{background:var(--color-mustard)}
.retro-body{padding:12px 23px 24px}.retro-body h3{font-family:var(--display);font-weight:900;font-size:36px;letter-spacing:-.025em;margin-bottom:12px}.retro-body p{font-size:13px;min-height:63px;line-height:1.6}.retro-body a{font-size:11px}.retro-body a:hover{color:#884221}
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:38px 24px}.video-card:first-child{grid-column:span 2;grid-row:span 2}.video-card{min-width:0}
.video-thumb{position:relative;background:var(--color-surface);overflow:hidden;margin-bottom:19px}.video-thumb video{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:50% 25%}.video-card:first-child video{aspect-ratio:1.32}
.video-label{position:absolute;top:12px;left:12px;font-size:9px;font-weight:700;letter-spacing:.08em;background:#17191add;color:#f4f0e8;padding:3px 7px;pointer-events:none}
.video-card .eyebrow{font-size:9px;margin-bottom:9px}.video-card h3{font-family:var(--display);font-size:25px;letter-spacing:.01em;margin-bottom:10px}.video-card:first-child h3{font-size:39px}.video-card p:not(.eyebrow){font-size:13px;color:var(--muted)}.video-card .video-open{font-size:11px}
.video-dialog{width:min(960px,calc(100% - 32px));border:1px solid var(--line);padding:24px;background:#17191a;color:#f4f0e8;max-height:90dvh;overflow:auto}
.video-dialog::backdrop{background:#000d;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.dialog-top h2{font-size:23px;margin:0}.dialog-top button{flex-shrink:0}
.video-dialog video{width:100%;max-height:65dvh;background:#000}.video-dialog p{margin-top:18px;font-size:14px}.video-dialog [data-player-status]{color:#d9ae4a}
@media(max-width:1024px){.services-grid{grid-template-columns:repeat(2,1fr)}.service-photo{height:235px}.service-body p{min-height:44px}.retro-grid{gap:28px 20px}.retro-body{padding:10px 16px 20px}.retro-body h3{font-size:28px}.video-card:first-child h3{font-size:32px}}
@media(max-width:767px){.services-grid{gap:16px}.service-photo{height:180px}.service-body{padding:15px}.service-body h3{font-size:24px}.service-body p{min-height:90px;font-size:12px}.service-body .text-link{font-size:10px}.gallery-toolbar{flex-wrap:wrap}.gallery-filters button{padding:12px 22px}.gallery-arrows .circle-button{width:40px;height:40px}.gallery-card{flex-basis:78%}.gallery-caption h3{font-size:28px}.retro-grid{grid-template-columns:1fr 1fr;gap:30px 18px}.retro-body h3{font-size:28px}.retro-body p{min-height:105px;font-size:12px}.retro-photo{margin:8px}.retro-badge{font-size:8px;left:4px;bottom:8px}.video-grid{grid-template-columns:1fr 1fr}.video-card:first-child{grid-column:span 2;grid-row:span 1}.video-card:first-child video{aspect-ratio:16/10}.video-card h3{font-size:23px}.video-card:first-child h3{font-size:32px}.video-card .video-open{font-size:10px}.video-dialog{padding:16px}.promo{min-height:65px}.ticker-controls{padding:0}.ticker-controls button{width:34px}.ticker-original,.ticker-copy{padding:15px 22px}}
@media(max-width:479px){.retro-grid{grid-template-columns:1fr;gap:38px;margin-inline:6px}.retro-body h3{font-size:39px}.retro-body p{min-height:0;font-size:14px}.retro-photo img{aspect-ratio:1.16}.retro-badge{font-size:10px}.service-photo{height:142px}.service-body h3{font-size:22px}.service-body p{min-height:115px}.video-grid{grid-template-columns:1fr}.video-card:first-child{grid-column:auto}.video-card h3{font-size:28px}.gallery-arrows{margin-left:auto}.gallery-filters{gap:6px}.gallery-filters button{padding:11px 18px}.video-card:first-child h3{font-size:30px}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}.ticker-copy{display:none}.ticker-original{white-space:normal}.gallery-track{scroll-behavior:auto}.promo [data-ticker-pause]{display:none}}
html[data-motion=off] .ticker-track{animation:none}html[data-motion=off] .ticker-copy{display:none}html[data-motion=off] .ticker-original{white-space:normal}html[data-motion=off] .gallery-track{scroll-behavior:auto}

.retro-badge{background:var(--card-accent,var(--color-lime))}
.retro-card:nth-child(3n+2) .retro-badge{background:var(--card-accent,var(--color-accent))}
.retro-card:nth-child(3n) .retro-badge{background:var(--card-accent,var(--color-mustard))}
