/*
Theme Name: Sin Filtros Guía
Theme URI: https://sinfiltrosguia.com
Description: 日本語レビュー基準の日本食レストラン案内（Madrid / Barcelona）。クラシックテーマ。
Author: Sin Filtros Guía
Version: 0.6.3
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: sinfiltrosguia
*/

/* ---------- tokens ---------- */
:root{
  --bg-base:#fbfaf9; --bg-alt:#f4f3f1; --bg-media:#efedea; --bg-media-dark:#eae7e3; --bg-inverse:#111110;
  --text-strong:#111110; --text-base:#3d3a36; --text-body:#57544f; --text-muted:#8b8781;
  --text-faint:#b3aea7; --text-faint-alt:#a8a29a; --text-on-inverse:#fbfaf9;
  --line-base:#e2e0dc; --line-strong:#111110; --line-field:#d8d5d0; --line-chip:#dedbd6; --line-track:#e6e3df;
  --accent:#E8480A;
  --wrap:1200px; --pad:calc((100% - var(--wrap)) / 2);
}

.hg-logo__es{
  display:inline-flex; align-items:center; justify-content:center;
  transform:rotate(-5deg); border:2px solid var(--accent);
  border-radius:14px 9px 15px 8px / 9px 15px 8px 14px;
  box-shadow:0 0 0 3px rgba(232,72,10,.18); background:var(--accent);
  padding:3px 8px 4px 10px; font-size:11px; font-weight:600;
  letter-spacing:.2em; color:var(--text-on-inverse);
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg-base); color:var(--text-strong);
  font-family:Archivo,'Helvetica Neue',Helvetica,Arial,'Noto Sans JP',sans-serif;
  font-weight:300; -webkit-font-smoothing:antialiased;
}
img{max-width:100%; height:auto; display:block}
a{color:var(--text-strong); text-decoration:none}
a:hover{color:var(--accent)}
button,input,select,textarea{font-family:inherit; font-weight:inherit}
h1,h2,h3,h4,p{margin:0}
ul{margin:0; padding:0; list-style:none}
table{border-collapse:collapse; width:100%}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px}

/* ---------- layout ---------- */
.hg-wrap{max-width:var(--wrap); margin:0 auto; padding:0 20px}
.hg-section{border-top:1px solid var(--line-base)}
.hg-section--alt{background:var(--bg-alt)}
.hg-section__inner{max-width:var(--wrap); margin:0 auto; padding:64px 20px 72px}
.hg-jp{font-family:'Noto Sans JP',sans-serif; font-weight:300}

/* ---------- type ---------- */
.hg-h1{font-size:52px; line-height:1.08; font-weight:300; letter-spacing:-.02em; text-wrap:balance}
.hg-h2{font-size:38px; font-weight:300; letter-spacing:-.01em}
.hg-h2--section{font-size:30px; font-weight:300; letter-spacing:0}
.hg-h3{font-size:21px; font-weight:400; letter-spacing:.01em}
.hg-lead{font-size:15px; line-height:1.8; color:var(--text-body); text-wrap:pretty}
.hg-body{font-size:14px; line-height:1.8; color:var(--text-body); text-wrap:pretty}
.hg-meta{font-size:13px; color:var(--text-muted)}
.hg-summary{margin-top:24px; padding-left:18px; border-left:2px solid var(--accent)}
.hg-summary p{font-size:16px; line-height:1.85; color:var(--text-strong); text-wrap:pretty}
.hg-summary p+p{margin-top:14px}
.hg-attribution{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:20px; font-size:12px; color:var(--text-muted)}
.hg-attribution__fallback{font-size:12px; letter-spacing:.02em; color:var(--text-muted)}
.hg-carta__head{display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap}
.hg-carta{margin:20px 0 0; display:flex; flex-direction:column}
.hg-carta__row{display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:14px 0; border-bottom:1px solid var(--line-base)}
.hg-carta__row dt{display:flex; flex-direction:column; gap:4px; margin:0}
.hg-carta__row dd{margin:0; flex:none; font-size:15px; color:var(--text-body)}
.hg-carta__name{font-size:15px; color:var(--text-strong)}
.hg-carta__note{font-size:12px; color:var(--text-muted)}
.hg-meta--sm{font-size:12px; color:var(--text-muted)}
.hg-label{font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--text-muted)}
.hg-label--accent{color:var(--accent)}
.hg-jp-caption{font-family:'Noto Sans JP',sans-serif; font-size:12px; letter-spacing:.28em; color:var(--text-muted)}

/* ---------- buttons / chips ---------- */
.hg-btn{display:inline-block; padding:14px 26px; font-size:13px; letter-spacing:.08em; border:1px solid var(--line-strong); background:transparent; color:var(--text-strong); cursor:pointer}
.hg-btn:hover{background:var(--line-strong); color:var(--text-on-inverse)}
.hg-btn--fill{background:var(--bg-inverse); color:var(--text-on-inverse); border-color:var(--bg-inverse)}
.hg-btn--fill:hover{background:var(--accent); border-color:var(--accent); color:var(--text-on-inverse)}
.hg-btn--ghost{border-color:var(--line-field); color:var(--text-base)}
.hg-btn--ghost:hover{border-color:var(--line-strong); background:transparent; color:var(--text-strong)}
.hg-chip{display:inline-block; border:1px solid var(--line-field); padding:9px 16px; font-size:13px; color:var(--text-base); background:transparent; cursor:pointer}
.hg-chip:hover{border-color:var(--accent); color:var(--accent)}
.hg-chip--sm{padding:6px 12px; border-color:var(--line-chip); background:var(--bg-base); color:var(--text-body)}
.hg-chip.is-on{background:var(--bg-inverse); border-color:var(--bg-inverse); color:var(--text-on-inverse)}
.hg-link-more{font-size:13px; letter-spacing:.08em; color:var(--text-muted)}

