:root{
  --ink:#26292d;
  --ink-soft:#4f545a;
  --muted:#70757c;
  --line:#d4d8de;
  --line-strong:#b7bdc5;
  --bg:#f3f4f5;
  --panel:#ffffff;
  --panel-soft:#fafafa;
  --accent:#7eb817;
  --accent-soft:#61666e;
  --accent-ghost:#eceef1;
  --count:#7eb817;
  --count-active:#ffffff;
  --count-text:#ffffff;
  --count-active-text:#7eb817;
  --shadow:0 18px 36px rgba(15,18,22,.05);
}

.salon-page [hidden],
.sheet-backdrop[hidden],
.bottom-sheet[hidden]{display:none!important}
body.salon-sheet-open{overflow:hidden}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;
  color:var(--ink);
  background:
    linear-gradient(180deg, rgba(0,0,0,.018), rgba(0,0,0,0) 120px),
    linear-gradient(90deg, rgba(0,0,0,.015) 1px, transparent 1px),
    linear-gradient(rgba(0,0,0,.015) 1px, transparent 1px),
    var(--bg);
  background-size:auto, 36px 36px, 36px 36px, auto;
}
button,input{font:inherit}
.salon-page{width:min(1280px,100%);margin:auto;padding:28px 20px 96px}
.hero{padding:8px 0 18px}
.hero__inner{
  position:relative;
  padding:30px 32px 28px;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.88));
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
/*.hero__inner::before,
.hero__inner::after{
  content:"";
  position:absolute;
  inset:14px;
  border-top:1px solid rgba(38,41,45,.08);
  border-left:1px solid rgba(38,41,45,.08);
  pointer-events:none;
}
.hero__inner::after{
  inset:auto 14px 14px auto;
  width:40px;height:40px;
  border:0;
  border-right:1px solid rgba(38,41,45,.14);
  border-bottom:1px solid rgba(38,41,45,.14);
}*/
.hero h1{margin:.14em 0;font-size:clamp(28px,4.8vw,46px);letter-spacing:.08em;font-weight:600}
.hero p{color:var(--muted);line-height:1.8;margin:.6em 0 0;max-width:58em}
.eyebrow{margin:0 0 10px;color:var(--ink-soft);font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.hero-stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:22px}
.stat-chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 14px;border:1px solid var(--line);
  background:var(--panel);
  font-size:13px;font-weight:700;letter-spacing:.04em;
}
.stat-chip strong{font-size:15px;color:var(--ink)}

