/* 太田ナウリゾートホテル 公式HP v3 — hp-visual-design v2（構図7型・90点チェック）準拠。トークンは v3/DESIGN.md が正本 */

:root{
  --color-base:#f6f2e9;--color-base-2:#ece5d6;--color-text:#2a241d;--color-text-2:#6b6255;
  --color-line:color-mix(in srgb,var(--color-text) 15%,transparent);
  --color-night:#1c1916;--color-night-text:#ebe4d6;--color-night-text-2:#a0968a;--color-night-line:color-mix(in srgb,var(--color-night-text) 16%,transparent);
  --color-key:#1f444f;--color-key-hover:#2b5966;--color-bronze:#a5885c;
  --font-jp:sans-serif;--font-serif:serif;--font-en:serif;
  --content-width:1200px;--prose-width:820px;
  --gutter:clamp(20px,4vw,56px);
  --sp-s:clamp(64px,7vw,88px);--sp-m:clamp(96px,10vw,128px);--sp-l:clamp(150px,17vw,232px);
  --header-h:84px;--frame:8px;
  --ease-out:cubic-bezier(.215,.61,.355,1);--ease-quart:cubic-bezier(.165,.84,.44,1);--ease-expo:cubic-bezier(.19,1,.22,1);
}

html.fonts-on{--font-jp:"Noto Sans JP",sans-serif;--font-serif:"Shippori Mincho",serif;--font-en:"Cormorant Garamond",serif}

/* ---------- 基礎 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--color-base);color:var(--color-text);font-family:var(--font-jp);font-size:15.5px;line-height:1.9;letter-spacing:.04em;font-feature-settings:"palt";-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg,video,iframe{max-width:100%;display:block}
img{height:auto}
a{color:inherit;text-decoration:none}
p,figure,dl,dd{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{margin:0;font-weight:600}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--color-key);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.tt-n{text-transform:none}

.container{width:min(100% - var(--gutter)*2,var(--content-width));margin-inline:auto}
.prose{width:min(100% - var(--gutter)*2,var(--prose-width));margin-inline:auto}
.sec-s{padding-block:var(--sp-s)}
.sec-m{padding-block:var(--sp-m)}
.sec-l{padding-block:var(--sp-l)}
.face{background:var(--color-base-2)}
.night{background:var(--color-night);color:var(--color-night-text)}
.night .label,.night .word,.night .note,.night .small,.night .tag{color:var(--color-night-text-2)}
.night .label{color:var(--color-bronze)}
.night .flist>li,.night .flist>div,.night .dl>div,.night .hr{border-color:var(--color-night-line)}

/* ---------- 文字の型 ---------- */
.label{display:block;font-family:var(--font-en);font-size:13px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--color-text-2);line-height:1.4}
.label .num{margin-right:.9em}
.word{display:block;font-family:var(--font-en);font-style:italic;font-weight:400;font-size:clamp(22px,1.9vw,27px);letter-spacing:.03em;color:var(--color-text-2);line-height:1}
.h2{font-family:var(--font-serif);font-size:clamp(22px,2vw,28px);font-weight:600;letter-spacing:.14em;line-height:1.75;margin-top:18px;text-wrap:balance}
.h3{font-family:var(--font-serif);font-size:clamp(17px,1.4vw,20px);font-weight:600;letter-spacing:.12em;line-height:1.7}
.lead{margin-top:22px;max-width:28em}
.copy{max-width:27em}
.copy p+p{margin-top:1.3em}
.note{font-size:12.5px;line-height:1.8;letter-spacing:.03em;color:var(--color-text-2)}
.small{font-size:13.5px;color:var(--color-text-2)}
.tnum{font-family:var(--font-en);font-variant-numeric:tabular-nums}
.tag{font-family:var(--font-en);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-2)}
.price{font-family:var(--font-en);font-weight:500;font-size:clamp(22px,1.9vw,26px);letter-spacing:.02em;line-height:1.1;white-space:nowrap}
.price small{font-family:var(--font-jp);font-size:11.5px;letter-spacing:.06em;color:var(--color-text-2);margin-left:.5em;font-weight:400}
.hr{border:0;border-top:1px solid var(--color-line);margin:0}

/* ---------- ボタン：細枠＋矢印が標準、ソリッドは予約だけ ---------- */
.btn{display:inline-flex;align-items:center;gap:14px;height:54px;padding:0 24px 0 26px;white-space:nowrap;border:1px solid var(--color-text);color:var(--color-text);font-size:13px;letter-spacing:.14em;background:transparent;transition:background .25s var(--ease-out),color .25s var(--ease-out),border-color .25s var(--ease-out)}
.btn .en{font-family:var(--font-en);font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-size:13px}
.arw{width:22px;height:1px;background:currentColor;position:relative;flex:none;transition:width .25s var(--ease-out)}
.arw::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.btn--solid{background:var(--color-key);border-color:var(--color-key);color:var(--color-base)}
.btn--light{border-color:var(--color-night-text);color:var(--color-night-text)}
.dlink{display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border:1px dashed color-mix(in srgb,var(--color-text) 50%,transparent);font-size:13.5px;letter-spacing:.1em;transition:border-color .25s var(--ease-out),background .25s var(--ease-out)}
.dlink .en{font-family:var(--font-en);font-size:13px;letter-spacing:.16em;text-transform:uppercase}
.dlinks{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.tlink{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-en);font-size:13px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding-bottom:6px;border-bottom:1px solid currentColor}
.tlink .arw{width:18px}
.tlink .jp{font-family:var(--font-jp);font-size:12.5px;letter-spacing:.1em;text-transform:none;font-weight:400}
.night .dlink{border-color:color-mix(in srgb,var(--color-night-text) 45%,transparent)}
@media (hover:hover) and (pointer:fine){
  .btn:hover{background:var(--color-text);color:var(--color-base)}
  .btn--solid:hover{background:var(--color-key-hover);border-color:var(--color-key-hover);color:var(--color-base)}
  .btn--light:hover{background:var(--color-night-text);color:var(--color-night)}
  .btn:hover .arw,.tlink:hover .arw,.rlink:hover .arw{width:30px}
  .dlink:hover{border-style:solid;border-color:currentColor;background:color-mix(in srgb,currentColor 6%,transparent)}
}

