/* =====================================================================
   en lounge 麻布十番：下層ページ用テーマ（/menu/ /dog/ /access/）
   ・前半はトップ（index.html）の <style id="theme"> のコピー。トップの見た目を変えたらここにも反映する
   ・後半は下層ページ専用
   ===================================================================== */
:root{
  --bg:#0d0b09; --bg2:#15120e; --panel:#1a1611;
  --line:rgba(201,169,110,.2);
  --accent:#c9a96e; --accent-soft:#e2cc9f;
  --accent2:#b8955a; --accent2-deep:#9c7b45;
  --fg:#f3ece1; --muted:rgba(243,236,225,.66); --muted2:rgba(243,236,225,.44);
  --font-serif:'Shippori Mincho B1',serif;
  --font-sans:'Noto Sans JP',sans-serif;
  --font-en:'Cormorant Garamond',serif;
  --maxw:1080px;
}
body{font-weight:300;letter-spacing:.04em}
br.sp{display:none}
@media(max-width:860px){br.sp{display:inline}}
.en{letter-spacing:.08em}

/* --- header（写真の上に重ねる） --- */
header{position:fixed;left:0;right:0;background:transparent;border-bottom:1px solid transparent;backdrop-filter:none;transition:background .4s,border-color .4s}
header.is-solid{background:rgba(13,11,9,.88);backdrop-filter:blur(10px);border-color:var(--line)}
.brand .logo-img{display:block;width:210px;height:auto}
.nav a{font-family:var(--font-en);font-size:.95rem;letter-spacing:.12em}
.nav .book{background:transparent;border:1px solid var(--accent);color:var(--accent);font-family:var(--font-sans);font-weight:400;letter-spacing:.1em}
.nav .book:hover{background:var(--accent);color:var(--bg)}
.mnav{background:rgba(13,11,9,.97)}
.mnav a.book{background:transparent;color:var(--accent)}

/* --- buttons --- */
.btn{border-radius:0;font-weight:400;letter-spacing:.14em;font-size:.9rem;padding:17px 34px;justify-content:center}
.btn-primary{background:var(--accent);color:#17120b;box-shadow:none}
.btn-primary:hover{background:var(--accent-soft)}
.btn-line{border:1px solid rgba(243,236,225,.45)}
.btn svg{width:17px;height:17px;flex-shrink:0}

/* --- section head --- */
.sec{padding:128px 0}
.sec-head{margin-bottom:64px}
.sec-en{font-family:var(--font-en);font-style:italic;font-size:1rem;letter-spacing:.2em;margin-bottom:10px}
.sec-ttl{font-weight:500;font-size:clamp(1.45rem,3.4vw,2.05rem);letter-spacing:.12em;line-height:1.7}
.sec-lead{line-height:2.2;font-size:.92rem}
.rule{width:1px;height:56px;background:linear-gradient(var(--accent),transparent);margin:26px auto 0}

/* --- 1. hero --- */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;display:flex;align-items:flex-end}
.hero-bg{position:absolute;inset:0;background:url(/assets/hero.jpg) center 55%/cover no-repeat;transform:scale(1.08);animation:kb 14s ease-out forwards}
@keyframes kb{to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,11,9,.55) 0%,rgba(13,11,9,.1) 32%,rgba(13,11,9,.35) 60%,rgba(13,11,9,.94) 100%)}
.hero-in{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 26px 13vh}
.hero-tag{font-family:var(--font-en);font-style:italic;color:var(--accent-soft);font-size:1.05rem;letter-spacing:.24em;margin-bottom:18px}
.hero h1{font-family:var(--font-serif);font-weight:500;font-size:clamp(1.75rem,5.4vw,3.1rem);line-height:1.65;letter-spacing:.14em;margin-bottom:22px}
.hero-meta{color:var(--muted);font-size:.84rem;letter-spacing:.14em;margin-bottom:36px}
.hero-meta span{display:inline-block;margin-right:14px}
.hero .cta-row{display:flex;gap:14px;flex-wrap:wrap}
.scroll-cue{position:absolute;z-index:2;right:26px;bottom:0;writing-mode:vertical-rl;font-family:var(--font-en);font-size:.72rem;letter-spacing:.3em;color:var(--muted);padding-bottom:84px}
.scroll-cue::after{content:"";position:absolute;bottom:0;left:50%;width:1px;height:70px;background:var(--muted);animation:cue 2.2s ease-in-out infinite;transform-origin:top}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* --- 2. about --- */
.about{text-align:center}
.about .logo{margin:0 auto 26px;max-width:420px}
.about .logo img{width:100%;height:auto}
.about p.body{max-width:560px;margin:0 auto;line-height:2.5;font-size:.95rem;color:var(--muted)}
.about .kw{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 26px;margin-top:44px;font-family:var(--font-en);font-size:1.05rem;letter-spacing:.2em;color:var(--accent-soft)}

