/*
Theme Name: 映えログ
Theme URI: https://example.com/
Description: 30名以上で貸切できる会場を内装で選ぶメディア用テーマ。会場CPT・条件検索・構造化データを内蔵し、プラグイン依存を作らない。
Author: 映えログ
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
License: GPL v2 or later
Text Domain: haelog
*/

/* ==========================================================
   配色はすべて実在の会場写真からピクセル抽出した値。
   抽象的に選んでいない（DESIGN.md §13 参照）。
   ========================================================== */

:root{
    /* 配色はすべて実際の会場写真からピクセル抽出した値。抽象的に選んでいない */
    --ground:#100E0C;
    --raise:#1A1613;
    --text:#EFEAE2;
    --sub:#A79D90;
    --amber:#E0B263;
    --amber-d:#B98C46;
    --indigo:#3A46B2;
    --indigo-l:#98A0EA;
    --rule:#2C2621;
    --jp:"游ゴシック体","Yu Gothic Medium",YuGothic,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;
    --num:"Helvetica Neue",Arial,sans-serif;
  }
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
    background:var(--ground);color:var(--text);
    font-family:var(--jp);font-size:16px;line-height:1.8;letter-spacing:.01em;
    font-feature-settings:"palt";
  }
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
img{display:block;width:100%;height:100%;object-fit:cover}
:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.pad{padding-inline:clamp(16px,3.6vw,40px)}

  /* ===== 題字 ===== */
  .top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-block:16px}
.top .nm{font-size:17px;font-weight:700}
.top .sl{font-size:12.5px;color:var(--sub)}
.top nav{margin-left:auto;display:flex;gap:18px;flex-wrap:wrap}
.top nav a{font-size:13px;color:var(--sub);min-height:44px;display:inline-flex;align-items:center}
.top nav a[aria-current]{color:var(--amber);box-shadow:inset 0 -1px 0 var(--amber)}

  /* ===== 見出し面 ===== */
  .hero{position:relative;min-height:min(72svh,620px);display:flex;align-items:flex-end}
.hero .bg{position:absolute;inset:0;overflow:hidden}
.hero .bg::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(16,14,12,.42) 0%,rgba(16,14,12,.12) 38%,rgba(16,14,12,.92) 100%);
  }
.hero .in{position:relative;z-index:1;width:100%;padding-block:34px 30px}
.hero .kick{font-size:12.5px;color:var(--amber);letter-spacing:.05em}
.hero h1{
    font-size:clamp(29px,5vw,54px);font-weight:700;line-height:1.26;
    text-wrap:balance;margin:10px 0 14px;max-width:19em;
  }
