/* ===== Our Story page ===== */
.kos {
    --kos-ink:#101010; --kos-snow:#f6f4ef; --kos-stone:#e7e1d5; --kos-sand:#efe7da; --kos-night:#0d1722; --kos-ember:#f39a1f;
    --kos-text:#2a2a2a; --kos-muted:#6b6b6b;
    font-family:inherit; color:var(--kos-text); overflow:hidden;
}
.kos * { box-sizing:border-box; }
.kos h1, .kos h2 { font-weight:600; letter-spacing:-.02em; line-height:1.05; margin:0 0 24px; color:inherit; }
.kos h2 { font-size:clamp(34px, 4.6vw, 64px); }
.kos p { font-size:17px; line-height:1.75; margin:0 0 18px; color:inherit; }
.kos ul, .kos ol { list-style:none; margin:0; padding:0; }
.kos-wrap { width:min(1240px, 100% - 48px); margin:0 auto; position:relative; z-index:2; }
.kos-sec { position:relative; padding:clamp(80px, 11vw, 150px) 0; }
.kos-num { font-size:12px !important; letter-spacing:.24em; text-transform:uppercase; color:var(--kos-ember) !important; font-weight:600; margin-bottom:22px !important; }
.kos-eyebrow { font-size:12px !important; letter-spacing:.28em; text-transform:uppercase; }
.kos-lead { font-size:clamp(19px, 1.7vw, 23px) !important; line-height:1.55 !important; font-weight:500; }
.kos-kicker { font-weight:600; font-size:19px !important; }
.kos-photo { margin:0; overflow:hidden; border-radius:4px; background:#ddd; }
.kos-photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform 1.4s cubic-bezier(.2,.65,.3,1); }
.kos-photo:hover img { transform:scale(1.03); }
.kos-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; min-width:0 !important; min-height:0 !important; }