/* ---------- ヘッダー：写真上の白ピル群 → スクロールで面 ---------- */
.header{position:fixed;inset:0 0 auto;height:var(--header-h);z-index:100;transition:background .4s var(--ease-out),box-shadow .4s var(--ease-out),transform .5s var(--ease-quart),height .4s var(--ease-out)}
.header__in{height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-inline:calc(var(--frame) + clamp(14px,2.4vw,36px))}
.brand{display:flex;flex-direction:column;line-height:1.1;color:var(--color-text);transition:color .4s var(--ease-out)}
.brand__en{font-family:var(--font-en);font-size:24px;font-weight:500;letter-spacing:.12em}
.brand__en i{font-style:italic;font-weight:400}
.brand__jp{font-size:10.5px;letter-spacing:.3em;margin-top:5px;opacity:.75}
.pills{display:flex;align-items:center;gap:8px}
.pill{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 18px;border-radius:100vmax;background:var(--color-base);color:var(--color-text);font-size:12.5px;letter-spacing:.12em;border:1px solid transparent;white-space:nowrap;transition:background .3s var(--ease-out),color .3s var(--ease-out),border-color .3s var(--ease-out)}
.pill .en{font-family:var(--font-en);font-weight:500;letter-spacing:.16em;text-transform:uppercase;font-size:13px}
.pill--book{background:var(--color-key);color:var(--color-base)}
.pill--menu{width:40px;padding:0;justify-content:center;position:relative}
.pill--menu span{position:absolute;left:12px;width:16px;height:1px;background:currentColor;transition:transform .35s var(--ease-out)}
.pill--menu span:nth-child(1){top:16px}.pill--menu span:nth-child(2){top:23px}
body.menu-open .pill--menu span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
body.menu-open .pill--menu span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}
@media (hover:hover){.pill:hover{background:var(--color-text);color:var(--color-base)}.pill--book:hover{background:var(--color-key-hover);color:var(--color-base)}}
body.has-frame .header:not(.is-scrolled) .brand{color:var(--color-night-text)}
.header.is-scrolled{background:color-mix(in srgb,var(--color-base) 90%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--color-line);height:68px}
.header.is-scrolled .pill{border-color:var(--color-line)}
.header.is-scrolled .pill--book{border-color:transparent}
body.menu-open .header{background:transparent;box-shadow:none;backdrop-filter:none}
.header.is-hidden{transform:translateY(-100%)}
body.menu-open .brand{color:var(--color-night-text)}
body.menu-open .pill{background:transparent;color:var(--color-night-text);border-color:var(--color-night-line)}
.pill--tel{display:none}
@media (min-width:768px){.pill--tel{display:inline-flex}}

/* 全画面メニュー */
.overlay{position:fixed;inset:0;z-index:95;background:var(--color-night);color:var(--color-night-text);opacity:0;visibility:hidden;transition:opacity .45s var(--ease-out),visibility 0s .45s;overflow:auto}
body.menu-open .overlay{opacity:1;visibility:visible;transition:opacity .45s var(--ease-out)}
.overlay__in{min-height:100%;display:grid;grid-template-columns:1.1fr 1fr;gap:48px;padding:calc(var(--header-h) + 40px) var(--gutter) 56px;width:min(100%,var(--content-width));margin-inline:auto}
.overlay__list li{border-bottom:1px solid var(--color-night-line)}
.overlay__list a{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0;font-family:var(--font-serif);font-size:clamp(18px,1.7vw,22px);letter-spacing:.14em;font-weight:600}
.overlay__list a small{font-family:var(--font-en);font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--color-bronze)}
.overlay__side{align-self:end;display:flex;flex-direction:column;gap:22px;font-size:13.5px;letter-spacing:.06em;color:var(--color-night-text-2)}
.overlay__side .tel{font-family:var(--font-en);font-size:30px;font-weight:500;letter-spacing:.04em;color:var(--color-night-text);line-height:1.2}
.overlay__side .btn--light{align-self:flex-start}
.overlay__side .legal{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px}

