:root{
  /* base — 背景クリーム / カード ベージュ。※深緑は一旦不使用、アクセントは黒に */
  --c-bg:#ffffff; --c-bg-sub:#e0e0dd; --c-bg-light:#f6f6f4; --c-line:#d6d6d2;
  /* text (sumi) */
  --c-text:#141414; --c-text-weak:#808080; --c-text-inv:#ffffff;
  /* accent ＝ 黒（深緑は一旦使用しない） */
  --c-accent:#141414; --c-accent-deep:#0a0a0a; --c-accent-soft:#b2b2b2; --c-warm:#cfcfca;
  /* CTA (terracotta) — 主要ボタン（宿泊施設／空室検索） */
  --c-cta:#2c4c39; --c-cta-deep:#1f3728;
  /* dark band（帯・サブヒーロー）＝中立チャコール（緑は不使用） */
  --c-dark:#141414;
  --c-overlay:rgba(20,20,20,.06);
  /* fonts */
  --font-serif:"DNP 秀英にじみ初号明朝 Std","A-OTF 秀英初号明朝 Std","Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  /* 見出し用：しっぽり明朝（太めエレガント／暫定。将来 秀英明朝に差替検討） */
  --font-head:"Shippori Mincho","Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  --font-latin:"Bellefair",serif;
  --font-en-serif:"Cormorant Garamond","Bellefair",serif;
  --font-sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;
  /* spacing */
  --space-1:.5rem; --space-2:1rem; --space-3:1.5rem; --space-4:2rem; --space-5:2.5rem;
  --space-6:3rem; --space-7:4rem; --space-8:5rem; --space-9:6rem; --space-10:7rem; --space-12:8rem; --space-15:10rem;
  --container:1200px; --gutter:clamp(1rem,4vw,3rem);
  --radius:0; --header-h:72px;
}
html{color:var(--c-text);background:var(--c-bg)}
body[data-solid-header]{padding-top:var(--header-h)}
body{font-family:var(--font-serif);letter-spacing:.04em;line-height:1.9;font-feature-settings:"palt";line-break:strict}

/* typography */
h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;line-height:1.4;letter-spacing:.06em}
.lined-title span{font-family:var(--font-head)}
.hero-title{font-size:clamp(2rem,6vw,4.5rem);font-weight:500;line-height:1.25}
h2.sec-title{font-size:clamp(1.5rem,3.5vw,2.5rem)}
h3{font-size:clamp(1.125rem,2vw,1.5rem)}
.lead{color:var(--c-text-weak);font-size:clamp(.95rem,1.2vw,1.0625rem)}
.label{font-family:var(--font-latin);letter-spacing:.18em;font-size:.8125rem;color:var(--c-text-weak);text-transform:uppercase;display:inline-block}
.num,.latin{font-family:var(--font-latin);letter-spacing:.04em}
small,.cap{font-size:.8125rem;color:var(--c-text-weak)}
/* スマホ・タブレットのみ有効な句読点改行（PCは自然改行） */
.sp-br{display:none}
@media(max-width:1023px){.sp-br{display:inline}}

/* layout */
.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--space-8)}
@media(min-width:1024px){.section{padding-block:var(--space-12)}}
.section-head{margin-bottom:var(--space-6)}
.section-head .label{margin-bottom:var(--space-1)}
/* TEF系：中央見出しは「日本語(大)→英ラベル(小)→細い区切り線」 */
.section-head.center .label{margin-top:var(--space-1)}
.section-head.center::after{content:"";display:block;width:34px;height:1px;background:var(--c-accent);opacity:.5;margin:var(--space-3) auto 0}
.bg-sub{background:var(--c-bg)}
.bg-light{background:var(--c-bg-light)}
/* サブページ（TOP以外）の背景はABOUT色（明るいクリーム）に統一 */
body.sub{background:var(--c-bg-light)}
body.sub .bg-sub{background:var(--c-bg-light)}
/* フッターは全ページ黒（下記 .site-footer の指定を維持） */
.center{text-align:center}
.stack>*+*{margin-top:var(--space-3)}

/* reveal animation */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}