/* ---------- header ---------- */
.hg-header{position:sticky; top:0; z-index:20; background:rgba(251,250,249,.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line-base)}
.hg-header__inner{max-width:var(--wrap); margin:0 auto; padding:0 20px; height:76px; display:flex; align-items:center; gap:40px}
.hg-logo{display:flex; align-items:baseline; gap:12px}
.hg-logo__mark{font-size:22px; font-weight:600; letter-spacing:.12em}
.hg-logo__jp{font-family:'Noto Sans JP',sans-serif; font-weight:300; font-size:12px; letter-spacing:.18em; color:var(--text-muted)}
.hg-nav{display:flex; align-items:center; gap:36px; margin-left:auto}
.hg-nav ul,.hg-nav li,.hg-drawer ul,.hg-drawer li,.hg-footer li{list-style:none; margin:0; padding:0}
.hg-nav ul::marker,.hg-nav li::marker,.hg-drawer li::marker,.hg-footer li::marker{content:none}
.hg-nav__list{display:flex; align-items:center; gap:36px}
.hg-nav a{font-size:14px; letter-spacing:.06em}
.hg-nav .current-menu-item > a{color:var(--accent)}
/* メニュー内の言語スイッチャー（Polylang） */
.hg-nav .pll-parent-menu-item > ul,.hg-nav .menu-item-has-children > ul{display:flex; gap:14px; margin-left:14px}
.hg-nav .lang-item a{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted)}
.hg-nav .lang-item.current-lang a{color:var(--text-strong)}
.hg-nav .lang-item img{display:none}
.hg-header__tools{display:flex; align-items:center; gap:16px}
.hg-lang{display:flex; border:1px solid var(--line-field); list-style:none; margin:0; padding:0}
.hg-lang li{margin:0; list-style:none}
.hg-lang a,.hg-lang span{display:block; padding:8px 13px; font-size:12px; letter-spacing:.08em; color:var(--text-muted); text-transform:uppercase}
.hg-lang a:hover{color:var(--text-strong)}
.hg-lang .is-on{background:var(--bg-inverse); color:var(--text-on-inverse)}
.hg-lang .current-lang > a,.hg-lang .current-lang > span{background:var(--bg-inverse); color:var(--text-on-inverse)}
.hg-lang img{display:none}
.hg-searchform{display:flex; align-items:center; border:1px solid var(--line-field); background:#fff}
.hg-searchform input[type=search],.hg-searchform input[type=text]{width:242px; border:0; outline:0; padding:11px 14px; font-size:13px; background:transparent; color:var(--text-strong)}
.hg-searchform button{background:var(--bg-inverse); color:var(--text-on-inverse); border:0; padding:11px 18px; font-size:13px; letter-spacing:.08em; cursor:pointer}
.hg-searchform button:hover{background:var(--accent)}
.hg-burger{display:none; border:0; background:transparent; font-size:18px; color:var(--text-base); cursor:pointer; min-width:44px; min-height:44px}
.hg-header__search-sp{display:none}
.hg-drawer{display:none}
.hg-drawer__label{display:block; font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--text-faint)}
.hg-drawer__group{margin-top:32px}
.hg-drawer__rows{margin-top:12px; border-top:1px solid var(--line-base)}
.hg-drawer__rows--strong{border-top-color:var(--line-strong)}
.hg-drawer__city{display:flex; align-items:baseline; gap:12px; padding:18px 0; border-bottom:1px solid var(--line-base); min-height:44px}
.hg-drawer__city > span:first-child{font-size:24px; font-weight:300}
.hg-drawer__count{margin-left:auto; font-size:12px; color:var(--text-muted)}
.hg-drawer__row{display:flex; align-items:center; gap:12px; padding:16px 0; border-bottom:1px solid var(--line-base); font-size:16px; min-height:44px}
.hg-drawer__row--sm{font-size:14px; padding:14px 0; color:var(--text-base)}
.hg-drawer__jp{font-size:10px; letter-spacing:.18em; color:var(--text-faint-alt)}
.hg-drawer__arrow{margin-left:auto; font-size:13px; color:var(--text-faint)}
.hg-drawer__foot{display:flex; align-items:center; gap:16px; margin-top:32px}
.hg-drawer__copy{font-size:11px; color:var(--text-faint)}
.hg-drawer__note{margin-top:28px; font-size:11px; line-height:1.8; color:var(--text-muted)}

/* ---------- breadcrumb ---------- */
.hg-crumb{max-width:var(--wrap); margin:0 auto; padding:26px 20px 16px; display:flex; align-items:center; gap:10px; font-size:12px; color:var(--text-muted); flex-wrap:wrap}
.hg-crumb a{color:var(--text-muted)}
.hg-crumb span[aria-current]{color:var(--text-strong)}

/* ---------- hero ---------- */
.hg-hero{max-width:var(--wrap); margin:0 auto; padding:40px 20px 52px; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:end}
.hg-eyebrow{display:flex; align-items:center; gap:14px; margin-bottom:20px}
.hg-eyebrow::before{content:""; width:34px; height:1px; background:var(--accent)}
.hg-eyebrow span{font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--accent)}
.hg-hero__media{position:relative}
.hg-hero__frame{aspect-ratio:5/4; background:var(--bg-media); overflow:hidden}
.hg-hero__frame img{width:100%; height:100%; object-fit:cover}
.hg-hero__vertical{position:absolute; top:-18px; left:-26px; writing-mode:vertical-rl; font-family:'Noto Sans JP',sans-serif; font-size:13px; letter-spacing:.4em; color:var(--text-muted)}
.hg-hero__badge{position:absolute; bottom:22px; right:-26px; background:var(--accent); color:#fff; padding:14px 18px; font-size:11px; letter-spacing:.22em; text-transform:uppercase}

/* ---------- filter bar ---------- */
.hg-filters{border-top:1px solid var(--line-base); border-bottom:1px solid var(--line-base); background:var(--bg-alt)}
.hg-filters__inner{max-width:var(--wrap); margin:0 auto; padding:26px 20px 28px; display:flex; align-items:flex-end; gap:40px}
.hg-filters__groups{display:flex; flex-wrap:wrap; align-items:center; gap:14px 30px; flex:1}
.hg-filters__title{width:100%}
.hg-filters__group{display:flex; align-items:center; gap:12px}
.hg-filters__group > span{font-size:13px; color:var(--text-muted)}
.hg-filters__opts{display:flex; gap:6px; flex-wrap:wrap}
.hg-filters__submit{flex:none}

/* ---------- grids / cards ---------- */
.hg-grid{display:grid; gap:32px}
.hg-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.hg-grid--2{grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px}
.hg-grid--5{grid-template-columns:repeat(5,minmax(0,1fr)); gap:20px}
.hg-grid--6{grid-template-columns:repeat(6,minmax(0,1fr)); gap:18px}
.hg-card{display:flex; flex-direction:column}
.hg-card__media{position:relative; background:var(--bg-media); overflow:hidden; aspect-ratio:4/3}
.hg-card__media img{width:100%; height:100%; object-fit:cover}
.hg-card__media--16x10{aspect-ratio:16/10}
.hg-card__media--3x4{aspect-ratio:3/4; background:var(--bg-media-dark)}
.hg-card__rank{position:absolute; top:0; left:0; background:var(--bg-inverse); color:var(--text-on-inverse); width:44px; height:44px; display:flex; align-items:center; justify-content:center; font-size:15px}
.hg-card__head{display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-top:20px}
.hg-card__cuisine{font-size:11px; letter-spacing:.14em; color:var(--text-muted)}
.hg-card__foot{margin-top:auto; padding-top:22px}
.hg-card--closed .hg-card__media{filter:grayscale(1) opacity(.75)}
.hg-badge-closed{display:inline-block; font-size:11px; letter-spacing:.16em; text-transform:uppercase; padding:5px 10px; border:1px solid var(--accent); color:var(--accent)}
.hg-cuisine-card{display:block; color:var(--text-strong)}
.hg-cuisine-card:hover{color:var(--accent)}
.hg-cuisine-card__label{position:absolute; left:18px; bottom:16px; font-size:26px; font-weight:300; letter-spacing:.02em; color:var(--text-on-inverse); pointer-events:none}
.hg-cuisine-card__scrim{position:absolute; inset:0; pointer-events:none; background:linear-gradient(to top,rgba(17,17,16,.62) 0,rgba(17,17,16,.06) 52%,rgba(17,17,16,0) 100%)}
.hg-cuisine-card__foot{display:flex; align-items:baseline; justify-content:space-between; margin-top:14px}

/* ---------- score ---------- */
.hg-score{display:flex; align-items:baseline; gap:10px}
.hg-score__value{font-size:26px; color:var(--accent); letter-spacing:-.01em}
.hg-score__of{font-size:12px; color:var(--text-faint)}
.hg-score__stars{font-size:12px; letter-spacing:.12em; color:var(--accent)}
.hg-score__area{margin-left:auto; font-size:12px; color:var(--text-muted)}
.hg-score__count{margin-top:8px; font-size:12px; color:var(--text-muted)}
.hg-bar{height:2px; background:var(--line-track); margin-top:12px}
.hg-bar__fill{height:100%; background:var(--accent)}
.hg-score-all{display:flex; align-items:baseline; gap:8px; margin-top:10px; padding-top:8px; border-top:1px solid var(--line-base); font-size:11px; color:var(--text-faint)}
.hg-score-all__label{letter-spacing:.14em; text-transform:uppercase}
.hg-score-all__value{margin-left:auto; font-size:13px; color:var(--text-body)}
.hg-score-all__gap{color:var(--text-muted)}
.hg-score-all__gap.is-up{color:var(--accent)}

/* ---------- list rows ---------- */
.hg-rows{border-top:1px solid var(--line-strong)}
.hg-row{display:grid; grid-template-columns:110px 1fr 1fr 120px; align-items:center; gap:24px; padding:20px 4px; border-bottom:1px solid var(--line-base)}
.hg-row:hover{background:var(--bg-alt)}
.hg-row__kind{justify-self:start; font-size:11px; letter-spacing:.16em; text-transform:uppercase; padding:5px 10px; border:1px solid var(--line-strong)}
.hg-row__kind--up{border-color:var(--accent); color:var(--accent)}
.hg-row__name{font-size:19px; font-weight:400}
.hg-row__score{display:flex; align-items:baseline; justify-content:flex-end; gap:8px}

/* ---------- area lists ---------- */
.hg-area-head{display:flex; align-items:center; gap:12px; padding-bottom:16px; border-bottom:1px solid var(--line-strong)}
.hg-area-head__city{font-size:15px; letter-spacing:.14em}
.hg-area-chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px}

