/* V17: warm-white / mist-gray / brand-orange. No dark UI surfaces.
   Keep this layer last so legacy V14/V15 rules cannot restore tall images. */
:root { --ink:#393a37; --muted:#696c65; --paper:#f8f7f3; --white:#fffefa; --line:#e1e2da; --orange:#ed671f; --orange-deep:#b94a12; }
body, body.v14 { --v14-paper:#f8f7f3; --v14-ink:#393a37; --v14-soft:#eceee7; color:var(--ink); background:var(--paper); }
::selection { background:#ffe1c7; color:#82401c; }
:focus-visible { outline:3px solid #c55218; outline-offset:5px; }
main { overflow:clip; }
.site-header, .v14 .site-header { background:rgba(255,254,250,.97); border-bottom:1px solid #e5e5dc; }
.nav-wrap { min-height:80px; }
.site-nav a:not(.nav-cta):hover, .site-nav a:not(.nav-cta)[aria-current="page"], .v14 .site-nav a:not(.nav-cta)[aria-current="page"] { color:var(--orange-deep); background:#fff0e4; }
.v14 .site-nav a:not(.nav-cta)[aria-current="page"]::after { display:none; }
.skip-link, .copy-button { background:var(--orange-deep); color:#fff; }
.section, .v14 .v14-section { padding:80px 0; }
.section-head, .v14 .v14-head { gap:clamp(30px,5vw,76px); margin-bottom:38px; }
.section-head h2, .split h2, .v14 .v14-head h2 { font-size:clamp(30px,3.1vw,44px); line-height:1.28; letter-spacing:-.025em; }
.section-dark, .v14 .v14-section-dark { background:#edf0e9; color:var(--ink); }
.section-dark .section-head p, .v14 .v14-section-dark .v14-head p,
.timeline-item p, .section-dark .fact dt, .section-dark .article-row time, .section-dark .article-row span { color:var(--muted); }
.section-dark .eyebrow { color:var(--orange-deep); }
.section-dark .fact { color:var(--ink); background:#fffefa; }
.section-dark .article-row { border-color:var(--line); }
.timeline-item { background:#fffefa; border:1px solid var(--line); border-top:2px solid var(--orange); border-radius:12px; }
.culture-statement { color:var(--ink); background:#fbe8d8; border:1px solid #efd4bd; }
.culture-statement strong { color:var(--orange-deep); }
.culture-statement span { color:var(--muted); }
.brand-feature { background:#f0eee6; color:var(--ink); }
.brand-copy p { color:var(--muted); }
.tag { border-color:#cecfc4; }
.site-footer { background:#f0f1eb; color:var(--ink); padding:60px 0 28px; border-top:1px solid #dde0d6; }
.footer-brand p, .footer-col a, .footer-bottom { color:var(--muted); }
.footer-col a:hover { color:var(--orange-deep); }
.footer-bottom { margin-top:38px; padding-top:24px; border-top-color:#d7dbd0; }
.footer-col h3 { color:#4a5047; }
.button-light { background:#fffefa; color:var(--orange-deep); border-color:#e1d5c6; }
.v14 .v14-actions a { border-radius:8px; border-color:#d2d6c9; color:#50564b; }
.v14 .v14-actions a:first-child { color:#fff; }
.v14 .v14-hero { height:540px; min-height:0; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.v14 .v14-hero-copy { min-width:0; padding:48px clamp(30px,5vw,80px); }
.v14 .v14-kicker { margin-bottom:24px; letter-spacing:.09em; color:var(--orange-deep); }
.v14 .v14-hero h1 { font-size:clamp(42px,4.5vw,64px); line-height:1.16; }
.v14 .v14-hero p { margin-top:24px; font-size:16px; line-height:1.85; }
.v14 .v14-actions { margin-top:28px; }
.v14 .v14-hero-media { min-height:0; height:100%; }
.v14 .v14-hero-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 52%; }
.v14 .v14-hero-media::after { display:none; }
.v14 .v14-hero-index { background:#fff9ee; color:#646c5c; padding:9px 13px; border-radius:6px; right:22px; bottom:22px; }
.v14 .v14-metrics { background:#efeee6; color:var(--ink); border-block:1px solid #e1dfd3; }
.v14 .v14-metric { min-height:116px; padding:25px 30px; border-right-color:#dadbcf; }
.v14 .v14-metric strong { font-size:20px; color:#5e654f; }
.v14 .v14-metric span { color:var(--muted); }
.v14 .v14-service-grid { border:0; gap:16px; }
.v14 .v14-service { min-height:238px; padding:26px; border:1px solid var(--line); border-radius:12px; background:#fffefa; }
.v14 .v14-service h3 { margin:36px 0 14px; font-size:23px; }
.v14 .v14-note { background:#f0efe8; border-radius:8px; }
/* Explicit block sizes remove portrait images from grid intrinsic sizing. */
.v14 .v14-brand-panel, .v14 .v14-portfolio { height:480px; min-height:0; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); border:1px solid #dedfd5; border-radius:16px; overflow:hidden; background:#fffefa; }
.v14 .v14-brand-panel > img { display:block; height:480px; min-height:0; width:100%; object-fit:cover; object-position:50% 57%; }
.v14 .v14-brand-copy { padding:34px 42px; gap:22px; justify-content:flex-start; min-width:0; min-height:0; }
.v14 .v14-brand-copy .brand-logo { width:154px; height:94px; padding:0; background:transparent; object-fit:contain; }
.v14 .v14-brand-copy h3 { margin:0 0 16px; font-size:34px; line-height:1.22; }
.v14 .v14-brand-copy p { font-size:14px; margin:0; }
.v14 .v14-brand-copy .v14-link { margin-top:auto; }
.v14 .v14-link { max-width:100%; width:fit-content; font-size:14px; color:var(--orange-deep); border-color:#d9a17d; }
.v14 .v14-portfolio { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
.v14 .v14-portfolio-copy { background:#f5efe3; color:var(--ink); padding:48px; gap:28px; min-width:0; min-height:0; }
.v14 .v14-portfolio-copy h2 { font-size:48px; line-height:1.15; margin:26px 0 24px; }
.v14 .v14-portfolio-copy p { color:var(--muted); font-size:15px; max-width:390px; }
.v14 .v14-portfolio-media { position:relative; min-height:0; height:100%; overflow:hidden; }
.v14 .v14-portfolio-media img { position:absolute; inset:0; width:100%; height:100%; min-height:0; object-fit:cover; object-position:50% 57%; }
.v14 .v14-intro { padding:60px 0 52px; }
.v14 .v14-intro h1 { font-size:clamp(42px,4.6vw,64px); line-height:1.15; }
.v14 .v14-intro p { font-size:16px; }
/* Editorial cards: imagery above, readable light captions below; no black scrims. */
.v14 .v14-editorial { grid-template-columns:1.2fr 1fr; align-items:start; }
.v14 .v14-story { min-height:0; display:block; border:1px solid var(--line); border-radius:12px; background:#fffefa; color:var(--ink); }
.v14 .v14-story img { position:static; height:286px; width:100%; object-fit:cover; object-position:center; }
.v14 .v14-story::after, .story-card::after { display:none; }
.v14 .v14-story-copy { position:static; padding:22px 26px; }
.v14 .v14-story h3 { font-size:25px; line-height:1.4; margin-top:10px; }
.v14 .v14-story-stack { grid-template-rows:auto auto; gap:18px; }
.v14 .v14-story-stack .v14-story { min-height:0; display:grid; grid-template-columns:42% 58%; align-items:center; }
.v14 .v14-story-stack .v14-story img { height:190px; }
.v14 .v14-story-stack .v14-story h3 { font-size:22px; }
.v14 .v14-story-stack .v14-story-copy { padding:20px; }
.story-card { background:#fffefa; color:var(--ink); display:flex; flex-direction:column; min-height:0; }
.story-card img { position:static; height:280px; object-fit:cover; }
.story-copy { position:static; padding:24px; }
.story-copy p { color:var(--muted); }
.v14 .v14-cta { background:#fbe8d8; color:var(--ink); border:1px solid #efd4bd; border-radius:12px; padding:38px 42px; }
.v14 .v14-cta h2 { font-size:32px; }
.v14 .v14-cta p { color:var(--muted); }
.v14 .v14-cta a { color:#fff; background:var(--orange-deep); border-radius:8px; white-space:nowrap; }
.split { gap:clamp(32px,5vw,72px); }
.split-media { position:relative; height:390px; min-height:0; background:#eceee5; }
.split-media img { position:absolute; inset:0; width:100%; height:100%; min-height:0; object-fit:cover; }
.page-hero { min-height:0; padding:64px 0 58px; }
.page-hero h1 { font-size:clamp(36px,3.7vw,52px); line-height:1.25; }
.page-hero::after { background:linear-gradient(90deg,#f6f3ed,rgba(246,243,237,.5) 32%,transparent 65%),var(--page-hero-image) var(--page-hero-position)/cover no-repeat; }
.page-gertop .page-hero, .page-official .page-hero { --page-hero-position:50% 57%; }
.page-hero .brand-logo { width:160px; margin-bottom:22px !important; }
.page-hero > .container { display:block; padding-right:36%; }
.page-hero .breadcrumb { max-width:none; margin:0 0 22px; padding:0; border:0; }
.page-hero::after { width:32%; }
.card { min-height:240px; padding:28px; }
.card h3 { margin-top:32px; }
.product-intro-media img, .product-card img, .color-card img { object-fit:contain; }
[data-reveal] { opacity:1; transform:none; }
@media (max-width:1100px) and (min-width:821px) {
  .v14 .v14-brand-copy { padding:30px; gap:18px; }
  .v14 .v14-portfolio-copy { padding:34px; }
  .v14 .v14-portfolio-copy h2 { font-size:40px; }
  .v14 .v14-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .nav-wrap { min-height:72px; }
  .site-nav { top:72px; background:#fffefa; }
  .page-hero > .container { grid-template-columns:1fr; gap:0; padding-right:0; }
  .page-hero .breadcrumb { margin:0 0 22px; max-width:none; border:0; padding:0; }
  .page-hero h1, .page-hero p { max-width:620px; }
  .page-hero::after { opacity:.24; width:35%; }
  .section, .v14 .v14-section { padding:60px 0; }
}
@media (max-width:820px) {
  .v14 .container, .container { width:calc(100% - 40px); }
  .v14 .v14-hero { height:auto; display:grid; grid-template-columns:1fr; }
  .v14 .v14-hero-copy { padding:48px 28px 38px; }
  .v14 .v14-hero h1 { font-size:48px; }
  .v14 .v14-hero-media { min-height:0; max-height:none; height:300px; }
  .v14 .v14-brand-panel, .v14 .v14-portfolio { height:auto; grid-template-columns:1fr; }
  .v14 .v14-brand-panel > img { height:auto; aspect-ratio:4/3; min-height:0; object-position:50% 57%; }
  .v14 .v14-brand-copy { padding:28px; gap:22px; }
  .v14 .v14-brand-copy .v14-link { margin-top:4px; }
  .v14 .v14-brand-copy h3 { font-size:30px; }
  .v14 .v14-portfolio-media { order:0; height:auto; aspect-ratio:4/3; min-height:0; }
  .v14 .v14-portfolio-copy { order:1; padding:30px 28px; gap:20px; }
  .v14 .v14-portfolio-copy h2 { font-size:38px; margin:20px 0; }
  .v14 .v14-portfolio-copy p { max-width:none; }
  .v14 .v14-head, .v14 .v14-intro-grid { grid-template-columns:1fr; gap:22px; }
  .v14 .v14-intro { padding:44px 0 38px; }
  .v14 .v14-head h2 { font-size:32px; }
  .v14 .v14-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v14 .v14-service { min-height:218px; padding:24px; }
  .v14 .v14-editorial { grid-template-columns:1fr; }
  .v14 .v14-story-stack { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .v14 .v14-story-stack .v14-story { display:block; }
  .v14 .v14-story-stack .v14-story img { height:180px; }
  .v14 .v14-cta { grid-template-columns:1fr; gap:22px; padding:30px; }
  .v14 .v14-cta a { width:fit-content; }
  .split-media { height:auto; aspect-ratio:4/3; min-height:0; }
}
@media (max-width:560px) {
  .nav-wrap { width:calc(100% - 32px); gap:12px; }
  .wordmark { gap:8px; font-size:14px; }
  .wordmark small { font-size:8px; letter-spacing:.09em; }
  .section, .v14 .v14-section { padding:46px 0; }
  .v14 .v14-hero h1 { font-size:42px; }
  .v14 .v14-hero-copy { padding:40px 22px 32px; }
  .v14 .v14-hero p { font-size:15px; }
  .v14 .v14-hero-media { height:236px; }
  .v14 .v14-actions { gap:10px; }
  .v14 .v14-actions a { padding:0 14px; font-size:13px; }
  .v14 .v14-metrics-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v14 .v14-metric { min-height:112px; padding:20px; border-bottom:1px solid #dadbcf; }
  .v14 .v14-metric strong { font-size:18px; }
  .v14 .v14-metric span { font-size:12px; }
  .v14 .v14-service-grid { grid-template-columns:1fr; }
  .v14 .v14-service { min-height:0; padding:24px; }
  .v14 .v14-service h3 { margin-top:25px; }
  .v14 .v14-story img { height:220px; }
  .v14 .v14-story-stack { grid-template-columns:1fr; }
  .v14 .v14-story-stack .v14-story { display:grid; grid-template-columns:38% 62%; }
  .v14 .v14-story-stack .v14-story img { height:162px; }
  .v14 .v14-story-stack .v14-story-copy { padding:18px; }
  .v14 .v14-story-stack .v14-story h3 { font-size:20px; }
  .page-hero { padding:40px 0; }
  .page-hero h1 { font-size:34px; margin-bottom:22px; }
  .page-hero p { font-size:15px; }
  .page-hero::after { display:none; }
  .section-head { grid-template-columns:1fr; gap:20px; }
  .section-head h2, .split h2 { font-size:30px; }
  .site-footer { padding-top:42px; }
  .footer-grid { gap:26px; }
  .culture-statement { padding:26px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
}