/* Backgrounds */
.kos-snow { background:var(--kos-snow); }
.kos-stone { background:var(--kos-stone); }
.kos-sand { background:var(--kos-sand); }
.kos-ink { background:var(--kos-ink); color:#e9e9e9; }
.kos-night { background:var(--kos-night); color:#dfe6ec; }
.kos-ink h2, .kos-night h2, .kos-media h2 { color:#fff; }

/* 1. Hero */
.kos-hero { position:relative; min-height:92vh; min-height:92svh; display:flex; align-items:flex-end; color:#fff; isolation:isolate; }
.kos-hero::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.1) 40%, rgba(0,0,0,.72) 100%); }
.kos-hero .kos-bg { object-position:center 35%; }
.kos-hero-inner { position:relative; z-index:2; width:min(1240px, 100% - 48px); margin:0 auto; padding:0 0 clamp(64px, 10vh, 120px); }
.kos-hero h1 { font-size:clamp(56px, 10vw, 150px); text-transform:uppercase; letter-spacing:-.03em; margin:14px 0 22px; color:#fff; }
.kos-hero-sub { font-size:clamp(18px, 1.8vw, 24px) !important; max-width:560px; opacity:.92; }
.kos-scroll { position:absolute; z-index:2; left:50%; bottom:26px; width:26px; height:42px; margin-left:-13px; border:1.5px solid rgba(255,255,255,.7); border-radius:14px; }
.kos-scroll span { position:absolute; left:50%; top:8px; width:4px; height:8px; margin-left:-2px; border-radius:2px; background:#fff; animation:kos-scroll 1.8s infinite; }
@keyframes kos-scroll { 0% { opacity:0; transform:translateY(0); } 40% { opacity:1; } 100% { opacity:0; transform:translateY(14px); } }

/* Split layouts */
.kos-split .kos-wrap, .kos-brand { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(40px, 7vw, 110px); align-items:center; }
.kos-reverse .kos-wrap { grid-template-columns:.95fr 1.05fr; }
.kos-split h2 span { color:var(--kos-muted); }
.kos-ink .kos-split h2 span, .kos-ink h2 span { color:#9a9a9a; }
.kos-photo-tall { aspect-ratio:4/5; }
.kos-reverse .kos-photo { aspect-ratio:1/1; }
.kos-photo-portrait { aspect-ratio:3/4; max-width:460px; justify-self:end; width:100%; }

/* 3. Chips + question */
.kos-chips { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 26px !important; }
.kos-chips li { padding:8px 14px; border:1px solid rgba(255,255,255,.22); border-radius:30px; font-size:13px; letter-spacing:.06em; text-transform:uppercase; }
.kos-question { font-size:clamp(24px, 2.4vw, 34px) !important; line-height:1.3 !important; color:#fff; font-weight:600; border-left:3px solid var(--kos-ember); padding-left:22px; margin-top:28px !important; }

/* 4. Stack */
.kos-stack { margin:28px 0 30px !important; border-top:1px solid rgba(0,0,0,.14); }
.kos-stack li { font-size:clamp(24px, 2.6vw, 36px); font-weight:600; letter-spacing:-.01em; padding:12px 0; border-bottom:1px solid rgba(0,0,0,.14); color:#111; }

/* 5. 8848 */
.kos-8848 { padding-bottom:clamp(140px, 16vw, 220px); }
.kos-topo { position:absolute; inset:0; width:100%; height:100%; color:rgba(255,255,255,.07); z-index:0; }
.kos-giant { font-size:clamp(96px, 20vw, 300px) !important; line-height:.85 !important; font-weight:700; letter-spacing:-.05em; color:#fff; margin:0 0 50px !important; }
.kos-giant span { font-size:.28em; letter-spacing:0; color:var(--kos-ember); margin-left:10px; vertical-align:top; }
.kos-cols { display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px, 6vw, 90px); }
.kos-ridge { position:absolute; left:0; right:0; bottom:-1px; width:100%; height:clamp(70px, 10vw, 150px); z-index:1; }

/* Media sections (full-bleed photo/video + panel) */
.kos-media { isolation:isolate; min-height:100vh; display:flex; align-items:center; color:#fff; background:#111; }
.kos-media::after { content:""; position:absolute; inset:0; z-index:1; background:rgba(0,0,0,.42); }
.kos-panel { max-width:620px; padding:clamp(30px, 4vw, 56px); background:rgba(10,10,10,.62); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-radius:6px; }
.kos-behind { margin:26px 0 !important; }
.kos-behind li { font-size:18px; line-height:1.6; padding:12px 0; border-top:1px solid rgba(255,255,255,.18); }
.kos-stamp { font-size:clamp(26px, 2.8vw, 38px) !important; line-height:1.15 !important; font-weight:700; text-transform:uppercase; color:var(--kos-ember); margin:30px 0 0 !important; }

/* 7. Mountains */
.kos-head { max-width:760px; }
.kos-elements { font-size:clamp(34px, 6vw, 88px) !important; line-height:1.05 !important; font-weight:700; letter-spacing:-.03em; color:#111; margin:20px 0 70px !important; }
.kos-elements span:nth-child(even) { color:#b9b3a7; }
.kos-split-inner { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(36px, 6vw, 90px); align-items:start; }
.kos-photo-wide { aspect-ratio:4/3; }
.kos-loop { counter-reset:kos; margin:26px 0 !important; }
.kos-loop li { counter-increment:kos; position:relative; padding:14px 0 14px 54px; font-size:19px; font-weight:500; border-top:1px solid rgba(0,0,0,.12); }
.kos-loop li::before { content:counter(kos, decimal-leading-zero); position:absolute; left:0; top:15px; font-size:13px; letter-spacing:.1em; color:var(--kos-ember); font-weight:600; }
.kos blockquote { margin:30px 0 0; padding:24px 26px; background:#fff; border-left:3px solid var(--kos-ember); font-size:17px; line-height:1.7; font-style:italic; color:#333; }

/* 8. Places */
.kos-places-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px, 7vw, 110px); align-items:center; }
.kos-names li { display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:16px 0; border-bottom:1px solid rgba(255,255,255,.14); }
.kos-names li:first-child { border-top:1px solid rgba(255,255,255,.14); }
.kos-names span { font-size:clamp(28px, 3.4vw, 46px); font-weight:600; letter-spacing:-.02em; color:#fff; transition:color .3s ease, transform .3s ease; }
.kos-names small { font-size:13px; letter-spacing:.14em; color:#8fa3b5; }
.kos-names li:hover span { color:var(--kos-ember); transform:translateX(6px); }

/* 9. People */
.kos-people .kos-wrap { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px, 7vw, 110px); align-items:center; }
.kos-people-photos { display:grid; grid-template-columns:1.3fr 1fr; grid-template-rows:auto auto; gap:14px; }
.kos-people-photos .kos-photo:first-child { grid-row:1 / span 2; aspect-ratio:3/4; }
.kos-people-photos .kos-photo:last-child { aspect-ratio:1/1; align-self:end; }
.kos-details { margin:22px 0 !important; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.kos-details li { padding:16px; background:rgba(255,255,255,.65); border-radius:4px; font-weight:500; font-size:15px; }

/* 10. World */
.kos-world .kos-bg { object-position:40% 40%; }
.kos-world .kos-panel { max-width:500px; }
@media (max-width:991px) { .kos-world .kos-bg { object-position:50% 40%; } }
.kos-world .kos-wrap { display:flex; justify-content:flex-start; }
.kos-panel-light { background:rgba(246,244,239,.9); color:#222; }
.kos-panel-light h2 { color:#111 !important; }
.kos-route li { padding:14px 0; border-top:1px solid rgba(0,0,0,.12); font-size:17px; }
.kos-route em { font-style:normal; font-weight:600; }
.kos-route { margin:20px 0 !important; }
.kos-label { display:inline-flex; flex-direction:column; align-items:center; gap:2px; margin-top:12px !important; padding:10px 18px; border:1.5px solid #111; font-size:12px !important; line-height:1.4 !important; letter-spacing:.24em; font-weight:700; color:#111; }

/* 11. Season */
.kos-cycle { display:grid; grid-template-columns:repeat(6, 1fr); gap:0; margin:60px 0 !important; position:relative; }
.kos-cycle::before { content:""; position:absolute; left:8%; right:8%; top:28px; height:1px; background:rgba(255,255,255,.25); }
.kos-cycle li { position:relative; text-align:center; padding-top:70px; font-size:clamp(16px, 1.6vw, 21px); font-weight:600; color:#fff; }
.kos-cycle li::before { content:""; position:absolute; left:50%; top:20px; width:16px; height:16px; margin-left:-8px; border-radius:50%; background:var(--kos-ink); border:2px solid var(--kos-ember); }
.kos-cycle li:last-child::before { background:var(--kos-ember); }
.kos-links a { color:#fff; border-bottom:1px solid rgba(255,255,255,.5); padding-bottom:3px; font-size:15px; }
.kos-links a:hover { color:var(--kos-ember); border-color:var(--kos-ember); }

/* 12. Next chapter */
.kos-next::after { background:linear-gradient(90deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.45) 55%, rgba(0,0,0,.15) 100%); }
.kos-next-inner { max-width:640px; }
.kos-still { margin:20px 0 26px !important; }
.kos-still li { padding:10px 0 10px 26px; position:relative; font-size:18px; }
.kos-still li::before { content:""; position:absolute; left:0; top:21px; width:12px; height:2px; background:var(--kos-ember); }
.kos-quote { font-size:clamp(24px, 2.6vw, 36px) !important; line-height:1.3 !important; margin-top:30px !important; }

/* Film */
.kos-film .kos-film-frame { margin-top:20px; aspect-ratio:16/9; background:#000; border-radius:6px; overflow:hidden; }
.kos-film .kos-film-frame p { margin:0; height:100%; }
.kos-film iframe { display:block; width:100% !important; height:100% !important; border:0; }

/* 13. Effort */
.kos-effort { text-align:left; }
.kos-motto { font-size:clamp(64px, 13vw, 200px) !important; line-height:.88 !important; text-transform:uppercase; letter-spacing:-.045em; margin:70px 0 50px !important; color:#fff; }
.kos-sign { display:flex; align-items:center; gap:24px; padding-top:34px; border-top:1px solid rgba(255,255,255,.18); }
.kos-sign img { width:64px; height:auto; }
.kos-sign p { margin:0; font-size:16px; line-height:1.6; color:#cfcfcf; }
.kos-cta { margin-top:40px !important; display:flex; gap:12px; flex-wrap:wrap; }
.kos-btn { display:inline-block; padding:15px 30px; background:#fff; color:#111 !important; font-size:14px; font-weight:600; letter-spacing:.04em; border:1px solid #fff; transition:background .25s ease, color .25s ease; }
.kos-btn:hover { background:var(--kos-ember); border-color:var(--kos-ember); color:#111 !important; }
.kos-btn-ghost { background:transparent; color:#fff !important; }

/* Responsive */
@media (max-width:991px) {
    .kos-split .kos-wrap, .kos-reverse .kos-wrap, .kos-brand, .kos-places-grid, .kos-people .kos-wrap, .kos-split-inner, .kos-cols { grid-template-columns:1fr; }
    .kos-reverse .kos-photo { order:2; }
    .kos-photo-portrait { justify-self:start; max-width:100%; aspect-ratio:4/5; }
    .kos-cycle { grid-template-columns:repeat(3, 1fr); row-gap:20px; }
    .kos-cycle::before { display:none; }
    .kos-world .kos-wrap { justify-content:flex-start; }
}
@media (max-width:767px) {
    .kos p { font-size:16px; }
    .kos-wrap { width:calc(100% - 32px); }
    .kos-media { min-height:auto; padding:90px 0; }
    .kos-panel { padding:26px 22px; }
    .kos-details { grid-template-columns:1fr; }
    .kos-cycle { grid-template-columns:repeat(2, 1fr); }
    .kos-hero h1 { font-size:clamp(48px, 15vw, 80px); }
}
@media (prefers-reduced-motion:reduce) { .kos-scroll span { animation:none; } .kos-photo img { transition:none; } }

/* Story page has its own type scale (beats the site-wide heading sizes) */
body .kos h2 { font-size:clamp(34px, 4.6vw, 64px) !important; }
body .kos .kos-motto { font-size:clamp(64px, 13vw, 200px) !important; }
body .kos-hero h1 { font-size:clamp(56px, 10vw, 150px) !important; }

/* Closing: header logo in white + newsletter */
.kos-sign .kos-logo { width:100px; height:auto; filter:brightness(0) invert(1); }
.kos-news { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(30px, 6vw, 90px); align-items:end; margin-top:60px; padding-top:50px; border-top:1px solid rgba(255,255,255,.18); scroll-margin-top:120px; }
body .kos-news h3 { font-size:clamp(26px, 2.6vw, 36px) !important; font-weight:600; line-height:1.15; color:#fff; margin:0 0 14px; letter-spacing:-.01em; }
.kos-news p { color:#cfcfcf; }
.kos-news form > label { display:block; font-size:12px; letter-spacing:.06em; color:#bdbdbd; margin-bottom:6px; }
.kos-news-row { display:flex; border-bottom:1px solid rgba(255,255,255,.6); margin-bottom:18px; }
.kos-news-row input { flex:1; min-width:0; border:0; background:transparent; color:#fff; font-size:16px; padding:14px 0; }
.kos-news-row input::placeholder { color:#8a8a8a; }
.kos-news-row input:focus { outline:none; }
.kos-news-row button { border:0; background:#fff; color:#111; font-size:14px; font-weight:600; padding:12px 22px; margin-bottom:8px; cursor:pointer; white-space:nowrap; transition:background .25s ease; }
.kos-news-row button:hover { background:var(--kos-ember); }
.kos-news-row button span[aria-hidden] { margin-left:10px; }
.kos-news-consent { display:flex; align-items:flex-start; gap:10px; font-size:12px; line-height:1.6; color:#a9a9a9; cursor:pointer; }
.kos-news-consent input { flex:0 0 16px; width:16px; height:16px; margin:2px 0 0; accent-color:var(--kos-ember); appearance:auto; -webkit-appearance:checkbox; position:static; opacity:1; }
.kos-news .newsletter-message { margin:16px 0 0; padding:12px 14px; font-size:13px; line-height:1.6; border-left:3px solid #fff; background:rgba(255,255,255,.08); color:#eee; }
.kos-news .newsletter-message.is-success { border-left-color:#3fb950; }
.kos-news .newsletter-message.is-error { border-left-color:#f85149; }
.kos-news .newsletter-hp { position:absolute !important; left:-9999px !important; }
.kos-news :is(input, button):focus-visible { outline:2px solid var(--kos-ember); outline-offset:3px; }
@media (max-width:991px) { .kos-news { grid-template-columns:1fr; } }

/* Section icons instead of numbers */
.kos-num.kos-icon { width:46px; height:46px; display:flex; align-items:center; justify-content:center; border:1px solid currentColor; border-radius:50%; }
.kos-num.kos-icon .kaemp-icon { width:22px; height:22px; }
.kos-num .kaemp-icon { width:16px; height:16px; vertical-align:-3px; margin-right:6px; }

/* Season cycle with icons */
.kos-cycle::before { top:36px; left:calc(100% / 12); right:calc(100% / 12); height:1px; background:repeating-linear-gradient(90deg, rgba(255,255,255,.35) 0 6px, transparent 6px 12px); }
.kos-cycle li { padding-top:0; display:flex; flex-direction:column; align-items:center; gap:16px; }
.kos-cycle li::before { display:none; }
.kos-cycle-icon { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; width:72px; height:72px; border-radius:50%; background:var(--kos-ink); border:1.5px solid rgba(255,255,255,.3); color:#fff; font-style:normal; transition:background .3s ease, border-color .3s ease, color .3s ease, transform .3s ease; }
.kos-cycle-icon .kaemp-icon { width:28px; height:28px; }
.kos-cycle li:hover .kos-cycle-icon { border-color:var(--kos-ember); color:var(--kos-ember); transform:translateY(-3px); }
.kos-cycle li:last-child .kos-cycle-icon { background:var(--kos-ember); border-color:var(--kos-ember); color:#111; }
@media (max-width:767px) { .kos-cycle-icon { width:60px; height:60px; } .kos-cycle-icon .kaemp-icon { width:24px; height:24px; } }

/* Built by people: detail cards with icons */
.kos-details li { display:flex; align-items:center; gap:14px; padding:16px 18px; background:#fff; border:1px solid rgba(0,0,0,.06); transition:transform .3s ease, box-shadow .3s ease; }
.kos-details li:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.06); }
.kos-detail-icon { flex:0 0 44px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#111; color:#fff; font-style:normal; transition:background .3s ease, color .3s ease; }
.kos-detail-icon .kaemp-icon { width:22px; height:22px; }
.kos-details li:hover .kos-detail-icon { background:var(--kos-ember); color:#111; }
.kos-details li span { font-weight:500; font-size:15px; line-height:1.4; color:#111; }

/* Feedback loop with icons instead of numbers */
.kos-loop li { display:flex; align-items:center; gap:16px; padding:14px 0; }
.kos-loop li::before { display:none; }
.kos-loop-icon { flex:0 0 44px; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:50%; border:1.5px solid #111; color:#111; font-style:normal; transition:background .3s ease, border-color .3s ease, color .3s ease; }
.kos-loop-icon .kaemp-icon { width:21px; height:21px; }
.kos-loop li:hover .kos-loop-icon { background:var(--kos-ember); border-color:var(--kos-ember); }
.kos-loop li:last-child .kos-loop-icon { background:#111; color:#fff; }

/* A brand of our own: stack with icons */
.kos-stack li { display:flex; align-items:center; gap:20px; }
.kos-stack-icon { flex:0 0 52px; width:52px; height:52px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#111; color:#fff; font-style:normal; transition:background .3s ease, color .3s ease, transform .3s ease; }
.kos-stack-icon .kaemp-icon { width:24px; height:24px; }
.kos-stack li:hover .kos-stack-icon { background:var(--kos-ember); color:#111; transform:scale(1.06); }
@media (max-width:767px) { .kos-stack-icon { flex-basis:42px; width:42px; height:42px; } .kos-stack-icon .kaemp-icon { width:20px; height:20px; } }

/* ===== Black & white only (no accent colour) ===== */
.kos { --kos-ink:#0b0b0b; --kos-night:#161616; --kos-snow:#f7f7f7; --kos-stone:#ececec; --kos-sand:#f2f2f2; --kos-ember:#111; }
.kos-ink, .kos-night, .kos-media, .kos-hero { --kos-ember:#fff; }
.kos-night { color:#e6e6e6; }
.kos-elements span:nth-child(even) { color:#b3b3b3; }
.kos-names small { color:#9a9a9a; }
.kos-names li:hover span { color:#fff; opacity:.75; }
.kos-giant span { color:#fff; opacity:.55; }
.kos-cycle li:hover .kos-cycle-icon { border-color:#fff; color:#fff; background:#222; }
.kos-cycle li:last-child .kos-cycle-icon { background:#fff; border-color:#fff; color:#111; }
.kos-details li:hover .kos-detail-icon { background:#fff; color:#111; box-shadow:inset 0 0 0 1.5px #111; }
.kos-loop li:hover .kos-loop-icon { background:#111; border-color:#111; color:#fff; }
.kos-stack li:hover .kos-stack-icon { background:#fff; color:#111; box-shadow:inset 0 0 0 1.5px #111; }
.kos-links a:hover { color:#fff; border-color:#fff; opacity:.75; }
.kos blockquote { border-left-color:#111; }
.kos-scroll { color:#fff; }
.kos a:not(.kos-btn) { color:inherit; }