/* ---------- FV：A型 額縁写真（3枚クロスフェード） ---------- */
.fv{padding:var(--frame);height:100svh;min-height:600px}
.fv__frame{position:relative;height:100%;border-radius:3px;overflow:hidden;background:var(--color-night);color:var(--color-night-text)}
.fv__pics{position:absolute;inset:0}
.fv__pic{position:absolute;inset:0;opacity:0;transition:opacity 1.6s var(--ease-out)}
.fv__pic.is-active{opacity:1}
.fv__pic img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);transform:scale(1)}
.fv__pic.is-active img{animation:kb 8.5s linear forwards}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.06)}}
.fv__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,25,22,.32) 0%,rgba(28,25,22,0) 30%,rgba(28,25,22,0) 46%,rgba(28,25,22,.72) 100%)}
.fv__body{position:absolute;left:0;right:0;bottom:0;padding:0 clamp(20px,3.2vw,48px) clamp(28px,4vh,48px);display:flex;justify-content:space-between;align-items:flex-end;gap:32px}
.fv__eyebrow{font-family:var(--font-en);font-size:13px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--color-night-text);opacity:.9}
.fv__catch{margin-top:18px;font-family:var(--font-serif);font-weight:600;font-size:clamp(26px,2.9vw,40px);letter-spacing:.14em;line-height:1.6;white-space:pre-line;text-wrap:balance}
.fv__lead{margin-top:16px;font-size:14px;letter-spacing:.08em;color:var(--color-night-text-2)}
.fv__facts{display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-family:var(--font-en);font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-night-text);opacity:.85;text-align:right;line-height:1.5}
.fv__facts .jp{font-family:var(--font-jp);letter-spacing:.12em;text-transform:none;font-size:12.5px}
.fv__scroll{position:absolute;right:clamp(20px,3.2vw,48px);top:50%;transform:translateY(-50%);writing-mode:vertical-rl;font-family:var(--font-en);font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:var(--color-night-text-2);display:flex;align-items:center;gap:12px}
.fv__scroll::after{content:"";width:1px;height:56px;background:currentColor;opacity:.6}
.fv__dots{position:absolute;left:clamp(20px,3.2vw,48px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px}
.fv__dots button{width:24px;height:1px;background:var(--color-night-text);opacity:.35;transition:opacity .3s,width .3s}
.fv__dots button.is-active{opacity:1;width:36px}

/* ---------- 下層ページの見出し帯（額縁） ---------- */
.phead{padding:calc(var(--header-h) + 24px) var(--frame) 0}
.phead__frame{position:relative;border-radius:3px;overflow:hidden;background:var(--color-night);color:var(--color-night-text);min-height:min(62svh,620px);display:flex;align-items:flex-end}
.phead__frame .photo{position:absolute;inset:0}
.phead__frame .photo img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.phead__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,25,22,.25) 0%,rgba(28,25,22,.05) 38%,rgba(28,25,22,.78) 100%)}
.phead__body,.fv__body{text-shadow:0 1px 18px rgba(0,0,0,.25)}
.phead__body{position:relative;padding:clamp(28px,4vw,56px) clamp(20px,3.2vw,48px);width:100%;display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.phead__h1{font-family:var(--font-serif);font-weight:600;font-size:clamp(26px,2.8vw,38px);letter-spacing:.14em;line-height:1.6;margin-top:16px}
.phead .fv__eyebrow{color:var(--color-bronze)}
.crumbs{display:flex;gap:10px;font-size:12px;letter-spacing:.08em;color:var(--color-night-text-2);flex-wrap:wrap}
.crumbs li+li::before{content:"／";margin-right:10px;opacity:.6}

/* ---------- ニュース：F型 罫線リスト ---------- */
.news__in{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:start}
.flist>li,.flist>div{display:grid;grid-template-columns:110px 1fr auto;gap:20px;align-items:baseline;padding:16px 0;border-top:1px solid var(--color-line)}
.flist>li:last-child,.flist>div:last-child{border-bottom:1px solid var(--color-line)}
.flist .date{font-family:var(--font-en);font-size:14px;letter-spacing:.12em;color:var(--color-text-2)}
.flist .ttl{font-size:14.5px}
.flist .kind{display:inline-block;margin-right:12px;font-size:11.5px;letter-spacing:.14em;color:var(--color-text-2)}
.flist .kind.imp{color:var(--color-key)}
.flist a{display:contents}
.flist .arw{align-self:center}

/* ---------- コンセプト：C型 縦長写真＋長文 ---------- */
.concept{position:relative;overflow:hidden}
.concept__in{display:grid;grid-template-columns:1fr minmax(320px,42%);gap:clamp(40px,7vw,120px);align-items:start}
.concept__text{padding-top:clamp(0px,4vw,64px)}
.concept__text .copy{margin-top:34px;font-size:16px;line-height:2.1}
.concept__fig{position:relative}
.concept__fig .photo{aspect-ratio:3/4;overflow:hidden;border-radius:2px}
.concept__fig .photo img{width:100%;height:100%;object-fit:cover}
.concept__cap{margin-top:12px;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.1em;color:var(--color-text-2)}
.concept__arc{position:absolute;right:-12vw;top:-8vw;width:60vw;height:60vw;border:1px solid var(--color-text);border-radius:50%;opacity:.06;pointer-events:none}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:var(--sp-m);padding-top:40px;border-top:1px solid var(--color-line)}
.facts .n{font-family:var(--font-en);font-weight:400;font-size:clamp(44px,5vw,64px);line-height:1;letter-spacing:.02em}
.facts .n small{font-size:.42em;letter-spacing:.06em;margin-left:.2em}
.facts .k{margin-top:10px;font-size:12.5px;letter-spacing:.14em;color:var(--color-text-2)}
.facts .k .en{font-family:var(--font-en);text-transform:uppercase;letter-spacing:.22em;font-size:12.5px;display:block;margin-bottom:2px;color:var(--color-text-2)}

/* ---------- 半分割：B型 ---------- */
.half{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center}
.half--rev>.half__fig{order:2}
.half__fig .photo{aspect-ratio:4/3;overflow:hidden;border-radius:2px}
.half__fig .photo img{width:100%;height:100%;object-fit:cover}
.half__fig--sq .photo{aspect-ratio:1/1}
.half__fig--tall .photo{aspect-ratio:4/5}
.half__body{padding-inline:clamp(0px,2vw,24px)}
.half--offset .half__body{padding-top:clamp(24px,5vw,80px)}

/* 罫線リスト：客室・プラン ---------- */
.rlist{margin-top:var(--sp-s)}
.rlist>li{border-top:1px solid var(--color-line)}
.rlist>li:last-child{border-bottom:1px solid var(--color-line)}
.rlink{display:grid;grid-template-columns:132px 1.3fr 1fr 1fr auto;gap:clamp(14px,2vw,32px);align-items:center;padding:18px 0;transition:background .25s var(--ease-out)}
.rlink .thumb{aspect-ratio:16/10;overflow:hidden;border-radius:2px}
.rlink .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-quart)}
.rlink .name{font-family:var(--font-serif);font-size:17px;font-weight:600;letter-spacing:.1em;line-height:1.5}
.rlink .name .tag{display:block;margin-top:4px}
.rlink .spec{font-size:13.5px;line-height:1.7;color:var(--color-text-2)}
.rlink .spec b{font-family:var(--font-en);font-weight:500;font-size:19px;color:var(--color-text);letter-spacing:.02em;margin-right:.35em}
.rlink .arw{width:26px}
@media (hover:hover) and (pointer:fine){.rlink:hover .thumb img{transform:scale(1.05)}}
.rlist--plain .rlink{grid-template-columns:1.3fr 1fr 1fr auto}

