.k2-story { --k2-ink:#353b39; --k2-accent:#937348; color:var(--k2-ink); background:#fff; }
.k2-story *, .k2-story *::before, .k2-story *::after { box-sizing:border-box; }
.k2-story .k2-shell { width:min(1240px,calc(100% - 80px)); margin-inline:auto; }
.k2-story section[id], #k2-continuation, .product-model-section { scroll-margin-top:110px; }
.k2-story .k2-nav { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px 26px; padding-block:22px; border-bottom:1px solid #dcd9ce; }
.k2-story .k2-nav a { display:flex; align-items:center; min-height:44px; gap:12px; font-size:14px; color:#5b6059; }
.k2-story .k2-nav span { color:var(--k2-accent); font-family:Georgia,serif; }
.k2-story .k2-section { padding-block:clamp(52px,6vw,86px); }
.k2-story .k2-kicker { color:var(--k2-accent); font-size:12px; line-height:1.8; letter-spacing:.13em; margin:0 0 18px; }
.k2-story .k2-french { font-family:Georgia,serif; font-style:italic; font-size:clamp(27px,3vw,42px); color:#8a806e; line-height:1.3; margin:0 0 22px; }
.k2-story h2 { font-size:clamp(29px,3.3vw,45px); font-weight:450; line-height:1.5; margin:0 0 24px; color:var(--k2-ink); text-wrap:balance; }
.k2-story h3 { font-size:clamp(24px,2.5vw,33px); font-weight:450; line-height:1.55; margin:0 0 23px; color:var(--k2-ink); }
.k2-story h4 { font-size:18px; font-weight:550; line-height:1.65; margin:0 0 12px; }
.k2-story p { font-size:16px; line-height:1.95; margin:0 0 20px; color:#62665e; }
.k2-story .k2-opening { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,76px); align-items:start; }
.k2-story .k2-lead { font-size:19px; color:#7b705d; }
.k2-story figure { margin:38px 0 0; }
.k2-story figure img { width:100%; height:auto; display:block; max-height:720px; object-fit:cover; }
.k2-story .k2-photo-crop { aspect-ratio:2.2; overflow:hidden; }
.k2-story .k2-photo-crop img { max-height:none; width:100%; height:auto; }
.k2-story figcaption { padding-top:13px; color:#73776d; font-size:12px; line-height:1.8; }
.k2-story .k2-consider { padding:36px 0 8px; }
.k2-story .k2-consider h3 { font-size:26px; }
.k2-story .k2-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin:28px 0; }
.k2-story .k2-cards article { border-top:1px solid #cabda5; padding-top:20px; }
.k2-story .k2-cards article p { font-size:16px; margin:0; }
.k2-story .k2-bridge { font-size:19px; color:var(--k2-ink); padding:24px 0 0; margin:25px 0 0; border-top:1px solid #dfdbcf; }
.k2-story .k2-after-lead { padding:40px 0; background:#f3f0e8; }
.k2-story .k2-after-lead p { font-family:Georgia,"Noto Serif TC",serif; font-size:clamp(21px,2.3vw,29px); margin:0; color:#65533b; text-align:center; line-height:1.8; }
.k2-story .k2-chapter { display:grid; grid-template-columns:.8fr 1.4fr; gap:clamp(30px,5vw,76px); border-bottom:1px solid #dedbcf; }
.k2-story .k2-note { font-size:13px; color:#74776e; line-height:1.9; }
.k2-story .k2-source, .k2-story .k2-end-links a { display:inline-flex; align-items:center; gap:14px; min-height:44px; border-bottom:1px solid #b7a98d; font-size:14px; line-height:1.8; }
.k2-story .k2-source { font-size:13px; color:#74776e; }
.k2-story .k2-closing { max-width:850px; margin-inline:auto; text-align:center; }
.k2-story .k2-closing p { max-width:700px; margin-inline:auto; }
.k2-story .k2-end-links { display:flex; flex-wrap:wrap; justify-content:center; gap:16px 30px; margin-top:24px; }
.k2-story a:hover { color:var(--k2-accent); }
.k2-story--air { --k2-accent:#657c83; }
.k2-story--first { --k2-accent:#97724f; }
.k2-story--weekend { --k2-accent:#797653; }
.k2-materials { margin-top:38px; }
.k2-materials > h3 { font-size:24px; line-height:1.6; margin-bottom:20px; }
.k2-materials .st-table-wrap { margin-top:0; }
.k2-materials .st-table { background:#fff; }
@media(max-width:850px) { .k2-story .k2-shell{width:calc(100% - 48px)} .k2-story .k2-cards{gap:22px} .k2-story .k2-chapter{grid-template-columns:.9fr 1.2fr;gap:35px} }
@media(max-width:680px) { .k2-story .k2-shell{width:calc(100% - 40px)} .k2-story .k2-opening,.k2-story .k2-chapter,.k2-story .k2-cards{grid-template-columns:1fr;gap:24px} .k2-story .k2-nav{gap:4px 16px;padding-block:15px} .k2-story .k2-nav a{font-size:14px} .k2-story .k2-french{margin-bottom:17px} .k2-story .k2-consider{padding-top:26px} .k2-story .k2-section{padding-block:42px} .k2-story figure{margin-top:26px} .k2-story .k2-after-lead{padding:28px 0} .k2-story .k2-chapter h3{margin-bottom:0} .k2-story .k2-photo-crop{aspect-ratio:2.2} .k2-story .k2-bridge{font-size:18px} }
