:root{--paper:#EFE9DF;--paper2:#E6DED1;--sumi:#24211D;--sub:#6E665B;--shu:#B0452C;--line:#CFC5B5;
  --mincho:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;--sans:"Zen Kaku Gothic New","Hiragino Sans",sans-serif;--latin:"Cormorant Garamond",serif}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--paper);color:var(--sumi);font-family:var(--sans);line-height:2;letter-spacing:.06em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.5),transparent 40%),radial-gradient(circle at 90% 80%,rgba(160,140,110,.12),transparent 45%)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
/* ヘッダー */
.hd{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:flex-start;padding:34px clamp(20px,4vw,64px)}
.logo{font-family:var(--mincho);font-weight:800;font-size:1.5rem;letter-spacing:.3em;line-height:1}
.logo small{display:block;font-family:var(--latin);font-style:italic;font-weight:500;font-size:.8rem;letter-spacing:.12em;color:var(--sub);margin-top:10px}
.nav{display:flex;gap:34px;font-size:.84rem;padding-right:70px}
.nav a{display:flex;flex-direction:column;align-items:center;line-height:1.4}
.nav a i{font-family:var(--latin);font-style:italic;color:var(--shu);font-size:.8rem}
/* 縦の予約タブ */
.rtab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:30;writing-mode:vertical-rl;background:var(--sumi);color:var(--paper);padding:26px 16px;font-family:var(--mincho);font-weight:700;letter-spacing:.32em;font-size:.95rem;border-radius:12px 0 0 12px;display:flex;align-items:center;gap:14px;transition:padding .3s}
.rtab:hover{padding-right:22px}
.rtab span{font-family:var(--sans);font-weight:500;font-size:.68rem;letter-spacing:.2em;opacity:.75}
/* ファーストビュー */
.fv{position:relative;z-index:1;min-height:max(760px,100svh);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;padding:120px clamp(20px,5vw,90px) 70px;gap:clamp(20px,4vw,70px)}
.fv__photos{position:relative;height:min(78svh,720px)}
.arch{position:absolute;left:0;top:0;width:78%;height:100%;border-radius:999px 999px 18px 18px;overflow:hidden;box-shadow:0 30px 60px rgba(60,45,25,.18)}
.arch img{width:100%;height:100%;object-fit:cover;object-position:62% 50%;animation:slow 14s ease-out both}
@keyframes slow{from{transform:scale(1.08)}to{transform:scale(1)}}
.owner{position:absolute;right:0;bottom:6%;width:34%;aspect-ratio:4/5;border-radius:16px;overflow:hidden;border:8px solid var(--paper);box-shadow:0 18px 40px rgba(60,45,25,.18)}
.owner img{width:100%;height:100%;object-fit:cover;object-position:50% 15%}
.owner__cap{position:absolute;right:0;bottom:calc(6% - 46px);font-size:.76rem;color:var(--sub);letter-spacing:.14em}
.fv__txt{display:flex;flex-direction:row-reverse;align-items:flex-start;gap:clamp(18px,2.4vw,40px);justify-content:center}
.fv h1{writing-mode:vertical-rl;font-family:var(--mincho);font-weight:800;font-size:clamp(2.4rem,4.4vw,4.4rem);line-height:1.5;letter-spacing:.18em;white-space:nowrap}
.fv h1 em{font-style:normal;color:var(--shu)}
.fv__area{writing-mode:vertical-rl;font-family:var(--mincho);font-weight:500;font-size:.95rem;letter-spacing:.3em;color:var(--sub);border-right:1px solid var(--line);padding-right:14px;margin-top:10px}
.fv__side{writing-mode:horizontal-tb;align-self:flex-end;width:min(15em,40vw);margin-bottom:6px}
.fv__lead{font-size:.92rem;line-height:2.2;color:var(--sumi)}
.stamp{margin-top:30px;width:138px;height:138px;border-radius:50%;border:2px solid var(--shu);outline:1px solid var(--shu);outline-offset:4px;color:var(--shu);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--mincho);line-height:1.35;transform:rotate(-6deg)}
.stamp small{font-size:.72rem;letter-spacing:.2em}
.stamp b{font-size:1.75rem;font-weight:800;letter-spacing:.02em}
.stamp b i{font-style:normal;font-size:.85rem}
.big-latin{position:absolute;right:clamp(60px,8vw,140px);bottom:10px;font-family:var(--latin);font-style:italic;font-size:clamp(5rem,13vw,13rem);line-height:.8;color:rgba(36,33,29,.06);letter-spacing:.02em;pointer-events:none;z-index:-1}
.scroll{position:absolute;left:calc(50% + 120px);bottom:26px;font-family:var(--latin);font-style:italic;font-size:.85rem;color:var(--sub);display:flex;flex-direction:column;align-items:center;gap:8px}
.scroll::after{content:"";width:1px;height:46px;background:linear-gradient(var(--sub),transparent);animation:drop 2.2s infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
/* 2つめの節：考え方 */
.idea{position:relative;z-index:1;background:var(--paper2);padding:clamp(90px,12vw,170px) clamp(20px,5vw,90px)}
.idea__in{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:auto 1fr;gap:clamp(30px,6vw,100px)}
.idea h2{writing-mode:vertical-rl;font-family:var(--mincho);font-weight:800;font-size:clamp(1.8rem,2.8vw,2.6rem);letter-spacing:.2em;line-height:1.7}
.idea__lead{font-family:var(--mincho);font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:2.3;max-width:30em}
.idea__cols{display:grid;grid-template-columns:repeat(3,1fr);margin-top:64px;border-top:1px solid var(--line)}
.idea__cols div{padding:34px 28px 10px 0}
.idea__cols div+div{padding-left:28px;border-left:1px solid var(--line)}
.idea__cols b{display:block;font-family:var(--latin);font-style:italic;font-weight:500;font-size:3.4rem;line-height:1;color:var(--shu)}
.idea__cols h3{font-family:var(--mincho);font-weight:700;font-size:1.15rem;margin:16px 0 8px;letter-spacing:.1em}
.idea__cols p{font-size:.88rem;color:var(--sub)}
.tag{position:fixed;left:14px;bottom:14px;z-index:40;background:rgba(36,33,29,.85);color:#fff;font-size:.68rem;padding:4px 12px;border-radius:99px;letter-spacing:.1em}
/* スマホ */
@media (max-width:820px){
  .hd{padding:22px 20px}
  .fv{grid-template-columns:1fr;padding:96px 20px 60px;gap:34px;min-height:0}
  .fv__photos{height:auto;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end}
  .arch{position:relative;width:100%;height:62svh;max-height:520px}
  .owner{display:none}.owner__cap{display:none}
  .fv__txt{position:absolute;right:20px;top:118px;z-index:3}
  .fv h1{font-size:2rem;background:var(--paper);padding:18px 12px;border-radius:999px 999px 14px 14px}
  .fv__area{display:none}
  .fv__photos{padding-right:96px}
  .fv__side{display:none}
  .sp-lead{display:flex !important;gap:18px;align-items:center}
  .stamp{width:112px;height:112px;margin:0 0 0 6px;flex:none}.stamp b{font-size:1.4rem}
  .rtab{top:auto;bottom:0;right:0;left:0;transform:none;writing-mode:horizontal-tb;justify-content:center;border-radius:0;padding:16px;letter-spacing:.2em}
  .idea__in{grid-template-columns:1fr}.idea h2{writing-mode:horizontal-tb}
  .idea__cols{grid-template-columns:1fr}.idea__cols div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .scroll{display:none}.tag{bottom:66px}
}
.sp-lead{display:none}

/* ===== 下層・共通の追加（雑誌型） ===== */
.latin{font-family:var(--latin);font-style:italic;color:var(--shu);font-size:1rem;letter-spacing:.08em}
h2{font-family:var(--mincho);font-weight:800;letter-spacing:.14em;line-height:1.6}
.small{font-size:.76rem;color:var(--sub)}
.nav__sp{display:none !important}
.mbtn{display:none;width:44px;height:44px;position:relative;z-index:60;background:none;border:0;cursor:pointer}
.mbtn span{position:absolute;left:10px;right:10px;height:1px;background:var(--sumi);transition:.3s}
.mbtn span:first-child{top:18px}.mbtn span:last-child{top:26px}
.is-open .mbtn span:first-child{top:22px;transform:rotate(30deg)}.is-open .mbtn span:last-child{top:22px;transform:rotate(-30deg)}
.more{display:inline-flex;align-items:center;gap:14px;font-family:var(--mincho);font-weight:700;letter-spacing:.16em;border-bottom:1px solid var(--sumi);padding-bottom:6px;margin-top:26px}
.more::after{content:"";width:34px;height:1px;background:var(--sumi);transition:width .3s}
.more:hover::after{width:52px}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--sumi);color:var(--paper);font-family:var(--mincho);font-weight:700;letter-spacing:.18em;padding:18px 34px;border-radius:999px;border:0;cursor:pointer;font-size:1rem;transition:background .3s}
.pill:hover{background:var(--shu)}
.pill--line{background:transparent;color:var(--paper);box-shadow:inset 0 0 0 1px rgba(239,233,223,.6)}
.pill--line:hover{background:#06C755;box-shadow:none}
/* はじめての日 */
.first{position:relative;z-index:1;padding:clamp(90px,12vw,170px) clamp(20px,5vw,90px)}
.first__in{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(30px,6vw,100px);align-items:start}
.first__hd h2{font-size:clamp(1.8rem,3vw,2.6rem);margin:10px 0 18px}
.first__hd p:last-child{color:var(--sub);font-size:.92rem}
.first__img{grid-column:1;grid-row:2;margin-top:-40px;border-radius:999px 999px 14px 14px;overflow:hidden;aspect-ratio:3/4;max-width:360px}
.first__img img{width:100%;height:100%;object-fit:cover}
.tl{list-style:none;grid-column:2;grid-row:1/3;border-left:1px solid var(--line)}
.tl li{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:30px 0 30px 0;position:relative}
.tl li+li{border-top:1px dashed var(--line)}
.tl__k{font-family:var(--mincho);font-weight:800;font-size:3rem;line-height:1;color:var(--shu);text-align:center}
.tl h3{font-family:var(--mincho);font-weight:700;font-size:1.25rem;letter-spacing:.12em}
.tl h3 small{font-family:var(--sans);font-weight:500;font-size:.74rem;color:var(--sub);margin-left:14px;letter-spacing:.1em;border:1px solid var(--line);padding:2px 10px;border-radius:99px;vertical-align:3px}
.tl p{font-size:.9rem;color:var(--sub);margin-top:6px}
/* 料金（トップ） */
.price2{position:relative;z-index:1;background:var(--sumi);color:var(--paper);padding:clamp(90px,11vw,150px) clamp(20px,5vw,90px)}
.price2__in{max-width:900px;margin:0 auto;text-align:center}
.price2 h2{font-size:clamp(1.8rem,3vw,2.4rem);margin:6px 0 40px;letter-spacing:.5em}
.plist{list-style:none;text-align:left}
.plist li{display:flex;align-items:baseline;gap:18px;padding:26px 0;border-bottom:1px solid rgba(239,233,223,.18)}
.plist__n{font-family:var(--mincho);font-weight:700;font-size:1.2rem;letter-spacing:.12em}
.plist__n small{display:block;font-family:var(--sans);font-weight:400;font-size:.8rem;letter-spacing:.06em;opacity:.7;margin-top:4px}
.plist__dot{flex:1;border-bottom:1px dotted currentColor;opacity:.35;transform:translateY(-6px);min-width:20px}
.plist__p{font-family:var(--latin);font-size:2.2rem;line-height:1;white-space:nowrap}
.plist__p i{font-style:normal;font-family:var(--mincho);font-size:.9rem;margin-left:4px}
.plist__p s{font-size:1rem;opacity:.5;margin-right:12px;font-family:var(--sans)}
.plist li.is-first .plist__p{color:#E7A189}
.price2__note{font-size:.84rem;opacity:.75;margin-top:30px}
.price2 .more{color:var(--paper);border-color:var(--paper)}.price2 .more::after{background:var(--paper)}
/* 院長（トップ） */
.owner2{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;min-height:640px}
.owner2__img img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.owner2__txt{padding:clamp(60px,8vw,120px) clamp(24px,6vw,110px);display:flex;flex-direction:column;justify-content:center;background:var(--paper2)}
.owner2__name{font-family:var(--mincho);font-weight:800;font-size:1.6rem;letter-spacing:.3em;margin:8px 0 26px}
.owner2__name small{font-size:.8rem;letter-spacing:.2em;color:var(--sub);margin-right:14px}
.owner2 blockquote{font-family:var(--mincho);font-weight:700;font-size:clamp(1.3rem,2vw,1.7rem);line-height:2;letter-spacing:.12em;margin-bottom:26px}
.owner2__txt>p{font-size:.92rem;color:var(--sub);max-width:30em}
/* 声 */
.voice2{position:relative;z-index:1;padding:clamp(90px,12vw,160px) clamp(20px,5vw,90px);text-align:center}
.voice2 h2{font-size:clamp(1.5rem,2.4vw,2rem);margin:8px 0 56px}
.voice2__in{max-width:1200px;margin:0 auto 26px;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,4vw,60px);text-align:left}
.voice2 blockquote{position:relative;padding-top:56px}
.voice2 blockquote::before{content:"“";position:absolute;top:-20px;left:-6px;font-family:var(--latin);font-size:7rem;line-height:1;color:var(--shu);opacity:.5}
.voice2 blockquote p{font-family:var(--mincho);font-weight:500;font-size:1.02rem;line-height:2.2}
.voice2 cite{display:block;margin-top:18px;font-style:normal;font-size:.8rem;color:var(--sub);letter-spacing:.12em}
.voice2 cite::before{content:"— "}
/* アクセス */
.access2{position:relative;z-index:1;padding:0 clamp(20px,5vw,90px) clamp(90px,12vw,160px)}
.access2__in{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,6vw,90px);align-items:center}
.access2 h2{font-size:clamp(1.5rem,2.4vw,2rem);margin:8px 0 26px}
.access2 dl,.ft2 dl,.letter dl{display:grid;grid-template-columns:6em 1fr;gap:12px 10px;font-size:.88rem}
.access2 dt,.ft2 dt,.letter dt{font-family:var(--mincho);font-weight:700;letter-spacing:.2em}
.access2 dd,.letter dd{color:var(--sub)}
.map2{border-radius:999px 999px 16px 16px;overflow:hidden;aspect-ratio:520/420}
.map2 svg{width:100%;height:100%;display:block}
/* 予約への誘い */
.cta2{position:relative;z-index:1;background:var(--sumi);color:var(--paper);padding:clamp(90px,11vw,150px) clamp(20px,5vw,90px)}
.cta2__in{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:auto 1fr;gap:clamp(40px,8vw,140px);align-items:center}
.cta2 h2{writing-mode:vertical-rl;font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:.24em;line-height:1.8}
.cta2 p{font-size:.95rem;line-height:2.2;opacity:.9;max-width:30em}
.stamp--w{color:#E7A189;border-color:#E7A189;outline-color:#E7A189;margin:30px 0}
.cta2__btns{display:flex;flex-wrap:wrap;gap:14px}
.cta2__btns .pill{background:var(--paper);color:var(--sumi)}
.cta2__btns .pill:hover{background:#E7A189}
.cta2__btns .pill--line{background:transparent;color:var(--paper)}
.cta2__tel{margin-top:22px;font-size:.84rem}
.cta2__tel b{font-family:var(--latin);font-size:1.6rem;letter-spacing:.06em}
/* フッター */
.ft2{position:relative;z-index:1;background:#1A1815;color:rgba(239,233,223,.82);padding:80px clamp(20px,5vw,90px) 34px}
.ft2__in{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:auto 1.4fr 1fr;gap:clamp(30px,6vw,90px)}
.ft2 .logo{color:var(--paper)}
.ft2 dd{opacity:.8}
.ft2 ul{list-style:none;display:grid;gap:8px;font-size:.88rem}
.ft2__note{max-width:1200px;margin:60px auto 0;padding-top:24px;border-top:1px solid rgba(239,233,223,.14);font-size:.72rem;opacity:.6}
/* 下層の見出し */
.ph{position:relative;z-index:1;padding:180px clamp(20px,5vw,90px) 90px;max-width:1300px;margin:0 auto;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto 1fr;column-gap:clamp(30px,6vw,90px)}
.ph__latin{grid-column:2;font-family:var(--latin);font-style:italic;font-size:clamp(3rem,7vw,6.5rem);line-height:1;color:rgba(36,33,29,.12)}
.ph h1{grid-column:1;grid-row:1/4;writing-mode:vertical-rl;font-family:var(--mincho);font-weight:800;font-size:clamp(2rem,3.6vw,3.2rem);letter-spacing:.3em}
.ph__lead{grid-column:2;margin-top:24px;font-family:var(--mincho);font-size:1.05rem;line-height:2.3;max-width:32em}
.crumb{grid-column:2;margin-top:30px;font-size:.76rem;color:var(--sub);letter-spacing:.14em}
.crumb a{border-bottom:1px solid var(--line)}
.sheet{position:relative;z-index:1;max-width:1000px;margin:0 auto;padding:20px clamp(20px,5vw,40px) clamp(90px,11vw,150px)}
.sheet__in,.qa__grp{display:grid;grid-template-columns:70px 1fr;gap:30px;padding:46px 0;border-top:1px solid var(--line)}
.vh{writing-mode:vertical-rl;font-size:1.5rem;letter-spacing:.3em}
.plist--full li{border-color:var(--line)}
.plist--full .plist__n{font-size:1.1rem}
.plist--full .plist__n small{max-width:30em}
.plist--full .plist__p{font-size:1.9rem}
.plist--full li.is-first .plist__p{color:var(--shu)}
.notice{margin-top:30px;background:var(--paper2);padding:34px 36px;border-radius:14px}
.notice h3{font-family:var(--mincho);font-weight:700;letter-spacing:.16em;margin-bottom:10px}
.notice p{font-size:.88rem;color:var(--sub)}
/* 院長の手紙 */
.letter{position:relative;z-index:1;max-width:1300px;margin:0 auto;padding:0 clamp(20px,5vw,90px) clamp(90px,11vw,150px);display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,6vw,100px);align-items:start}
.letter__img{border-radius:999px 999px 16px 16px;overflow:hidden;position:sticky;top:40px}
.letter__img img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 15%}
.letter__body{display:flex;flex-direction:row-reverse;gap:clamp(24px,4vw,60px);justify-content:flex-end}
.letter__h{writing-mode:vertical-rl;font-size:clamp(1.6rem,2.6vw,2.2rem);letter-spacing:.24em;line-height:1.9;flex:none}
.letter__txt p{font-family:var(--mincho);font-size:1rem;line-height:2.4;margin-bottom:1.2em}
.sign{text-align:right;font-weight:800;font-size:1.4rem !important;letter-spacing:.3em;margin:30px 0 40px !important}
.sign small{font-size:.76rem;letter-spacing:.2em;margin-right:12px;color:var(--sub);font-weight:500}
.promise{position:relative;z-index:1;background:var(--paper2);padding:clamp(90px,11vw,150px) clamp(20px,5vw,90px);text-align:center}
.promise h2{font-size:clamp(1.6rem,2.6vw,2.2rem);margin:8px 0 56px}
.promise ol{list-style:none;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,4vw,60px);text-align:left}
.promise span{display:block;font-family:var(--mincho);font-weight:800;font-size:3.2rem;color:var(--shu);line-height:1;margin-bottom:18px}
.promise h3{font-family:var(--mincho);font-weight:700;font-size:1.2rem;letter-spacing:.12em;margin-bottom:10px}
.promise p{font-size:.9rem;color:var(--sub)}
.room{position:relative;z-index:1;max-width:1300px;margin:0 auto;padding:clamp(90px,11vw,150px) clamp(20px,5vw,90px);display:grid;grid-template-columns:1.3fr .8fr;grid-template-rows:auto auto;gap:24px clamp(24px,4vw,60px)}
.room figure{position:relative;border-radius:16px;overflow:hidden}
.room img{width:100%;height:100%;object-fit:cover}
.room figcaption{position:absolute;left:14px;bottom:12px;font-size:.74rem;background:rgba(239,233,223,.9);padding:3px 12px;border-radius:99px;letter-spacing:.1em}
.room__a{grid-row:1/3;aspect-ratio:4/3}
.room__b{aspect-ratio:4/3}
.room__t h2{font-size:clamp(1.4rem,2.2vw,1.8rem);margin:8px 0 14px}
.room__t p:last-child{font-size:.9rem;color:var(--sub)}
/* よくある質問 */
.qa{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;gap:18px;align-items:baseline;padding:24px 34px 24px 0;font-family:var(--mincho);font-weight:700;font-size:1.08rem;letter-spacing:.08em;position:relative}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";position:absolute;right:6px;top:50%;width:14px;height:14px;border-right:1px solid;border-bottom:1px solid;transform:translateY(-70%) rotate(45deg);transition:.3s}
.qa[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.qa__q,.qa__a{font-family:var(--mincho);font-weight:800;color:var(--shu);flex:none}
.qa__a{color:var(--sumi);margin-right:18px}
.qa p{display:flex;padding:0 0 26px;font-size:.92rem;color:var(--sub);line-height:2.1}
/* 予約 */
.rsteps{list-style:none;display:flex;justify-content:center;gap:clamp(20px,5vw,70px);margin-bottom:46px;font-family:var(--mincho);font-weight:700;letter-spacing:.14em}
.rsteps b{display:block;text-align:center;font-size:2rem;color:var(--shu);font-weight:800}
.cal2{background:#F6F2EB;border-radius:20px;padding:26px;box-shadow:0 20px 50px rgba(60,45,25,.08)}
.cal2__hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;font-family:var(--mincho);font-weight:700;letter-spacing:.14em;font-size:1.1rem}
.cal2__hd button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:none;cursor:pointer;font-size:1rem}
.cal2__hd button:disabled{opacity:.3;cursor:default}
.cal2__scroll{overflow-x:auto}
#cal{width:100%;border-collapse:collapse;min-width:560px;text-align:center}
#cal th{font-family:var(--mincho);font-weight:700;font-size:.92rem;padding:8px 0 12px;line-height:1.3}
#cal th small{display:block;font-size:.7rem;color:var(--sub)}
#cal th.sat small{color:#3D6A8F}#cal th.sun small{color:var(--shu)}
#cal td{padding:4px;border-top:1px solid var(--line)}
#cal td.t{font-family:var(--latin);font-size:1rem;color:var(--sub);width:70px}
.slot{width:100%;height:42px;border:0;border-radius:10px;background:transparent;font-size:1rem;font-family:var(--mincho);display:grid;place-items:center}
button.slot{cursor:pointer;color:var(--sumi);background:#fff}
button.slot.few{color:var(--shu)}
button.slot:hover{background:var(--paper2)}
button.slot.sel{background:var(--sumi);color:var(--paper)}
.slot.ng{color:#BDB3A3}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.cal2__lg{display:flex;gap:18px;justify-content:flex-end;font-size:.76rem;color:var(--sub);margin-top:12px}
.form2{display:grid;gap:22px;margin-top:56px}
.form2 label{display:grid;gap:8px;font-family:var(--mincho);font-weight:700;letter-spacing:.1em;font-size:.95rem}
.form2 em{font-style:normal;font-family:var(--sans);font-weight:500;font-size:.68rem;color:var(--shu);border:1px solid var(--shu);padding:0 8px;border-radius:99px;margin-left:10px;letter-spacing:.06em;justify-self:start;display:inline-block}
.form2 input,.form2 select,.form2 textarea{font:inherit;font-family:var(--sans);font-weight:400;letter-spacing:.04em;padding:14px 4px;border:0;border-bottom:1px solid var(--sumi);background:transparent;color:var(--sumi);border-radius:0}
.form2 textarea{min-height:120px;border:1px solid var(--line);border-radius:12px;padding:14px}
.form2 input:focus,.form2 select:focus,.form2 textarea:focus{outline:none;border-color:var(--shu)}
.form2__row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.form2 .agree{display:flex;gap:10px;align-items:center;font-family:var(--sans);font-weight:400;font-size:.86rem}
.form2 .agree input{accent-color:var(--shu)}
.form2 .pill{justify-self:start}
.chosen{font-family:var(--mincho);font-weight:700;letter-spacing:.1em;padding:16px 20px;border-radius:12px;background:var(--paper2)}
.chosen b{color:var(--shu)}
.done{display:none;text-align:center;padding:30px;border-radius:14px;background:var(--paper2)}
.done b{display:block;font-family:var(--mincho);font-size:1.3rem;letter-spacing:.12em;margin-bottom:6px}
.done small{display:block;color:var(--sub);margin-top:6px}
.form2.is-done>*:not(.done){display:none}.form2.is-done .done{display:block}
.rtel{margin-top:40px;text-align:center;font-size:.86rem;color:var(--sub)}
.rtel b{font-family:var(--latin);font-size:1.5rem;color:var(--sumi);letter-spacing:.06em}
/* 出てくる動き */
.rv{opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.arch img,.scroll::after{animation:none}}
@media (max-width:1000px){
  .first__in{grid-template-columns:1fr}.tl{grid-column:1;grid-row:auto}.first__img{display:none}
  .owner2{grid-template-columns:1fr}.owner2__img{aspect-ratio:4/3}
  .voice2__in,.promise ol{grid-template-columns:1fr}
  .access2__in,.letter,.room{grid-template-columns:1fr}.room__a{grid-row:auto}
  .letter__img{position:relative;top:0;max-width:420px}
  .ft2__in{grid-template-columns:1fr}
}
@media (max-width:820px){
  .mbtn{display:block}
  .nav{position:fixed;inset:0;z-index:50;background:var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:22px;padding:0;font-size:1.05rem;opacity:0;visibility:hidden;transition:.35s}
  .is-open .nav{display:flex;opacity:1;visibility:visible}
  .nav__sp{display:flex !important}
  .nav a{flex-direction:row;gap:12px}
  .cta2__in{grid-template-columns:1fr}.cta2 h2{writing-mode:horizontal-tb}
  .ph{grid-template-columns:1fr;padding:120px 20px 50px}.ph h1{writing-mode:horizontal-tb;grid-row:auto;letter-spacing:.2em;margin-top:6px}
  .ph__latin,.ph__lead,.crumb{grid-column:1}.ph__latin{grid-row:1}
  .sheet__in,.qa__grp{grid-template-columns:1fr;gap:6px}.vh{writing-mode:horizontal-tb;font-size:1.25rem}
  .plist li{flex-wrap:wrap;gap:6px 12px}.plist__dot{display:none}.plist__n{width:100%}.plist__p{margin-left:auto;font-size:1.8rem}
  .letter__body{flex-direction:column}.letter__h{writing-mode:horizontal-tb}
  .form2__row{grid-template-columns:1fr}
  .rsteps{gap:16px;font-size:.84rem}
  .ft2{padding-bottom:90px}
}