.hero h1 em{font-style:normal;color:var(--amber)}
.hero .lead{font-size:16px;max-width:30em;color:#D8D0C4}
.hero .who{margin-top:16px;font-size:13px;color:var(--sub)}
.hero .who b{color:var(--text);font-weight:600}
.hact{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.hact a{min-height:46px;display:inline-flex;align-items:center;padding:11px 20px;font-weight:700;font-size:14.5px}
.hact .pri{background:var(--amber);color:#191307}
.hact .sec{border:1px solid var(--rule);background:rgba(26,22,19,.6)}

  /* ===== 掲載基準 ===== */
  .crit{padding-block:26px 4px}
.crit h2{font-size:17px;font-weight:700}
.crit ol{display:grid;grid-template-columns:1fr 1fr;gap:8px 26px;margin-top:12px;padding-left:1.3em}
@media(max-width:560px){.crit ol{grid-template-columns:1fr}}
.crit li{font-size:14px;color:#CFC7BB}
.crit li::marker{color:var(--amber);font-family:var(--num)}

  /* ===== 候補をつくる（人数ファースト） ===== */
  .find{padding-block:30px 28px}
.find .eb{font-size:12px;color:var(--amber);letter-spacing:.05em}
.find h2{font-size:21px;font-weight:700;margin-top:4px}
.find .note{font-size:13.5px;color:var(--sub);margin-top:5px}
.capacity{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;max-width:560px}
.cap{
    border:1px solid var(--rule);background:var(--raise);
    min-height:64px;padding:12px 16px;text-align:left;
    display:flex;flex-direction:column;justify-content:center;gap:2px;
  }
.cap .n{font-family:var(--num);font-size:24px;font-variant-numeric:tabular-nums;line-height:1.2}
.cap .n small{font-family:var(--jp);font-size:13px;font-weight:600;margin-left:2px}
.cap[aria-pressed="true"]{background:var(--amber);border-color:var(--amber);color:#191307}
@media(hover:hover){.cap:hover{border-color:var(--amber)}}
.grp{margin-top:20px}
.grp .lb{font-size:12.5px;color:var(--sub);margin-bottom:7px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{
    border:1px solid var(--rule);background:var(--raise);
    padding:10px 15px;min-height:44px;display:inline-flex;align-items:center;gap:5px;
    font-size:14.5px;font-weight:600;
  }
.chips button[aria-pressed="true"]{border-color:var(--amber);background:#241C10;color:var(--amber)}
.chips button[aria-pressed="true"]::before{content:"✓";font-size:12px}
@media(hover:hover){.chips button:hover{border-color:var(--amber)}}
.areanote{font-size:13px;color:var(--sub);margin-top:12px;border-left:1px solid var(--amber-d);padding-left:12px;line-height:1.8}
.areanote b{color:var(--amber);font-weight:600}
.common{
    font-size:12.5px;color:var(--sub);margin-top:18px;line-height:1.9;max-width:46em;
    border-left:1px solid var(--amber-d);padding-left:12px;
  }
.rs2{
    display:none;margin-top:16px;background:none;border:none;color:var(--sub);
    text-decoration:underline;text-underline-offset:3px;min-height:44px;font-size:13px;padding:0;
  }
.find.on .rs2{display:inline-flex;align-items:center}

  /* ===== 結果バー（条件を選んでいる間だけ） ===== */
  .bar{
    position:fixed;left:0;right:0;bottom:0;z-index:50;
    background:rgba(26,22,19,.96);border-top:1px solid var(--amber-d);
    display:none;align-items:center;gap:8px;
    padding:10px clamp(16px,3.6vw,40px);
    padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));
  }
.bar.on{display:flex}
.bar a.go{
    flex:1;justify-content:center;background:var(--amber);color:#191307;font-weight:700;
    padding:11px 18px;min-height:46px;display:inline-flex;align-items:center;font-size:15px;
  }
.bar button.rs{
    background:transparent;border:1px solid var(--rule);color:var(--sub);font-size:13px;
    min-height:46px;padding:0 14px;
  }
body.has-bar{padding-bottom:80px}

  /* ===== 会場 ===== */
  .vh{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding-block:22px 12px}
.vh h2{font-size:19px;font-weight:700}
.vh .cnt{font-size:13px;color:var(--sub)}
.vh .all{margin-left:auto;font-size:13.5px;min-height:44px;display:inline-flex;align-items:center;color:var(--amber);box-shadow:inset 0 -1px 0 var(--amber-d)}
.vlist{display:grid;gap:2px}
.near-h{
    padding:20px clamp(16px,3.6vw,40px) 8px;
    font-size:15px;font-weight:700;color:var(--sub);
  }
.v{position:relative;display:grid;background:var(--raise)}
@media(min-width:900px){
    .v{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.v.flip>.ph{order:2}
  }
.v .ph{position:relative;aspect-ratio:16/10;overflow:hidden}
@media(min-width:900px){.v .ph{aspect-ratio:auto;min-height:330px}}
.v .bd{padding:20px clamp(16px,3vw,30px) 22px;display:flex;flex-direction:column;justify-content:center}
.v .mood{font-size:12px;color:var(--amber);letter-spacing:.05em}
.v .nm{font-size:19px;font-weight:700;line-height:1.45;margin-top:3px}
.v .ml{display:none;font-size:12.5px;margin-top:8px}
.v.is-match .ml{display:block;color:var(--amber)}
.v.is-near .ml{display:block;color:var(--sub)}
.v .cm{font-size:14.5px;color:#CFC7BB;margin-top:10px;max-width:32em}
.reasons{list-style:none;margin-top:12px}
.reasons li{
    font-size:13.5px;color:#CFC7BB;padding-left:10px;margin:5px 0;
    border-left:1px solid var(--amber-d);line-height:1.65;
  }
.facts{display:grid;grid-template-columns:repeat(2,1fr);margin-top:14px;border-top:1px solid var(--rule)}
.facts>div{padding:10px 0;border-bottom:1px solid var(--rule)}
.facts>div:nth-child(odd){padding-right:14px;border-right:1px solid var(--rule)}
.facts>div:nth-child(even){padding-left:14px}
.facts dt{font-size:11.5px;color:var(--sub)}
.facts dd{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.4}
.facts dd .u{font-size:12px;font-weight:400;color:var(--sub)}
.facts dd.sm{font-size:13.5px;font-weight:400}
.facts .hit dd{color:var(--amber)}
.vcta{
    margin-top:16px;align-self:flex-start;
    border:1px solid var(--amber-d);color:var(--amber);
    padding:10px 18px;min-height:44px;display:inline-flex;align-items:center;
    font-size:13.5px;font-weight:700;
  }
@media(hover:hover){.vcta:hover{background:#241C10}}

  /* ===== 内装タイプ ===== */
  .mh{padding-block:34px 12px}
.mh h2{font-size:19px;font-weight:700}
.mh .note{font-size:13.5px;color:var(--sub);margin-top:4px}
.moods{display:grid;grid-template-columns:repeat(2,1fr);gap:2px}
@media(min-width:760px){.moods{grid-template-columns:repeat(3,1fr)}}
.moods a{position:relative;display:block;aspect-ratio:5/3;overflow:hidden;background:var(--raise)}
.moods a .lb{
    position:absolute;left:0;right:0;bottom:0;padding:26px 13px 11px;
    background:linear-gradient(0deg,rgba(16,14,12,.9),rgba(16,14,12,0));
  }
.moods .t{font-size:15px;font-weight:700;display:block}
.moods .c{font-size:12px;color:#D8D0C4}
@media(hover:hover){.moods a:hover img{transform:scale(1.03)}}
.moods img{transition:transform .5s cubic-bezier(.16,1,.3,1)}
@media(prefers-reduced-motion:reduce){.moods img{transition:none}}

  /* ===== 記事 ===== */
  .jh{padding-block:34px 8px}
.jh h2{font-size:19px;font-weight:700}
.jl{border-top:1px solid var(--rule)}
.jl a{display:grid;gap:2px 18px;border-bottom:1px solid var(--rule);padding:15px 0}
@media(min-width:720px){.jl a{grid-template-columns:6.5em 1fr}}
.jl .dt{font-family:var(--num);font-size:13px;color:var(--sub);font-variant-numeric:tabular-nums}
.jl h3{font-size:16.5px;font-weight:700;line-height:1.6}
.jl p{font-size:14.5px;color:var(--sub);margin-top:2px}
@media(hover:hover){.jl a:hover h3{color:var(--amber)}}
footer.site{margin-top:34px;border-top:1px solid var(--rule);padding-block:26px 42px}
.fl{display:flex;flex-wrap:wrap;gap:2px 22px;font-size:13.5px}
.fl a{color:var(--sub);min-height:44px;display:inline-flex;align-items:center}
.fnote{margin-top:14px;font-size:12px;color:var(--sub);line-height:1.9;max-width:44em}
.brand{display:inline-flex;align-items:center;gap:7px;color:var(--amber)}
.brand svg{width:27px;height:27px;flex-shrink:0}
.brand .wm{font-size:18px;font-weight:800;letter-spacing:.02em;color:var(--text);line-height:1}
.brand .wm .b{color:var(--amber)}
.brand .wm small{font-size:10.5px;color:var(--sub);font-weight:400;margin-left:4px}
:root{
    --ground:#100E0C; --raise:#1A1613; --text:#EFEAE2; --sub:#A79D90;
    --amber:#E0B263; --amber-d:#B98C46; --rule:#2C2621;
    --jp:"游ゴシック体","Yu Gothic Medium",YuGothic,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;
    --num:"Helvetica Neue",Arial,sans-serif;
  }
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
    background:var(--ground);color:var(--text);
    font-family:var(--jp);font-size:16px;line-height:1.8;letter-spacing:.01em;
    font-feature-settings:"palt";padding-bottom:86px;
  }
.pad{padding-inline:clamp(16px,3.6vw,40px)}
.wrap{max-width:760px;margin-inline:auto}
.top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-block:14px}
.bc{font-size:12.5px;color:var(--sub);padding-bottom:10px}
.bc a{text-decoration:underline;text-underline-offset:3px}

  /* ===== ヒーロー：1画面で「決め手・出どころ・次の行動」まで ===== */
  .hero .ph{height:42svh;min-height:280px;max-height:430px;overflow:hidden}
.hd{padding-block:16px 4px}
.hd .mood{font-size:12.5px;color:var(--amber);letter-spacing:.05em}
.hd h1{font-size:clamp(28px,7vw,42px);font-weight:700;line-height:1.3;margin-top:3px}
.hd .source{margin-top:7px;font-size:13px;color:var(--sub)}
.hd .source b{color:var(--text)}
.facts{display:grid;grid-template-columns:repeat(2,1fr);margin-top:13px;border-top:1px solid var(--rule)}
.hcta{margin-top:16px}
.hcta a{
    display:flex;justify-content:center;align-items:center;min-height:48px;
    background:var(--amber);color:#191307;font-weight:700;font-size:15px;
  }
.hcta p{font-size:12px;color:var(--sub);margin-top:6px;text-align:center}
section{padding-block:26px 0}
h2{font-size:18px;font-weight:700}
.sn{font-size:13px;color:var(--sub);margin-top:3px}

  /* ===== 候補判断 ===== */
  .why{margin-top:12px}
.why li{
    list-style:none;font-size:14.5px;color:#DFD8CC;
    padding:6px 0 6px 12px;border-left:1px solid var(--amber-d);margin:6px 0;line-height:1.7;
  }
.checks{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px;margin-top:14px}
@media(max-width:560px){.checks{grid-template-columns:1fr}}
.checks li{list-style:none;font-size:13px;color:var(--sub)}
.checks li::before{content:"✓ ";color:var(--amber);font-weight:700}

  /* ===== メリット・注意点 ===== */
  .fit{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:14px}
@media(max-width:640px){.fit{grid-template-columns:1fr}}
.fit>div{background:var(--raise);padding:16px 18px}
.fit h3{font-size:14px;font-weight:700}
.fit .ok h3{color:var(--amber)}
.fit .ng h3{color:var(--sub)}
.fit ul{margin-top:8px}
.fit li{list-style:none;font-size:14px;color:#CFC7BB;padding:4px 0;line-height:1.7}
.fit .ok li::before{content:"○ ";color:var(--amber)}
.fit .ng li::before{content:"— ";color:var(--sub)}

  /* ===== 事実表 ===== */
  .tbl{margin-top:14px;border-top:1px solid var(--rule)}
.tbl>div{display:grid;grid-template-columns:8.5em 1fr;gap:14px;padding:11px 0;border-bottom:1px solid var(--rule)}
@media(max-width:480px){.tbl>div{grid-template-columns:7em 1fr}}
.tbl dt{font-size:13px;color:var(--sub)}
.tbl dd{font-size:14.5px;font-variant-numeric:tabular-nums;line-height:1.7}
.tbl dd b{font-weight:600;color:var(--amber)}

  /* ===== 共有 ===== */
  .share{background:var(--raise);padding:18px;margin-top:14px}
.share pre{
    font-family:var(--jp);font-size:13.5px;line-height:1.9;color:#DFD8CC;
    white-space:pre-wrap;border-left:1px solid var(--rule);padding-left:14px;
  }
.share .btns{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;align-items:center}
.share .sh{
    background:var(--amber);color:#191307;border:none;
    padding:11px 22px;min-height:44px;font-weight:700;font-size:14px;
  }
.share .cp{
    background:none;border:1px solid var(--rule);color:var(--text);
    padding:11px 18px;min-height:44px;font-size:13.5px;
  }
.share .done{font-size:13px;color:var(--amber);display:none}
.share.copied .done{display:inline}

  /* ===== ギャラリー ===== */
  .gal{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:14px}
.gal span{display:block;aspect-ratio:4/3;overflow:hidden}

  /* ===== 相談・問い合わせ ===== */
  .contact{background:var(--raise);padding:20px 18px 22px;margin-top:14px}
.contact h3{font-size:14px;font-weight:700;color:var(--sub)}
.contact ol{margin-top:8px;padding-left:1.4em}
.contact ol li{font-size:14.5px;color:#DFD8CC;padding:4px 0;line-height:1.7}
.contact ol li::marker{color:var(--amber);font-family:var(--num);font-weight:700}
.contact .cta{margin-top:16px}
.contact .cta a{
    display:flex;justify-content:center;align-items:center;min-height:48px;
    background:var(--amber);color:#191307;font-weight:700;font-size:15px;
  }
.contact .cta p{font-size:12px;color:var(--sub);margin-top:6px;text-align:center}

  /* ===== 第2候補・記事 ===== */
  .alt{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:14px}
@media(max-width:640px){.alt{grid-template-columns:1fr}}
.alt a{background:var(--raise);display:block}
.alt .ph{aspect-ratio:16/9;overflow:hidden}
.alt .bd{padding:13px 15px 15px}
.alt .m{font-size:11.5px;color:var(--amber)}
.alt .n{font-size:15px;font-weight:700;margin-top:2px}
.alt .f{font-size:12.5px;color:var(--sub);margin-top:4px}
.jl{border-top:1px solid var(--rule);margin-top:12px}
.jl a{display:grid;gap:2px 18px;border-bottom:1px solid var(--rule);padding:14px 0}
.jl .dt{font-family:var(--num);font-size:13px;color:var(--sub)}
.jl h3{font-size:15.5px;font-weight:700;line-height:1.6}
footer.site{margin-top:36px;border-top:1px solid var(--rule);padding-block:24px 40px}
.fnote{font-size:12px;color:var(--sub);line-height:1.9;max-width:44em}

  /* ===== 固定CTAバー（ヒーローCTAが見えている間は隠す） ===== */
  .bar{
    position:fixed;left:0;right:0;bottom:0;z-index:50;
    background:rgba(26,22,19,.97);border-top:1px solid var(--amber-d);
    display:flex;align-items:center;gap:8px;
    padding:10px clamp(16px,3.6vw,40px);
    padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));
    transition:transform .25s ease;
  }
@media(prefers-reduced-motion:reduce){.bar{transition:none}}
.bar.off{transform:translateY(110%)}
.bar a.sh{
    border:1px solid var(--rule);color:var(--text);font-size:13.5px;
    min-height:46px;padding:0 16px;display:inline-flex;align-items:center;
  }
.top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-block:16px}
.top .nm small{font-size:11px;color:var(--sub);font-weight:400;margin-left:4px}
.bc{font-size:12.5px;color:var(--sub);padding-bottom:12px}
.bc a{text-decoration:underline;text-underline-offset:3px}
.head{padding-block:8px 20px}
.head h1{font-size:clamp(24px,4.4vw,32px);font-weight:700;line-height:1.4}
.head h1 .cnt{font-family:var(--num);font-size:15px;color:var(--sub);font-weight:400;margin-left:10px}
.head .lead{font-size:15px;color:#CFC7BB;margin-top:8px;max-width:36em}
@media(hover:hover){.vcta:hover{background:#241C10}}
.mn{display:grid;grid-template-columns:1fr 1fr;gap:2px}
@media(max-width:640px){.mn{grid-template-columns:1fr}}
.mn>div{background:var(--raise);padding:16px 18px}
.mn h3{font-size:14px;font-weight:700}
.mn .ok h3{color:var(--amber)}
.mn .ng h3{color:var(--sub)}
.mn ul{margin-top:8px}
.mn li{list-style:none;font-size:14px;color:#CFC7BB;padding:4px 0;line-height:1.7}
.mn .ok li::before{content:"○ ";color:var(--amber)}
.mn .ng li::before{content:"— ";color:var(--sub)}
.oh{padding-block:34px 10px}
.oh h2{font-size:18px;font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:8px}
.chips a{
    border:1px solid var(--rule);background:var(--raise);
    padding:10px 15px;min-height:44px;display:inline-flex;align-items:center;gap:6px;
    font-size:14px;font-weight:600;
  }
.chips a .n{font-family:var(--num);font-size:12px;color:var(--sub);font-weight:400}
@media(hover:hover){.chips a:hover{border-color:var(--amber)}}
.fnote{font-size:12px;color:var(--sub);line-height:1.9;max-width:44em}

/* エリアチップ（選ぶと絞り込みでなくエリアページへ遷移する） */
.areachip{border:1px solid var(--rule);background:var(--raise);padding:10px 15px;min-height:44px;display:inline-flex;align-items:center;gap:6px;font-size:14.5px;font-weight:600}
.areachip .n{font-family:var(--num);font-size:12px;color:var(--sub);font-weight:400}
.areachip.is-here{border-color:var(--amber);color:var(--amber)}
@media(hover:hover){.areachip:hover{border-color:var(--amber)}}