/* ---------- detail ---------- */
.hg-detail{display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:64px; max-width:var(--wrap); margin:0 auto; padding:20px 20px 80px}
.hg-detail__media{aspect-ratio:16/10; background:var(--bg-media); overflow:hidden; margin-bottom:32px}
.hg-detail__media img{width:100%; height:100%; object-fit:cover}
.hg-detail__aside{border-left:1px solid var(--line-base); padding-left:36px}
.hg-facts{border-top:1px solid var(--line-base)}
.hg-facts__row{display:grid; grid-template-columns:120px 1fr; gap:16px; padding:14px 0; border-bottom:1px solid var(--line-base); font-size:13px}
.hg-facts__row dt{color:var(--text-muted)}
.hg-facts__row dd{margin:0; color:var(--text-base)}
.hg-map{aspect-ratio:4/3; background:var(--bg-media); display:flex; align-items:center; justify-content:center; color:var(--text-muted); font-size:12px}
.hg-map-embed{aspect-ratio:4/3; background:var(--bg-media); display:flex; align-items:center; justify-content:center}
.hg-map-embed iframe{aspect-ratio:4/3}
.hg-map-embed__gate{padding:24px 20px; text-align:center; max-width:320px}
.hg-map-embed__text{margin:0 0 16px; font-size:12px; line-height:1.8; color:var(--text-muted); text-wrap:pretty}
.hg-map-embed__remember{display:flex; align-items:center; justify-content:center; gap:7px; margin-top:12px; font-size:11px; color:var(--text-faint); cursor:pointer}
.hg-map-embed__remember input{accent-color:var(--accent)}
.hg-map-embed__link{display:block; margin-top:10px; font-size:12px; color:var(--text-muted)}
.hg-prose{font-size:15px; line-height:1.9; color:var(--text-body)}
.hg-prose h2{font-size:26px; font-weight:300; color:var(--text-strong); margin:44px 0 14px}
.hg-prose h3{font-size:19px; font-weight:400; color:var(--text-strong); margin:32px 0 10px}
.hg-prose p{margin:0 0 18px}
.hg-prose ul{list-style:disc; padding-left:1.3em; margin:0 0 18px}
.hg-prose li{margin-bottom:8px}
.hg-prose blockquote{margin:24px 0; padding-left:20px; border-left:1px solid var(--accent); color:var(--text-base)}
.hg-prose a{color:var(--accent)}

/* ---------- doc pages (legal / method / privacy) ---------- */
.hg-doc{display:grid; grid-template-columns:220px minmax(0,1fr); gap:56px; max-width:var(--wrap); margin:0 auto; padding:20px 20px 84px}
.hg-doc__nav{position:sticky; top:110px; align-self:start; display:flex; flex-direction:column; gap:10px}
.hg-doc__nav a{font-size:13px; color:var(--text-body)}
.hg-doc__section{padding:32px 0; border-top:1px solid var(--line-base)}
.hg-doc__section h2{font-size:22px; font-weight:400; margin-bottom:12px}
.hg-operator th{text-align:left; padding:14px 0; border-bottom:1px solid var(--line-base); font-weight:400; font-size:13px; color:var(--text-muted); width:180px; vertical-align:top}
.hg-operator td{padding:14px 0; border-bottom:1px solid var(--line-base); font-size:13px; color:var(--text-base)}

/* ---------- forms ---------- */
.hg-form{display:flex; flex-direction:column; gap:18px; max-width:560px}
.hg-field{display:flex; flex-direction:column; gap:8px}
.hg-field label{font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted)}
.hg-field input,.hg-field select,.hg-field textarea{border:1px solid var(--line-field); background:#fff; padding:13px 14px; font-size:14px; font-weight:300; color:var(--text-strong)}
.hg-field textarea{min-height:160px; resize:vertical}
.hg-note{font-size:12px; line-height:1.8; color:var(--text-muted)}

/* ---------- Contact Form 7 ---------- */
.wpcf7{margin-top:32px; max-width:720px}
.wpcf7 form > p{margin:0}
.wpcf7-form-control-wrap{display:block}
.hg-cf7-legend,.hg-cf7-label{display:block; font-size:13px; color:var(--text-strong); margin-bottom:9px}
.hg-cf7-legend em,.hg-cf7-label em{color:var(--accent); font-style:normal}
.hg-cf7-opt{color:var(--text-muted)}
.hg-cf7-section{margin:44px 0 0; padding-bottom:14px; border-bottom:1px solid var(--line-strong); font-size:11px; letter-spacing:.2em; text-transform:uppercase}
.hg-cf7-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:24px}
.hg-cf7-field{display:block; margin-top:24px}
.hg-cf7-grid .hg-cf7-field{margin-top:0}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=url],.wpcf7 input[type=tel],.wpcf7 textarea,.wpcf7 select{
  width:100%; border:1px solid var(--line-field); outline:0; padding:14px; background:#fff;
  font-family:inherit; font-weight:300; font-size:14px; color:var(--text-strong)
}
.wpcf7 input:focus,.wpcf7 textarea:focus,.wpcf7 select:focus{border-color:var(--text-strong)}
.wpcf7 textarea{min-height:190px; resize:vertical; line-height:1.8}
.wpcf7 ::placeholder{color:var(--text-faint)}
.hg-cf7-reason .wpcf7-radio{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:18px}
.hg-cf7-reason .wpcf7-list-item{margin:0}
.hg-cf7-reason .wpcf7-list-item label{display:flex; align-items:center; gap:10px; padding:16px 18px; border:1px solid var(--line-field); font-size:15px; color:var(--text-base); cursor:pointer}
.hg-cf7-reason .wpcf7-list-item label:hover{border-color:var(--text-strong)}
.hg-cf7-reason input[type=radio]{width:16px; height:16px; accent-color:var(--accent)}
.hg-cf7-consent{margin-top:24px; padding:18px 20px; border:1px solid var(--line-base); background:var(--bg-alt)}
.hg-cf7-optin{margin-top:12px; padding:0 20px}
.hg-cf7-consent .wpcf7-list-item,.hg-cf7-optin .wpcf7-list-item{margin:0}
.hg-cf7-consent label,.hg-cf7-optin label{display:flex; align-items:flex-start; gap:12px; font-size:13px; line-height:1.7; color:var(--text-base)}
.hg-cf7-consent input[type=checkbox],.hg-cf7-optin input[type=checkbox]{margin-top:3px; width:18px; height:18px; accent-color:var(--accent)}
.hg-cf7-consent a{color:var(--accent); text-decoration:underline}
.hg-cf7-submit{display:flex; align-items:center; gap:20px; margin-top:32px; flex-wrap:wrap}
.wpcf7 input[type=submit]{border:0; background:var(--bg-inverse); color:var(--text-on-inverse); padding:17px 40px; font-family:inherit; font-size:14px; letter-spacing:.06em; cursor:pointer}
.wpcf7 input[type=submit]:hover{background:var(--accent)}
.hg-cf7-hint{font-size:12px; color:var(--text-muted)}
.wpcf7-not-valid-tip{margin-top:6px; font-size:12px; color:var(--accent)}
.wpcf7 .wpcf7-response-output{margin:24px 0 0; padding:16px 18px; border:1px solid var(--line-field); font-size:13px; line-height:1.7}
.wpcf7 form.sent .wpcf7-response-output{border-color:var(--text-strong)}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{border-color:var(--accent); color:var(--accent)}
.wpcf7-spinner{margin-left:12px}