/* --- 3. features --- */
.feat{display:grid;grid-template-columns:1fr 1fr;gap:0 80px;align-items:center;margin-bottom:110px}
.feat:last-child{margin-bottom:0}
.feat.rev .feat-img{order:2}
.feat-img{position:relative;aspect-ratio:4/5;overflow:hidden}
.feat-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s ease}
.feat:hover .feat-img img{transform:scale(1.04)}
.feat-no{font-family:var(--font-en);font-style:italic;color:var(--accent);font-size:1rem;letter-spacing:.2em;margin-bottom:8px}
.feat h3{font-family:var(--font-serif);font-weight:500;font-size:1.45rem;letter-spacing:.12em;line-height:1.7;margin-bottom:22px}
.feat p{color:var(--muted);line-height:2.3;font-size:.92rem}
.feat .note{font-size:.78rem;color:var(--muted2);margin-top:14px}

/* --- 4. space --- */
.space{padding:0}
.space-hero{position:relative;height:78vh;min-height:420px;clip-path:inset(0)}
.space-bg{position:fixed;inset:0;background:url(/assets/hero.jpg) center/cover no-repeat}
.space-hero::after{content:"";position:absolute;inset:0;background:rgba(13,11,9,.45)}
.space-hero .cap{position:absolute;z-index:2;left:0;right:0;bottom:56px;text-align:center}
.space-hero .cap p,.space-hero .cap h2{font-weight:500;font-family:var(--font-serif);font-size:clamp(1.15rem,2.8vw,1.6rem);letter-spacing:.2em;line-height:2}
.space-text{max-width:var(--maxw);margin:0 auto;padding:56px 22px 128px;text-align:center;color:var(--muted);line-height:2.4;font-size:.93rem}

/* --- 5. menu --- */
.menu-wrap{display:grid;grid-template-columns:repeat(2,1fr);gap:40px;max-width:760px;margin:0 auto}
.menu-col{border-top:1px solid var(--accent);padding-top:26px}
.menu-col h3{font-family:var(--font-en);font-style:italic;font-weight:500;font-size:1.7rem;color:var(--accent-soft);letter-spacing:.08em;margin-bottom:4px}
.menu-col .ja{font-size:.78rem;color:var(--muted2);letter-spacing:.2em;margin-bottom:20px}
.menu-col ul{list-style:none}
.menu-col li{padding:13px 0;border-bottom:1px solid var(--line);font-size:.92rem;display:flex;justify-content:space-between;gap:12px}
.menu-col li small{color:var(--muted2);font-size:.76rem}
.price-note{text-align:center;margin-top:48px;color:var(--muted);font-size:.86rem;line-height:2}
.tbd{display:inline-block;font-size:.7rem;letter-spacing:.06em;color:#17120b;background:#e2cc9f;padding:1px 8px;margin-left:6px;vertical-align:middle;font-weight:500}

/* --- 6. scenes --- */
.scenes{background:var(--bg2)}
.scene-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.scene{text-align:center;padding:38px 18px;border:1px solid var(--line)}
.scene .en{font-style:italic;color:var(--accent);font-size:1.2rem;margin-bottom:10px}
.scene h3{font-family:var(--font-serif);font-weight:500;font-size:1.08rem;letter-spacing:.1em;margin-bottom:12px}
.scene p{color:var(--muted);font-size:.84rem;line-height:2}

/* --- 7/8. info + access --- */
.info{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.info dl{display:grid;grid-template-columns:7em 1fr;border-top:1px solid var(--line)}
.info dt,.info dd{padding:18px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.info dt{color:var(--accent-soft);letter-spacing:.14em}
.info dd{color:var(--fg);line-height:1.95}
.info dd small{display:block;color:var(--muted2);font-size:.76rem;margin-top:4px}
.info dd a{color:var(--accent-soft);border-bottom:1px solid var(--line)}
.map{position:relative;aspect-ratio:4/3;border:1px solid var(--line);overflow:hidden;background:var(--panel)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.85) invert(.9) hue-rotate(180deg) contrast(.9)}
.access-note{margin-top:18px;color:var(--muted);font-size:.88rem;line-height:2}
.access-note a{color:var(--accent-soft);border-bottom:1px solid var(--line)}

/* --- FAQ --- */
.qa{border-radius:0}
.qa summary{font-weight:500;letter-spacing:.06em}

/* --- 9. instagram --- */
.ig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-width:900px;margin:0 auto}
.ig-grid a{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:var(--panel)}
.ig-grid img{width:100%;height:100%;object-fit:cover;transition:transform .9s ease}
.ig-grid a::after{content:"";position:absolute;inset:0;background:rgba(13,11,9,0);transition:background .4s}
.ig-grid a:hover img{transform:scale(1.05)}
.ig-grid a:hover::after{background:rgba(13,11,9,.25)}
.ig-cta{text-align:center;margin-top:44px}
.ig-handle{font-family:var(--font-en);font-style:italic;font-size:1.15rem;color:var(--accent-soft);letter-spacing:.06em;margin-bottom:22px}

/* --- 10. reserve --- */
.reserve{position:relative;padding:150px 0;text-align:center;overflow:hidden}
.reserve::before{content:"";position:absolute;inset:0;background:url(/assets/tea.jpg) center/cover no-repeat;opacity:.28}
.reserve::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(13,11,9,.35),rgba(13,11,9,.92))}
.reserve .wrap{position:relative;z-index:2}
.reserve .cta-col{display:flex;flex-direction:column;gap:14px;max-width:360px;margin:40px auto 0}
.reserve .sub{color:var(--muted);font-size:.84rem;margin-top:28px;line-height:2}

