:root{--color-bg: #ffffff;--color-bg-alt: #f7f4ef;--color-ink: #3c3c3c;--color-heading: #584d4a;--color-primary: #584d4a;--color-accent: #b18b5f;--color-accent-deep: #8a6a3f;--color-muted: #f7f4ef;--color-line: #e5ded3;--color-btn-bg: #8a6a3f;--color-btn-text: #ffffff;--color-footer-bg: #1a1a1a;--font-ja: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", Meiryo, sans-serif;--font-serif: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Noto Serif JP", serif;--font-en: "Times New Roman", Georgia, serif;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 32px;--space-xl: 64px;--space-section-sp: 72px;--space-section-pc: 112px;--header-height: 68px;--container-width: 1080px;--container-narrow: 800px;--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--duration-reveal: .9s}h1,h2,h3,h4,h5,h6,.wrap-balance{text-wrap:balance}p,dd,li,figcaption,.wrap-body{word-break:keep-all;overflow-wrap:anywhere}.btn{max-width:100%;white-space:normal;word-break:break-word}iframe{max-width:100%;min-width:0}img{max-width:100%;height:auto}.grid>*{min-width:0}@media(max-width:767px){h1{font-size:clamp(1.5rem,7vw,2rem)}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-height)}body{margin:0;font-family:var(--font-ja);font-size:16px;line-height:1.9;letter-spacing:.04em;color:var(--color-ink);background:var(--color-bg)}h1,h2,h3{font-family:var(--font-serif);font-weight:500;color:var(--color-heading);line-height:1.5}a{color:inherit}.container{width:min(var(--container-width),100% - 48px);margin-inline:auto}.container--narrow{width:min(var(--container-narrow),100% - 48px)}.section{padding-block:var(--space-section-sp)}.section--alt{background:var(--color-bg-alt)}@media(min-width:768px){.section{padding-block:var(--space-section-pc)}}.section-head{text-align:center;margin-bottom:var(--space-xl)}.section-head__en{display:block;font-family:var(--font-en);font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-sm)}.section-head__title{margin:0;font-size:28px;letter-spacing:.12em}.section-head:after{content:"";display:block;width:48px;height:1px;background:var(--color-accent);margin:var(--space-md) auto 0}@media(min-width:768px){.section-head__title{font-size:36px}}.btn{display:inline-block;padding:16px 44px;font-size:15px;letter-spacing:.14em;text-decoration:none;text-align:center;border-radius:999px;transition:background-color .35s var(--ease-out-quart),color .35s var(--ease-out-quart),transform .35s var(--ease-out-quart),box-shadow .35s var(--ease-out-quart)}.btn--primary{background:var(--color-btn-bg);color:var(--color-btn-text);box-shadow:0 6px 20px #8a6a3f47}.btn--primary:hover{background:var(--color-accent);transform:translateY(-2px);box-shadow:0 10px 26px #8a6a3f5c}.btn--ghost{background:transparent;color:var(--color-heading);border:1px solid var(--color-accent)}.btn--ghost:hover{background:var(--color-accent-deep);border-color:var(--color-accent-deep);color:#fff}.js-reveal{opacity:0;transform:translateY(28px);transition:opacity var(--duration-reveal) var(--ease-out-quart),transform var(--duration-reveal) var(--ease-out-quart);transition-delay:var(--reveal-delay, 0s)}.js-reveal.is-inview{opacity:1;transform:translateY(0)}.js-reveal-img>picture{display:block;width:100%;height:100%;clip-path:inset(0 100% 0 0);transition:clip-path 1.1s var(--ease-out-quart);transition-delay:var(--reveal-delay, 0s)}.js-reveal-img img{transform:scale(1.12);transition:transform 1.4s var(--ease-out-quart)}.js-reveal-img.is-inview>picture{clip-path:inset(0 0 0 0)}.js-reveal-img.is-inview img{transform:scale(1)}@media(hover:hover){.hover-lift{transition:transform .4s var(--ease-out-quart),box-shadow .4s var(--ease-out-quart)}.hover-lift:hover{transform:translateY(-6px);box-shadow:0 18px 40px #584d4a24}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js-reveal,.js-reveal-img,.js-reveal-img>picture,.js-reveal-img img{opacity:1;transform:none;clip-path:none;transition:none}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