/* ---------- states ---------- */
.hg-empty{max-width:760px; margin:0 auto; padding:80px 20px 96px; text-align:center}
.hg-empty__hints{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:24px}
.hg-404{box-sizing:border-box; width:100%; max-width:720px; margin-left:auto; margin-right:auto; padding:96px 20px 110px}
.hg-404 .hg-searchform{max-width:420px}
.hg-404 .hg-searchform input[type=search]{width:auto; flex:1 1 auto; min-width:0}
.hg-skeleton{background:var(--bg-media); position:relative; overflow:hidden}
.hg-skeleton::after{content:""; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent); animation:hg-shimmer 1.4s infinite}
@keyframes hg-shimmer{100%{transform:translateX(100%)}}
.hg-skeleton--line{height:12px; margin-bottom:10px}
.hg-skeleton--media{aspect-ratio:4/3}

/* ---------- pagination ---------- */
.hg-pagination{display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:52px; padding-top:26px; border-top:1px solid var(--line-base); font-size:13px; color:var(--text-muted)}
.hg-pagination .page-numbers{display:inline-block; padding:10px 14px; border:1px solid var(--line-field); color:var(--text-base)}
.hg-pagination .page-numbers.current{background:var(--bg-inverse); border-color:var(--bg-inverse); color:var(--text-on-inverse)}
.hg-pagination__links{display:flex; gap:6px}

/* ---------- CTA ---------- */
.hg-cta{border-top:1px solid var(--line-base); background:var(--bg-alt)}
.hg-cta__inner{max-width:var(--wrap); margin:0 auto; padding:52px 20px 56px; display:flex; align-items:center; justify-content:space-between; gap:40px}
.hg-cta__title{margin-top:14px; max-width:620px; font-size:28px; font-weight:300; line-height:1.4; text-wrap:pretty}

/* ---------- footer ---------- */
.hg-footer{border-top:1px solid var(--line-base); background:var(--bg-alt)}
.hg-footer__inner{max-width:var(--wrap); margin:0 auto; padding:54px 20px 60px; display:flex; justify-content:space-between; gap:60px}
.hg-footer__cols{display:flex; gap:72px}
.hg-footer__col{display:flex; flex-direction:column; gap:12px}
.hg-footer__list{display:flex; flex-direction:column; gap:12px}
.hg-footer__col > span{font-size:11px; letter-spacing:.2em; color:var(--text-faint)}
.hg-footer__col a{font-size:13px; color:var(--text-base)}
.hg-footer__about{margin-top:22px; max-width:340px; font-size:13px; line-height:1.9; color:var(--text-muted)}
.hg-footer__domain{margin-top:20px; font-size:12px; letter-spacing:.06em; color:var(--text-faint)}
.hg-footer__copy{max-width:var(--wrap); margin:0 auto; padding:24px 20px 36px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; border-top:1px solid var(--line-base); font-size:11px; letter-spacing:.08em; color:var(--text-faint)}

/* ---------- author ---------- */
.hg-author{display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:56px; max-width:var(--wrap); margin:0 auto; padding:20px 20px 80px}
.hg-timeline{border-top:1px solid var(--line-base)}
.hg-timeline__item{display:grid; grid-template-columns:120px 1fr; gap:20px; padding:16px 0; border-bottom:1px solid var(--line-base); font-size:13px}
.hg-timeline__year{color:var(--text-muted)}