footer{background:#090806}
footer .fbrand{margin:0 auto 12px;max-width:240px}
footer .fbrand img{width:100%;height:auto}

/* --- scroll reveal --- */
.rv{opacity:0;transform:translateY(28px);transition:opacity 1.1s ease,transform 1.1s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .hero-bg{animation:none;transform:none}
  .scroll-cue::after{animation:none}
}

/* --- responsive --- */
@media(max-width:860px){
  .sec{padding:88px 0}
  .sec-head{margin-bottom:46px}
  .hero-in{padding:0 22px 15vh}
  .hero .cta-row{flex-direction:column}
  .hero .cta-row .btn{width:100%}
  .scroll-cue{display:none}
  .brand .logo-img{width:170px}
  .feat{grid-template-columns:1fr;gap:30px;margin-bottom:76px}
  .feat.rev .feat-img{order:0}
  .feat-img{aspect-ratio:4/4.4;margin:0 -22px}
  .space-hero{height:62vh}
  .space-text{padding:44px 22px 88px;text-align:left}
  .menu-wrap{grid-template-columns:1fr;gap:44px}
  .scene-grid{grid-template-columns:1fr 1fr;gap:12px}
  .scene{padding:28px 12px}
  .info{grid-template-columns:1fr;gap:44px}
  .info dl{grid-template-columns:6em 1fr}
  .ig-grid{gap:3px;margin:0 -22px}
  .reserve{padding:110px 0}
  .mobile-cta a{border-radius:0;font-weight:400;letter-spacing:.1em}
  .mobile-cta .m-book{background:var(--accent);color:#17120b}
}
@media(max-width:420px){
  .about .logo{max-width:300px}
  .scene-grid{grid-template-columns:1fr}
}

/* =====================================================================
   下層ページ（/menu/ /dog/ /access/）専用
   ===================================================================== */
.page-hero{position:relative;height:56vh;min-height:380px;overflow:hidden;display:flex;align-items:flex-end}
.page-hero .bg{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,11,9,.6) 0%,rgba(13,11,9,.25) 40%,rgba(13,11,9,.95) 100%)}
.page-hero .in{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 26px 9vh}
.page-hero .tag{font-family:var(--font-en);font-style:italic;color:var(--accent-soft);font-size:1.05rem;letter-spacing:.24em;margin-bottom:14px}
.page-hero h1{font-family:var(--font-serif);font-weight:500;font-size:clamp(1.5rem,4.4vw,2.5rem);line-height:1.65;letter-spacing:.12em;margin-bottom:14px}
.page-hero .lead{color:var(--muted);font-size:.9rem;letter-spacing:.1em;line-height:2}
.crumb{max-width:var(--maxw);margin:0 auto;padding:22px 22px 0;font-size:.76rem;color:var(--muted2);letter-spacing:.08em}
.crumb a{color:var(--muted)}
.crumb a:hover{color:var(--accent)}
.crumb span{margin:0 8px}
.note-box{max-width:760px;margin:0 auto 56px;border:1px solid var(--line);padding:22px 26px;color:var(--muted);font-size:.86rem;line-height:2;text-align:center}
.note-box strong{color:var(--fg);font-weight:400}

