@charset "UTF-8";
/* ==========================================================================
   ビジネスホテル シルクホテル — 共通CSS
   制作: アッシム / 2026-07-29
   パレット21「ラグジュアリーノワール」 墨黒 #1C1C1C / 生成白 #FBF8F3 / 金 #B8960C
   ========================================================================== */

:root{
  --ink:#1C1C1C;        /* 墨黒 */
  --washi:#FBF8F3;      /* 生成白 */
  --gold:#B8960C;       /* 金 */
  --gold-lt:#D9BC5A;    /* 淡金 */
  --sumi:#111111;       /* 漆黒（FV地） */
  --body:#4A4744;       /* 本文 */
  --note:#8B857C;       /* 注記 */
  --line:rgba(28,28,28,.14);
  --line-d:rgba(251,248,243,.16);
  --soft:#F4EFE6;       /* 淡い地 */
  --maxw:1180px;
  --grad:linear-gradient(100deg,var(--gold) 0%,var(--gold-lt) 100%);
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--washi); color:var(--body);
  font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",sans-serif;
  font-size:16px; line-height:1.95; letter-spacing:.02em;
  overflow-x:hidden;
}
img{max-width:100%; height:auto; display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:"Shippori Mincho","Hiragino Mincho ProN",serif; color:var(--ink); font-weight:700; letter-spacing:.04em;}
.en{font-family:"Space Grotesk",sans-serif; font-weight:700; letter-spacing:.1em;}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 clamp(20px,5vw,44px);}
.center{text-align:center;}
.skip-link{position:absolute; left:-9999px;}
.skip-link:focus{left:12px; top:12px; z-index:999; background:var(--ink); color:var(--washi); padding:10px 16px;}

/* 金の細罫（障子の組子モチーフ） */
.rule{height:1px; background:linear-gradient(90deg,transparent,var(--gold) 22%,var(--gold) 78%,transparent); opacity:.5; margin:0;}

/* ---------- ボタン ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:16px 30px; font-size:.96rem; font-weight:700; text-decoration:none;
  border-radius:2px; border:1px solid transparent; transition:.28s ease; letter-spacing:.06em;}
.btn-gold{background:var(--gold); color:#fff; border-color:var(--gold);}
.btn-gold:hover{background:#a3840a; border-color:#a3840a;}
.btn-ink{background:var(--ink); color:var(--washi); border-color:var(--ink);}
.btn-ink:hover{background:#000;}
.btn-line-gold{background:transparent; color:var(--gold); border-color:var(--gold);}
.btn-line-gold:hover{background:var(--gold); color:#fff;}
.btn-ghost-w{background:transparent; color:var(--washi); border-color:var(--line-d);}
.btn-ghost-w:hover{background:var(--washi); color:var(--ink); border-color:var(--washi);}
.btn-lg{padding:19px 38px; font-size:1.02rem;}

/* ---------- ヘッダー ---------- */
.site-header{position:sticky; top:0; z-index:60; background:rgba(251,248,243,.94);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.header-bar{max-width:var(--maxw); margin:0 auto; padding:0 clamp(16px,4vw,40px);
  display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:74px;}
.brand{display:flex; align-items:center; gap:11px; text-decoration:none; flex:0 0 auto;}
.brand img{width:38px; height:auto;}
.brand .nm{font-family:"Shippori Mincho",serif; font-weight:700; font-size:1.14rem; color:var(--ink); line-height:1.25;}
.brand .nm small{display:block; font-size:.6rem; letter-spacing:.22em; color:var(--gold); font-family:"Space Grotesk",sans-serif;}
.nav{display:flex; gap:clamp(14px,2vw,28px);}
.nav a{font-size:.9rem; text-decoration:none; color:var(--ink); padding:6px 0; position:relative; white-space:nowrap;}
.nav a::after{content:""; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--gold); transition:right .3s ease;}
.nav a:hover::after{right:0;}
.header-cta{display:flex; align-items:center; gap:14px; flex:0 0 auto;}
.header-tel{text-decoration:none; text-align:right; line-height:1.2;}
.header-tel .n{display:block; font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:1.14rem; color:var(--ink); letter-spacing:.02em;}
.header-tel .t{display:block; font-size:.66rem; color:var(--note); letter-spacing:.06em;}
.menu-toggle{display:none; width:44px; height:38px; background:none; border:1px solid var(--line); border-radius:2px; cursor:pointer; padding:0; position:relative;}
.menu-toggle span{position:absolute; left:12px; width:20px; height:1.5px; background:var(--ink); transition:.3s;}
.menu-toggle span:nth-child(1){top:13px;} .menu-toggle span:nth-child(2){top:18px;} .menu-toggle span:nth-child(3){top:23px;}

/* SPドロワー */
.drawer{position:fixed; inset:0; z-index:90; background:var(--sumi); color:var(--washi);
  display:flex; flex-direction:column; justify-content:center; gap:6px; padding:80px 34px;
  opacity:0; visibility:hidden; transition:.36s ease;}
.drawer.open{opacity:1; visibility:visible;}
.drawer a{font-family:"Shippori Mincho",serif; font-size:1.24rem; text-decoration:none; color:var(--washi);
  padding:15px 0; border-bottom:1px solid var(--line-d); display:flex; align-items:baseline; gap:14px;}
.drawer a i{font-family:"Space Grotesk",sans-serif; font-style:normal; font-size:.7rem; color:var(--gold);}
.drawer .btn{margin-top:22px;}
.drawer-close{position:absolute; top:22px; right:22px; width:46px; height:46px; background:none;
  border:1px solid var(--line-d); color:var(--washi); font-size:1.4rem; cursor:pointer; border-radius:2px;}