/* ---------- results list (Search) ---------- */
.hg-chip--xs{padding:7px 12px; font-size:12px; border-color:var(--line-chip); background:var(--bg-base); color:var(--text-body)}
.hg-chip--sort{padding:9px 16px; border-color:var(--line-chip); background:var(--bg-base); color:var(--text-body)}
.hg-results-head{max-width:var(--wrap); margin:0 auto; padding:0 20px 28px; display:flex; align-items:flex-end; justify-content:space-between; gap:40px; position:relative}
.hg-results-head::after{content:""; position:absolute; left:20px; right:20px; bottom:0; height:1px; background:var(--line-strong)}
.hg-results-head__title{font-size:36px; font-weight:300; letter-spacing:-.01em}
.hg-results-head__count{margin-top:12px; font-size:14px; color:var(--text-body)}
.hg-results-head__count strong{font-weight:300; color:var(--text-strong)}
.hg-results-head__tools{display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end}
.hg-results-head__sort-label{font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted)}
.hg-results-head__map{margin-left:14px}
.hg-results-layout{max-width:var(--wrap); margin:0 auto; padding:28px 20px 80px; display:grid; grid-template-columns:264px minmax(0,1fr); gap:56px; align-items:start}
.hg-aside{position:sticky; top:100px}
.hg-aside__head{display:flex; align-items:baseline; justify-content:space-between; padding-bottom:14px; border-bottom:1px solid var(--line-strong); list-style:none; cursor:default}
.hg-aside__head::-webkit-details-marker{display:none}
.hg-aside__title{font-size:12px; letter-spacing:.2em; text-transform:uppercase}
.hg-aside__count{display:inline-block; min-width:20px; padding:2px 6px; margin-left:6px; background:var(--bg-inverse); color:var(--text-on-inverse); font-size:11px; letter-spacing:0; text-align:center}
.hg-aside__clear{font-size:12px; color:var(--text-muted)}
.hg-aside__group{display:block; margin:0; padding:22px 0; border:0; border-bottom:1px solid var(--line-base); min-width:0}
.hg-aside__label{float:left; width:100%; display:block; padding:0; font-size:13px; color:var(--text-strong); margin-bottom:14px}
.hg-aside__group > :not(legend){clear:both}
.hg-aside__opts{display:flex; flex-wrap:wrap; gap:7px}
.hg-aside__opts[hidden],.hg-aside__empty[hidden]{display:none}
.hg-aside__empty{font-size:12px; color:var(--text-muted)}
.hg-pick{position:relative; cursor:pointer; user-select:none}
.hg-pick__input{position:absolute; opacity:0; width:1px; height:1px; pointer-events:none}
.hg-pick:has(.hg-pick__input:focus-visible){outline:2px solid var(--accent); outline-offset:2px}
.hg-pick.is-on,.hg-pick:has(.hg-pick__input:checked){background:var(--bg-inverse); border-color:var(--bg-inverse); color:var(--text-on-inverse)}
.hg-aside__submit{position:sticky; bottom:0; padding:18px 0; background:var(--bg-base); border-bottom:1px solid var(--line-base); z-index:2}
.hg-aside__search{display:block; width:100%; min-height:48px; border:1px solid var(--bg-inverse); background:var(--bg-inverse); color:var(--text-on-inverse); font-size:14px; letter-spacing:.06em; cursor:pointer}
.hg-aside__search:hover,.is-dirty .hg-aside__search{background:var(--accent); border-color:var(--accent)}
.hg-aside__pending{margin-top:8px; font-size:11px; color:var(--accent); text-align:center}
.hg-aside__pending[hidden]{display:none}
.hg-aside__range-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:14px; font-size:13px}
.hg-aside__range-val{font-size:16px; color:var(--accent)}
.hg-aside input[type=range]{width:100%; accent-color:var(--accent)}
.hg-aside__range-scale{display:flex; justify-content:space-between; margin-top:6px; font-size:11px; color:var(--text-faint)}
.hg-results__active{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:26px}
.hg-results__active-label{font-size:12px; color:var(--text-muted); margin-right:6px}
.hg-active-chip{display:inline-flex; align-items:center; gap:8px; border:1px solid var(--bg-inverse); background:var(--bg-inverse); color:var(--text-on-inverse); padding:7px 12px; font-size:12px}
.hg-active-chip span{color:var(--text-muted)}
.hg-active-chip:hover{background:var(--accent); border-color:var(--accent); color:var(--text-on-inverse)}
.hg-lrows{border-top:1px solid var(--line-base)}
.hg-lrow{display:grid; grid-template-columns:104px minmax(0,1fr) 210px; gap:24px; padding:26px 0; border-bottom:1px solid var(--line-base)}
.hg-lrow__label{align-self:start; margin-top:4px; padding:6px 8px; text-align:center; font-size:11px; letter-spacing:.1em; text-transform:uppercase; border:1px solid var(--c); background:var(--c); color:var(--text-on-inverse)}
.hg-lrow--listing .hg-lrow__label{background:transparent; color:var(--c)}
.hg-lrow__main{display:flex; gap:24px; min-width:0}
.hg-lrow__photo{flex:0 0 200px; align-self:start; aspect-ratio:4/3; background:var(--bg-media); overflow:hidden}
.hg-lrow__photo img{width:100%; height:100%; object-fit:cover}
.hg-lrow__body{flex:1 1 auto; min-width:0}
.hg-lrow__name{font-size:22px; font-weight:400}
.hg-lrow--listing .hg-lrow__name{color:var(--text-base)}
.hg-lrow__meta{margin-top:8px; font-size:13px; color:#6b6862}
.hg-lrow__tags{display:flex; flex-wrap:wrap; gap:7px; margin-top:16px}
.hg-lrow__tags span{border:1px solid var(--line-chip); padding:5px 10px; font-size:11px; color:var(--text-body)}
.hg-lrow__side{display:flex; flex-direction:column; align-items:flex-end; justify-content:space-between}
.hg-lrow__scores{width:100%; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; text-align:right}
.hg-lrow__k{font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted)}
.hg-lrow__v{display:flex; align-items:baseline; justify-content:flex-end; gap:4px; margin-top:4px}
.hg-lrow__num{font-size:28px; line-height:1.1; color:var(--text-body)}
.hg-lrow__num.is-jp{color:var(--accent)}
.hg-lrow__num.is-none{color:#a8a39c}
.hg-lrow__of{font-size:11px; color:var(--text-muted)}
.hg-lrow__n{margin-top:4px; font-size:11px; color:#6b6862}
.hg-lrow__cta{margin-top:20px; border:1px solid var(--line-field); padding:9px 16px; font-size:12px; color:var(--text-base)}
.hg-lrow__cta:hover{border-color:var(--accent); color:var(--accent)}
.hg-lrow__nopage{margin-top:20px; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#6b6862}
.hg-lrow--closed .hg-lrow__name{color:var(--text-muted)}
.hg-save__toggle{width:100%; border:1px solid var(--line-strong); background:transparent; padding:13px; font-size:13px; letter-spacing:.06em; color:var(--text-strong); cursor:pointer; min-height:44px}
.hg-save__toggle:hover{background:var(--bg-inverse); color:var(--text-on-inverse)}
.hg-share{border:1px solid var(--line-base); padding:20px}
.hg-share__head{font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted)}
.hg-share__native{display:block; width:100%; margin-top:14px; min-height:44px; border:0; background:var(--bg-inverse); color:var(--text-on-inverse); font-size:13px; letter-spacing:.06em; cursor:pointer}
.hg-share__native[hidden]{display:none}
.hg-share__native:hover{background:var(--accent)}
.hg-share__grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:14px}
.hg-share__btn{display:flex; align-items:center; justify-content:center; min-height:44px; border:1px solid var(--line-field); background:transparent; padding:0 12px; font-size:12px; color:var(--text-base); cursor:pointer}
.hg-share__btn:hover{border-color:var(--accent); color:var(--accent)}
.hg-save__note{margin-top:12px; font-size:11px; line-height:1.7; color:var(--text-muted)}
.hg-save__list{margin-top:20px}
.hg-save__list-head{padding-bottom:10px; border-bottom:1px solid var(--line-strong); font-size:11px; letter-spacing:.2em; text-transform:uppercase}
.hg-save__list li{display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--line-base); font-size:13px}
.hg-save__list li a{flex:1; min-width:0; overflow-wrap:anywhere}
.hg-save__list li button{border:0; background:transparent; color:var(--text-faint); cursor:pointer; min-width:32px; min-height:32px}
.hg-save__list li button:hover{color:var(--accent)}