/* 料金表 */
.mgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:56px 64px;max-width:960px;margin:0 auto}
.mblock{border-top:1px solid var(--accent);padding-top:24px}
.mblock h2,.mblock h3{font-family:var(--font-en);font-style:italic;font-weight:500;font-size:1.6rem;color:var(--accent-soft);letter-spacing:.06em;margin-bottom:2px}
.mblock .ja{font-size:.78rem;color:var(--muted2);letter-spacing:.2em;margin-bottom:16px}
.mblock .all{display:inline-block;font-size:.8rem;color:var(--accent);border:1px solid var(--line);padding:2px 12px;margin-bottom:10px;letter-spacing:.1em}
.mblock ul{list-style:none}
.mblock li{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.mblock li .p{color:var(--accent-soft);white-space:nowrap;font-family:var(--font-en);font-size:1.02rem;letter-spacing:.04em}
.mblock li small{display:block;color:var(--muted2);font-size:.76rem;margin-top:2px}
.mblock li small.d{color:var(--muted);font-size:.78rem;line-height:1.8;margin-top:4px}
.mblock .sub{color:var(--muted);font-size:.82rem;margin-top:12px;line-height:1.9}
.mblock.wide{grid-column:1/-1}
.mix{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px}
.mix li{display:block}
.mix li b{font-weight:400;color:var(--fg);display:block}
.mix li small{color:var(--muted)}
.sys{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;max-width:960px;margin:0 auto}
.sys .box{border:1px solid var(--line);padding:30px 28px;background:var(--panel)}
.sys .box h3{font-family:var(--font-serif);font-weight:500;font-size:1.15rem;letter-spacing:.12em;color:var(--accent-soft);margin-bottom:14px}
.sys .box ul{list-style:none}
.sys .box li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.9rem;color:var(--fg)}
.sys .box li:last-child{border-bottom:0}

/* 犬同伴ルール */
.rules{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:960px;margin:0 auto}
.rule-card{border:1px solid var(--line);padding:28px 14px;text-align:center;background:var(--panel)}
.rule-card .k{font-family:var(--font-en);font-style:italic;color:var(--accent);font-size:.95rem;letter-spacing:.14em;margin-bottom:8px}
.rule-card h3{font-family:var(--font-serif);font-weight:500;font-size:1.05rem;letter-spacing:.08em;line-height:1.7}
.rule-card p{color:var(--muted);font-size:.8rem;margin-top:6px;line-height:1.8}
.photo-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-width:960px;margin:0 auto}
.photo-row img{width:100%;aspect-ratio:1;object-fit:cover}

/* アクセス手順 */
.steps{max-width:760px;margin:0 auto;list-style:none;counter-reset:st}
.steps li{position:relative;padding:0 0 44px 74px}
.steps li::before{counter-increment:st;content:counter(st,decimal-leading-zero);position:absolute;left:0;top:-4px;font-family:var(--font-en);font-style:italic;font-size:2rem;color:var(--accent)}
.steps li::after{content:"";position:absolute;left:22px;top:46px;bottom:6px;width:1px;background:var(--line)}
.steps li:last-child::after{display:none}
.steps h3{font-family:var(--font-serif);font-weight:500;font-size:1.2rem;letter-spacing:.1em;margin-bottom:8px}
.steps p{color:var(--muted);font-size:.9rem;line-height:2}
.step-photo{margin-top:16px}
.step-photo img{width:100%;height:auto}
.addr{max-width:760px;margin:0 auto;text-align:center;font-style:normal;font-size:.95rem;line-height:2.1}
.addr .big{font-family:var(--font-serif);font-size:clamp(1.15rem,3vw,1.5rem);letter-spacing:.12em;color:var(--fg);display:block;margin-bottom:6px}

/* 共通：ページ下部 */
.cta-wide{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:36px}
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:960px;margin:0 auto}
.related a{border:1px solid var(--line);padding:24px 20px;text-align:center;transition:border-color .3s}
.related a:hover{border-color:var(--accent)}
.related .en{font-style:italic;color:var(--accent);font-size:1rem;display:block;margin-bottom:6px}
.related .ja{font-family:var(--font-serif);font-size:1rem;letter-spacing:.1em}
.more-link{display:inline-block;margin-top:18px;color:var(--accent-soft);border-bottom:1px solid var(--line);font-size:.88rem;letter-spacing:.06em}

@media(max-width:860px){
  .page-hero{height:48vh;min-height:340px}
  .page-hero .in{padding:0 22px 7vh}
  .mgrid{grid-template-columns:1fr;gap:48px}
  .mix{grid-template-columns:1fr}
  .sys{grid-template-columns:1fr}
  .rules{grid-template-columns:1fr 1fr}
  .photo-row{margin:0 -22px;gap:3px}
  .steps li{padding-left:60px}
  .related{grid-template-columns:1fr}
  .cta-wide{flex-direction:column}
  .cta-wide .btn{width:100%}
}