/* ---------- FV: Curtain ---------- */
.hero{position:relative; height:100svh; min-height:560px; overflow:hidden; background:var(--sumi);}
/* FV背景：建物写真2枚をゆっくりクロスフェード */
.hero__photo{position:absolute; inset:0; overflow:hidden;}
.hero__photo i{position:absolute; inset:0; display:block; background-size:cover; background-position:center;
  filter:saturate(.92) brightness(.95) contrast(1.06); transform:scale(1.06);}
/* 1枚目＝エントランス（常時ベース）／2枚目＝外観がゆっくり重なって戻る
   ※ background-image は index.html の <i> に style 属性で直接指定する。
      カスタムプロパティ経由にすると相対URLがこのCSSファイル基準で解決されて404になるため。 */
.hero__photo i:nth-child(1){background-position:60% 50%; opacity:1;}
.hero__photo i:nth-child(2){background-position:center 24%; opacity:0;}
.j .hero__photo i:nth-child(2){animation:fvAlt 24s ease-in-out infinite;}
@keyframes fvAlt{
  0%,38%{opacity:0} 48%,72%{opacity:1} 82%,100%{opacity:0}
}
/* コピーが乗る左側だけを暗く落とし、右側は建物を見せる */
.hero__veil{position:absolute; inset:0;
  background:
    linear-gradient(96deg, rgba(14,14,14,.94) 0%, rgba(14,14,14,.9) 30%, rgba(14,14,14,.72) 52%, rgba(14,14,14,.3) 74%, rgba(14,14,14,.1) 100%),
    linear-gradient(180deg, rgba(14,14,14,.55) 0%, rgba(14,14,14,.1) 26%, rgba(14,14,14,.12) 62%, rgba(14,14,14,.62) 100%),
    radial-gradient(120% 80% at 82% 6%, rgba(184,150,12,.14) 0%, transparent 58%);}