/* ---------- サウナ：D型 色面＋はみ出し写真 ---------- */
.sauna{overflow:hidden}
.sauna__in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start}
.sauna.sec-l{padding-bottom:var(--sp-s)}
.sauna__fig{margin-right:calc(-1 * max(var(--gutter),(100vw - var(--content-width)) / 2) - 6vw)}
.sauna__fig .photo{aspect-ratio:16/10;overflow:hidden;border-radius:2px 0 0 2px}
.sauna__fig .photo img{width:100%;height:100%;object-fit:cover}
.sauna__fig .concept__cap{color:var(--color-night-text-2);padding-right:calc(max(var(--gutter),(100vw - var(--content-width)) / 2) + 6vw);flex-wrap:wrap;gap:4px 16px}
.sauna__body .copy{margin-top:30px}
.sauna__details{margin-top:44px;display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
.sauna__details li{padding:14px 0;border-top:1px solid var(--color-night-line);display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:baseline}
.sauna__details li:nth-last-child(-n+2){border-bottom:1px solid var(--color-night-line)}
.sauna__details .no{font-family:var(--font-en);font-size:14px;letter-spacing:.1em;color:var(--color-bronze)}
.sauna__details .t{font-family:var(--font-serif);font-weight:600;font-size:15.5px;letter-spacing:.08em;display:block}
.sauna__details .d{display:block;font-size:13px;line-height:1.75;color:var(--color-night-text-2);margin-top:3px}
.sauna__price{margin-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.sauna__price .k{font-family:var(--font-en);font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--color-bronze)}
.sauna__price .k .jp{font-family:var(--font-jp);text-transform:none;letter-spacing:.1em;margin-left:.6em;color:var(--color-night-text-2)}
.sauna__price .price{display:block;margin-top:8px;color:var(--color-night-text)}
.sauna__price .price small{color:var(--color-night-text-2)}
.sauna__price .h{display:block;font-size:12.5px;color:var(--color-night-text-2);margin-top:4px}
.sauna__strip{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--frame);margin-top:var(--sp-m);padding-inline:var(--frame)}
.sauna__strip .photo{aspect-ratio:16/10;overflow:hidden;border-radius:2px}
.sauna__strip .photo img{width:100%;height:100%;object-fit:cover}

/* ---------- お料理：E型 中央短文＋コラージュ ---------- */
.dining{position:relative}
.dining__center{max-width:640px;margin-inline:auto;text-align:center}
.dining__center .copy{margin-inline:auto;margin-top:26px;font-size:16px;line-height:2.1}
.collage{position:relative;margin-top:var(--sp-m);height:clamp(520px,58vw,760px)}
.collage__item{position:absolute;overflow:hidden;border-radius:2px}
.collage__item img{width:100%;height:100%;object-fit:cover}
.collage__item.c1{left:0;top:6%;width:34%;aspect-ratio:4/3}
.collage__item.c2{left:38%;top:0;width:24%;aspect-ratio:3/4}
.collage__item.c3{right:0;top:10%;width:30%;aspect-ratio:1/1}
.collage__item.c4{left:8%;bottom:0;width:26%;aspect-ratio:1/1}
.collage__item.c5{right:14%;bottom:4%;width:36%;aspect-ratio:4/3}
.collage__cap{position:absolute;left:40%;bottom:10%;font-size:12px;letter-spacing:.12em;color:var(--color-text-2);writing-mode:vertical-rl}
.courses{margin-top:var(--sp-m)}
.courses .rlink{grid-template-columns:110px 1.1fr 1.6fr auto auto}
.courses .desc{font-size:13.5px;line-height:1.75;color:var(--color-text-2)}
.courses .thumb{aspect-ratio:4/3}

/* ---------- 朝食・アクセスの事実 dl ---------- */
.dl{margin-top:32px}
.dl>div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:12px 0;border-top:1px solid var(--color-line);font-size:14px;line-height:1.7}
.dl>div:last-child{border-bottom:1px solid var(--color-line)}
.dl dt{font-family:var(--font-en);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-2);padding-top:2px}
.dl dd .tnum{font-size:15px}
.nlist{margin-top:30px}
.nlist li{display:grid;grid-template-columns:38px 1fr;gap:10px;padding:12px 0;border-top:1px solid var(--color-line);font-size:14px;line-height:1.75}
.nlist li:last-child{border-bottom:1px solid var(--color-line)}
.nlist .no{font-family:var(--font-en);font-size:14px;letter-spacing:.1em;color:var(--color-text-2)}
.nlist b{font-family:var(--font-serif);font-weight:600;letter-spacing:.06em;display:block;font-size:15px}
.nlist span.d{display:block;color:var(--color-text-2);font-size:13.5px}

/* ---------- 額縁ワイド（ルチャドール）：A型 ---------- */
.wide{padding-inline:var(--frame)}
.wide__frame{position:relative;border-radius:3px;overflow:hidden}
.wide__frame .photo{aspect-ratio:21/9;min-height:360px}
.wide__frame .photo img{width:100%;height:100%;object-fit:cover}
.wide__over{position:absolute;left:clamp(20px,3.2vw,48px);bottom:clamp(20px,3vw,40px);color:var(--color-night-text);text-shadow:0 1px 20px rgba(0,0,0,.35)}
.wide__over .label{color:var(--color-bronze)}
.wide__over .h2{margin-top:10px;font-size:clamp(22px,2.4vw,32px);line-height:1.5}
.wide__body{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(32px,6vw,96px);align-items:start;margin-top:clamp(40px,5vw,72px)}
.wide__body .dl{margin-top:0}