.search-panel{
  position:sticky;top:0;z-index:20;
  background:rgba(255,255,255,.94);
  border:1px solid var(--line);
  padding:16px 18px 14px;
  box-shadow:var(--shadow);
  backdrop-filter:blur(10px);
  margin-bottom:18px;
}
.search-label{display:block;font-weight:700;margin-bottom:8px;letter-spacing:.06em}
.search-row{display:flex;gap:8px}
#salonSearch{
  width:100%;border:1px solid var(--line-strong);padding:14px 16px;font-size:16px;background:#fff;outline:none;
  transition:border .18s ease, box-shadow .18s ease;
}
#salonSearch:focus{border-color:#70757c;box-shadow:0 0 0 4px rgba(38,41,45,.08)}
#clearSearch,
.quick-filters button,
.map-toolbar button,
.private-notice button,
.sheet-bottom-close,
.sheet-head button{
  border:1px solid var(--line-strong);background:#fff;color:var(--ink);cursor:pointer;font-weight:700;
}
#clearSearch{padding:0 16px;white-space:nowrap}
.quick-filters{display:flex;gap:8px;overflow:auto;padding-top:12px;scrollbar-width:none}
.quick-filters::-webkit-scrollbar{display:none}
.quick-filters button,.map-toolbar button{padding:9px 13px;white-space:nowrap;transition:all .16s ease}
.quick-filters button:hover,.map-toolbar button:hover,#clearSearch:hover{background:var(--accent-ghost)}
.quick-filters button.is-active,.map-toolbar button.is-active{background:var(--accent);border-color:var(--accent);color:#fff}

.salon-summary-card,
.map-card,
.salon-list-card{
  background:rgba(255,255,255,.96);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.salon-summary-card{padding:18px 18px 16px;margin-bottom:18px}
.map-card{overflow:hidden;margin-bottom:18px}
.salon-list-card{padding:18px;overflow:visible}
.result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}
.result-head h2{margin:0;font-size:24px;font-weight:600;letter-spacing:.04em}
.count-pill{display:inline-flex;align-items:center;padding:8px 12px;background:#fff;border:1px solid var(--line);font-weight:700;white-space:nowrap}
.scope-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.scope-mini{border:1px solid var(--line);background:var(--panel-soft);padding:12px 10px;text-align:center}
.scope-mini b{display:block;font-size:20px;color:var(--ink);font-weight:700}
.scope-mini span{display:block;font-size:11px;letter-spacing:.14em;color:var(--muted);margin-top:3px}
.private-notice{margin:2px 0 0}
.private-notice button{width:100%;padding:13px 14px;background:var(--accent);border-color:var(--accent);color:#fff}
.private-notice button:hover{background:#343a40}

.map-toolbar{
  display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap;
  background:linear-gradient(180deg,#fff,#fafafa);
}
#selectedLabel{font-weight:700;letter-spacing:.05em}
.zoom-controls{display:flex;gap:6px;margin-left:auto}
.zoom-controls button{min-width:48px;padding:8px 10px}
.map-stage{
  position:relative;min-height:620px;padding:18px;overflow:auto;
  background:
    linear-gradient(90deg, rgba(0,0,0,.018) 1px, transparent 1px),
    linear-gradient(rgba(0,0,0,.018) 1px, transparent 1px),
    linear-gradient(180deg,#ffffff,#f7f7f7);
  background-size:36px 36px, 36px 36px, auto;
}
.map-stage__grid{
  position:absolute;inset:18px;border:0;pointer-events:none;
}
.map-stage.is-dragging{cursor:grabbing}
.map-legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin:0 0 12px;color:#666;font-size:12px;letter-spacing:.08em}
.legend-dot{display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-1px;border:1px solid rgba(0,0,0,.12)}
.legend-dot.normal{background:var(--count)}
.legend-dot.private{background:#bfc4cb}
.svg-map-wrap{width:100%;min-width:0;transition:width .2s ease;transform-origin:top left}
.japan-map{width:100%;height:auto;display:block;min-width:980px}
.map-base-image{opacity:.34;pointer-events:none}
.map-help{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.7;letter-spacing:.04em}

.pref-shape{cursor:pointer}
.pref-shape .pref-hit{fill:rgba(255,255,255,0);stroke:rgba(255,255,255,0)}
.pref-shape .pref-stem{stroke:#7b828a;stroke-width:1.2;opacity:.62;transition:all .18s ease}
.pref-shape .pref-anchor{fill:#7b828a;opacity:.78}
.pref-shape .pref-count-badge{fill:var(--count);stroke:#fff;stroke-width:2.6;transition:all .18s ease;filter:drop-shadow(0 5px 10px rgba(0,0,0,.12))}
.pref-shape .pref-count-text{fill:var(--count-text);font-weight:700;font-size:12px;pointer-events:none;text-anchor:middle;letter-spacing:.02em}
.pref-shape .pref-name{fill:#2e3237;font-weight:700;font-size:12px;pointer-events:none;text-anchor:middle;letter-spacing:.08em}
.pref-shape .pref-private-badge{fill:#c7ccd2;stroke:#fff;stroke-width:1.6}
.pref-shape .pref-private-text{fill:#2e3237;font-weight:700;font-size:9px;pointer-events:none;text-anchor:middle}
.pref-shape:hover .pref-count-badge,
.pref-shape.is-active .pref-count-badge{fill:var(--count-active);stroke:#7eb817;stroke-width:2.8}
.pref-shape:hover .pref-count-text,
.pref-shape.is-active .pref-count-text{fill:var(--count-active-text)}
.pref-shape:hover .pref-stem,
.pref-shape.is-active .pref-stem{stroke:#7eb817;stroke-width:1.8;opacity:1}
.pref-shape:hover .pref-name,
.pref-shape.is-active .pref-name{fill:#111}
.pref-shape.is-disabled{opacity:.17}
.pref-shape.is-disabled .pref-hit{pointer-events:none}

.salon-list{display:grid;gap:12px}
.salon-card{border:1px solid var(--line);padding:14px 14px 13px;background:#fff}
.salon-card h3{margin:0 0 8px;font-size:16px;line-height:1.45;font-weight:700;letter-spacing:.02em}
.salon-card__top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.address-badge{display:inline-flex;padding:4px 8px;font-size:11px;font-weight:700;white-space:nowrap;border:1px solid var(--line);background:#f8f9fa;color:#454b52}
.address-badge.partial{background:#f0f2f4;color:#545a62}
.address-badge.private{background:#e9ecef;color:#7eb817}
.salon-address{margin:0 0 8px;color:#555b62;font-size:14px;line-height:1.6}
.salon-note{margin:0 0 10px;color:#4a4e54;background:#f6f7f8;border-left:3px solid #a5abb3;padding:8px 10px;font-size:12px;line-height:1.65}
.salon-links{display:flex;gap:8px;flex-wrap:wrap}
.salon-links a{display:inline-flex;text-decoration:none;border:1px solid var(--line);background:#fff;color:#333;padding:8px 11px;font-size:13px;font-weight:700}
.salon-links a.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.empty-text{padding:18px;border:1px dashed var(--line);background:#fafafa;color:var(--muted)}

.sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:999998}
.bottom-sheet{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(760px,100%);max-height:82vh;background:#fff;box-shadow:0 -12px 44px rgba(0,0,0,.18);z-index:999999;padding:10px 16px 18px;overflow:auto;animation:sheetUp .22s ease-out;-webkit-overflow-scrolling:touch}
@keyframes sheetUp{from{transform:translate(-50%,24px);opacity:.72}to{transform:translate(-50%,0);opacity:1}}
.sheet-handle{width:52px;height:4px;background:#d5d8dc;margin:6px auto 12px}
.sheet-head{position:sticky;top:-10px;z-index:2;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;background:#fff;padding:10px 0 12px;border-bottom:1px solid var(--line)}
.sheet-head h2{margin:0;font-size:20px;font-weight:600}
.sheet-head button{width:40px;height:40px;font-size:24px;line-height:1;padding:0}
.sheet-head button:hover,.sheet-bottom-close:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.sheet-bottom-close{position:sticky;bottom:8px;width:100%;padding:14px 18px;margin-top:14px;background:#fff}
.sheet-text{color:#666;font-size:14px;line-height:1.75;background:#fafafa;border:1px solid var(--line);padding:12px 14px}
.sheet-list{padding-bottom:30px}

@media (max-width:980px){
  .salon-page{padding:12px 12px 72px}
  .hero__inner{padding:22px 18px}
  /*.hero__inner::before{inset:10px}*/
  .search-panel{padding:14px}
  .scope-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .map-stage{min-height:440px;padding:12px}
  .map-stage__grid{inset:12px}
  .japan-map{min-width:900px}
  .zoom-controls{width:100%;margin-left:0}
  .zoom-controls button{flex:1}
}

@media (max-width:680px){
  .hero h1{letter-spacing:.04em}
  .hero p{font-size:14px}
  .search-row{align-items:stretch}
  #clearSearch{padding:0 12px}
  .salon-card__top{display:block}
  .address-badge{margin:0 0 8px}
  .scope-mini{padding:10px 4px}
  .scope-mini b{font-size:17px}
  .japan-map{min-width:840px}
}

/* 0.4.0: LP感・掲載申請導線・カード型一覧 */
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.hero-btn,.apply-lead-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--accent);background:#fff;color:var(--accent);font-weight:800;letter-spacing:.04em;padding:12px 18px;transition:all .16s ease}
.hero-btn:hover,.apply-lead-btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(126,184,23,.14)}
.hero-btn--primary,.apply-lead-btn{background:var(--accent);color:#fff}
.salon-apply-lead,.salon-apply-footer{position:relative;background:linear-gradient(135deg,#fff,#fff7fa);border:1px solid rgba(126,184,23,.24);box-shadow:var(--shadow);padding:22px 24px;margin-bottom:18px;display:flex;gap:18px;justify-content:space-between;align-items:center;overflow:hidden}
.salon-apply-lead::after,.salon-apply-footer::after{content:"0107";position:absolute;right:22px;bottom:-20px;font-size:82px;line-height:1;font-weight:900;letter-spacing:.04em;color:rgba(126,184,23,.055);pointer-events:none}
.salon-apply-lead h2,.salon-apply-footer h2{margin:0 0 8px;font-size:clamp(20px,3vw,30px);letter-spacing:.04em;font-weight:700}
.salon-apply-lead p,.salon-apply-footer p{margin:0;color:var(--muted);line-height:1.8;max-width:720px}
.salon-apply-footer{margin-top:24px;display:block;text-align:center;padding:30px 24px}
.salon-apply-footer .apply-lead-btn{margin-top:18px}

.map-card{background:#fff}
.map-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:0;background:#fff;color:var(--ink);cursor:pointer;text-align:left;border-bottom:1px solid transparent}
.map-toggle span{display:grid;gap:4px;font-weight:800;font-size:17px;letter-spacing:.04em}
.map-toggle small{font-size:11px;letter-spacing:.2em;color:var(--accent);font-weight:800}
.map-toggle i{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(126,184,23,.35);color:var(--accent);font-style:normal;font-size:20px;line-height:1;background:#fff7fa}
.map-card.is-open .map-toggle{border-bottom-color:var(--line)}
.map-collapsible{animation:otosMapOpen .2s ease-out both}
@keyframes otosMapOpen{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

.salon-card-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;align-items:stretch}
.sheet-list.salon-list{grid-template-columns:1fr}
.salon-card--visual{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;padding:0;border:1px solid rgba(38,41,45,.12);background:#fff;box-shadow:0 12px 30px rgba(15,18,22,.045);overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.salon-card--visual:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(15,18,22,.08);border-color:rgba(126,184,23,.28)}
.salon-card__media{position:relative;min-height:180px;background:linear-gradient(135deg,#f7eef3,#f5f5f5);overflow:hidden}
.salon-card__media img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.95)}
.salon-card__placeholder{height:100%;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px;background:radial-gradient(circle at 25% 20%,rgba(126,184,23,.18),transparent 34%),linear-gradient(135deg,#fff,#f3edf0)}
.salon-card__placeholder span{font-size:28px;font-weight:900;letter-spacing:.08em;color:var(--accent)}
.salon-card__placeholder small{font-size:10px;font-weight:800;letter-spacing:.16em;color:#7a7177;margin-top:8px;line-height:1.4}
.salon-card__body{padding:16px 16px 15px;min-width:0}
.salon-card--visual .salon-card__top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.official-badge{display:inline-flex;align-items:center;border:1px solid rgba(126,184,23,.28);background:#fff6fa;color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.1em;padding:5px 8px;white-space:nowrap}
.salon-card--visual h3{font-size:18px;margin:0 0 7px;letter-spacing:.04em;line-height:1.45}
.salon-catch{margin:0 0 8px;color:var(--accent);font-weight:800;font-size:13px;line-height:1.55}
.salon-card--visual .salon-address{margin:0 0 9px;color:#535960;font-size:13px}
.salon-tags{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.salon-tags span{display:inline-flex;background:#f5f5f6;border:1px solid #e4e6e8;color:#4b5056;font-size:11px;font-weight:700;padding:4px 7px}
.salon-intro{margin:0 0 12px;color:#555b62;font-size:13px;line-height:1.75;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.salon-card--visual .salon-note{font-size:11px;padding:7px 9px;margin-bottom:10px}
.salon-card--visual .salon-links a,.salon-link-muted{font-size:12px;padding:8px 10px}
.salon-link-muted{display:inline-flex;color:#888;border:1px dashed var(--line);background:#fafafa}

.otos-table-wrap textarea[data-key="intro"]{width:240px;min-height:52px}
.otos-table-wrap input[data-key="thumbnailUrl"],.otos-table-wrap input[data-key="instagramUrl"],.otos-table-wrap input[data-key="bookingUrl"]{width:220px}
.otos-table-wrap input[data-key="catchCopy"]{width:180px}

@media (max-width:760px){
  .salon-apply-lead{display:block;padding:20px 16px}
  .salon-apply-lead .apply-lead-btn{margin-top:16px;width:100%}
  .hero-actions{display:grid;grid-template-columns:1fr}
  .salon-card-grid{grid-template-columns:1fr;gap:14px}
  .salon-card--visual{grid-template-columns:112px minmax(0,1fr);gap:0}
  .salon-card__media,.salon-card__placeholder{min-height:168px}
  .salon-card__body{padding:14px}
  .salon-card--visual .salon-card__top{display:grid;justify-content:start}
  .official-badge,.address-badge{width:max-content}
}

@media (max-width:520px){
  .salon-card--visual{grid-template-columns:1fr}
  .salon-card__media,.salon-card__placeholder{height:190px;min-height:190px}
  .map-toggle{padding:16px}
}


/* 0.4.1: pink/gray refinement */
.salon-page{
  --accent:#7eb817;
  --accent-deep:#3d3d3d;
  --accent-pale:#fff2f7;
  --ink:#26292d;
  --ink-soft:#555960;
  --muted:#74777d;
}
.salon-page .eyebrow{color:#777b82;}
.salon-page .hero .eyebrow,
.salon-page .salon-apply-lead .eyebrow,
.salon-page .salon-apply-footer .eyebrow{color:var(--accent);}
.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:1.25em;height:1.25em;margin-right:.45em;line-height:1;}
.hero-btn,.apply-lead-btn{gap:.2em;}

/* Summary: less loud */
.salon-summary-card{padding:12px 14px;margin-bottom:14px;background:rgba(255,255,255,.86);box-shadow:0 8px 22px rgba(15,18,22,.035);}
.salon-summary-card .result-head{align-items:center;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid rgba(38,41,45,.08);}
.salon-summary-card .eyebrow{margin:0 0 3px;font-size:10px;letter-spacing:.18em;color:#8a8d92;}
.result-head h2{font-size:18px;font-weight:700;letter-spacing:.03em;}
.count-pill{font-size:12px;padding:5px 8px;background:#fff;border-color:#eceef1;color:#6b7077;font-weight:700;}
.scope-summary{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px;}
.scope-mini{padding:6px 9px;text-align:left;background:#fff;border-color:#eceef1;min-width:auto;}
.scope-mini b{display:inline;font-size:13px;margin-right:4px;color:#44484f;}
.scope-mini span{display:inline;font-size:10px;letter-spacing:.08em;color:#8a8d92;}

/* Map accordion: stronger CTA */
.map-card{border:1px solid rgba(126,184,23,.22);box-shadow:0 14px 34px rgba(126,184,23,.08);background:linear-gradient(135deg,#fff,#fff7fa);}
.map-toggle{position:relative;padding:20px 22px;background:linear-gradient(135deg,#fff,#fff1f7);border-left:5px solid var(--accent);}
.map-toggle::after{content:"";position:absolute;inset:8px;border:1px solid rgba(126,184,23,.10);pointer-events:none;}
.map-toggle span{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"small small" "icon title" "icon note";column-gap:12px;align-items:center;}
.map-toggle small{grid-area:small;color:var(--accent);font-size:11px;letter-spacing:.22em;}
.map-toggle b{grid-area:title;display:flex;align-items:center;font-size:19px;letter-spacing:.04em;color:#2f3338;}
.map-toggle em{grid-area:note;font-style:normal;font-size:12px;color:#70757c;font-weight:600;letter-spacing:.02em;margin-top:2px;}
.map-toggle-icon{grid-area:icon;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;background:var(--accent);color:#fff;font-size:22px;box-shadow:0 10px 22px rgba(126,184,23,.18);}
.map-toggle i{width:40px;height:40px;border-color:rgba(126,184,23,.45);background:#fff;color:var(--accent);font-weight:900;z-index:1;}
.map-card.is-open .map-toggle{background:#fff;border-bottom-color:rgba(126,184,23,.20);}
.map-card.is-open .map-toggle i{background:var(--accent);color:#fff;border-color:var(--accent);}

/* Card/icon refinements */
.official-badge{gap:5px;color:var(--accent);}
.official-badge i{font-style:normal;font-size:11px;line-height:1;}
.salon-links a{gap:5px;align-items:center;}
.salon-links a span{display:inline-flex;align-items:center;justify-content:center;width:1.1em;height:1.1em;line-height:1;font-weight:900;}
.salon-links a.primary{background:var(--accent);border-color:var(--accent);color:#fff;}
.salon-links a.primary:hover{background:var(--accent-deep);border-color:var(--accent-deep);}
.salon-links .link-instagram{border-color:rgba(126,184,23,.24);background:#fff7fa;color:var(--accent);}
.salon-catch{color:var(--accent-deep);}
.address-badge.private{color:var(--accent);}

@media (max-width:680px){
  .map-toggle{padding:18px 16px;}
  .map-toggle b{font-size:17px;}
  .map-toggle-icon{width:38px;height:38px;font-size:20px;}
}


/* 0.4.2: stronger pink/gray, clean cards, no green-looking accents */
.salon-page{
  --accent:#7eb817;
  --accent-deep:#3d3d3d;
  --accent-pale:#fff2f7;
  --accent-pale-2:#fff8fb;
  --ink:#26292d;
  --ink-soft:#555960;
  --muted:#74777d;
  --line:#d9d9de;
  --line-strong:#b9bac2;
  --green:#7eb817;
  --green-dark:#7eb817;
  --green-soft:#fff2f7;
}
.salon-page *{border-radius:0;}
.salon-page .eyebrow,
.salon-page .hero .eyebrow,
.salon-page .salon-apply-lead .eyebrow,
.salon-page .salon-apply-footer .eyebrow,
.salon-page .salon-catch,
.salon-page .official-badge,
.salon-page .address-badge.private{
  color:var(--accent) !important;
}
.btn-icon{display:none !important;}

/* Application blocks: make them intentionally featured */
.salon-apply-lead,
.salon-apply-footer{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(126,184,23,.32) !important;
  border-left:8px solid var(--accent) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(126,184,23,.14), transparent 32%),
    linear-gradient(135deg,#fff,#fff5f9) !important;
  box-shadow:0 18px 40px rgba(126,184,23,.12) !important;
}
.salon-apply-lead::before,
.salon-apply-footer::before{
  content:"";
  position:absolute;
  right:22px;
  top:20px;
  width:88px;
  height:88px;
  border:1px solid rgba(126,184,23,.20);
  transform:rotate(12deg);
  pointer-events:none;
}
.salon-apply-lead h2,
.salon-apply-footer h2{
  font-size:clamp(22px,3vw,32px);
  letter-spacing:.04em;
}
.apply-lead-btn,
.hero-btn.hero-btn--primary,
.salon-links a.primary{
  background:var(--accent) !important;
  border-color:var(--accent) !important;
  color:#fff !important;
  box-shadow:0 12px 24px rgba(126,184,23,.18);
}
.apply-lead-btn:hover,
.hero-btn.hero-btn--primary:hover,
.salon-links a.primary:hover{
  background:var(--accent-deep) !important;
  border-color:var(--accent-deep) !important;
}
.apply-lead-btn::after,
.hero-btn::after,
.salon-links a::after{
  content:"→";
  margin-left:.55em;
  font-weight:900;
}

/* Map accordion: make it visible, but not goofy */
.map-card{
  margin-bottom:18px !important;
  border:1px solid rgba(126,184,23,.36) !important;
  background:linear-gradient(135deg,#fff,#ededed) !important;
  box-shadow:0 20px 42px rgba(126,184,23,.14) !important;
}
.map-toggle{
  padding:23px 24px !important;
  background:
    linear-gradient(90deg, rgba(126,184,23,.12), rgba(255,255,255,.96) 42%, #fff) !important;
  border:0 !important;
  border-left:8px solid var(--accent) !important;
}
.map-toggle::after{
  inset:10px !important;
  border:1px solid rgba(126,184,23,.14) !important;
}
.map-toggle small{
  color:var(--accent) !important;
  font-size:12px !important;
  font-weight:900 !important;
}
.map-toggle b{
  font-size:clamp(20px,2.6vw,28px) !important;
  color:var(--ink) !important;
}
.map-toggle em{
  font-size:13px !important;
  color:#626770 !important;
}
.map-toggle-icon{
  width:auto !important;
  height:auto !important;
  min-width:48px;
  padding:8px 10px;
  background:var(--accent) !important;
  color:#fff !important;
  font-size:11px !important;
  letter-spacing:.16em;
  box-shadow:none !important;
}
.map-toggle i{
  border-color:var(--accent) !important;
  color:var(--accent) !important;
  font-size:24px;
}
.map-card.is-open .map-toggle i{
  background:var(--accent) !important;
  color:#fff !important;
}

/* Summary: subordinate to map/search, and private notice not louder than the section */
.salon-summary-card{
  padding:10px 12px !important;
  margin-bottom:16px !important;
  background:#fff !important;
  border:1px solid rgba(38,41,45,.08) !important;
  box-shadow:none !important;
}
.salon-summary-card .result-head{
  padding:0 !important;
  margin:0 !important;
  border-bottom:0 !important;
}
.salon-summary-card .eyebrow{
  color:#9a9ca2 !important;
  font-size:10px !important;
}
.salon-summary-card h2,
.result-head h2{
  font-size:16px !important;
  font-weight:700 !important;
  color:#555a62 !important;
}
.count-pill{
  padding:4px 8px !important;
  background:#f6f6f7 !important;
  border-color:#eeeeef !important;
  color:#777b82 !important;
  font-size:11px !important;
}
.scope-summary{display:none !important;}
.private-notice{
  margin-top:8px !important;
}
.private-notice button{
  width:auto !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#777b82 !important;
  box-shadow:none !important;
  font-size:12px !important;
  text-decoration:underline;
  text-underline-offset:3px;
}
.private-notice button::before{content:"※ ";}

/* Cards: remove awkward icons, stabilize layout */
.salon-card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(360px,1fr));
  gap:18px !important;
}
.salon-card--visual{
  display:grid !important;
  grid-template-columns:138px minmax(0,1fr) !important;
  min-height:188px;
  border:1px solid rgba(38,41,45,.10) !important;
  background:#fff !important;
  box-shadow:0 14px 30px rgba(15,18,22,.06) !important;
  overflow:hidden;
}
.salon-card__media,
.salon-card__placeholder{
  height:100% !important;
  min-height:188px !important;
}
.salon-card__body{
  padding:16px 16px 15px !important;
  min-width:0;
}
.salon-card--visual .salon-card__top{
  display:flex !important;
  flex-wrap:wrap;
  justify-content:flex-start !important;
  align-items:center !important;
  gap:7px !important;
  margin-bottom:10px !important;
}
.official-badge,
.address-badge{
  font-size:10px !important;
  line-height:1 !important;
  padding:5px 7px !important;
  white-space:nowrap;
}
.official-badge{
  border-color:rgba(126,184,23,.28) !important;
  background:#f9f9f9 !important;
}
.official-badge i,
.salon-links a span{display:none !important;}
.salon-links{
  display:flex !important;
  gap:7px !important;
  flex-wrap:wrap !important;
  align-items:center;
}
.salon-links a,
.salon-link-muted{
  display:inline-flex !important;
  align-items:center;
  min-height:34px;
  padding:8px 11px !important;
  font-size:12px !important;
  line-height:1 !important;
  text-decoration:none !important;
}
.salon-links .link-instagram{
  border-color:rgba(126,184,23,.24) !important;
  color:var(--accent) !important;
  background:#fff7fa !important;
}
.salon-card--visual h3{
  font-size:17px !important;
  line-height:1.45 !important;
  margin-bottom:7px !important;
}
.salon-intro{
  -webkit-line-clamp:2 !important;
}

@media (max-width:760px){
  .salon-card-grid{grid-template-columns:1fr !important;}
  .salon-card--visual{grid-template-columns:116px minmax(0,1fr) !important;}
  .salon-card__media,.salon-card__placeholder{min-height:180px !important;}
}
@media (max-width:520px){
  .salon-card--visual{grid-template-columns:1fr !important;}
  .salon-card__media,.salon-card__placeholder{height:180px !important;min-height:180px !important;}
  .map-toggle{padding:18px 16px !important;}
}

/* 0.4.3: single shell layout / no apply blocks / persistent map / pink-gray only */
.salon-page{
  --accent:#7eb817;
  --accent-deep:#6b9918;
  --accent-pale:#ededed;
  --accent-pale-2:#ededed;
  --ink:#26292d;
  --ink-soft:#555960;
  --muted:#737780;
  --line:#dedee3;
  --line-strong:#b9bac2;
  --green:#7eb817;
  --green-dark:#7eb817;
  --green-soft:#ededed;
}
.salon-page,
.salon-page *{
  color-scheme:light;
}
.salon-page .hero{padding:0;}
.salon-page .hero__inner.salon-shell__inner{
  display:block;
  width:100%;
  padding:clamp(24px,4vw,42px);
  background:linear-gradient(180deg,#fff,#ededed 58%,#fff);
  box-shadow:0 24px 60px rgba(38,41,45,.08);
}
/*.salon-page .hero__inner::before{
  border-top-color:rgba(126,184,23,.11);
  border-left-color:rgba(126,184,23,.11);
}
.salon-page .hero__inner::after{
  border-right-color:rgba(126,184,23,.18);
  border-bottom-color:rgba(126,184,23,.18);
}*/
.salon-page .hero > .hero__inner > .eyebrow{
  color:var(--accent) !important;
}
.salon-page .hero h1{color:#25282d;}
.salon-page .hero p{color:#6f737b;}
.salon-page .hero-actions,
.salon-page .salon-apply-lead,
.salon-page .salon-apply-footer,
.salon-page .map-toggle,
.salon-page .map-collapsible,
.salon-page .private-notice,
.salon-page .scope-summary{
  display:none !important;
}
.salon-page .hero-stats{
  margin-top:18px;
  margin-bottom:24px;
}
.salon-page .stat-chip{
  background:#fff;
  border-color:rgba(126,184,23,.20);
  color:#555960;
}
.salon-page .stat-chip strong{
  color:var(--accent) !important;
}
.salon-page .search-panel,
.salon-page .map-card,
.salon-page .salon-summary-card,
.salon-page .salon-list-card{
  position:relative;
  box-shadow:none !important;
  margin-left:0;
  margin-right:0;
  border-radius:0 !important;
}
.salon-page .search-panel{
  top:0;
  margin:0 0 20px;
  background:#fff;
  border:1px solid rgba(105,105,105,.10);
  border-left:5px solid var(--accent);
}
.salon-page .search-label{color:#3b3f45;}
.salon-page #salonSearch:focus{
  border-color:var(--accent) !important;
  box-shadow:0 0 0 4px rgba(126,184,23,.10) !important;
}
.salon-page .quick-filters button.is-active,
.salon-page .map-toolbar button.is-active{
  background:var(--accent) !important;
  border-color:var(--accent) !important;
  color:#fff !important;
}
.salon-page .map-card{
  display:block !important;
  overflow:hidden;
  margin:0 0 22px !important;
  border:1px solid rgba(105,105,105,.28) !important;
  background:#fff !important;
}
.salon-page .map-section-head{
  display:block;
  padding:22px 24px 16px;
  border-left:7px solid var(--accent);
  background:
    linear-gradient(90deg,rgba(126,184,23,.10),rgba(255,255,255,.98) 42%,#fff);
  border-bottom:1px solid rgba(126,184,23,.18);
}
.salon-page .map-section-head .eyebrow{
  margin:0 0 6px;
  color:var(--accent) !important;
  font-size:11px;
  letter-spacing:.22em;
}
.salon-page .map-section-head h2{
  margin:0;
  color:#25282d;
  font-size:clamp(20px,2.4vw,28px);
  letter-spacing:.05em;
}
.salon-page .map-section-head p{
  margin:8px 0 0;
  color:#70747c;
  font-size:13px;
  line-height:1.7;
}
.salon-page .map-toolbar{
  background:#fff;
  border-bottom:1px solid rgba(38,41,45,.08);
}
.salon-page .map-stage{
  background:
    linear-gradient(90deg, rgba(126,184,23,.018) 1px, transparent 1px),
    linear-gradient(rgba(38,41,45,.018) 1px, transparent 1px),
    #fff;
}
.salon-page .map-base-image{opacity:.30 !important;}
.salon-page .map-legend{color:#777b82;}
.salon-page .legend-dot.normal{background:var(--accent) !important;}
.salon-page .legend-dot.private{display:none !important;}
.salon-page .pref-count-badge{fill:var(--accent) !important;}
.salon-page .pref-count-text{fill:#fff !important;}
.salon-page .pref-shape:hover .pref-count-badge,
.salon-page .pref-shape.is-active .pref-count-badge{
  fill:#fff !important;
  stroke:var(--accent) !important;
}
.salon-page .pref-shape:hover .pref-count-text,
.salon-page .pref-shape.is-active .pref-count-text{
  fill:var(--accent) !important;
}
.salon-page .pref-shape:hover .pref-stem,
.salon-page .pref-shape.is-active .pref-stem{
  stroke:var(--accent) !important;
}
.salon-page .salon-summary-card{
  margin:0 0 18px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
}
.salon-page .salon-summary-card .result-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  padding:0 0 12px !important;
  margin:0 !important;
  border-bottom:1px solid rgba(38,41,45,.12) !important;
}
.salon-page .salon-summary-card .eyebrow{
  color:var(--accent) !important;
  font-size:11px !important;
  letter-spacing:.22em;
  margin:0 0 5px;
}
.salon-page .salon-summary-card h2,
.salon-page .result-head h2{
  font-size:clamp(20px,2.2vw,28px) !important;
  color:#292c31 !important;
  font-weight:700 !important;
  letter-spacing:.04em;
  margin:0;
}
.salon-page .count-pill{
  padding:9px 16px !important;
  min-width:78px;
  justify-content:center;
  background:var(--accent) !important;
  border:1px solid var(--accent) !important;
  color:#fff !important;
  font-size:17px !important;
  font-weight:900 !important;
  letter-spacing:.05em;
}
.salon-page .salon-list-card{
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}
.salon-page .salon-card-grid{
  grid-template-columns:repeat(auto-fit,minmax(360px,1fr));
  gap:18px !important;
}
.salon-page .salon-card--visual{
  border:1px solid rgba(38,41,45,.10) !important;
  box-shadow:0 12px 26px rgba(38,41,45,.055) !important;
}
.salon-page .official-badge,
.salon-page .salon-catch,
.salon-page .address-badge.private{
  color:var(--accent) !important;
}
.salon-page .salon-links a::after{
  content:"→";
  margin-left:.55em;
  font-weight:900;
}
.salon-page .salon-links a,
.salon-page .salon-link-muted{
  align-items:center;
  white-space:nowrap;
}
.salon-page .salon-links a.primary{
  background:var(--accent) !important;
  border-color:var(--accent) !important;
  color:#fff !important;
}
.salon-page .salon-links a.primary:hover{
  background:var(--accent-deep) !important;
  border-color:var(--accent-deep) !important;
}
.salon-page .salon-links .link-instagram{
  background:#fff7fa !important;
  border-color:rgba(126,184,23,.25) !important;
  color:var(--accent) !important;
}
@media (max-width:760px){
  .salon-page .hero__inner.salon-shell__inner{padding:22px 14px;}
  .salon-page .map-section-head{padding:18px 16px 14px;}
  .salon-page .salon-summary-card .result-head{align-items:flex-start;}
  .salon-page .count-pill{font-size:15px !important;padding:8px 12px !important;}
}
@media (max-width:520px){
  .salon-page .salon-card-grid{grid-template-columns:1fr;}
}


/* 0.4.4 pager */
.salon-pager{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin:24px 0 4px;
  padding:16px 0 0;
  border-top:1px solid rgba(38,41,45,.10);
  color:var(--muted);
}
.salon-pager[hidden]{display:none!important}
.salon-pager__status{
  font-size:13px;
  font-weight:700;
  letter-spacing:.06em;
  white-space:nowrap;
}
.salon-pager__controls{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.salon-pager button{
  appearance:none;
  border:1px solid rgba(38,41,45,.16);
  background:#fff;
  color:var(--ink);
  min-width:38px;
  height:38px;
  padding:0 12px;
  font-size:13px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  transition:background .16s ease,border .16s ease,color .16s ease,transform .16s ease;
}
.salon-pager button:hover:not(:disabled){
  transform:translateY(-1px);
  border-color:var(--accent);
  color:var(--accent);
}
.salon-pager button.is-active{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}
.salon-pager button:disabled{
  opacity:.35;
  cursor:not-allowed;
}
.salon-pager__dots{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:38px;
  color:#9a9da2;
  font-weight:900;
}
@media (max-width:700px){
  .salon-pager{
    display:block;
    text-align:center;
  }
  .salon-pager__status{margin-bottom:12px}
  .salon-pager__controls{justify-content:center}
  .salon-pager button{min-width:36px;height:36px;padding:0 10px}
}

/* 0.4.5: card links, image picker, wider layout */
.salon-page{
  width:min(1680px, calc(100% - 24px)) !important;
  max-width:none !important;
  padding-left:12px !important;
  padding-right:12px !important;
}
.salon-page .hero__inner.salon-shell__inner{
  padding-left:clamp(18px,3vw,48px) !important;
  padding-right:clamp(18px,3vw,48px) !important;
}
.salon-card-grid{
  grid-template-columns:repeat(auto-fit,minmax(390px,1fr)) !important;
  gap:20px !important;
}
.salon-card--visual{
  grid-template-columns:154px minmax(0,1fr) !important;
  min-height:202px !important;
}
.salon-card__media,
.salon-card__placeholder{
  min-height:202px !important;
}
.salon-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.salon-card__placeholder{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#fff2f7,#f5f5f7) !important;
}
.salon-card__placeholder span{
  color:var(--accent) !important;
}
.salon-card__placeholder small{
  color:#777b82 !important;
}
.salon-intro{
  display:block !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:unset !important;
  overflow:visible !important;
  overflow-wrap:anywhere;
  word-break:normal;
}
.salon-intro--catch{
  margin:0 0 8px !important;
  color:var(--accent-deep) !important;
  font-weight:800 !important;
  font-size:13px !important;
  line-height:1.65 !important;
}
.salon-links{
  gap:8px !important;
}
.salon-links a,
.salon-link-muted{
  gap:6px !important;
  min-height:36px !important;
  white-space:nowrap;
}
.salon-page .salon-links a span.link-label,
.salon-page .salon-links a .link-label{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  width:auto !important;
  min-width:24px;
  height:18px;
  padding:0 5px;
  margin:0;
  border:1px solid currentColor;
  font-size:9px;
  line-height:1;
  font-weight:900;
  letter-spacing:.04em;
}
.salon-links .link-map{
  border-color:rgba(38,41,45,.18) !important;
  background:#fff !important;
  color:#4f545a !important;
}
.salon-links .link-map:hover{
  border-color:var(--accent) !important;
  color:var(--accent) !important;
  background:#fff7fa !important;
}
.salon-links .link-hotpepper .link-label,
.salon-links .link-instagram-detail .link-label,
.salon-links .link-instagram .link-label{
  color:var(--accent) !important;
}
.salon-links .link-web .link-label,
.salon-links .link-line .link-label,
.salon-links .link-facebook .link-label{
  color:#555960 !important;
}
.salon-links a.primary .link-label,
.salon-links .link-booking .link-label{
  color:#fff !important;
}
.otos-media-field{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.otos-media-field--compact{
  min-width:240px;
}
.otos-media-field--compact .otos-media-url{
  width:170px !important;
}
.otos-media-preview{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  background:#f6f6f7;
  border:1px solid #ddd;
  overflow:hidden;
  vertical-align:middle;
}
.otos-media-preview:empty{display:none}
.otos-media-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.otos-table-wrap input[data-key="catchCopy"]{width:190px}
.otos-table-wrap textarea[data-key="intro"]{width:250px;min-height:58px}

@media (max-width:900px){
  .salon-page{width:calc(100% - 18px) !important;padding-left:9px !important;padding-right:9px !important;}
  .salon-card-grid{grid-template-columns:1fr !important;}
}
@media (max-width:760px){
  .salon-card--visual{grid-template-columns:130px minmax(0,1fr) !important;}
  .salon-card__media,.salon-card__placeholder{min-height:190px !important;}
}
@media (max-width:520px){
  .salon-page{width:100% !important;padding-left:8px !important;padding-right:8px !important;}
  .salon-card--visual{grid-template-columns:1fr !important;}
  .salon-card__media,.salon-card__placeholder{height:190px !important;min-height:190px !important;}
  .salon-links a,.salon-link-muted{white-space:normal;}
}


/* 0.4.6: admin cleanup + uploaded link icons */
.salon-links a{
  display:inline-flex !important;
  align-items:center !important;
  gap:7px !important;
}
.salon-links a::after{content:"" !important;margin:0 !important;}
.salon-links .link-icon{
  width:16px;
  height:16px;
  display:inline-block;
  object-fit:contain;
  flex:0 0 16px;
}
.salon-links .link-map .link-icon{
  opacity:.78;
}
.salon-links .link-detail.primary .link-icon{
  filter:none;
}
.salon-catch{
  margin:0 0 8px !important;
  color:var(--accent-deep) !important;
  font-weight:normal!important;
  font-size:17px !important;
  line-height:1.65 !important;
  overflow-wrap:anywhere;
}
.otos-admin th small{
  display:block;
  margin-top:3px;
  color:#777;
  font-size:11px;
  font-weight:400;
  line-height:1.35;
}
.otos-table-wrap input[data-key="externalUrl"]{width:260px;}


/* 0.4.7: 地域ボタンのスマホ切れ対策 */
.quick-filters{
  flex-wrap:wrap !important;
  overflow:visible !important;
  row-gap:8px !important;
}
.quick-filters button{
  flex:0 1 auto !important;
  min-height:38px;
}
@media (max-width:680px){
  .quick-filters{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px !important;
    overflow:visible !important;
    padding-bottom:2px;
  }
  .quick-filters button{
    width:100% !important;
    white-space:normal !important;
    line-height:1.35 !important;
    text-align:center;
    padding:10px 8px !important;
  }
}
@media (max-width:390px){
  .quick-filters{grid-template-columns:1fr;}
}

/* 0.4.8: search/map order, mobile search accordion, image ratio fix */
.salon-page .hero__inner.salon-shell__inner{
  padding-top:clamp(14px,2vw,26px) !important;
  padding-bottom:clamp(22px,3vw,38px) !important;
}
.salon-page .search-panel{
  margin-top:0 !important;
  margin-bottom:14px !important;
  padding:14px 16px !important;
}
.search-mobile-toggle{
  display:none;
}
.salon-page .search-label{
  font-size:15px !important;
  letter-spacing:.05em !important;
  color:#343840 !important;
}
.salon-page .map-card{
  margin-top:0 !important;
  margin-bottom:14px !important;
}
.salon-page .map-toolbar{
  padding:9px 12px !important;
  min-height:0 !important;
}
.salon-page #allButton[hidden]{
  display:none !important;
}
.salon-page #allButton{
  background:#fff !important;
  border-color:rgba(126,184,23,.42) !important;
  color:var(--accent) !important;
  font-size:12px !important;
  padding:7px 10px !important;
}
.salon-page #selectedLabel{
  font-size:13px !important;
  color:#4f545a !important;
}
.salon-page .zoom-controls button{
  padding:6px 9px !important;
  min-width:38px !important;
  font-size:12px !important;
}
.salon-page .map-stage{
  padding:10px 12px 12px !important;
  min-height:0 !important;
}
.salon-page .map-legend{
  margin-bottom:6px !important;
  font-size:11px !important;
}
.salon-page .map-help{
  margin-top:8px !important;
  font-size:12px !important;
  color:#777b82 !important;
}
.salon-page .salon-summary-card{
  margin-top:0 !important;
  margin-bottom:12px !important;
  padding:10px 12px !important;
}
.salon-page .salon-list-card{
  padding:14px !important;
}
.salon-card--visual{
  align-items:start !important;
  min-height:0 !important;
}
.salon-card__media,
.salon-card__placeholder{
  height:202px !important;
  min-height:0 !important;
  align-self:start !important;
}
.salon-card__media img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
}

@media (max-width:680px){
  .salon-page .search-panel{
    padding:0 !important;
    overflow:hidden;
    border-color:rgba(126,184,23,.25) !important;
    background:#fff !important;
  }
  .search-mobile-toggle{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    width:100%;
    border:0;
    background:linear-gradient(135deg,#fff5f9,#fff) !important;
    color:#2f3338 !important;
    padding:14px 16px !important;
    font-weight:800;
    letter-spacing:.05em;
    cursor:pointer;
  }
  .search-mobile-toggle::after{
    content:'＋';
    color:var(--accent);
    font-size:18px;
    line-height:1;
  }
  .salon-page.search-open .search-mobile-toggle::after{
    content:'−';
  }
  .search-panel__body{
    padding:0 14px 14px !important;
    border-top:1px solid rgba(126,184,23,.12);
  }
  .search-panel__body[hidden]{
    display:none !important;
  }
  .salon-page .search-label{
    display:none !important;
  }
  .salon-page .map-toolbar{
    gap:8px !important;
  }
  .salon-page #selectedLabel{
    width:100%;
    order:-1;
    font-size:12px !important;
  }
  .salon-page .map-stage{
    padding:8px !important;
  }
  .salon-card__media,
  .salon-card__placeholder{
    height:190px !important;
    min-height:0 !important;
  }
}


/* 0.4.9: compact search/map, all-device accordion, image frame, bottom partner CTA */
.salon-page .hero__inner.salon-shell__inner{
  padding-top:16px !important;
  padding-bottom:28px !important;
}
.salon-page .hero-stats{
  gap:10px !important;
  margin-top:0 !important;
  margin-bottom:12px !important;
}
.salon-page .stat-chip{
  padding:10px 13px !important;
  min-height:0 !important;
}
.salon-page .search-panel{
  margin-bottom:10px !important;
  padding:0 !important;
  overflow:hidden !important;
  border-color:rgba(105,105,105,.24) !important;
  background:#fff !important;
}
.search-mobile-toggle{
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  width:100%;
  border:0 !important;
  background:linear-gradient(135deg,#f9f9f9,#fff) !important;
  color:#2f3338 !important;
  padding:11px 14px !important;
  font-weight:800;
  letter-spacing:.05em;
  cursor:pointer;
}
.search-mobile-toggle::after{
  content:'＋';
  color:var(--accent);
  font-size:18px;
  line-height:1;
}
.salon-page.search-open .search-mobile-toggle::after{content:'−';}
.search-panel__body{
  padding:10px 14px 12px !important;
  border-top:1px solid rgba(126,184,23,.12);
}
.search-panel__body[hidden]{display:none !important;}
.salon-page .search-label{display:none !important;}
.salon-page .search-row{gap:8px !important;}
#salonSearch{padding:11px 13px !important;min-height:42px !important;}
#clearSearch{min-height:42px !important;padding:0 13px !important;}
.quick-filters{padding-top:9px !important;gap:7px !important;}
.quick-filters button{padding:8px 11px !important;min-height:40px !important;}
.salon-page .map-card{margin-bottom:10px !important;}
.salon-page .map-toolbar{padding:7px 10px !important;}
.salon-page .map-stage{padding:8px 10px 10px !important;}
.salon-page .map-legend{margin-bottom:4px !important;}
.salon-page .map-help{
  margin-top:6px !important;
  line-height:1.55 !important;
}
.salon-page .salon-summary-card{
  padding:8px 10px !important;
  margin-bottom:10px !important;
}
.salon-page .salon-list-card{padding:12px !important;}
.salon-card-grid{
  grid-template-columns:repeat(auto-fit,minmax(420px,1fr)) !important;
  gap:18px !important;
}
.salon-card--visual{
  display:grid !important;
  grid-template-columns:170px minmax(0,1fr) !important;
  min-height:220px !important;
  align-items:stretch !important;
}
.salon-card__media,
.salon-card__placeholder{
  width:100% !important;
  height:100% !important;
  min-height:220px !important;
  align-self:stretch !important;
}
.salon-card__media img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
}
.salon-bottom-action{
  margin-top:22px;
  text-align:center;
}
.salon-bottom-action a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:min(360px,100%);
  padding:14px 24px;
  background:var(--accent);
  color:#fff !important;
  border:1px solid var(--accent);
  text-decoration:none !important;
  font-weight:900;
  letter-spacing:.06em;
  box-shadow:0 12px 28px rgba(126, 184, 23,.18);
  transition:transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.salon-bottom-action a::after{content:'→';margin-left:.8em;}
.salon-bottom-action a:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(126,184,23,.24);opacity:.94;}
@media (max-width:760px){
  .salon-card-grid{grid-template-columns:1fr !important;gap:14px !important;}
  .salon-card--visual{grid-template-columns:124px minmax(0,1fr) !important;min-height:188px !important;}
  .salon-card__media,.salon-card__placeholder{min-height:188px !important;}
}
@media (max-width:520px){
  .salon-page .hero__inner.salon-shell__inner{padding:14px 10px 22px !important;}
  .salon-page .stat-chip{padding:8px 10px !important;}
  .search-mobile-toggle{padding:12px 13px !important;}
  .search-panel__body{padding:10px 12px 12px !important;}
  .salon-page .map-stage{padding:6px !important;}
  .salon-card--visual{grid-template-columns:1fr !important;min-height:0 !important;}
  .salon-card__media,.salon-card__placeholder{height:210px !important;min-height:210px !important;}
  .salon-bottom-action a{width:100%;min-width:0;}
}


/* 0.5.0: move map help above search and loosen card intro spacing */
.salon-page .map-help--top{
  display:block;
  margin:0 0 10px !important;
  padding:11px 14px !important;
  border:1px solid rgba(105,105,105,.22);
  background:linear-gradient(135deg, rgba(105,105,105,.08), #fff 62%);
  color:#4f545a !important;
  font-size:13px !important;
  line-height:1.65 !important;
  letter-spacing:.04em;
  font-weight:700;
}
.salon-page .map-card .map-help{display:none !important;}
.salon-page .salon-intro{
  margin-bottom:20px !important;
}
.salon-page .salon-links{
  margin-top:auto;
}
@media (max-width:520px){
  .salon-page .map-help--top{
    margin-bottom:8px !important;
    padding:10px 12px !important;
    font-size:12px !important;
  }
  .salon-page .salon-intro{
    margin-bottom:18px !important;
  }
}


/* 0.5.1: map guide bullets, no map grid border, full-width PC background */
.salon-page .map-stage__grid{
  border:0 !important;
}
.salon-page .map-help--top{
  list-style:disc;
  padding:10px 14px 10px 2.1em !important;
}
.salon-page .map-help--top li{
  margin:.15em 0;
  color:#4f545a !important;
}
@media (min-width:901px){
  .salon-page{
    width:100vw !important;
    max-width:none !important;
    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
    padding-left:clamp(24px,4vw,64px) !important;
    padding-right:clamp(24px,4vw,64px) !important;
  }
  .salon-page .hero__inner.salon-shell__inner{
    width:100% !important;
  }
}


/* 0.5.5: unified text salon badges */
.salon-card--visual{position:relative;}
.salon-card-badges{
  position:absolute;
  top:12px;
  right:12px;
  z-index:4;
  display:flex;
  flex-direction:row;
  gap:8px;
  align-items:flex-start;
  justify-content:flex-end;
  pointer-events:none;
}
.salon-badge{
  position:relative;
  overflow:hidden;
  width:74px;
  height:74px;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.02;
  color:#6f5314;
  background:linear-gradient(180deg,#fff8df 0%,#f2d995 46%,#dfb557 100%);
  border:1px solid rgba(166,123,27,.38);
  box-shadow:0 8px 18px rgba(15,18,22,.12), inset 0 1px 0 rgba(255,255,255,.66);
  padding:6px;
}
.salon-badge::after{
  content:"";
  position:absolute;
  top:-18%;
  left:-58%;
  width:34%;
  height:140%;
  background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.12) 20%, rgba(255,255,255,.58) 48%, rgba(255,255,255,.12) 78%, rgba(255,255,255,0) 100%);
  transform:rotate(22deg);
  animation:salonBadgeShine 6.8s ease-in-out infinite;
}
.salon-badge--meister{
  color:#6b5117;
  background:linear-gradient(180deg,#fff9e8 0%,#f4deb0 46%,#e3bf68 100%);
}
@keyframes salonBadgeShine{
  0%, 74%, 100%{left:-58%; opacity:0;}
  78%{opacity:1;}
  88%{left:116%; opacity:1;}
  92%{opacity:0;}
}
.salon-badge__crown{
  display:block;
  font-size:16px;
  line-height:1;
  margin-bottom:2px;
  color:#8c6a1d;
}
.salon-badge__line{
  display:block;
  font-size:10px;
  font-weight:800;
  letter-spacing:.04em;
  position:relative;
  z-index:1;
}
.salon-badge__line--small{font-size:11px;letter-spacing:.10em;}
.salon-badge__line--tinywide{font-size:8px;letter-spacing:.03em;}
.salon-card--has-badges .salon-card__body{
  padding-top:88px;
}
.salon-intro{
  -webkit-line-clamp:5;
}
.otos-table-wrap textarea[data-key="intro"]{width:270px;min-height:72px;}
.otos-badge-checks label{display:block;white-space:nowrap;margin:0 0 4px;}
@media (max-width:760px){
  .salon-card-badges{top:10px;right:10px;gap:6px;}
  .salon-badge{width:64px;height:64px;padding:5px;}
  .salon-badge__crown{font-size:14px;margin-bottom:1px;}
  .salon-badge__line{font-size:9px;}
  .salon-badge__line--small{font-size:10px;}
  .salon-badge__line--tinywide{font-size:7px;}
  .salon-card--has-badges .salon-card__body{padding-top:78px;}
}
@media (max-width:520px){
  .salon-card-badges{top:8px;right:8px;gap:5px;}
  .salon-badge{width:58px;height:58px;padding:5px;}
  .salon-badge__crown{font-size:13px;}
  .salon-badge__line{font-size:8px;}
  .salon-badge__line--small{font-size:9px;}
  .salon-badge__line--tinywide{font-size:7px;}
  .salon-card--has-badges .salon-card__body{padding-top:72px;}
}

/* 0.5.8: generated official salon thumbnail background */
.salon-page .salon-card__media{
  background:#eee7e9 !important;
}
.salon-page .salon-uploaded-visual{
  position:relative;
  width:100%;
  height:100%;
  min-height:inherit;
  overflow:hidden;
  display:block;
  background:#f0ecee;
}
.salon-page .salon-uploaded-image{
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  display:block !important;
  object-fit:cover !important;
  object-position:center center !important;
}
.salon-page .salon-official-visual{
  position:relative;
  width:100%;
  height:100%;
  min-height:inherit;
  overflow:hidden;
  display:block;
  background:#e9e1e3;
  color:#fff;
}
.salon-page .salon-official-bg{
  position:absolute;
  inset:-6px;
  width:calc(100% + 12px) !important;
  height:calc(100% + 12px) !important;
  max-width:none !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  filter:blur(3px) brightness(.82) saturate(.96) !important;
  transform:scale(1.03);
  transform-origin:center;
}
.salon-page .salon-official-visual.is-no-blur .salon-official-bg{
  inset:0;
  width:100% !important;
  height:100% !important;
  filter:saturate(.96) !important;
  transform:none;
}
.salon-page .salon-official-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(circle at center, rgba(255,255,255,.10), transparent 48%),
    linear-gradient(180deg, rgba(28,24,25,.18), rgba(28,24,25,.38));
}
.salon-page .salon-official-text{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:8px;
  padding:16px 12px;
  color:#fff;
  text-shadow:0 2px 10px rgba(0,0,0,.28);
}
.salon-page .salon-official-kicker,
.salon-page .salon-official-area{
  display:block;
  font-family:Georgia, 'Times New Roman', serif;
  font-size:9px;
  line-height:1.2;
  letter-spacing:.20em;
  font-weight:400;
  opacity:.96;
}
.salon-page .salon-official-text strong{
  display:block;
  max-width:100%;
  color:#fff;
  font-family:Georgia, 'Times New Roman', serif;
  font-size:clamp(18px, 0.4vw, 54px);
  font-weight:500;
  line-height:.95;
  letter-spacing:.08em;
  overflow-wrap:anywhere;
}
.salon-page .salon-official-area{
  font-family:Arial, 'Helvetica Neue', sans-serif;
  font-size:11px;
  letter-spacing:.28em;
  font-weight:500;
}
.salon-page .salon-official-visual.is-no-text .salon-official-text,
.salon-page .salon-official-visual.is-no-text .salon-official-shade{
  display:none;
}
.salon-page .salon-card__media > img{
  display:none !important;
}
@media (max-width:760px){
  .salon-page .salon-official-text{gap:6px;padding:12px 9px;}
  .salon-page .salon-official-kicker{font-size:8px;letter-spacing:.16em;}
  .salon-page .salon-official-text strong{font-size:clamp(22px, 8.6vw, 40px);letter-spacing:.06em;}
  .salon-page .salon-official-area{font-size:9px;letter-spacing:.20em;}
}
@media (max-width:520px){
  .salon-page .salon-official-text strong{font-size:clamp(25px, 5vw, 54px);}
  .salon-page .salon-official-kicker{font-size:9px;letter-spacing:.18em;}
  .salon-page .salon-official-area{font-size:10px;letter-spacing:.24em;}
}


/* 0.5.9: intro line breaks and dummy image notice */
.salon-page .salon-intro,
.salon-page .salon-note{
  white-space:pre-line;
}


/* 0.5.10: map count cleanup - private counts are included in the green prefecture count */
.salon-page .map-legend{
  display:none !important;
}
.salon-page .pref-private-badge,
.salon-page .pref-private-text{
  display:none !important;
}
