/* Editorial review: extend Keelmore's blue/lime identity with material colours.
   Photography is explicitly illustrative; all workflow controls keep their native behaviour. */
:root{--km-canvas:#f6f1e7;--km-warm-white:#fffdf8;--km-spruce:#203b34;--km-clay:#974d38;--km-ochre:#c99146;--km-rule:#d6cec0;--km-soft-ink:#545b55}
html,body{background:var(--km-canvas)}
.public-head,.footer{background:var(--km-warm-white)}
.public-main{--line:var(--km-rule)}
.public-main .eyebrow{letter-spacing:.09em}
.public-main .button{border-radius:3px}
.public-main .km-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:64px;padding:34px 0 52px}
.km-hero h1{font-size:clamp(3rem,5vw,4.5rem);line-height:1.04}
.km-hero h1 em,.km-page-intro h1 em{color:var(--km-spruce)}
.km-hero .eyebrow{color:var(--km-clay)}
.km-hero .km-lead{max-width:570px}
.km-hero-editorial,.km-service-cover>*,.km-method-opening>*,.km-keel-opening>*,.km-photo-closing>*{min-width:0}
.km-field-label{display:flex;justify-content:space-between;gap:16px;padding:0 0 13px;border-bottom:2px solid var(--km-clay);font:500 .63rem/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.05em;color:var(--km-spruce)}
.km-photo{margin:0;min-width:0}
.km-photo-frame{aspect-ratio:3/2;overflow:hidden;background:#e3dccd}
.km-photo picture,.km-photo img{display:block;width:100%;height:100%}
.km-photo img{object-fit:cover;object-position:center}
.km-photo figcaption{padding:12px 0 0;color:var(--km-soft-ink);line-height:1.5}
.km-photo-note{display:block;font:italic 1.03rem/1.45 Georgia,'Times New Roman',serif;color:var(--km-spruce);margin-bottom:5px}
.km-photo figcaption small{display:block;font-size:.65rem;line-height:1.6}
.km-hero-photo .km-photo-frame{aspect-ratio:1.12}
.km-hero-photo img{object-position:60% center}
.km-hero-photo figcaption{padding-bottom:15px;border-bottom:1px solid var(--km-rule)}
.km-hero-handoff{display:grid;grid-template-columns:14px minmax(0,1fr) 1.9rem;gap:16px;align-items:center;padding:15px 0 0}
.km-hero-handoff p{font-size:.79rem;line-height:1.65;margin:0;color:var(--km-spruce)}
.km-route-dot{height:11px;width:11px;border:1px solid var(--km-clay);border-radius:50%;position:relative}
.km-route-dot:before{content:'';width:1px;height:23px;position:absolute;left:4px;bottom:14px;background:var(--km-clay)}
.km-field-arrow{font-size:1.9rem;color:var(--km-clay)}
.km-route-strip{display:grid;grid-template-columns:145px 1fr auto;gap:30px;align-items:center;border-top:1px solid var(--km-rule);padding:27px 0}
.km-route-label{font:500 .65rem/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--km-clay);max-width:120px;letter-spacing:.06em}
.km-route-strip ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.km-route-strip li{position:relative;margin:0;padding-top:10px;border-top:1px solid var(--km-clay);font-size:.73rem}
.km-route-strip li:before{content:'';width:5px;height:5px;border-radius:50%;position:absolute;left:0;top:-3px;background:var(--km-clay)}
.km-route-strip li span{display:block;font:500 .6rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--km-clay);margin-bottom:6px}
.km-route-strip>a{display:inline-flex;align-items:center;gap:14px;min-height:44px;color:var(--km-spruce);font-size:.76rem}
.km-principles{background:var(--km-clay);color:var(--km-warm-white);padding:25px 28px;border:0;gap:26px}
.km-principles p{font-size:.83rem;line-height:1.6}
.km-principles span{color:#ffe0b8}
.km-keel-opening{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:80px;align-items:center;padding-bottom:58px}
.km-keel-heading{padding:0}
.km-keel-heading .eyebrow{color:var(--km-clay)}
.km-keel-photo .km-photo-frame{aspect-ratio:1.35}
.km-keel-photo img{object-position:57% center}
.km-keel-photo{border-bottom:1px solid var(--km-rule);padding-bottom:14px}
.km-keel-map{background:var(--km-spruce);border-top-color:var(--lime)}
.km-keel-map .km-map-node{background:var(--km-spruce)}
.km-keel-map .is-active .km-map-node{background:var(--lime);color:var(--km-spruce)}
.km-keel-map .km-map-top,.km-keel-map .km-map-legend,.km-keel-map .km-map-caption{color:#d2ded3}
.km-keel-map .km-map-legend,.km-keel-audit{border-top-color:#63766d}
.km-keel-map a{color:#d2ded3}.km-keel-map .is-active a{color:#fff}
.km-keel-stage:before{background:var(--km-clay)}
.km-keel-kind{color:var(--km-clay)}
.km-keel-stage .km-keel-human{background:#e9eddb;border-left-color:var(--km-spruce)}
.km-brand-thread{color:var(--km-clay)}
.km-xray-drawing{background:var(--km-warm-white);border-color:var(--km-rule);border-top:3px solid var(--km-ochre)}
.km-drawing-label{color:var(--km-clay)}
.km-xray-result{color:var(--km-spruce)}
.km-offers{background:var(--nav);color:var(--km-warm-white);padding:56px 42px;margin-inline:-24px;border-top:4px solid var(--km-ochre)}
.km-offers .km-section-intro{max-width:730px;margin-bottom:38px}
.km-offers .km-section-intro>p:not(.eyebrow),.km-offers .km-offer-row p:not(.eyebrow):not(.km-offer-price),.km-offers .km-offer-price small,.km-offers .km-caption{color:#d0d8df}
.km-offers .eyebrow,.km-offers .km-offer-choice a{color:var(--lime)}
.km-offers .km-offer-row{border-color:#516174}
.km-offers .km-offer-row h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:1.85rem;letter-spacing:-.015em}
.km-offers .km-offer-price{font-size:1.85rem}
.km-offers .km-caption{margin-top:26px}
.km-tools{border-top:0}
.km-tools .km-pull-note{font-size:1.6rem;color:var(--km-spruce);border-color:var(--km-clay)}
.km-insights{border-top:1px solid var(--km-rule)}
.insight-number,.insight-arrow{color:var(--km-clay)}
.km-photo-closing{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--km-spruce);color:var(--km-warm-white)}
.km-closing-photo{padding:0 0 24px}
.km-closing-photo .km-photo-frame{aspect-ratio:1.25}
.km-closing-photo figcaption{padding:16px 24px 0;color:#d2ded3}
.km-closing-photo .km-photo-note{color:var(--km-warm-white)}
.km-closing-copy{padding:46px 42px;align-self:center}
.km-closing-copy h2{font-size:clamp(2rem,3.5vw,3rem);font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.2;letter-spacing:-.03em;margin:24px 0 32px}
.km-closing-copy .eyebrow{color:var(--lime)}
.km-closing-copy .button{background:var(--lime);color:var(--nav);padding:15px 22px}
.km-closing-copy>p:last-child{font-size:.84rem;line-height:1.7;color:#d2ded3;margin:24px 0 0}
.km-service-cover,.km-method-opening{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center;padding:30px 0 52px;margin-bottom:28px;border-bottom:1px solid var(--km-rule)}
.km-service-cover h1{font-size:clamp(2.6rem,4.5vw,3.6rem);line-height:1.09;font-weight:620;letter-spacing:-.045em}
.km-service-cover .eyebrow,.km-method-opening .eyebrow{color:var(--km-clay)}
.km-service-cover .sales-intro{font-size:1.08rem;line-height:1.7}
.km-service-photo .km-photo-frame{aspect-ratio:1.3}
.km-service-audit .km-photo-frame{aspect-ratio:1.18}
.km-service-implementation .km-photo-frame{aspect-ratio:1.15}
.km-service-implementation img{object-position:58% center}
.km-service-managed .km-photo-frame{aspect-ratio:1.4}
.km-method-opening .km-page-intro{padding:0}
.km-method-opening h1{font-size:clamp(2.8rem,4.6vw,3.8rem)}
.km-method-photo .km-photo-frame{aspect-ratio:1.18}
.km-method-photo img{object-position:55% center}
.km-method-name>span{color:var(--km-clay)}
.km-method dl>div:last-child{border-color:var(--km-spruce)}
.km-document,.km-audit-folio{background:var(--km-warm-white);border-color:var(--km-rule);box-shadow:6px 6px 0 #e4ddcf}
.km-audit-sheets>section{background:var(--km-warm-white)}
.km-lab-setting{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:center;margin:45px 0 65px;border-top:1px solid var(--km-rule);padding-top:35px}
.km-lab-setting h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(2rem,3vw,2.7rem);line-height:1.2;letter-spacing:-.03em}
.km-lab-setting p:not(.eyebrow){max-width:530px;line-height:1.8;color:var(--muted)}
.km-lab-setting .eyebrow{color:var(--km-clay)}
.km-lab-photo .km-photo-frame{aspect-ratio:1.4}
.km-closing{background:var(--km-warm-white);border-top-color:var(--km-spruce)}
@media(max-width:1050px){.public-main .km-hero{gap:34px}.km-keel-opening{gap:40px}.km-route-strip{grid-template-columns:110px 1fr;gap:24px}.km-route-strip>a{grid-column:2;justify-self:end;margin-top:-10px}.km-service-cover,.km-method-opening{gap:36px}.km-closing-copy{padding:32px}.km-lab-setting{gap:36px}}
@media(max-width:900px){.public-main .km-hero{grid-template-columns:1fr;padding-top:14px;gap:36px}.km-hero-copy{max-width:710px}.km-hero h1{font-size:clamp(2.6rem,7.5vw,4.5rem)}.km-hero h1 br{display:initial}.km-hero-photo .km-photo-frame{aspect-ratio:1.65}.km-hero-photo img{object-position:center 52%}.km-hero-editorial{max-width:710px;width:100%}.km-service-cover,.km-method-opening{grid-template-columns:1fr;gap:30px;padding-top:14px}.km-service-cover>header,.km-method-opening .km-page-intro{max-width:720px}.km-service-photo .km-photo-frame,.km-method-photo .km-photo-frame{aspect-ratio:1.6}.km-service-photo,.km-method-photo{max-width:710px;width:100%}}
@media(max-width:800px){.km-keel-opening{grid-template-columns:1fr;gap:24px;padding-bottom:36px}.km-keel-photo{max-width:600px}.km-keel-photo .km-photo-frame{aspect-ratio:1.75}.km-keel-photo img{object-position:center 54%}.km-principles{padding:22px 24px;gap:15px}.km-offers{padding:36px 26px;margin-inline:0}.km-offers .km-offer-row{gap:22px}.km-photo-closing{grid-template-columns:1fr}.km-closing-photo{padding-bottom:0}.km-closing-photo .km-photo-frame{aspect-ratio:1.65}.km-closing-copy{padding:34px 26px}.km-closing-copy h2{font-size:2.5rem}.km-lab-setting{grid-template-columns:1fr;gap:25px}.km-lab-photo{max-width:600px}.km-lab-photo .km-photo-frame{aspect-ratio:1.65}}
@media(max-width:600px){.km-route-strip{grid-template-columns:1fr;gap:22px}.km-route-label{max-width:none}.km-route-strip ol{gap:20px 14px;grid-template-columns:repeat(3,minmax(0,1fr))}.km-route-strip>a{grid-column:1;justify-self:start;margin:0}.km-route-strip li{font-size:.78rem}.km-principles{grid-template-columns:1fr}.km-principles p{font-size:.84rem}.km-hero-photo .km-photo-frame{aspect-ratio:1.3}.km-field-label{font-size:.61rem;gap:10px}.km-hero-handoff{gap:13px}.km-keel-photo .km-photo-frame,.km-lab-photo .km-photo-frame{aspect-ratio:1.5}.km-offers .km-offer-row h3{font-size:1.7rem}.km-offers .km-offer-row{grid-template-columns:1fr}.km-offers .km-offer-choice{text-align:left}.km-offers .km-section-intro h2{font-size:2rem}.km-closing-copy h2{font-size:2.15rem}.km-closing-copy h2 br{display:initial}.km-service-cover h1{font-size:clamp(2.35rem,9vw,3.2rem)}.km-service-photo .km-photo-frame,.km-method-photo .km-photo-frame{aspect-ratio:1.35}.km-method-opening h1{font-size:clamp(2.5rem,9vw,3.3rem)}.km-photo figcaption small{font-size:.66rem}}
@media(prefers-reduced-motion:reduce){.km-photo img{transition:none;transform:none}}

/* Keep natural word boundaries in the large editorial headings. */
.km-hero h1,.km-service-cover h1,.km-method-opening h1{hyphens:manual}
/* Narrow viewports still reflow when the reader doubles the text size. */
.km-route-strip li,.km-audit-map li{min-width:0;overflow-wrap:anywhere;hyphens:auto}
@media(max-width:480px){.km-stage-controls>div{flex-wrap:wrap}.km-stage-controls button{min-width:0;max-width:100%;overflow-wrap:anywhere}}
