/*
Theme Name: ホストタウン
Theme URI: https://www.fu-town.jp/
Author: Host Town
Description: 全国のホストクラブ情報を地域・店舗・プロフィールから探せるテーマ。
Version: 1.3.4
Requires PHP: 8.0
Text Domain: host-town
*/
:root{--ink:#080b15;--panel:#121827;--line:#394052;--gold:#d5ad63;--text:#f2eee7;--muted:#b3b5bf;--accent:#ef6696}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--text);font-family:"Noto Sans JP",sans-serif;line-height:1.8}a{color:var(--gold)}a:hover{color:#ffe1a0}img{max-width:100%;height:auto}button,input,textarea,select{font:inherit}.wrap{width:min(1180px,calc(100% - 36px));margin:auto}.header{background:#090d19e8;position:sticky;top:0;z-index:20;border-bottom:1px solid #d5ad633c;backdrop-filter:blur(16px)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:84px}.brand img{width:235px;max-height:75px;object-fit:contain}.nav{display:flex;flex-wrap:wrap;gap:20px}.nav a,.footer a{text-decoration:none}.hero{background:linear-gradient(90deg,#080b16ee,#080b16a8),url("assets/nightlife.jpg") center/cover;padding:75px 0;border-bottom:1px solid #caa66555}.hero h1{font-family:"Noto Serif JP",serif;font-size:clamp(2rem,5vw,4rem);line-height:1.35;margin:.35em 0}.eyebrow{color:var(--gold);letter-spacing:.24em;font-size:.85rem}.lead{font-size:1.1rem;max-width:730px}.section{padding:62px 0}.section h2,.page-title{font-family:"Noto Serif JP",serif}.section-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:25px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px;color:var(--text);text-decoration:none;transition:transform .2s,border .2s}.card:hover{border-color:var(--gold);transform:translateY(-3px)}.card h3{margin:.1em 0;font-size:1.17rem}.card small,.muted{color:var(--muted)}.search{display:flex;gap:12px;flex-wrap:wrap;padding:17px;border:1px solid var(--gold);border-radius:12px;background:#171b28}.search input,.search select,.form-field input,.form-field textarea{border:1px solid #676875;background:#0d111d;color:#fff;border-radius:6px;padding:10px;min-width:160px;flex:1}.button,.search button{border:1px solid var(--gold);background:var(--gold);color:#111;display:inline-block;padding:11px 22px;border-radius:6px;text-decoration:none;font-weight:700;cursor:pointer}.button.ghost{background:transparent;color:var(--gold)}.breadcrumbs{font-size:.85rem;color:var(--muted);padding-top:20px}.article{max-width:850px;margin:30px auto 80px}.article h2,.article h3{color:#edcc90;line-height:1.5;margin-top:2.1em}.article p{line-height:2.05}.store-cover{width:100%;max-height:390px;object-fit:cover;border-radius:12px}.store-meta{display:grid;grid-template-columns:150px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.gallery figure{margin:0}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}.footer{border-top:1px solid var(--line);padding:45px 0;color:var(--muted)}.footer-links{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:26px}.pr{display:flex;gap:16px;overflow:auto;padding:13px 0}.pr img{width:300px;height:250px;object-fit:cover}.age{min-height:100vh;display:grid;place-items:center;background:linear-gradient(#070b18b8,#070b18ed),url("assets/nightlife.jpg") center/cover}.age-box{max-width:640px;padding:32px;text-align:center;background:#090e1ed9;border:1px solid #ba9958;border-radius:14px}.age-box img{width:min(400px,100%)}.age-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.age-seo{margin-top:65px;text-align:left;color:#c4c4c8;font-size:.95rem}.age-seo p{margin-bottom:1.7em}.region-hero{background:linear-gradient(90deg,#080b16ef,#080b16b0),var(--region-photo,url("assets/nightlife.jpg")) center/cover}.region-hero img{max-width:290px;max-height:110px;object-fit:contain}.note{color:var(--muted);font-size:.88rem}.stack{display:grid;gap:20px}.map{border:0;width:100%;min-height:330px;border-radius:10px}@media(max-width:720px){.header-inner{display:block;padding:10px 0}.brand img{width:185px}.nav{gap:8px 14px;font-size:.85rem;padding-bottom:10px}.hero{padding:45px 0}.store-meta{grid-template-columns:1fr;gap:0}.section{padding:38px 0}}

/* The prefecture outlines remain linked to the area cards below the map. */
.ht-map-section{background:linear-gradient(160deg,#d3f5fa 0%,#91dfef 50%,#56bbd9 100%);border-block:1px solid #a4eafa}.ht-map-section .wrap{width:min(1360px,calc(100% - 24px))}
.ht-map-section .section-head{margin-bottom:6px}.ht-map-section h2{margin:.1em 0;color:#10263d}.ht-map-section .eyebrow,.ht-map-section .muted{color:#174d66}
.ht-map-scroll{overflow-x:auto;overflow-y:hidden;padding:14px 12px 24px;border:1px solid #e8fbff;border-radius:14px;background:linear-gradient(155deg,#c8f2f8,#72cee5);scrollbar-color:#de4786 #b3ebf5}
.ht-japan-map{display:block;width:min(100%,1100px);height:auto;margin:0 auto;filter:drop-shadow(0 12px 16px #29769a44)}
.ht-map-pref{cursor:pointer;outline:none}.ht-map-pref path{fill:#e85c9c;stroke:#ffe3ef;stroke-width:5;stroke-linejoin:round;transition:fill .18s,stroke .18s}
.ht-map-pref:hover path,.ht-map-pref:focus-visible path{fill:#b61e66;stroke:#fff;stroke-width:8}
.ht-map-labels{pointer-events:none}.ht-map-labels text{font-family:"Noto Sans JP",sans-serif;font-size:29px;font-weight:800;text-anchor:middle;dominant-baseline:middle;fill:#381125;stroke:#ffe2ee;stroke-width:3.5px;paint-order:stroke fill}
.ht-map-callout{stroke:#9c245b;stroke-width:4;stroke-linecap:round}
.ht-age-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:auto;padding:24px;background:radial-gradient(circle at 50% 20%,#253145 0%,#080d19 70%);color:#f6e8ca}
.ht-age-overlay .age-box{width:min(100%,620px);margin:auto}
.ht-breadcrumbs{background:#111b2b;border-bottom:1px solid #dfbd7c33;color:#e6c88d;font-size:.83rem}
.ht-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;padding:10px 0;margin:0}
.ht-breadcrumbs li+li:before{content:'›';padding-right:.35rem;color:#a4aab5}
.ht-region-list{padding-top:42px;padding-bottom:20px}.ht-region-list:nth-of-type(even){background:#0e1320}.ht-pref-card{scroll-margin-top:105px}.ht-pref-card:target{border-color:#f58bb8;box-shadow:0 0 0 2px #ed5c99aa}
.ht-pref-card h3 a{color:#f3d59f;text-decoration:none}.ht-pref-card h3 a:hover{text-decoration:underline}
.ht-pref-card-label{font-size:.8rem;color:var(--muted);margin:12px 0 7px}.ht-area-links{display:flex;flex-wrap:wrap;gap:8px}.ht-area-links a{border:1px solid #ed9dbe;border-radius:100px;padding:5px 12px;color:#fff4f8;text-decoration:none;font-size:.85rem;background:#52283e}.ht-area-links a:hover,.ht-area-links a:focus-visible{background:#d04182;border-color:#ffcadf}
@media(max-width:720px){.ht-map-scroll{margin-inline:0;padding:8px}.ht-japan-map{width:100%;max-width:100%}.ht-pref-card{scroll-margin-top:150px}}

/* Featured images on column-list cards. */
.ht-column-image{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;margin-bottom:14px}

/* Clear public summaries and directly linkable definitions. */
.ht-facts{margin:28px 0;padding:22px;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:10px;background:var(--panel)}.ht-facts h2{font-size:1.2rem;color:var(--gold);margin:0 0 8px}.ht-facts p{margin:0;overflow-wrap:anywhere}.ht-store-facts{margin:20px 0}.ht-store-facts dt{font-weight:700}.ht-store-facts dd{margin:0;min-width:0;overflow-wrap:anywhere}.ht-glossary-nav{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.ht-glossary-nav a{padding:8px 16px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.ht-term-link{display:inline-block;margin-top:8px;font-size:.85rem}section[id^="glossary-"],article[id^="term-"]{scroll-margin-top:160px}article[id^="term-"]:target{border-color:var(--gold)}

.ht-answers{margin-top:36px;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.ht-answers h2{margin-top:0}.ht-answers h3{font-size:1.08rem;color:var(--gold);margin-bottom:8px}.ht-answers p{margin-top:0;overflow-wrap:anywhere}.ht-answers section+section{border-top:1px solid var(--line);padding-top:16px}.ht-contents{border:1px solid var(--line);border-radius:12px;padding:20px 24px;background:var(--panel);margin:28px 0}.article .ht-contents h2{margin:0 0 14px;font-size:1.2rem}.ht-contents ul{padding-left:1.3em;margin:0}.ht-contents li{margin:8px 0;overflow-wrap:anywhere}.ht-contents .ht-level-3{margin-left:1em}h2[id^="section-"],h3[id^="section-"],.ht-answers section[id]{scroll-margin-top:165px}@media(max-width:720px){.ht-contents,.ht-answers{padding:18px}.article.wrap{width:calc(100% - 36px)}}

.article section[id],.age-seo section[id]{scroll-margin-top:165px}.article>.ht-contents h3{margin:0 0 12px}.age-seo{width:min(850px,calc(100% - 36px))}.article:not(.wrap){width:min(850px,calc(100% - 36px))}

.ht-guide-contents summary{cursor:pointer;color:var(--gold);font-weight:700;font-size:1.1rem}.ht-guide-contents[open] summary{margin-bottom:18px}.ht-guide-contents summary:focus-visible{outline:2px solid var(--gold);outline-offset:5px}

.ht-map-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:16px 0}.ht-map-zoom{background:#fff2f7;color:#721c46;border:1px solid #b84378;border-radius:8px;padding:9px 16px;font:inherit;font-weight:700;cursor:pointer}.ht-map-zoom:focus-visible{outline:3px solid #174d66;outline-offset:3px}.ht-map-scroll{max-width:100%;min-width:0;-webkit-overflow-scrolling:touch}.ht-map-scroll.is-zoomed .ht-japan-map{width:max(100%,1000px);max-width:none}.ht-map-scroll.is-zoomed{max-height:75vh;overflow:auto}.ht-map-toolbar .muted{font-size:.9rem;margin:0}

/* Address-based Google Maps and app links. */
.ht-store-map{margin:36px 0}.ht-store-map h2{margin-bottom:12px}.ht-map-address{overflow-wrap:anywhere}.ht-store-map-frame{display:block;width:100%;height:clamp(280px,45vw,420px);min-height:0}.ht-map-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.ht-map-actions .button{max-width:100%;text-align:center;overflow-wrap:anywhere}.ht-map-actions .button:focus-visible{outline:3px solid var(--text);outline-offset:3px}.ht-map-actions .screen-reader-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ht-map-warning{border-left:3px solid var(--gold);padding:12px 16px;background:var(--panel)}@media(max-width:480px){.ht-map-actions{flex-direction:column}.ht-map-actions .button{width:100%}}