/* ---------- 館内：F型 罫線グリッド ---------- */
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:40px;margin-top:40px}
.fgrid li{display:grid;grid-template-columns:32px 1fr;gap:10px;padding:14px 0;border-top:1px solid var(--color-line);font-size:14px;line-height:1.7;align-items:baseline}
.fgrid li:nth-last-child(-n+3){border-bottom:1px solid var(--color-line)}
.fgrid .no{font-family:var(--font-en);font-size:13px;letter-spacing:.1em;color:var(--color-text-2)}
.fgrid small{display:block;font-size:12.5px;color:var(--color-text-2)}

/* ---------- 空室検索（tripla） ---------- */
.reserve__head{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end}
.reserve__box{margin-top:44px;padding:clamp(24px,3vw,40px);background:var(--color-base);border:1px solid var(--color-line)}
.reserve__box .tripla-slot{min-height:120px;display:flex;align-items:center;justify-content:center}
.reserve__box .tripla-ph{font-size:13px;letter-spacing:.1em;color:var(--color-text-2)}
/* tripla の検索バーは SDK が body 直下に absolute で差し込む。移設後に本文の流れへ戻す（旧本番と同じ打ち消し。抜けると FV の上に浮く） */
#tripla-searching-app [class*="search-widget-wrapper"]{display:none !important}
.tripla-slot [class*="search-widget-wrapper"]{display:block !important;position:static !important;top:auto !important;left:auto !important;right:auto !important;bottom:auto !important;transform:none !important;width:100% !important;max-width:100% !important;margin:0 !important;z-index:auto !important}
.reserve__links{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:20px;font-size:13px}
.reserve__links .tlink{font-size:12.5px}
.reserve__trust{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}
.reserve__trust div{border-top:1px solid var(--color-line);padding-top:14px;font-size:13.5px;line-height:1.7;color:var(--color-text-2)}
.reserve__trust b{display:block;font-family:var(--font-en);font-size:19px;font-weight:500;letter-spacing:.04em;color:var(--color-text);margin-bottom:4px}

/* ---------- 地図 ---------- */
.map{aspect-ratio:16/10;overflow:hidden;border-radius:2px;background:var(--color-base-2);position:relative}
.map iframe{width:100%;height:100%;border:0}
.access__fig .photo{aspect-ratio:4/5}

/* ---------- FAQ ---------- */
.faq{margin-top:36px}
.faq details{border-top:1px solid var(--color-line)}
.faq details:last-child{border-bottom:1px solid var(--color-line)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr 24px;gap:16px;align-items:center;padding:18px 0;font-family:var(--font-serif);font-weight:600;font-size:15.5px;letter-spacing:.08em}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{font-family:var(--font-en);font-size:22px;font-weight:300;line-height:1;text-align:center;transition:transform .3s var(--ease-out)}
.faq details[open] summary .pm{transform:rotate(45deg)}
.faq .a{padding:0 40px 20px 0;font-size:14.5px;color:var(--color-text-2)}

