body.smp-koumuten { --km-green:#1f3d2b; --km-wood:#d8c3a5; --km-paper:#f5f4ef; --km-ink:#21372a; margin:0; background:#fff; color:var(--km-ink); font-family:'Zen Kaku Gothic New',sans-serif; font-size:16px; line-height:1.8; }
body.smp-koumuten .km-wrap { width:min(1200px,calc(100% - 48px)); margin-inline:auto; }
body.smp-koumuten .km-header { position:sticky; top:48px; z-index:50; background:var(--km-green); color:#fff; }
body.smp-koumuten .km-header-in { display:flex; align-items:center; gap:30px; min-height:74px; }
body.smp-koumuten .km-logo { display:inline-flex; align-items:center; min-height:44px; color:#fff; text-decoration:none; white-space:nowrap; font-family:"Hiragino Mincho ProN","Yu Mincho",serif; font-size:24px; font-weight:700; letter-spacing:.09em; }
body.smp-koumuten .km-header nav { display:flex; gap:24px; margin-left:auto; }
body.smp-koumuten .km-header nav a { display:inline-flex; align-items:center; min-height:44px; color:#fff; text-decoration:none; font-size:14px; }
body.smp-koumuten .km-header-cta { display:inline-flex; align-items:center; min-height:44px; padding:4px 16px; border:1px solid var(--km-wood); color:#fff; text-decoration:none; font-size:14px; white-space:nowrap; }
body.smp-koumuten .km-hero { position:relative; height:min(82vh,780px); min-height:540px; overflow:hidden; color:#fff; }
body.smp-koumuten .km-hero > img { width:100%; height:100%; object-fit:cover; object-position:center 55%; }
body.smp-koumuten .km-hero-shade { position:absolute; inset:0; background:rgba(12,37,21,.43); }
body.smp-koumuten .km-hero-copy { position:absolute; inset:auto 0 80px; }
body.smp-koumuten .km-hero-copy p { margin:0 0 16px; font-weight:700; letter-spacing:.14em; }
body.smp-koumuten .km-hero h1 { margin:0 0 25px; font-family:"Hiragino Mincho ProN","Yu Mincho",serif; font-weight:600; font-size:clamp(49px,8vw,106px); letter-spacing:.1em; line-height:1.25; }
body.smp-koumuten .km-link-light { display:inline-flex; align-items:center; gap:32px; min-height:48px; padding:0 0 5px; border-bottom:2px solid var(--km-wood); color:#fff; font-weight:700; text-decoration:none; }
body.smp-koumuten .km-link-light span { font-size:25px; }
body.smp-koumuten .km-section { padding:clamp(72px,9vw,120px) 0; }
body.smp-koumuten .km-section h2 { margin:0; font-family:"Hiragino Mincho ProN","Yu Mincho",serif; font-weight:600; font-size:clamp(32px,3.6vw,51px); line-height:1.55; letter-spacing:.06em; }
body.smp-koumuten .km-section h3 { margin:0; font-family:"Hiragino Mincho ProN","Yu Mincho",serif; font-size:24px; line-height:1.5; }
body.smp-koumuten .km-index { margin:0 0 24px; color:#84765e; font-family:"Hiragino Mincho ProN","Yu Mincho",serif; font-size:20px; }
body.smp-koumuten .km-belief { background:var(--km-paper); }
body.smp-koumuten .km-belief-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:9%; align-items:center; }
body.smp-koumuten .km-belief-grid > div:last-child p { margin:0 0 20px; }
body.smp-koumuten .km-works { background:#fff; }
body.smp-koumuten .km-section-title { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:30px; }
body.smp-koumuten .km-section-title > p { max-width:25em; margin:0 0 4px; color:#536457; font-size:14px; }
body.smp-koumuten .km-filters { display:flex; flex-wrap:wrap; gap:8px; padding:16px 0; border-top:1px solid #bfc9bd; border-bottom:1px solid #bfc9bd; }
body.smp-koumuten .km-filters button { min-height:44px; padding:7px 20px; border:1px solid var(--km-green); background:#fff; color:var(--km-green); cursor:pointer; font:700 14px 'Zen Kaku Gothic New',sans-serif; }
body.smp-koumuten .km-filters button[aria-pressed="true"] { background:var(--km-green); color:#fff; }
body.smp-koumuten .km-count { margin:20px 0 22px; color:#516553; font-size:14px; }
body.smp-koumuten .km-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:42px 22px; }
body.smp-koumuten .km-work { grid-column:span 4; min-width:0; }
body.smp-koumuten .km-work-wide { grid-column:span 8; }
body.smp-koumuten .km-work[hidden] { display:none; }
body.smp-koumuten .km-work-image { height:300px; margin-bottom:14px; overflow:hidden; background:var(--km-paper); }
body.smp-koumuten .km-work-wide .km-work-image { height:380px; }
body.smp-koumuten .km-work-image img { width:100%; height:100%; object-fit:cover; }
body.smp-koumuten .km-crop-a img { object-position:center 50%; }
body.smp-koumuten .km-crop-b img { object-position:64% center; }
body.smp-koumuten .km-crop-c img { object-position:25% center; }
body.smp-koumuten .km-crop-d img { transform:scale(2); transform-origin:88% 70%; }
body.smp-koumuten .km-crop-e img { transform:scale(1.85); transform-origin:25% 80%; }
body.smp-koumuten .km-crop-f img { transform:scale(2); transform-origin:78% 80%; }
body.smp-koumuten .km-work span { display:block; margin-bottom:7px; color:#5b6d5e; font-size:13px; font-weight:700; }
body.smp-koumuten .km-work p { margin:9px 0 0; font-size:14px; }
body.smp-koumuten .km-craft { background:var(--km-green); color:#fff; }
body.smp-koumuten .km-craft-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:8%; align-items:center; }
body.smp-koumuten .km-craft-photo img { width:100%; height:480px; object-fit:cover; }
body.smp-koumuten .km-craft .km-index { color:var(--km-wood); }
body.smp-koumuten .km-craft-grid p:last-child { max-width:31em; margin:26px 0 0; }
body.smp-koumuten .km-process { background:var(--km-paper); }
body.smp-koumuten .km-process ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; margin:44px 0 0; padding:0; list-style:none; }
body.smp-koumuten .km-process li { padding-top:20px; border-top:2px solid var(--km-green); }
body.smp-koumuten .km-process li > span { display:block; margin-bottom:25px; font-family:"Hiragino Mincho ProN","Yu Mincho",serif; font-size:34px; }
body.smp-koumuten .km-process li p { margin:10px 0 0; }
body.smp-koumuten .km-kitchen-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:8%; align-items:center; }
body.smp-koumuten .km-kitchen-grid p:last-of-type { max-width:30em; margin:26px 0 0; }
body.smp-koumuten .km-kitchen-grid img { width:100%; height:440px; object-fit:cover; }
body.smp-koumuten .km-contact { background:#d8c3a5; }
body.smp-koumuten .km-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:9%; }
body.smp-koumuten .km-contact-grid > div > p:last-child { max-width:32em; margin:20px 0 0; }
body.smp-koumuten .km-contact dl { margin:0; border-top:1px solid #836f54; }
body.smp-koumuten .km-contact dl div { display:grid; grid-template-columns:120px 1fr; gap:12px; padding:18px 0; border-bottom:1px solid #836f54; }
body.smp-koumuten .km-contact dt { font-weight:700; }
body.smp-koumuten .km-contact dd { margin:0; }
body.smp-koumuten .km-footer { padding:56px 0; background:#14291c; color:#e3e8df; font-size:14px; }
body.smp-koumuten .km-footer-name { margin:0 0 18px; color:#fff; font-family:"Hiragino Mincho ProN","Yu Mincho",serif; font-size:26px; }
body.smp-koumuten .km-footer p:not(.km-footer-name) { max-width:55em; }
body.smp-koumuten .km-footer-links { display:flex; flex-wrap:wrap; gap:10px 25px; margin-top:22px; }
body.smp-koumuten .km-footer-links a { display:inline-flex; align-items:center; min-height:44px; color:#fff; }
body.smp-koumuten :is(a,button):focus-visible { outline:3px solid #a6c8ad; outline-offset:3px; }
body.smp-koumuten.is-cap .km-header { top:0; }
@media (max-width:950px) {
body.smp-koumuten .km-header nav { display:none; }
body.smp-koumuten .km-header-cta { margin-left:auto; }
body.smp-koumuten .km-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
body.smp-koumuten .km-work, body.smp-koumuten .km-work-wide { grid-column:auto; }
body.smp-koumuten .km-work-wide .km-work-image { height:300px; }
}
@media (max-width:640px) {
body.smp-koumuten .km-wrap { width:calc(100% - 32px); }
body.smp-koumuten .km-header-in { min-height:60px; gap:12px; }
body.smp-koumuten .km-logo { font-size:19px; }
body.smp-koumuten .km-header-cta { padding:4px 9px; font-size:12px; }
body.smp-koumuten .km-hero { height:490px; min-height:0; }
body.smp-koumuten .km-hero-copy { bottom:50px; }
body.smp-koumuten .km-hero h1 { font-size:clamp(37px,10vw,48px); letter-spacing:.04em; white-space:nowrap; }
body.smp-koumuten .km-belief-grid, body.smp-koumuten .km-craft-grid, body.smp-koumuten .km-kitchen-grid, body.smp-koumuten .km-contact-grid { grid-template-columns:1fr; gap:28px; }
body.smp-koumuten .km-section-title { display:block; }
body.smp-koumuten .km-section-title > p { margin:12px 0 0; }
body.smp-koumuten .km-filters { gap:6px; }
body.smp-koumuten .km-filters button { padding:7px 12px; }
body.smp-koumuten .km-grid { grid-template-columns:1fr; gap:35px; }
body.smp-koumuten .km-work-image, body.smp-koumuten .km-work-wide .km-work-image { height:240px; }
body.smp-koumuten .km-craft-photo img, body.smp-koumuten .km-kitchen-grid img { height:270px; }
body.smp-koumuten .km-process ol { grid-template-columns:1fr; gap:22px; }
body.smp-koumuten .km-process li > span { margin-bottom:8px; }
body.smp-koumuten .km-contact dl div { grid-template-columns:100px 1fr; }
}
@media (prefers-reduced-motion:reduce) { body.smp-koumuten *, body.smp-koumuten *::before, body.smp-koumuten *::after { scroll-behavior:auto; animation:none; transition:none; } }