/* ---------- SP ---------- */
@media (max-width:900px){
  .hg-detail,.hg-doc,.hg-author{grid-template-columns:minmax(0,1fr); gap:36px}
  .hg-detail__aside{border-left:0; padding-left:0; border-top:1px solid var(--line-base); padding-top:28px}
  .hg-doc__nav{position:static}
  .hg-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hg-grid--5,.hg-grid--6{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hg-results-layout{grid-template-columns:minmax(0,1fr); gap:20px}
  .hg-aside{position:static}
  .hg-aside__head{cursor:pointer}
  .hg-results-head{flex-direction:column; align-items:flex-start; gap:18px}
  .hg-results-head__tools{justify-content:flex-start}
}
@media (max-width:768px){
  .hg-header__inner{height:56px; padding:0 18px; gap:12px}
  .hg-logo__jp{display:none}
  .hg-logo__mark{font-size:16px; letter-spacing:.1em}
  .hg-nav,.hg-header__tools{display:none}
  .hg-burger{display:block; margin-left:auto}
  .hg-header__search-sp{display:block; padding:0 18px 12px}
  .hg-header__search-sp .hg-searchform{width:100%}
  .hg-header__search-sp input[type=search]{width:100%; min-width:0}
  .hg-drawer{display:none; position:fixed; inset:110px 0 0; z-index:19; background:var(--bg-base); padding:24px 18px 40px; overflow-y:auto}
  /* ログイン中は管理バー（46px）分下にずれる */
  body.admin-bar .hg-drawer{top:156px}
  .hg-drawer.is-open{display:block}
  .hg-drawer__list{display:flex; flex-direction:column}
  .hg-drawer__list ul{margin-left:14px}
  .hg-drawer__feature{display:block; margin:28px 0 20px; padding:20px; background:var(--bg-inverse); color:var(--text-on-inverse); border-bottom:0}
  .hg-drawer__feature:hover{background:var(--accent); color:var(--text-on-inverse)}
  .hg-drawer__feature-head{display:flex; align-items:baseline; gap:10px; font-size:20px; font-weight:300}
  .hg-drawer__feature-head .hg-jp{font-size:10px; letter-spacing:.18em; color:var(--text-faint)}
  .hg-drawer__feature-head > span:last-child{margin-left:auto; font-size:13px}
  .hg-drawer__feature-note{display:block; margin-top:8px; font-size:12px; line-height:1.7; color:#c9c4bd}
  .hg-drawer a{display:block; font-size:16px; min-height:44px}
  .hg-drawer .hg-searchform{display:flex; margin-bottom:20px}
  .hg-drawer .hg-searchform input{width:100%}
  .hg-drawer .hg-lang{display:inline-flex; margin-top:0; flex:none}
  .hg-drawer .hg-lang a,.hg-drawer .hg-lang span{box-sizing:border-box; border-bottom:0; padding:0 16px; font-size:13px; height:44px; min-height:0; display:flex; align-items:center; justify-content:center}
  .hg-drawer .hg-lang li + li a,.hg-drawer .hg-lang span + span{border-left:1px solid var(--line-field)}
  .hg-crumb{padding:16px 18px 12px; font-size:11px}
  .hg-hero{grid-template-columns:minmax(0,1fr); gap:28px; padding:24px 18px 32px}
  .hg-hero__vertical,.hg-hero__badge{display:none}
  .hg-h1{font-size:33px; line-height:1.12; letter-spacing:-.015em}
  .hg-h2{font-size:24px}
  .hg-h2--section{font-size:22px}
  .hg-h3{font-size:18px}
  .hg-lead,.hg-body{font-size:14px}
  .hg-summary{padding-left:14px}
  .hg-summary p{font-size:15px}
  .hg-section__inner{padding:32px 18px 40px}
  .hg-filters__inner{flex-direction:column; align-items:stretch; gap:18px; padding:20px 18px 22px}
  .hg-filters__group{flex-direction:column; align-items:flex-start; gap:8px}
  .hg-filters__submit{width:100%; min-height:44px}
  .hg-grid,.hg-grid--3,.hg-grid--2,.hg-grid--5{grid-template-columns:minmax(0,1fr); gap:28px}
  .hg-grid--6{grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px}
  .hg-row{grid-template-columns:minmax(0,1fr); gap:8px; padding:18px 0}
  .hg-row__score{justify-content:flex-start}
  .hg-cta__inner{flex-direction:column; align-items:stretch; padding:32px 18px 36px}
  .hg-cta__title{font-size:20px}
  .hg-cta .hg-btn{text-align:center; min-height:44px}
  .hg-facts__row{grid-template-columns:minmax(0,1fr); gap:4px}
  .hg-footer__inner{flex-direction:column; gap:32px; padding:32px 18px 24px}
  .hg-footer__cols{flex-direction:column; gap:24px}
  .hg-footer__copy{padding:20px 18px 28px; flex-direction:column; align-items:flex-start; gap:8px}
  .hg-results-head{padding:0 18px 18px}
  .hg-results-head::after{left:18px; right:18px}
  .hg-results-head__title{font-size:28px; line-height:1.15}
  .hg-results-head__count{font-size:13px; margin-top:10px}
  .hg-results-head__tools{flex-wrap:nowrap; overflow-x:auto; max-width:100%; gap:6px}
  .hg-results-head__sort-label{flex:none; font-size:11px}
  .hg-chip--sort{flex:none; padding:8px 12px; font-size:12px}
  .hg-results-head__map{margin-left:6px; flex:none}
  .hg-results-layout{padding:0 0 48px}
  .hg-aside{background:var(--bg-alt); border-bottom:1px solid var(--line-base); padding:12px 20px}
  .hg-aside__submit{background:var(--bg-alt)}
  .hg-aside:not([open]) .hg-aside__head{border-bottom:0; padding-bottom:0}
  .hg-aside__head{border:1px solid var(--line-strong); background:var(--bg-base); padding:11px 14px; min-height:44px; align-items:center}
  .hg-aside__title{font-size:13px; letter-spacing:0; text-transform:none}
  .hg-results{padding:0 0}
  .hg-results__active{padding:0 20px; margin-bottom:18px}
  .hg-lrow{display:flex; flex-direction:column; gap:10px; padding:20px}
  .hg-lrow__label{order:2; align-self:flex-start; margin-top:0; padding:4px 8px; font-size:10px}
  .hg-lrow__main{order:1; display:contents}
  .hg-lrow__photo{display:none}
  .hg-lrow__body{order:1}
  .hg-lrow__name{font-size:19px; line-height:1.25}
  .hg-lrow__meta{font-size:12px; color:var(--text-body)}
  .hg-lrow__tags{margin-top:10px; gap:6px}
  .hg-lrow__side{order:3; align-items:stretch}
  .hg-lrow__scores{text-align:left; gap:12px; padding-top:10px; border-top:1px solid var(--line-track)}
  .hg-lrow__k{font-size:9px}
  .hg-lrow__v{justify-content:flex-start; margin-top:2px}
  .hg-lrow__num{font-size:22px}
  .hg-lrow__n{font-size:10px}
  .hg-lrow__cta{margin-top:14px; padding:12px; text-align:center; font-size:13px; min-height:44px}
  .hg-lrow__nopage{margin-top:6px; padding:12px 0; text-align:center}
  .hg-pagination{padding:0 20px}
  .hg-timeline__item{grid-template-columns:minmax(0,1fr); gap:4px}
  .hg-cf7-grid{grid-template-columns:minmax(0,1fr); gap:20px}
  .hg-cf7-reason .wpcf7-radio{grid-template-columns:minmax(0,1fr)}
  .hg-cf7-reason .wpcf7-list-item label{min-height:44px}
  .wpcf7 input[type=submit]{width:100%; min-height:44px}
  .hg-cf7-submit{gap:12px}
  .hg-empty{padding:48px 18px 56px}
  .hg-404{padding:56px 18px 64px}
  .hg-404 .hg-searchform{max-width:none}
  .hg-prose{font-size:15px}
  .hg-prose h2{font-size:21px; margin:32px 0 12px}
}


/* ------------------------------------------------------------------
 * Contact Form 7 — 余白の打ち消し
 * CF7 は各タグを <p> で包むため、テーマ側の余白と二重になって
 * 間延びする。<p> の余白を消し、フィールド単位で間隔を管理する。
 * ------------------------------------------------------------------ */
.wpcf7 form > p,
.wpcf7 .hg-cf7-field p,
.wpcf7 .hg-cf7-grid p,
.wpcf7 .hg-cf7-reason p,
.wpcf7 .hg-cf7-consent p,
.wpcf7 .hg-cf7-optin p,
.wpcf7 .hg-cf7-submit p { margin: 0; }

.wpcf7 form { display: flex; flex-direction: column; gap: 22px; }

.wpcf7 .hg-cf7-field { display: flex; flex-direction: column; gap: 8px; }
.wpcf7 .hg-cf7-label { font-size: 14px; color: var(--text-strong); }
.wpcf7 .hg-cf7-label em { font-style: normal; color: var(--accent); }
.wpcf7 .hg-cf7-opt { color: var(--text-muted); font-size: 12px; }

.wpcf7 .hg-cf7-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 22px;
}

.wpcf7 .hg-cf7-section {
  margin-top: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line-strong);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.wpcf7 .hg-cf7-legend { display: block; margin-bottom: 12px; font-size: 14px; }
.wpcf7 .hg-cf7-legend em { font-style: normal; color: var(--accent); }
.wpcf7 .hg-cf7-reason .wpcf7-radio {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
}
.wpcf7 .hg-cf7-reason .wpcf7-list-item { margin: 0; }
.wpcf7 .hg-cf7-reason .wpcf7-list-item label {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px; min-height: 44px;
  border: 1px solid var(--line-field); cursor: pointer;
}
.wpcf7 .hg-cf7-reason .wpcf7-list-item label:hover { border-color: var(--text-strong); }
.wpcf7 input[type="radio"], .wpcf7 input[type="checkbox"] { accent-color: var(--accent); }

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 textarea {
  width: 100%;
  padding: 13px 14px;
  border: 1px solid var(--line-field);
  border-radius: 0;
  background: #fff;
  font-family: inherit;
  font-size: 15px;
  color: var(--text-strong);
}
.wpcf7 textarea { min-height: 180px; resize: vertical; }
.wpcf7 input:focus, .wpcf7 textarea:focus {
  outline: none; border-color: var(--accent);
}

.wpcf7 .hg-cf7-consent,
.wpcf7 .hg-cf7-optin {
  padding: 16px 18px;
  background: var(--bg-alt);
  font-size: 13px;
  line-height: 1.8;
}
.wpcf7 .hg-cf7-optin { background: transparent; padding: 0 18px; }
.wpcf7 .hg-cf7-consent .wpcf7-list-item,
.wpcf7 .hg-cf7-optin .wpcf7-list-item { margin: 0; }
.wpcf7 .hg-cf7-consent label,
.wpcf7 .hg-cf7-optin label { display: flex; gap: 12px; align-items: flex-start; }

.wpcf7 .hg-cf7-submit { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.wpcf7 input[type="submit"] {
  border: 1px solid var(--bg-inverse);
  background: var(--bg-inverse);
  color: var(--bg-base);
  padding: 15px 28px;
  min-height: 48px;
  border-radius: 0;
  font-family: inherit;
  font-size: 14px;
  letter-spacing: 0.05em;
  cursor: pointer;
}
.wpcf7 input[type="submit"]:hover { background: var(--accent); border-color: var(--accent); }
.wpcf7 .hg-cf7-hint { font-size: 12px; color: var(--text-muted); }

/* 自動整形が残っている環境向けの保険 */
.wpcf7 .hg-cf7-field br,
.wpcf7 .hg-cf7-grid br,
.wpcf7 .hg-cf7-reason br,
.wpcf7 .hg-cf7-consent br,
.wpcf7 .hg-cf7-optin br { display: none; }
.wpcf7 .hg-cf7-field > p:empty,
.wpcf7 form > p:empty { display: none; }

/* ---------- zone counts ---------- */
.hg-chip__n{color:var(--text-faint); font-size:.92em}
.hg-chip.is-on .hg-chip__n,.hg-pick.is-on .hg-chip__n{color:inherit; opacity:.7}
.hg-chip--empty{color:var(--text-faint)}

/* ---------- map page ---------- */
.hg-mapapp{--mapbar:64px; position:relative; border-top:1px solid var(--line-base)}
.hg-mapapp__bar{display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:14px 20px; border-bottom:1px solid var(--line-base); background:var(--bg-base); position:relative; z-index:6}
.hg-mapapp__title{margin:0 8px 0 0; font-size:22px; font-weight:300; display:flex; align-items:baseline; gap:12px}
.hg-mapapp__cities,.hg-mapapp__active{display:flex; flex-wrap:wrap; gap:8px}
.hg-mapapp__ftoggle.is-open{border-color:var(--line-strong); color:var(--text-strong)}
.hg-mapapp__panel{position:absolute; left:0; right:0; z-index:1100; background:var(--bg-base); border-bottom:1px solid var(--line-strong); box-shadow:0 12px 30px rgba(0,0,0,.08)}
.hg-mapapp__panel-inner{max-width:var(--wrap); margin:0 auto; padding:8px 20px 20px}
.hg-mapapp__group{display:grid; grid-template-columns:150px minmax(0,1fr); gap:12px; align-items:start; padding:14px 0; border-bottom:1px solid var(--line-base)}
.hg-mapapp__group .hg-label{padding-top:8px}
.hg-mapapp__opts{display:flex; flex-wrap:wrap; gap:8px}
.hg-mapapp__range{display:flex; align-items:center; gap:14px; max-width:420px}
.hg-mapapp__range input{flex:1; accent-color:var(--accent)}
.hg-mapapp__range output{min-width:52px; font-size:14px; color:var(--accent)}
.hg-mapapp__panel-foot{display:flex; justify-content:space-between; align-items:center; padding-top:16px}
.hg-mapapp__panel-foot .hg-aside__clear{background:none; border:0; cursor:pointer; padding:0}
.hg-mapapp__body{display:grid; grid-template-columns:400px minmax(0,1fr); height:calc(100vh - 76px - var(--mapbar)); min-height:520px; position:relative}
.admin-bar .hg-mapapp__body{height:calc(100vh - 108px - var(--mapbar))}
.hg-mapapp__list{overflow-y:auto; border-right:1px solid var(--line-base); background:var(--bg-base); position:relative}
.hg-ml__head{position:sticky; top:0; z-index:2; display:flex; justify-content:space-between; padding:14px 20px; background:rgba(251,250,249,.96); border-bottom:1px solid var(--line-strong); font-size:12px; letter-spacing:.08em; color:var(--text-body)}
.hg-ml__sort{color:var(--text-muted)}
.hg-ml{list-style:none; margin:0; padding:0}
.hg-ml__row{display:grid; grid-template-columns:56px minmax(0,1fr) auto; gap:14px; align-items:center; padding:14px 20px; border-bottom:1px solid var(--line-base); cursor:pointer; position:relative}
.hg-ml__row:hover,.hg-ml__row:focus-visible{background:var(--bg-alt); outline:0}
.hg-ml__row.is-sel{background:var(--bg-alt)}
.hg-ml__row.is-sel::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--accent)}
.hg-ml__img{width:56px; height:56px; object-fit:cover; display:block; background:var(--bg-media)}
.hg-ml__img--none{background:var(--bg-alt); border:1px solid var(--line-base)}
.hg-ml__row--l .hg-ml__img--none{background:transparent; border-style:dashed}
.hg-ml__name{font-size:15px; color:var(--text-strong); line-height:1.35}
.hg-ml__row--l .hg-ml__name{color:var(--text-body)}
.hg-ml__meta{margin-top:3px; font-size:12px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.hg-ml__sub{margin-top:4px; font-size:12px; color:var(--text-body)}
.hg-ml__open{color:#2f7d32}
.hg-ml__score{text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:2px}
.hg-ml__score strong{font-size:20px; font-weight:400; color:var(--accent); line-height:1}
.hg-ml__score span{font-size:11px; color:var(--text-muted); line-height:1.3}
.hg-ml__tag{padding:3px 7px; border:1px solid var(--line-chip)}
.hg-ml__more{margin:0; padding:16px 20px; font-size:12px; color:var(--text-muted)}
.hg-ml__empty{padding:40px 20px; text-align:center; font-size:14px; color:var(--text-body)}
.hg-ml__empty p{margin:0 0 16px}
.hg-mapapp__map{position:relative; min-width:0}
#hg-map{position:absolute; inset:0; background:var(--bg-alt)}
#hg-map .leaflet-tile-pane{filter:grayscale(1) contrast(.9) brightness(1.05)}
.hg-mapapp__area{position:absolute; top:16px; left:50%; transform:translateX(-50%); z-index:1000; padding:11px 20px; background:var(--bg-inverse); color:var(--text-on-inverse); border:0; font-size:13px; letter-spacing:.06em; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.18)}
.hg-mapapp__area:hover{background:var(--accent)}
.hg-mapapp__tools{position:absolute; top:16px; left:16px; z-index:1000; display:flex; flex-direction:column; gap:8px}
.hg-mapapp__tool{padding:9px 14px; background:#fff; border:1px solid var(--line-field); font-size:12px; letter-spacing:.06em; color:var(--text-base); cursor:pointer; text-align:left; box-shadow:0 1px 4px rgba(0,0,0,.08)}
.hg-mapapp__tool:hover{border-color:var(--line-strong)}
.hg-mapapp__tool.is-on{border-color:var(--line-strong); color:var(--text-strong)}
.hg-mapapp__legend{position:absolute; left:16px; bottom:24px; z-index:1000; display:flex; gap:14px; padding:8px 12px; background:rgba(255,255,255,.94); border:1px solid var(--line-base); font-size:11px; color:var(--text-body)}
.hg-mapapp__legend span{display:flex; align-items:center; gap:6px}
.hg-lg{display:inline-block; width:10px; height:10px}
.hg-lg--r{background:var(--accent)}
.hg-lg--l{background:#9c978f; border-radius:50%; border:2px solid #fff; box-shadow:0 0 0 1px #9c978f}
.hg-mapapp__status{position:absolute; bottom:24px; left:50%; transform:translateX(-50%); z-index:1000; margin:0; padding:10px 16px; background:var(--bg-inverse); color:var(--text-on-inverse); font-size:13px}
/* pins */
.hg-pin{background:none; border:0}
.hg-pin span{position:relative; display:inline-block; transition:transform .12s}
.hg-pin--r span{transform:translate(-50%,calc(-100% - 6px)); padding:5px 8px; background:var(--accent); color:#fff; font:500 12px/1 Archivo,sans-serif; white-space:nowrap; box-shadow:0 1px 4px rgba(0,0,0,.28)}
.hg-pin--r span::after{content:""; position:absolute; left:50%; bottom:-5px; margin-left:-5px; border:5px solid transparent; border-bottom:0; border-top-color:var(--accent)}
.hg-pin--l span{width:12px; height:12px; transform:translate(-50%,-50%); border-radius:50%; background:#9c978f; border:2px solid #fff; box-shadow:0 0 0 1px rgba(0,0,0,.18)}
.hg-pin.is-hl span,.hg-pin.is-sel span{background:var(--bg-inverse)}
.hg-pin--r.is-hl span::after,.hg-pin--r.is-sel span::after{border-top-color:var(--bg-inverse)}
.hg-pin--r.is-hl span,.hg-pin--r.is-sel span{transform:translate(-50%,calc(-100% - 6px)) scale(1.12)}
.hg-pin--l.is-hl span,.hg-pin--l.is-sel span{transform:translate(-50%,-50%) scale(1.4)}
.hg-pin.is-hl,.hg-pin.is-sel{z-index:9999 !important}
/* clusters */
.hg-cl{background:none}
.hg-cl span{display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; background:rgba(156,151,143,.9); color:#fff; font:500 13px/1 Archivo,sans-serif; box-shadow:0 0 0 5px rgba(156,151,143,.25)}
.hg-cl--r span{background:rgba(232,72,10,.92); box-shadow:0 0 0 5px rgba(232,72,10,.22)}
/* popup / tooltip */
.leaflet-popup-content-wrapper{border-radius:0; box-shadow:0 6px 22px rgba(0,0,0,.16)}
.leaflet-popup-content{margin:16px 18px; font-family:Archivo,sans-serif}
.hg-pop__name{font-size:16px; color:var(--text-strong); line-height:1.35}
.hg-pop__meta{margin-top:4px; font-size:12px; color:var(--text-muted)}
.hg-pop__score{margin-top:10px; font-size:12px; color:var(--text-body)}
.hg-pop__score strong{font-size:20px; font-weight:400; color:var(--accent)}
.hg-pop__acts{display:flex; gap:16px; margin-top:12px}
.hg-pop__link{font-size:12px; letter-spacing:.06em; color:var(--accent)}
.hg-pop__link--sub{color:var(--text-muted)}
.hg-zt{border-radius:0; border:0; box-shadow:0 2px 8px rgba(0,0,0,.15); font:12px Archivo,sans-serif; color:var(--text-body)}
/* SP card */
.hg-mcard{position:absolute; left:12px; right:12px; bottom:12px; z-index:1001; display:flex; gap:12px; padding:14px; background:#fff; box-shadow:0 6px 24px rgba(0,0,0,.2)}
.hg-mcard__img{width:76px; height:76px; object-fit:cover; flex:none}
.hg-mcard__body{min-width:0; flex:1}
.hg-mcard__close{position:absolute; top:6px; right:6px; width:36px; height:36px; border:0; background:none; font-size:14px; color:var(--text-muted); cursor:pointer}
@media (max-width:900px){
  .hg-mapapp__bar{padding:12px 16px; gap:10px}
  .hg-mapapp__title{width:100%; font-size:20px}
  .hg-mapapp__group{grid-template-columns:1fr; gap:8px}
  .hg-mapapp__group .hg-label{padding-top:0}
  .hg-mapapp__panel{position:fixed; top:auto; bottom:0; max-height:80vh; overflow-y:auto; border-top:1px solid var(--line-strong)}
  .hg-mapapp__panel-foot{position:sticky; bottom:0; background:var(--bg-base); padding:14px 0}
  .hg-mapapp__body{display:flex; flex-direction:column; height:auto; min-height:0}
  .hg-mapapp__map{order:-1; height:62vh; min-height:360px}
  .hg-mapapp__list{overflow:visible; border-right:0}
  .hg-mapapp__legend{bottom:auto; top:16px; left:auto; right:56px; flex-direction:column; gap:4px}
  .hg-ml__row{padding:14px 16px; min-height:44px}
  .hg-mapapp__tool,.hg-mapapp__area{min-height:44px}
}