/* ---------- 予約CTA：G型 巨大英字 ---------- */
.cta{position:relative;overflow:hidden;text-align:left}
.cta__giant{font-family:var(--font-en);font-weight:300;font-size:clamp(84px,17vw,250px);line-height:.9;letter-spacing:.02em;white-space:nowrap;color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--color-text) 35%,transparent);user-select:none;pointer-events:none;margin-left:-.04em}
.cta__giant i{font-style:italic}
.cta__row{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;margin-top:clamp(28px,4vw,56px)}
.cta__h{font-family:var(--font-serif);font-weight:600;font-size:clamp(20px,2vw,26px);letter-spacing:.14em;line-height:1.7;margin-top:14px}
.cta__btns{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- フッター ---------- */
.footer{padding:var(--sp-m) 0 40px}
.footer__in{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.footer .brand{color:var(--color-night-text)}
.footer .brand__en{font-size:28px}
.footer__addr{margin-top:22px;font-size:13.5px;line-height:1.9;color:var(--color-night-text-2)}
.footer__addr .tel{font-family:var(--font-en);font-size:22px;font-weight:500;letter-spacing:.04em;color:var(--color-night-text);display:block;margin-top:6px}
.footer h4{font-family:var(--font-en);font-size:13px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--color-bronze);margin-bottom:14px}
.footer li{font-size:13.5px;line-height:2.1;letter-spacing:.06em}
.footer li a{transition:opacity .25s}
.footer__bot{margin-top:56px;padding-top:22px;border-top:1px solid var(--color-night-line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12px;letter-spacing:.06em;color:var(--color-night-text-2)}
.footer__bot .legal{display:flex;gap:18px;flex-wrap:wrap}
@media (hover:hover){.footer li a:hover{opacity:.6}}

/* ---------- 固定CTA（右下 英日2段・SPは下端バー） ---------- */
.fixed-cta{position:fixed;right:0;bottom:36px;z-index:90;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:72px;height:170px;background:var(--color-key);color:var(--color-base);writing-mode:vertical-rl;font-size:12.5px;letter-spacing:.24em;transition:transform .5s var(--ease-quart),opacity .4s;transform:translateX(0)}
.fixed-cta .en{font-family:var(--font-en);font-size:15px;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
body.in-fv .fixed-cta,body.at-footer .fixed-cta,body.menu-open .fixed-cta{transform:translateX(100%);opacity:0;pointer-events:none}
.sp-bar{display:none}

/* ---------- ページ遷移カーテン・出現・reduce ---------- */
.curtain{position:fixed;inset:0;z-index:200;background:var(--color-night);transform:translateY(100%);pointer-events:none}
html.no-motion .curtain{display:none}
body.is-leaving .curtain{transform:translateY(0);transition:transform .5s var(--ease-expo)}
html.js body.is-entering .curtain{transform:translateY(0);animation:curtain-open .8s var(--ease-expo) .1s forwards}
@keyframes curtain-open{to{transform:translateY(-100%)}}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .6s ease-out,transform .6s var(--ease-quart)}
.reveal.is-inview{opacity:1;transform:none}
html:not(.js) .reveal,html.no-motion .reveal{opacity:1;transform:none}
.split-line{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* ---------- ライトボックス ---------- */
.lb{position:fixed;inset:0;z-index:210;background:rgba(28,25,22,.92);display:flex;align-items:center;justify-content:center;padding:24px}
.lb-fig{max-width:min(1100px,100%);margin:0}
.lb-fig img{max-height:80vh;width:auto;max-width:100%;margin-inline:auto}
.lb-cap{margin-top:12px;text-align:center;color:var(--color-night-text-2);font-size:13px;letter-spacing:.08em}
.lb-close{position:absolute;right:24px;top:20px;color:var(--color-night-text);font-size:22px;width:44px;height:44px}
[data-zoom]{cursor:zoom-in}

/* ---------- 宴会：会場・レイアウト・見積り ---------- */
.venues{margin-top:var(--sp-s)}
.venues>li{display:grid;grid-template-columns:60px 1.4fr 1fr 1fr;gap:20px;align-items:baseline;padding:16px 0;border-top:1px solid var(--color-line)}
.venues>li:last-child{border-bottom:1px solid var(--color-line)}
.venues .fl{font-family:var(--font-en);font-size:14px;letter-spacing:.14em;color:var(--color-text-2)}
.venues .nm{font-family:var(--font-serif);font-weight:600;font-size:16px;letter-spacing:.1em}
.venues .cap{font-size:13px;color:var(--color-text-2)}
.venues .cap b{font-family:var(--font-en);font-weight:500;font-size:20px;color:var(--color-text);margin-right:.3em}
.venues .cap span{margin-right:1em}
.calc{margin-top:var(--sp-s);display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:start}
.calc__block+.calc__block{margin-top:36px}
.calc__label{font-family:var(--font-en);font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--color-text-2);display:flex;justify-content:space-between}
.calc__label .jp{font-family:var(--font-jp);text-transform:none;letter-spacing:.1em;color:var(--color-text)}
.cl-guests{display:flex;align-items:center;gap:20px;margin-top:14px}
.cl-guests button{width:44px;height:44px;border:1px solid var(--color-text);font-family:var(--font-en);font-size:22px;line-height:1}
.cl-gnum{font-family:var(--font-en);font-size:44px;font-weight:400;line-height:1;min-width:2.2em}
.cl-gnum small{font-family:var(--font-jp);font-size:13px;margin-left:6px;letter-spacing:.1em;color:var(--color-text-2)}
.cl-range{width:100%;margin-top:16px;accent-color:var(--color-key)}
.cl-courses,.cl-drinks{margin-top:14px}
.cl-courses .cc{display:grid;grid-template-columns:96px 1fr auto;gap:16px;align-items:center;width:100%;text-align:left;padding:12px 0;border-top:1px solid var(--color-line);transition:opacity .25s}
.cl-courses .cc:last-child{border-bottom:1px solid var(--color-line)}
.cl-courses .cc .cc-ph{aspect-ratio:4/3;overflow:hidden;border-radius:2px}
.cl-courses .cc .cc-ph img{width:100%;height:100%;object-fit:cover}
.cl-courses .cc .cc-ja{font-family:var(--font-serif);font-weight:600;font-size:15.5px;letter-spacing:.08em;display:block}
.cl-courses .cc .cc-d{font-size:12.5px;color:var(--color-text-2);display:block;line-height:1.7}
.cl-courses .cc .price{font-size:20px}
.cl-courses .cc:not(.on){opacity:.55}
.cl-drinks{display:flex;gap:10px}
.cl-drinks .dk{border:1px solid var(--color-line);padding:12px 20px;font-size:13.5px;letter-spacing:.08em;display:flex;gap:14px;align-items:baseline}
.cl-drinks .dk b{font-family:var(--font-en);font-weight:500;font-size:17px}
.cl-drinks .dk.on{border-color:var(--color-text)}
.cc-detail{border:1px solid var(--color-line);padding:clamp(20px,2.5vw,32px)}
.cc-detail .ccd-ph{aspect-ratio:16/9;overflow:hidden;border-radius:2px;width:100%}
.cc-detail .ccd-ph img{width:100%;height:100%;object-fit:cover}
.cc-detail .ccd-k{margin-top:22px;font-family:var(--font-en);font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--color-text-2)}
.cc-detail .ccd-ja{font-family:var(--font-serif);font-weight:600;font-size:19px;letter-spacing:.1em;margin-top:6px}
.cc-detail .ccd-ja span{display:block;font-family:var(--font-jp);font-weight:400;font-size:13px;color:var(--color-text-2);letter-spacing:.06em}
.ccd-list{margin-top:18px}
.ccd-list li{display:grid;grid-template-columns:44px 1fr;gap:8px;padding:9px 0;border-top:1px solid var(--color-line);font-size:14px;line-height:1.7}
.ccd-list li span{font-family:var(--font-en);letter-spacing:.1em;color:var(--color-text-2)}
.ccd-up{margin-top:22px}
.ccd-up-k{font-size:12.5px;letter-spacing:.14em;color:var(--color-text-2)}
.ccd-up-r{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-top:1px solid var(--color-line);font-size:13.5px}
.ccd-up-r b{font-family:var(--font-en);font-weight:500;font-size:16px;white-space:nowrap}
.ccd-flash{outline:2px solid var(--color-key);outline-offset:4px}
.cs{margin-top:28px;border-top:1px solid var(--color-text);padding-top:20px}
.cs-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:8px 0}
.cs-k{font-size:13px;letter-spacing:.14em;color:var(--color-text-2)}
.cs-per{font-family:var(--font-en);font-weight:500;font-size:28px}
.cs-per small,.cs-tv small{font-family:var(--font-jp);font-size:12px;color:var(--color-text-2);margin-left:.4em;font-weight:400}
.cs-break{font-size:12.5px;color:var(--color-text-2)}
.cs-tv{font-family:var(--font-en);font-weight:500;font-size:40px;line-height:1.1}
.cs-up{margin-top:18px;width:100%;text-align:left;border:1px dashed color-mix(in srgb,var(--color-text) 50%,transparent);padding:14px 18px;font-size:13.5px;letter-spacing:.06em;line-height:1.7}
.cs-up b{color:var(--color-key)}
.cs-up[hidden]{display:none}

