/* Theme website surfaces. Inherit typography, neutral palette, and Light/Dark. */
.hcg-site-container { max-width: 1240px; margin: auto; padding: clamp(18px,4vw,48px) 24px; }
.hcg-site { color: var(--hcg-text); }
.hcg-site [hidden] { display: none !important; }
.hcg-site-registration [hidden] { display: none !important; }
/* The registration uses the original Membership styles, not generic site-form styles. */
#hcg-site-content:has(.hcg-site-registration) { padding: 0; }
.hcg-site-registration .hcgpt-mb-radio-card:focus-within,
.hcg-site-registration .hcgpt-mb-multiselect-card:focus-within { outline: 2px solid var(--auth-accent); outline-offset: 2px; }
.hcg-site-registration [data-form-status]:not([hidden]) { color: var(--auth-text); border: 1px solid var(--auth-accent); border-radius: 12px; padding: 12px; }
.hcg-site-registration .hcgpt-mb-step__legend:focus { outline: none; }
.hcg-site h1 { font: 700 clamp(32px,5vw,60px)/1.08 var(--hcg-font-heading); margin: 0 0 16px; }
.hcg-site h2 { font: 700 30px/1.15 var(--hcg-font-heading); margin: 0 0 16px; }
.hcg-site h3 { font: 700 23px/1.2 var(--hcg-font-heading); margin: 0 0 8px; }
.hcg-site p { color: var(--hcg-text-2); }
.hcg-site-banner { border-radius: var(--hcg-r-xl); padding: clamp(28px,6vw,72px); background: var(--hcg-gradient-soft); border: 1px solid var(--hcg-border-strong); margin-bottom: 28px; }
.hcg-site-banner p { max-width: 60ch; font-size: 19px; }
/* Original WP directory hero, now fed by Node inside the theme. */
.hcg-site-directory-banner { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr); gap:28px; align-items:end; padding:34px; border:1px solid var(--hcg-border-strong); border-radius:28px; margin-bottom:28px; background:linear-gradient(145deg,rgba(20,20,24,.9),rgba(12,12,14,.96)),radial-gradient(circle at 78% 16%,color-mix(in srgb,var(--hcg-accent) 30%,transparent),transparent 28%); color:#fff; }
.hcg-site-directory-banner h1 { color:#fff; font-size:clamp(1.8rem,4vw,2.8rem); line-height:1; letter-spacing:-.025em; font-weight:700; }
.hcg-site-directory-banner p { color:rgba(255,255,255,.82); font-size:1.08rem; }
.hcg-site-directory-summary { align-self:stretch; display:grid; align-content:center; gap:12px; padding:28px; background:var(--hcg-surface); color:var(--hcg-text); border:1px solid var(--hcg-border); border-radius:24px; }
.hcg-site-directory-summary strong { font:600 2rem/1 var(--hcg-font-heading); }
.hcg-site-directory-layout { display:grid; grid-template-columns:minmax(240px,.3fr) minmax(0,.7fr); align-items:start; gap:28px; }
.hcg-site-directory-layout .hcg-site-directory-filters { display:grid; position:sticky; top:92px; margin:0; padding:24px; border:1px solid var(--hcg-border); border-radius:var(--hcg-r-xl); background:var(--hcg-surface); box-shadow:var(--hcg-shadow); }
.hcg-site-directory-filters .hcg-site-field { font-size:.8rem; color:var(--hcg-muted); }
.hcg-site-directory-layout .hcg-site-directory-results { grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr)); gap:20px; }
.hcg-site-directory-results .hcg-site-cover { height:180px; aspect-ratio:auto; }
.hcg-site-directory-results h2 { font-size:1.35rem; }
.hcg-site-directory-results .hcg-site-card-body { padding:20px; }
.hcg-site-directory-results p { font-size:.88rem; }
.hcg-site-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,300px),1fr)); gap: 24px; }
.hcg-site-card, .hcg-site-panel { border: 1px solid var(--hcg-border-strong); background: var(--hcg-surface); border-radius: var(--hcg-r-xl); overflow: hidden; }
.hcg-site-card-body, .hcg-site-panel { padding: 24px; }
.hcg-site-panel { margin: 24px 0; }
.hcg-site-cover { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
.hcg-site-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px; margin: 24px 0; }
.hcg-site-filters .hcg-site-field { flex: 1; min-width: 150px; }
.hcg-site-field { display: flex; flex-direction: column; gap: 8px; font-weight: 600; min-width: 0; }
.hcg-site input:not([type=checkbox]):not([type=radio]), .hcg-site select, .hcg-site textarea { width: 100%; min-height: 48px; padding: 12px 14px; font: 400 16px/1.5 var(--hcg-font-body); color: var(--hcg-text); background: var(--hcg-surface-2); border: 1px solid var(--hcg-border-strong); border-radius: var(--hcg-r); }
.hcg-site input:focus-visible, .hcg-site textarea:focus-visible, .hcg-site select:focus-visible, .hcg-site button:focus-visible { outline: 3px solid var(--hcg-accent); outline-offset: 3px; }
.hcg-site input[type=checkbox], .hcg-site input[type=radio] { accent-color: var(--hcg-accent); width: 21px; height: 21px; flex: 0 0 21px; margin: 3px 0; }
.hcg-site-check, .hcg-site-option { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.hcg-site-option { border: 1px solid var(--hcg-border-strong); border-radius: var(--hcg-r); padding: 16px; margin: 12px 0; }
.hcg-site-option:has(input:checked) { border-color: var(--hcg-accent); background: var(--hcg-gradient-soft); }
.hcg-site-option:has(input:disabled) { opacity: .55; cursor: not-allowed; }
.hcg-site-form { display: grid; gap: 20px; }
.hcg-site-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: 18px; }
.hcg-site-form legend { font-weight: 700; font-size: 20px; margin-bottom: 20px; }
.hcg-site-actions, .hcg-site-tabs, .hcg-site-auth-links, [data-social-buttons] { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.hcg-site-tabs { margin-bottom: 28px; }
.hcg-site .hcg-btn { min-height: 48px; cursor: pointer; font-size: 16px; }
.hcg-site .hcg-btn--primary, .hcg-site .hcg-btn--primary:hover { background: var(--hcg-gradient); color: #fff; border-color: transparent; }
.hcg-site button:disabled { opacity: .55; cursor: wait; transform: none; }
.hcg-site-auth { max-width: 760px; margin: 0 auto; border: 1px solid var(--hcg-border-strong); border-radius: 24px; overflow: hidden; background: var(--hcg-surface); }
.hcg-site-auth-brand { background: var(--hcg-gradient); color: #fff; padding: 20px; display: flex; justify-content: center; align-items: center; gap: 14px; font-size: 25px; font-weight: 800; }
.hcg-site-auth-body { padding: clamp(20px,4vw,36px); }
.hcg-site-auth h1 { text-align: center; font-size: clamp(30px,4vw,42px); }
.hcg-site-switch { display: flex; align-items: center; gap: 20px; padding: 20px; background: var(--hcg-surface-2); border: 1px solid var(--hcg-border-strong); border-radius: 14px; margin: 24px 0; }
.hcg-site-switch p { margin: 8px 0 0; font-size: 14px; }
.hcg-site-auth-links { justify-content: center; margin-top: 26px; font-size: 14px; }
.hcg-site-auth-links a, .hcg-site-legal a { color: var(--hcg-accent); text-decoration: underline; }
.hcg-site-steps { display: flex; gap: 8px; padding: 0; list-style: none; counter-reset: steps; }
.hcg-site-steps li { flex: 1; font-size: 13px; color: var(--hcg-muted); border-bottom: 3px solid var(--hcg-border); padding: 10px 0; }
.hcg-site-steps li[aria-current=step] { border-color: var(--hcg-accent); color: var(--hcg-text); font-weight: 700; }
.hcg-site-service { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--hcg-border); padding: 18px 0; }
.hcg-site-service dd { margin: 0; }
.hcg-site-salon-head { margin-bottom: 28px; }
.hcg-site-salon-hero { width: 100%; max-height: 440px; object-fit: cover; border-radius: 20px; margin-bottom: 24px; }
.hcg-site-gallery, .hcg-site-photo-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.hcg-site-gallery img { width: 100%; border-radius: 14px; object-fit: cover; }
.hcg-site-photo img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.hcg-site-photo[data-photo-role=front] img { border-radius: 24px 0 0 24px; }
.hcg-site-photo[data-photo-role=three_quarter] img { border-radius: 0 24px 24px 0; }
.hcg-site-photo input[type=file] { padding: 8px; font-size: 14px; }
.hcg-site-photo-history { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0; }
.hcg-site-photo-history button { width: 90px; padding: 4px; border: 1px solid var(--hcg-border); border-radius: 10px; background: var(--hcg-surface); color: var(--hcg-text); }
.hcg-site-notice, .hcg-site-status, .hcg-site [data-form-status]:not([hidden]) { padding: 16px; border: 1px solid var(--hcg-accent); border-radius: 12px; background: var(--hcg-gradient-soft); color: var(--hcg-text); overflow-wrap: anywhere; }
.hcg-site [data-booking-slots] { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.hcg-site [aria-pressed=true] { box-shadow: 0 0 0 3px var(--hcg-accent); }
.hcg-site-price { font-size: 28px; font-weight: 700; }
@media(max-width:900px) {
 .hcg-site-directory-layout { grid-template-columns:1fr; }
 .hcg-site-directory-layout .hcg-site-directory-filters { position:static; }
}
@media(max-width:600px) {
 .hcg-site-directory-banner { grid-template-columns:1fr; padding:24px; }
 .hcg-site-container { padding: 18px 14px; }
 .hcg-site-panel, .hcg-site-card-body { padding: 18px; }
 .hcg-site-switch { align-items: stretch; flex-direction: column; }
 .hcg-site-steps li { font-size: 11px; }
 .hcg-site-gallery { grid-template-columns: 1fr; }
 .hcg-site-service { flex-wrap: wrap; }
}