.hero__grain{position:absolute; inset:0; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
/* 金の横罫（組子） */
.hero__kumiko{position:absolute; inset:0; pointer-events:none; opacity:.3;
  background-image:repeating-linear-gradient(180deg, rgba(184,150,12,.55) 0 1px, transparent 1px 84px);
  mask-image:radial-gradient(80% 70% at 50% 45%,#000,transparent 78%);}

.hero__inner{position:relative; z-index:20; height:100%; max-width:var(--maxw); margin:0 auto;
  padding:0 clamp(24px,6vw,60px); display:flex; flex-direction:column; justify-content:center;}
.hero__label{font-family:"Space Grotesk",sans-serif; font-size:.68rem; letter-spacing:.3em; color:var(--gold-lt); margin:0 0 22px;}
.hero h1{font-size:clamp(2rem,5.6vw,3.9rem); line-height:1.5; color:var(--washi); margin:0 0 26px; font-weight:700;}
.hero h1 .g{color:var(--gold-lt);}
.hero__sub{max-width:640px; font-size:clamp(.96rem,1.5vw,1.1rem); line-height:1.95; color:rgba(251,248,243,.82); margin:0 0 34px;}
.hero__acts{display:flex; flex-wrap:wrap; gap:14px;}
.hero__facts{display:flex; flex-wrap:wrap; gap:0; margin-top:44px; border-top:1px solid var(--line-d);}
.hero__facts div{padding:18px 30px 0 0; margin-right:30px; border-right:1px solid var(--line-d);}
.hero__facts div:last-child{border-right:0; margin-right:0;}
.hero__facts .n{display:block; font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:1.5rem; color:var(--gold-lt); line-height:1;}
.hero__facts .t{display:block; font-size:.74rem; color:rgba(251,248,243,.66); margin-top:7px; letter-spacing:.06em;}

/* カーテン（JSオフ時は開いた状態＝非表示） */
.curtain{position:absolute; top:0; height:100%; width:50.2%; z-index:30; background:var(--sumi);
  display:none; align-items:center;}
.j .curtain{display:flex;}
.curtain--l{left:0; border-right:1px solid rgba(184,150,12,.45); justify-content:flex-end; padding-right:clamp(16px,3vw,46px);}
.curtain--r{right:0; border-left:1px solid rgba(184,150,12,.45); justify-content:flex-start; padding-left:clamp(16px,3vw,46px);}
.curtain h2{font-size:clamp(1.5rem,4.4vw,3.1rem); color:rgba(251,248,243,.9); margin:0; white-space:nowrap; font-weight:700;}
.j .hero__inner{opacity:0;}

/* ---------- セクション共通 ---------- */
.sec{padding:clamp(72px,9vw,124px) 0;}
.sec--soft{background:var(--soft);}
.sec--ink{background:var(--sumi); color:rgba(251,248,243,.8);}
.sec--ink h2,.sec--ink h3{color:var(--washi);}
.eyebrow{display:inline-block; font-family:"Space Grotesk",sans-serif; font-size:.66rem; letter-spacing:.3em;
  color:var(--gold); margin:0 0 16px;}
.sec-title{font-size:clamp(1.5rem,3.5vw,2.5rem); line-height:1.55; margin:0 0 20px;}
.lead{font-size:1rem; line-height:2.05; margin:0; color:var(--body);}
.sec--ink .lead{color:rgba(251,248,243,.74);}
.sec-head{max-width:720px; margin:0 auto 56px;}
.sec-head.center{text-align:center;}

/* reveal */
.reveal{opacity:1; transform:none;}
.j .reveal{opacity:0; transform:translateY(22px);}
.j .reveal.on{opacity:1; transform:none; transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1);}
.j .reveal.d1.on{transition-delay:.1s;} .j .reveal.d2.on{transition-delay:.2s;} .j .reveal.d3.on{transition-delay:.3s;}

/* ---------- c-intro（導入） ---------- */
.c-intro__grid{display:grid; grid-template-columns:0.88fr 1.22fr; gap:clamp(30px,4.4vw,64px); align-items:center;}
.c-intro__q{margin:0 0 26px; font-family:"Shippori Mincho",serif; font-size:clamp(1.2rem,2.4vw,1.7rem);
  color:var(--note); line-height:1.85;}
.c-intro__q b{color:var(--ink); font-weight:700;}
.c-intro__fig{position:relative; border:1px solid var(--line); padding:10px; background:#fff; margin:0;}
.c-intro__fig img{width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 42%; display:block;}
.c-intro__fig figcaption{font-size:.78rem; color:var(--note); margin-top:12px; letter-spacing:.06em;}

/* ---------- c-reasons（3つの理由） ---------- */
.c-reasons__list{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.5vw,32px); margin-top:8px;}
.c-reasons__item{background:var(--washi); border:1px solid var(--line); padding:clamp(28px,3.5vw,42px) clamp(22px,3vw,34px);}
.sec--ink .c-reasons__item{background:rgba(251,248,243,.04); border-color:var(--line-d);}
.c-reasons__no{font-family:"Space Grotesk",sans-serif; font-size:.72rem; letter-spacing:.24em; color:var(--gold);}
.c-reasons__item h3{font-size:1.2rem; margin:14px 0 12px; line-height:1.6;}
.c-reasons__item p{margin:0; font-size:.92rem; line-height:1.95;}
.c-reasons__item .fact{display:block; margin-top:16px; padding-top:14px; border-top:1px solid var(--line);
  font-size:.8rem; color:var(--note); letter-spacing:.04em;}
.sec--ink .c-reasons__item .fact{border-color:var(--line-d); color:rgba(251,248,243,.6);}

/* ---------- c-rooms（客室） ---------- */
.c-rooms__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,34px);}
.c-room{background:#fff; border:1px solid var(--line); display:flex; flex-direction:column;}
.c-room__ph{position:relative; background:#e9e4da; overflow:hidden;}
.c-room__ph img{width:100%; aspect-ratio:16/10; object-fit:cover;}
.c-room__tag{position:absolute; left:0; top:0; background:var(--ink); color:var(--washi);
  font-size:.7rem; letter-spacing:.16em; padding:7px 14px; font-family:"Space Grotesk",sans-serif;}
.c-room__b{padding:clamp(22px,2.6vw,30px); display:flex; flex-direction:column; flex:1;}
.c-room__b h3{font-size:1.2rem; margin:0 0 8px;}
.c-room__b .sz{font-size:.82rem; color:var(--gold); letter-spacing:.08em; margin:0 0 14px;}
.c-room__b p{margin:0 0 18px; font-size:.9rem; line-height:1.9;}
.c-room__price{margin-top:auto; padding-top:16px; border-top:1px solid var(--line); display:flex; align-items:baseline; gap:7px;}
.c-room__price .n{font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:1.7rem; color:var(--ink);}
.c-room__price .u{font-size:.78rem; color:var(--note);}

/* ---------- c-price（料金） ---------- */
.c-price__table{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line);}
.c-price__table caption{text-align:left; font-size:.8rem; color:var(--note); padding:0 0 12px;}
.c-price__table th,.c-price__table td{padding:17px 18px; border-bottom:1px solid var(--line); text-align:left; font-size:.92rem; vertical-align:top;}
.c-price__table thead th{background:var(--ink); color:var(--washi); font-family:"Shippori Mincho",serif;
  font-size:.84rem; letter-spacing:.1em; border-bottom:0;}
.c-price__table tbody tr:last-child th,.c-price__table tbody tr:last-child td{border-bottom:0;}
.c-price__table th{font-family:"Shippori Mincho",serif; color:var(--ink); font-weight:700; width:40%;}
.c-price__table .amt{font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:1.1rem; color:var(--ink); white-space:nowrap;}
.c-price__table .lim{display:inline-block; margin-left:8px; font-size:.68rem; letter-spacing:.1em;
  color:#fff; background:var(--gold); padding:3px 9px; vertical-align:2px;}
.c-price__note{margin:18px 0 0; font-size:.82rem; color:var(--note); line-height:1.9;}

/* ---------- c-facility（館内・朝食） ---------- */
.c-fac__grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(28px,5vw,64px); align-items:center;}
.c-fac__ph{border:1px solid var(--line-d); padding:12px; background:rgba(251,248,243,.05);}
.c-fac__ph img{width:100%; aspect-ratio:4/3; object-fit:cover;}
.c-fac__ph figcaption{font-size:.74rem; color:rgba(251,248,243,.6); margin-top:10px; letter-spacing:.06em;}
.c-fac__tags{display:flex; flex-wrap:wrap; gap:9px; margin:24px 0 0;}
.c-fac__tags span{border:1px solid var(--line-d); padding:8px 15px; font-size:.82rem; color:rgba(251,248,243,.82);}
.c-fac__time{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:30px;
  border-top:1px solid var(--line-d);}
.c-fac__time div{padding:18px 30px 4px 0; margin:0; border-right:1px solid var(--line-d);}
.c-fac__time div:not(:first-child){padding-left:30px;}
.c-fac__time div:last-child{border-right:0; padding-right:0;}
.c-fac__time .n{display:block; font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:1.28rem; color:var(--gold-lt);}
.c-fac__time .t{display:block; font-size:.74rem; color:rgba(251,248,243,.62); margin-top:6px;}

/* ---------- c-access ---------- */
.c-access__grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px);}
.c-access__box{background:#fff; border:1px solid var(--line); padding:clamp(26px,3.4vw,38px);}
.c-access__box h3{font-size:1.1rem; margin:0 0 18px; padding-bottom:14px; border-bottom:1px solid var(--line);}
.c-access__box ul{list-style:none; margin:0; padding:0; display:grid; gap:12px;}
.c-access__box li{font-size:.92rem; display:flex; gap:12px; line-height:1.8;}
.c-access__box li::before{content:"—"; color:var(--gold); flex:0 0 auto;}
.c-access__map{margin-top:36px; border:1px solid var(--line);}
.c-access__map iframe{width:100%; height:380px; border:0; display:block; filter:grayscale(.35);}

/* ---------- c-faq ---------- */
.c-faq__list{max-width:840px; margin:0 auto; border-top:1px solid var(--line);}
.c-faq__item{border-bottom:1px solid var(--line);}
.c-faq__item summary{cursor:pointer; padding:22px 44px 22px 34px; position:relative; list-style:none;
  font-family:"Shippori Mincho",serif; font-size:1.02rem; color:var(--ink); line-height:1.7;}
.c-faq__item summary::-webkit-details-marker{display:none;}
.c-faq__item summary::before{content:"Q"; position:absolute; left:0; top:22px;
  font-family:"Space Grotesk",sans-serif; font-size:.86rem; color:var(--gold);}
.c-faq__item summary::after{content:""; position:absolute; right:8px; top:31px; width:11px; height:11px;
  border-right:1.5px solid var(--gold); border-bottom:1.5px solid var(--gold); transform:rotate(45deg); transition:.3s;}
.c-faq__item[open] summary::after{transform:rotate(-135deg);}
.c-faq__a{padding:0 44px 24px 34px; font-size:.94rem; line-height:2; position:relative;}
.c-faq__a::before{content:"A"; position:absolute; left:0; top:0; font-family:"Space Grotesk",sans-serif; font-size:.86rem; color:var(--note);}

/* ---------- c-news ---------- */
.c-news__list{max-width:840px; margin:0 auto; border-top:1px solid var(--line);}
.c-news__item{display:flex; gap:clamp(16px,3vw,34px); padding:24px 0; border-bottom:1px solid var(--line); align-items:baseline;}
.c-news__item time{font-family:"Space Grotesk",sans-serif; font-size:.8rem; color:var(--gold); flex:0 0 auto; letter-spacing:.1em;}
.c-news__item p{margin:0; font-size:.94rem; line-height:1.9;}

/* ---------- c-cta ---------- */
.c-cta{position:relative; background:var(--sumi); color:var(--washi); padding:clamp(76px,10vw,132px) 0; text-align:center; overflow:hidden;}
.c-cta::before{content:""; position:absolute; inset:0;
  background:radial-gradient(80% 70% at 50% 0%, rgba(184,150,12,.22) 0%, transparent 62%);}
.c-cta .wrap{position:relative; z-index:2;}
.c-cta h2{font-size:clamp(1.6rem,4vw,2.7rem); color:var(--washi); margin:0 0 20px; line-height:1.55;}
.c-cta p{max-width:600px; margin:0 auto 34px; color:rgba(251,248,243,.76); font-size:.98rem;}
.c-cta__tel{display:inline-flex; flex-direction:column; align-items:center; text-decoration:none; margin-bottom:26px;}
.c-cta__tel .n{font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:clamp(2rem,5vw,3rem);
  color:var(--gold-lt); letter-spacing:.02em; line-height:1.1;}
.c-cta__tel .t{font-size:.78rem; color:rgba(251,248,243,.62); letter-spacing:.14em; margin-top:8px;}
.c-cta__acts{display:flex; flex-wrap:wrap; gap:14px; justify-content:center;}

/* ---------- 中間CTAバンド（LP用・軽量） ---------- */
.cta-band{background:var(--ink); color:var(--washi); padding:clamp(30px,4vw,44px) 0;}
.cta-band .in{max-width:var(--maxw); margin:0 auto; padding:0 clamp(20px,5vw,44px);
  display:flex; align-items:center; justify-content:space-between; gap:clamp(18px,3vw,40px); flex-wrap:wrap;}
.cta-band .tx{flex:1 1 320px;}
.cta-band .tx b{display:block; font-family:"Shippori Mincho",serif; font-size:clamp(1.06rem,2.2vw,1.42rem);
  color:var(--washi); line-height:1.6; margin-bottom:6px;}
.cta-band .tx span{font-size:.86rem; color:rgba(251,248,243,.68);}
.cta-band .ac{display:flex; gap:12px; flex-wrap:wrap; flex:0 0 auto;}
.cta-band .tel{display:flex; flex-direction:column; text-decoration:none; padding-right:8px;}
.cta-band .tel .n{font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:1.62rem; color:var(--gold-lt); line-height:1.1;}
.cta-band .tel .t{font-size:.7rem; color:rgba(251,248,243,.6); letter-spacing:.08em; margin-top:4px;}
@media(max-width:720px){
  .cta-band .in{flex-direction:column; align-items:stretch; gap:20px;}
  /* 縦並びでは flex-basis が「高さ」に効いてしまうため必ず解除する */
  .cta-band .tx{flex:0 0 auto;}
  .cta-band .ac{display:grid; gap:10px; flex:0 0 auto;}
  .cta-band .ac .btn{width:100%;}
  .cta-band .tel{align-items:flex-start; padding-right:0; flex:0 0 auto;}
}

/* ---------- page-hero（下層） ---------- */
.page-hero{background:var(--sumi); color:var(--washi); padding:clamp(112px,13vw,158px) 0 clamp(46px,6vw,66px); position:relative; overflow:hidden;}
.page-hero::before{content:""; position:absolute; inset:0;
  background:radial-gradient(90% 80% at 88% 6%, rgba(184,150,12,.2) 0%, transparent 60%);}
.page-hero .wrap{position:relative; z-index:2;}
.breadcrumb{display:block; font-family:"Space Grotesk",sans-serif; font-size:.68rem; letter-spacing:.2em;
  color:rgba(251,248,243,.55); margin-bottom:20px;}
.breadcrumb a{color:var(--gold-lt); text-decoration:none;}
.page-hero h1{font-size:clamp(1.7rem,4.4vw,2.9rem); color:var(--washi); margin:0 0 16px; line-height:1.5;}
.page-hero p{margin:0; max-width:680px; color:rgba(251,248,243,.76); font-size:.98rem;}

/* ---------- 汎用 dl ---------- */
.spec{width:100%; border-top:1px solid var(--line);}
.spec div{display:flex; gap:clamp(14px,3vw,34px); padding:17px 0; border-bottom:1px solid var(--line);}
.spec dt{flex:0 0 clamp(96px,20%,190px); margin:0; font-family:"Shippori Mincho",serif; color:var(--ink); font-weight:700; font-size:.92rem;}
.spec dd{margin:0; font-size:.94rem; line-height:1.9;}

/* 備品リスト */
.amenity{display:grid; grid-template-columns:repeat(4,1fr); gap:10px 14px; margin:0; padding:0; list-style:none;}
.amenity li{font-size:.88rem; padding:11px 14px; background:#fff; border:1px solid var(--line); display:flex; gap:9px;}
.amenity li::before{content:"✓"; color:var(--gold); flex:0 0 auto;}

/* ---------- フッター ---------- */
.site-footer{background:var(--sumi); color:rgba(251,248,243,.72); padding:clamp(56px,7vw,84px) 0 30px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:clamp(28px,4vw,56px);}
.footer-brand .nm{font-family:"Shippori Mincho",serif; font-size:1.3rem; color:var(--washi); margin:0 0 14px;}
.footer-brand p{margin:0 0 6px; font-size:.86rem; line-height:1.9;}
.footer-brand .tel{font-family:"Space Grotesk",sans-serif; font-weight:700; font-size:1.4rem; color:var(--gold-lt);
  display:inline-block; margin-top:14px; text-decoration:none; letter-spacing:.02em;}
.footer-col h4{font-family:"Space Grotesk",sans-serif; font-size:.68rem; letter-spacing:.24em; color:var(--gold); margin:0 0 18px; font-weight:700;}
.footer-col a{display:block; font-size:.88rem; text-decoration:none; padding:6px 0; color:rgba(251,248,243,.72);}
.footer-col a:hover{color:var(--washi);}
.footer-btm{margin-top:clamp(38px,5vw,56px); padding-top:22px; border-top:1px solid var(--line-d);
  display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:.76rem; color:rgba(251,248,243,.5);}

/* SP固定電話バー */
.sp-bar{display:none; position:fixed; left:0; right:0; bottom:0; z-index:70; background:var(--ink);
  border-top:1px solid rgba(184,150,12,.45);}
.sp-bar a{flex:1; display:flex; align-items:center; justify-content:center; gap:8px; padding:15px 8px;
  text-decoration:none; font-size:.92rem; font-weight:700; color:var(--washi);}
.sp-bar a+a{border-left:1px solid var(--line-d); background:var(--gold); color:#fff;}

/* ==========================================================================
   レスポンシブ
   ========================================================================== */
@media(max-width:1000px){
  .nav{display:none;}
  .menu-toggle{display:block;}
  .c-reasons__list,.c-rooms__grid{grid-template-columns:1fr 1fr;}
  .c-intro__grid,.c-fac__grid,.c-access__grid,.footer-grid{grid-template-columns:1fr;}
  .amenity{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:720px){
  body{font-size:15px;}
  .header-tel{display:none;}
  .hero{height:auto; min-height:0; padding:112px 0 96px;}
  .hero__inner{padding-top:0;}
  /* CTAは幅を揃えて縦積み */
  .hero__acts{display:grid; gap:12px;}
  .hero__acts .btn{width:100%;}
  /* 4つの数字：flexの折り返しだと列が揃わないので2×2グリッドにする */
  .hero__facts{display:grid; grid-template-columns:1fr 1fr; gap:0;}
  .hero__facts div{padding:15px 14px 15px 0; margin:0; border-right:0;
    border-bottom:1px solid var(--line-d);}
  .hero__facts div:nth-child(2n){padding-left:16px; padding-right:0; border-left:1px solid var(--line-d);}
  .hero__facts div:nth-last-child(-n+2){border-bottom:0;}
  .hero__facts .n{font-size:1.3rem;}
  .hero__facts .t{margin-top:5px;}
  .curtain h2{font-size:1.3rem;}
  .c-reasons__list,.c-rooms__grid{grid-template-columns:1fr;}
  .amenity{grid-template-columns:repeat(2,1fr);}
  /* 料金表：3列だと1行に数文字しか入らないので、1プラン=1カードに組み替える */
  .c-price__table,.c-price__table tbody,.c-price__table tr,.c-price__table th,.c-price__table td{display:block; width:auto;}
  .c-price__table{border:0; background:none;}
  .c-price__table caption{display:block; width:auto; padding:0 0 14px;}
  .c-price__table thead{display:none;}
  .c-price__table tbody tr{background:#fff; border:1px solid var(--line); padding:20px 18px; margin-bottom:14px;}
  .c-price__table tbody tr:last-child{margin-bottom:0;}
  .c-price__table th,.c-price__table td{border-bottom:0; padding:0;}
  .c-price__table tbody th[scope="row"]{font-size:1.04rem; line-height:1.6; margin-bottom:12px;}
  .c-price__table .lim{display:table; margin:10px 0 0; vertical-align:baseline;}
  .c-price__table td{position:relative; padding-top:12px; margin-top:12px; border-top:1px solid var(--line);
    font-size:.9rem; line-height:1.95;}
  .c-price__table td::before{display:block; font-family:"Space Grotesk",sans-serif; font-size:.6rem;
    letter-spacing:.22em; color:var(--gold); margin-bottom:5px;}
  .c-price__table td:nth-of-type(1)::before{content:"PRICE";}
  .c-price__table td:nth-of-type(2)::before{content:"DETAIL";}
  .c-price__table .amt{font-size:1.5rem;}

  /* dl も縦積みにして読み幅を確保 */
  .spec div{display:block; padding:15px 0;}
  .spec dt{margin-bottom:6px;}
  /* 3つの数字：折り返させず3列に収める */
  .c-fac__time{display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
  .c-fac__time div{padding:14px 9px 14px 0; margin:0; border-right:1px solid var(--line-d);}
  .c-fac__time div:not(:first-child){padding-left:10px;}
  .c-fac__time div:last-child{border-right:0; padding-right:0;}
  .c-fac__time .n{font-size:.98rem; letter-spacing:0;}
  .c-fac__time .t{font-size:.68rem; margin-top:5px; line-height:1.5;}
  .sp-bar{display:flex;}
  .site-footer{padding-bottom:88px;}
  .c-faq__item summary{padding:20px 34px 20px 26px;}
  .c-faq__item summary::after{right:2px;}
  .c-faq__a{padding:0 4px 22px 26px;}
}
@media(max-width:600px){
  /* ヘッダーの予約ボタンは下部固定バーとドロワーに集約（横あふれ防止） */
  .header-cta .btn{display:none;}
  .brand .nm{font-size:1.02rem;}
  .brand .nm small{font-size:.54rem; letter-spacing:.16em;}
}

/* ==========================================================================
   モーション低減
   ========================================================================== */
@media(prefers-reduced-motion:reduce){
  .curtain{display:none !important;}
  .j .hero__inner{opacity:1 !important;}
  .j .reveal{opacity:1 !important; transform:none !important;}
  .j .hero__photo i{animation:none !important;}
  .hero__photo i{transform:scale(1);}
  .hero__photo i:nth-child(2){opacity:0 !important;}
  *{transition-duration:.01ms !important; animation-duration:.01ms !important;}
}

/* ============================================================
   追記（2026-09）：客室4タイプ／館内ギャラリー／周辺観光リスト
   ============================================================ */

/* 客室グリッド：PCのみ4カラム。1080px以下は既存の2→1カラムにフォールバック */
@media(min-width:1081px){
  .c-rooms__grid--4{grid-template-columns:repeat(4,1fr);}
  .c-rooms__grid--4 .c-room__b{padding:24px 20px;}
  .c-rooms__grid--4 .c-room__b h3{font-size:1.12rem;}
  .c-rooms__grid--4 .c-room__b p{font-size:.86rem; line-height:1.85;}
}

/* 館内設備ギャラリー */
.c-gal{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.4vw,28px);}
.c-gal figure{margin:0; background:var(--washi); border:1px solid var(--line); overflow:hidden;}
.sec--ink .c-gal figure{background:rgba(251,248,243,.04); border-color:var(--line-d);}
.c-gal img{width:100%; aspect-ratio:4/3; object-fit:cover; display:block;}
.c-gal figcaption{padding:clamp(18px,2.2vw,24px); font-size:.88rem; line-height:1.9;}
.c-gal figcaption b{display:block; font-size:1rem; margin-bottom:8px; color:var(--gold); letter-spacing:.04em;}
@media(max-width:900px){ .c-gal{grid-template-columns:1fr 1fr;} }
@media(max-width:600px){ .c-gal{grid-template-columns:1fr;} }

/* 周辺観光：.c-reasons__item の中にリストを置けるように */
.c-reasons__item ul{list-style:none; margin:14px 0 0; padding:0; display:grid; gap:18px;}
.c-reasons__item li{position:relative; padding-left:22px; font-size:.9rem; line-height:1.9;}
.c-reasons__item li::before{content:"—"; color:var(--gold); position:absolute; left:0; top:0;}
.c-reasons__item li b{display:block; font-weight:700; margin-bottom:2px;}

/* ===== 近場観光（ABOUT内 .c-near） ===== */
.c-near{margin-top:clamp(56px,7vw,92px); padding-top:clamp(44px,5vw,64px); border-top:1px solid var(--line);}
.c-near__head{max-width:820px; margin:0 0 clamp(28px,3.4vw,44px);}
.c-near__ttl{font-family:"Shippori Mincho",serif; font-weight:700; line-height:1.6;
  font-size:clamp(1.35rem,2.6vw,2rem); margin:12px 0 16px; color:var(--ink);}
.c-near__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.4vw,30px);}
.c-near__card{margin:0; background:#fff; border:1px solid var(--line); overflow:hidden;
  display:flex; flex-direction:column;}
.c-near__card img{width:100%; aspect-ratio:3/2; object-fit:cover; display:block; background:var(--soft);}
.c-near__card figcaption{padding:clamp(18px,2.1vw,24px);}
.c-near__time{display:inline-block; font-family:"Space Grotesk",sans-serif; font-size:.66rem;
  letter-spacing:.14em; color:var(--washi); background:var(--gold); padding:5px 11px; margin-bottom:13px;}
.c-near__card b{display:block; font-family:"Shippori Mincho",serif; font-size:1.06rem;
  line-height:1.55; margin-bottom:9px; color:var(--ink);}
.c-near__card .tx{display:block; font-size:.86rem; line-height:1.95; color:var(--body);}
.c-near__note{margin:clamp(24px,3vw,34px) 0 0; font-size:.8rem; line-height:2; color:var(--note);}
.c-near__note a{display:inline-block; margin-top:6px; color:var(--gold);
  border-bottom:1px solid currentColor; text-decoration:none;}
.c-near__note a:hover{opacity:.75;}
@media(max-width:1080px){ .c-near__grid{grid-template-columns:1fr 1fr;} }
@media(max-width:620px){ .c-near__grid{grid-template-columns:1fr;} }

/* ===== 予約フォーム（.c-form） ===== */
.c-form__grid{display:grid; grid-template-columns:minmax(0,1fr) 352px; gap:clamp(24px,3vw,40px); align-items:start;}
.c-form__cols{display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,2.4vw,28px); margin-bottom:clamp(20px,2.4vw,28px);}
.c-form__box{background:#fff; border:1px solid var(--line); padding:clamp(24px,2.8vw,34px); margin:0 0 clamp(20px,2.4vw,28px); min-width:0;}
.c-form__cols .c-form__box{margin:0;}
.c-form__box:last-child{margin-bottom:0;}
.c-form__box{min-inline-size:0;}
.c-form__box legend,.c-form__legend{float:left; width:100%; padding:0 0 16px; margin:0 0 22px;
  border-bottom:1px solid var(--line); font-family:"Shippori Mincho",serif; font-size:1.12rem;
  font-weight:700; line-height:1.4; color:var(--ink);}
.c-form__box::after{content:""; display:table; clear:both;}
.c-form__row,.c-form__radios,.c-form__sumlist,.c-form__empty,.c-form__box > .c-form__note{clear:both;}
.c-form__row{margin-bottom:22px;}
.c-form__row:last-child{margin-bottom:0;}
.c-form__row > label{display:block; font-size:.86rem; font-weight:500; color:var(--ink); margin-bottom:9px;}
.c-form__row > label em{display:inline-block; font-style:normal; font-size:.66rem; letter-spacing:.08em;
  color:var(--washi); background:var(--gold); padding:3px 8px; margin-left:8px; vertical-align:1px;}
.c-form input[type=text],.c-form input[type=tel],.c-form input[type=email],
.c-form input[type=date],.c-form textarea,.c-form select{
  width:100%; font-family:inherit; font-size:1rem; color:var(--ink); background:var(--washi);
  border:1px solid var(--line); border-radius:0; padding:13px 14px; -webkit-appearance:none; appearance:none;}
.c-form textarea{line-height:1.9; resize:vertical; min-height:132px;}
.c-form input:focus,.c-form textarea:focus,.c-form select:focus{
  outline:none; border-color:var(--gold); box-shadow:0 0 0 2px rgba(184,150,12,.16); background:#fff;}
.c-form input::placeholder,.c-form textarea::placeholder{color:#b4ada1;}
.c-form input[type=date]{min-height:49px;}
.c-form__sel{position:relative;}
.c-form__sel::after{content:""; position:absolute; right:16px; top:50%; width:7px; height:7px;
  border-right:1.5px solid var(--gold); border-bottom:1.5px solid var(--gold);
  transform:translateY(-70%) rotate(45deg); pointer-events:none;}
.c-form__sel select{padding-right:38px;}
.c-form__note{display:block; margin-top:9px; font-size:.76rem; line-height:1.85; color:var(--note);}
.c-form__pot{position:absolute; left:-9999px;}
.c-form__radios{display:grid; gap:10px;}
.c-form__radio{display:flex; align-items:center; gap:10px; font-size:.9rem; cursor:pointer;
  border:1px solid var(--line); padding:12px 14px; background:var(--washi);}
.c-form__radio input{accent-color:var(--gold); width:16px; height:16px; flex:0 0 auto;}
.c-form__radio:has(input:checked){border-color:var(--gold); background:#fff;}
/* サマリー */
.c-form__sticky{position:sticky; top:96px; display:grid; gap:clamp(18px,2.2vw,24px);}
.c-form__sum{background:var(--ink); border-color:var(--ink); color:var(--washi);}
.c-form__sum .c-form__legend{color:var(--washi); border-bottom-color:var(--line-d);}
.c-form__empty{margin:0; font-size:.88rem; line-height:1.9; color:rgba(251,248,243,.66);}
.c-form__sumlist{margin:0; display:grid; gap:0;}
.c-form__sumlist > div{display:flex; justify-content:space-between; gap:14px; align-items:baseline;
  padding:11px 0; border-bottom:1px solid var(--line-d);}
.c-form__sumlist > div:last-child{border-bottom:0;}
.c-form__sumlist dt{margin:0; font-size:.78rem; color:rgba(251,248,243,.6); flex:0 0 auto;}
.c-form__sumlist dd{margin:0; font-size:.9rem; text-align:right; color:var(--washi);}
.c-form__submit{background:#fff; border:1px solid var(--line); padding:clamp(22px,2.6vw,28px); text-align:center;}
.c-form__submit .btn{width:100%; justify-content:center;}
.c-form__cancel{margin:0 0 18px; font-size:.78rem; line-height:1.9; color:var(--body);
  background:var(--soft); padding:12px 14px;}
.c-form__cancel b{display:block; font-size:.72rem; letter-spacing:.08em; color:var(--gold); margin-bottom:3px;}
.c-form__caution{margin:16px 0 0; font-size:.75rem; line-height:1.9; color:var(--note); text-align:left;}
.c-form__caution a{color:var(--gold);}
@media(max-width:1080px){
  .c-form__grid{grid-template-columns:1fr;}
  .c-form__sticky{position:static;}
}
@media(max-width:680px){
  .c-form__cols{grid-template-columns:1fr;}
}

/* FV：ロビー写真。狭い画面ではフロント側（写真の右寄り）に寄せて主題を見せる */
@media(max-width:1000px){ .hero__photo i:nth-child(1){background-position:74% 50%;} }
@media(max-width:600px){ .hero__photo i:nth-child(1){background-position:86% 46%;} }

/* ABOUTの写真：1カラムに落ちたら本文幅いっぱいに、スマホは少し縦長に */
@media(max-width:1080px){
  .c-intro__fig{max-width:none;}
  .c-intro__fig img{aspect-ratio:4/3;}
}
@media(max-width:600px){
  .c-intro__fig{padding:8px;}
  .c-intro__fig img{aspect-ratio:4/3;}
}

/* ============================================================
   印刷用（2026-10）
   画面の出現アニメーションが印刷に持ち越され、未スクロール部分が
   透明・22pxずれたまま出力されて文字が重なる問題への対処を含む
   ============================================================ */
@media print {
  /* ① 出現アニメーションを完全に無効化（文字の重なりの原因） */
  .reveal, .j .reveal, .j .reveal.on{
    opacity:1 !important; transform:none !important; transition:none !important;}

  /* ② 追従・固定する要素は紙では邪魔になる */
  .site-header{position:static !important;}
  .sp-bar,.drawer,.menu-toggle,.hero__grain,.hero__kumiko,.hero__veil,.hero__photo{display:none !important;}
  .c-form__sticky{position:static !important;}

  /* ③ 濃い背景はインクを大量に食うので白地に落とす */
  body,.hero,.sec--ink,.c-cta,.cta-band{background:#fff !important;}
  .hero,.hero *,.sec--ink,.sec--ink *,.c-cta,.c-cta *,.cta-band,.cta-band *{color:#1C1C1C !important;}
  .hero h1 .g,.c-reasons__no,.eyebrow,.c-near__time{color:#8a7008 !important;}
  .c-near__time{background:none !important; border:1px solid #8a7008;}
  .hero{height:auto !important; min-height:0 !important; padding:16px 0 24px !important;}

  /* ④ カードや設問が途中で改ページされないように */
  .c-room,.c-near__card,.c-reasons__item,.c-gal figure,.c-faq__item,.spec>div,
  .c-price__table tr{break-inside:avoid; page-break-inside:avoid;}

  /* ⑤ 紙幅では4列が潰れるので2列に */
  .c-rooms__grid--4,.c-near__grid,.c-gal,.c-reasons__list{grid-template-columns:repeat(2,1fr) !important;}
  .c-intro__grid{grid-template-columns:1fr 1fr !important;}

  /* ⑥ 余白を詰めて枚数を減らす */
  .sec{padding:22px 0 !important;}
  .rule{display:none !important;}
}

/* ===== 予約サイトへの導線（.c-ota） =====
   自社予約に戻す場合は、HTML側の ASSIM:OTA ブロックごと差し替える */
.c-ota__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.6vw,18px);}
.c-ota__btn{position:relative; display:flex; align-items:center; justify-content:center;
  min-height:78px; padding:18px 38px 18px 22px; background:#fff; border:1px solid var(--line);
  color:var(--ink); text-decoration:none; font-size:1rem; font-weight:700; letter-spacing:.04em;
  line-height:1.5; text-align:center; transition:.26s ease;}
.c-ota__btn::after{content:""; position:absolute; right:18px; top:50%; width:7px; height:7px;
  border-top:1.5px solid var(--gold); border-right:1.5px solid var(--gold);
  transform:translateY(-50%) rotate(45deg); transition:.26s ease;}
.c-ota__btn:hover{border-color:var(--gold); background:var(--washi); transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(28,28,28,.07);}
.c-ota__btn:hover::after{right:14px;}
.c-ota__note{margin:clamp(24px,3vw,34px) 0 0; text-align:center; font-size:.86rem;
  line-height:2; color:var(--note);}
.c-ota__note a{color:var(--gold); font-family:"Space Grotesk",sans-serif; font-weight:700;
  font-size:1.02rem; letter-spacing:.02em; text-decoration:none;
  border-bottom:1px solid currentColor; padding-bottom:1px;}
@media(max-width:900px){ .c-ota__grid{grid-template-columns:1fr 1fr;} }
@media(max-width:520px){ .c-ota__grid{grid-template-columns:1fr;} .c-ota__btn{min-height:64px;} }
@media print{ .c-ota__grid{grid-template-columns:repeat(3,1fr) !important;} }

/* Googleビジネスプロフィールへの導線（地図の下） */
.c-access__gbp{margin:20px 0 0; text-align:center;}