/* ---------- 団体：フォーム ---------- */
.gform{margin-top:var(--sp-s)}
.gform fieldset{border:0;padding:0;margin:0 0 40px}
.gform legend{font-family:var(--font-serif);font-weight:600;font-size:17px;letter-spacing:.12em;padding:0 0 14px;border-bottom:1px solid var(--color-text);width:100%;margin-bottom:10px}
.gform .grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.fld{display:grid;grid-template-columns:1fr;gap:6px;padding:14px 0;border-bottom:1px solid var(--color-line)}
.fld label{font-size:13.5px;letter-spacing:.08em;display:flex;gap:10px;align-items:baseline}
.fld .req{font-size:11px;letter-spacing:.12em;color:var(--color-key)}
.fld input,.fld select,.fld textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--color-text);padding:8px 0;font-size:15px;border-radius:0;letter-spacing:.04em}
.fld select{appearance:none;-webkit-appearance:none;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' fill='none' stroke='%232a241d'/></svg>") no-repeat right center}
.fld textarea{min-height:140px;resize:vertical}
.fld-hint{font-size:12px;color:var(--color-text-2)}
.fld-err input,.fld-err select,.fld-err textarea{border-color:#b3412e}
.fld-msg{font-size:12.5px;color:#b3412e}
.agree{padding:20px 0;display:flex;gap:12px;align-items:flex-start;font-size:13.5px;flex-wrap:wrap}
.agree input{margin-top:6px;accent-color:var(--color-key)}
.gf-submit{margin-top:8px}
.send-err{color:#b3412e;font-size:13.5px;margin:12px 0}
.done{border:1px solid var(--color-line);padding:32px;font-size:15px;line-height:2}
.done-sub{font-size:13px;color:var(--color-text-2);margin-top:12px}
.rooms-table{width:100%;border-collapse:collapse;margin-top:var(--sp-s);font-size:14px}
.rooms-table th,.rooms-table td{text-align:left;padding:12px 10px;border-top:1px solid var(--color-line);vertical-align:top;line-height:1.7}
.rooms-table tr:last-child td{border-bottom:1px solid var(--color-line)}
.rooms-table th{font-family:var(--font-en);font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--color-text-2);border-top:0;padding-top:0}
.rooms-table td.n{font-family:var(--font-en);font-size:16px;white-space:nowrap}
.rooms-table td.nm{font-family:var(--font-serif);font-weight:600;letter-spacing:.08em}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;margin-top:40px}
.steps li{border-top:1px solid var(--color-text);padding-top:14px}
.steps .no{font-family:var(--font-en);font-size:22px;letter-spacing:.06em}
.steps b{display:block;font-family:var(--font-serif);font-weight:600;font-size:15px;letter-spacing:.08em;margin-top:8px}
.steps p{font-size:13px;color:var(--color-text-2);margin-top:6px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);margin-top:40px}
.two .h3{margin-top:12px}
.two p{margin-top:12px;font-size:14.5px}
.two .nlist{margin-top:18px}
.tel-big{font-family:var(--font-en);font-weight:500;font-size:clamp(32px,4vw,48px);letter-spacing:.04em;line-height:1.1;display:block;margin-top:14px}

/* ---------- レスポンシブ ---------- */
@media (max-width:1023px){
  .rlink{grid-template-columns:110px 1.2fr 1fr auto}
  .rlink .spec2{display:none}
  .fgrid{grid-template-columns:1fr 1fr}
  .fgrid li:nth-last-child(-n+3){border-bottom:0}
  .fgrid li:nth-last-child(-n+2){border-bottom:1px solid var(--color-line)}
  .footer__in{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:repeat(2,1fr)}
  .courses .rlink{grid-template-columns:96px 1.2fr auto}
  .courses .desc{display:none}
}
@media (max-width:767px){
  :root{--header-h:72px;--frame:6px}
  body{font-size:15px}
  .fv{min-height:560px}
  .fv__body{flex-direction:column;align-items:flex-start;gap:18px}
  .fv__facts{align-items:flex-start;text-align:left;flex-direction:row;flex-wrap:wrap;gap:6px 16px}
  .fv__scroll,.fv__dots{display:none}
  .brand__en{font-size:20px}
  .pill{height:36px;padding:0 14px;font-size:12px}
  .pill--menu{width:36px}
  .pill--menu span{left:10px}
  .overlay__in{grid-template-columns:1fr;gap:32px}
  .news__in{grid-template-columns:1fr;gap:12px}
  .flist>li,.flist>div{grid-template-columns:1fr auto;row-gap:4px}
  .flist .date{grid-column:1/-1}
  .concept__in{grid-template-columns:1fr;gap:40px}
  .concept__fig{order:-1;width:72%;margin-left:auto}
  .facts{grid-template-columns:1fr 1fr;gap:28px 16px}
  .half,.half--rev{grid-template-columns:1fr;gap:28px}
  .half--rev>.half__fig{order:0}
  .half--offset .half__body{padding-top:0}
  .rlink{grid-template-columns:84px minmax(0,1.15fr) minmax(0,1fr);gap:12px}
  .rlink .arw{display:none}
  .rlink .name{font-size:15.5px}
  .rlink .name .tag{font-size:11px;letter-spacing:.1em}
  .rlink .spec2{display:block}
  .rlink .spec1{display:none}
  .rlist--plain .rlink{grid-template-columns:1fr auto}
  .rlist--plain .rlink .spec{display:none}
  .courses .rlink{grid-template-columns:80px 1fr auto}
  .sauna__in{grid-template-columns:1fr;gap:32px}
  .sauna__fig{margin-right:calc(-1 * var(--gutter));margin-left:0;order:-1}
  .sauna__fig .concept__cap{padding-right:var(--gutter);flex-direction:column;align-items:flex-start}
  .sauna__details{grid-template-columns:1fr}
  .sauna__details li:nth-last-child(-n+2){border-bottom:0}
  .sauna__details li:last-child{border-bottom:1px solid var(--color-night-line)}
  .sauna__strip{grid-template-columns:1fr 1fr}
  .collage{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .collage__item{position:static;width:auto!important;aspect-ratio:1/1!important}
  .collage__item.c1{grid-column:1/-1;aspect-ratio:16/10!important}
  .collage__cap{display:none}
  .courses .rlink{grid-template-columns:80px 1fr auto}
  .wide__body{grid-template-columns:1fr;gap:28px}
  .wide__frame .photo{aspect-ratio:4/3;min-height:0}
  .fgrid{grid-template-columns:1fr}
  .fgrid li{border-bottom:0!important}
  .fgrid li:last-child{border-bottom:1px solid var(--color-line)!important}
  .reserve__head{grid-template-columns:1fr}
  .reserve__trust{grid-template-columns:1fr;gap:12px}
  .cta__row{grid-template-columns:1fr}
  .footer__in{grid-template-columns:1fr;gap:28px}
  .fixed-cta{display:none}
  .sp-bar{display:grid;grid-template-columns:1fr 1.4fr;position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--color-base);border-top:1px solid var(--color-line);transition:transform .4s var(--ease-quart)}
  .sp-bar a{display:flex;align-items:center;justify-content:center;gap:10px;height:58px;font-size:13px;letter-spacing:.14em}
  .sp-bar a.book{background:var(--color-key);color:var(--color-base)}
  .sp-bar .en{font-family:var(--font-en);font-size:13px;letter-spacing:.18em;text-transform:uppercase}
  body.at-footer .sp-bar,body.menu-open .sp-bar{transform:translateY(100%)}
  body{padding-bottom:58px}
  .calc,.two{grid-template-columns:1fr}
  .gform .grid2{grid-template-columns:1fr}
  .venues>li{grid-template-columns:50px 1fr;row-gap:2px}
  .venues .cap{grid-column:2}
  .steps{grid-template-columns:1fr}
  .rooms-table{font-size:13px}
  .rooms-table th,.rooms-table td{padding:10px 6px}
  .phead__frame{min-height:min(56svh,520px)}
  .dl>div{grid-template-columns:96px 1fr}
}

/* ---------- 追加：整いの作法（3列・1ページ1回）／シーン2列／フォームの現行クラス ---------- */
.ritual{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px);margin-top:48px}
.ritual .photo{aspect-ratio:4/3;overflow:hidden;border-radius:2px}
.ritual .photo img{width:100%;height:100%;object-fit:cover}
.ritual .rn{display:block;margin-top:18px;font-family:var(--font-en);font-size:22px;letter-spacing:.06em}
.ritual .rn .tag{margin-left:10px}
.ritual .h3{margin-top:6px}
.ritual p{margin-top:8px;font-size:14px;color:var(--color-text-2)}
.fgrid--2{grid-template-columns:1fr 1fr}
.fgrid--2 li{padding:22px 0;align-items:start}
.fgrid--2 li:nth-last-child(-n+3){border-bottom:0}
.fgrid--2 li:nth-last-child(-n+2){border-bottom:1px solid var(--color-line)}
.fgrid--2 .h3{display:block;margin-bottom:4px}
.fgrid--2 small{font-size:13.5px}
.cc-detail:empty{display:none}
.cc-detail .zoomimg{width:100%}
.cs-up{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}
.cs-up .cs-up-k{font-family:var(--font-en);font-weight:500;font-size:15px;color:var(--color-key)}
.cs-up i{font-style:normal;margin-left:auto;font-size:12.5px;letter-spacing:.14em;color:var(--color-key)}
.cc .cc-rec{display:none}
.rlist button.rlink{width:100%;text-align:left;border-top:0}
.gform .hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.gf-h{font-family:var(--font-serif);font-weight:600;font-size:17px;letter-spacing:.12em;padding-bottom:12px;border-bottom:1px solid var(--color-text);margin:44px 0 8px}
.gf-sub{font-family:var(--font-serif);font-weight:600;font-size:15px;letter-spacing:.1em;margin-top:32px}
.gf-note{font-size:13px;color:var(--color-text-2);margin-top:6px}
.gf-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.gf-grid-3{grid-template-columns:1fr 1fr 1fr}
.fld-l{font-size:13.5px;letter-spacing:.08em;display:flex;gap:10px;align-items:baseline}
.fld-req{font-size:11px;letter-spacing:.12em;color:var(--color-key)}
.gf-submit{margin-top:24px}
.gf-foot{margin-top:18px}
@media (max-width:767px){
  .ritual{grid-template-columns:1fr;gap:32px}
  .fgrid--2{grid-template-columns:1fr}
  .fgrid--2 li{border-bottom:0!important}
  .fgrid--2 li:last-child{border-bottom:1px solid var(--color-line)!important}
  .gf-grid,.gf-grid-3{grid-template-columns:1fr}
}
