/*
Theme Name: Hair Care Egypt
Description: Gutenberg presentation for the Hair Care Egypt directory; application behavior lives in its plugin.
Template: astra
Version: 0.4.8
Requires at least: 6.9
Requires PHP: 8.3
Text Domain: haircare-egypt
*/

/* Owner-approved clinical direction; typography assets and complete page layouts follow in UX-01. */
:root {
    --hc-bg: #F5F8F9;
    --hc-surface: #FFFFFF;
    --hc-ink: #173047;
    --hc-muted: #526777;
    --hc-accent: #087E80;
    --hc-accent-hover: #066567;
    --hc-border: #D8E3E7;
}
.hc-language-nav { background: var(--hc-surface); border-block-end: 1px solid var(--hc-border); color: var(--hc-ink); }
.hc-language-nav__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; max-inline-size: 1200px; margin-inline: auto; padding: 8px 16px; }
.hc-language-nav a { display: inline-flex; align-items: center; justify-content: center; min-inline-size: 80px; min-block-size: 44px; padding: 8px 16px; border: 1px solid var(--hc-border); border-radius: 8px; color: var(--hc-ink); text-decoration: none; line-height: 1.5; }
.hc-language-nav a[aria-current="page"] { background: var(--hc-accent); border-color: var(--hc-accent); color: var(--hc-surface); }
.hc-language-nav a:hover { border-color: var(--hc-accent-hover); }
.hc-language-nav a:focus-visible { outline: 3px solid var(--hc-ink); outline-offset: 3px; }
.hc-language-notice { margin-block: 16px; padding: 16px; border-inline-start: 4px solid var(--hc-accent); background: var(--hc-bg); color: var(--hc-ink); text-align: start; font-size: 1rem; line-height: 1.8; }
.hc-locale-ar .hc-language-nav, .hc-locale-ar .hc-language-notice { font-family: "Noto Sans Arabic", Tahoma, Arial, sans-serif; }
.hc-language-nav bdi { unicode-bidi: isolate; }
@media (max-width: 480px) { .hc-language-nav__inner { padding-inline: 12px; } }

/* Shared bilingual shell; keep all navigation available without JavaScript. */
body,body.hc-locale-en { color:var(--hc-ink); background:var(--hc-bg); font-family:"Source Sans 3","Noto Sans Arabic",Arial,sans-serif; }
body.hc-locale-ar { font-family:"Noto Sans Arabic",Tahoma,Arial,sans-serif; }
.hc-shell { max-inline-size:1200px; margin-inline:auto; padding-inline:32px; }
.hc-site-header { background:var(--hc-surface); border-block-end:1px solid var(--hc-border); }
.hc-header-row { display:flex; align-items:center; justify-content:space-between; gap:32px; min-block-size:104px; padding-block:16px; }
.hc-brand { display:flex; align-items:center; gap:16px; flex-shrink:0; color:var(--hc-ink); text-decoration:none; }
.hc-brand:hover { color:var(--hc-accent-hover); }
.hc-brand-mark { font-size:32px; font-weight:700; letter-spacing:-2px; direction:ltr; unicode-bidi:isolate; line-height:1; }
.hc-brand-mark span { color:var(--hc-accent); }
.hc-brand-name { display:block; font-size:20px; font-weight:700; line-height:1.5; }
.hc-brand-tagline { display:block; color:var(--hc-muted); font-size:13px; line-height:1.8; }
.hc-main-navigation,.hc-primary-links,.hc-account-links { display:flex; align-items:center; gap:16px; }
.hc-main-navigation { flex:1; justify-content:flex-end; gap:32px; }
.hc-main-navigation a,.hc-site-footer a { color:var(--hc-ink); text-decoration:none; font-size:15px; line-height:1.6; min-block-size:44px; display:inline-flex; align-items:center; padding-block:8px; }
.hc-main-navigation a:hover,.hc-site-footer a:hover { color:var(--hc-accent-hover); text-decoration:underline; text-underline-offset:6px; }
.hc-main-navigation a[aria-current="page"] { text-decoration:underline; text-decoration-color:var(--hc-accent); text-decoration-thickness:2px; text-underline-offset:8px; }
.hc-main-navigation .hc-button { color:var(--hc-surface); background:var(--hc-accent); border:1px solid var(--hc-accent); padding:8px 16px; border-radius:8px; text-decoration:none; }
.hc-main-navigation .hc-button:hover { background:var(--hc-accent-hover); color:var(--hc-surface); }
.hc-menu-toggle { border:1px solid var(--hc-border); color:var(--hc-ink); background:var(--hc-surface); padding:8px 16px; border-radius:8px; min-block-size:44px; font:inherit; }
.hc-menu-toggle:hover,.hc-menu-toggle:focus { background:var(--hc-bg); color:var(--hc-ink); }
.hc-site-header [hidden] { display:none!important; }
.hc-site-header a:focus-visible,.hc-site-header button:focus-visible,.hc-site-footer a:focus-visible { outline:3px solid var(--hc-ink); outline-offset:4px; }
.hc-site-header .hc-language-nav { border-block-start:1px solid var(--hc-border); border-block-end:0; background:var(--hc-bg); }
.hc-site-header .hc-language-nav__inner { padding-inline:32px; justify-content:flex-end; }
.hc-site-header .hc-language-nav a { padding:4px 12px; min-inline-size:72px; }
.hc-site-footer { background:var(--hc-surface); border-block-start:1px solid var(--hc-border); margin-block-start:72px; padding-block:48px 24px; }
.hc-footer-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:72px; }
.hc-footer-brand { font-size:24px; font-weight:700; margin-block:0 16px; }
.hc-footer-description { max-inline-size:52ch; color:var(--hc-muted); font-size:16px; line-height:1.9; margin:0; }
.hc-footer-grid nav { display:flex; flex-wrap:wrap; align-content:flex-start; gap:0 24px; }
.hc-footer-bottom { margin-block-start:32px; padding-block-start:24px; border-block-start:1px solid var(--hc-border); display:flex; justify-content:space-between; gap:32px; color:var(--hc-muted); font-size:13px; line-height:1.8; }
.hc-footer-bottom p { margin:0; max-inline-size:75ch; }
.hc-footer-bottom bdi { white-space:nowrap; }
@media(max-width:1100px) { .hc-header-row,.hc-main-navigation { gap:16px; } .hc-primary-links,.hc-account-links { gap:12px; } }
@media(max-width:900px) {
 .hc-shell { padding-inline:24px; }
 .hc-header-row { flex-wrap:wrap; min-block-size:88px; }
 .hc-main-navigation { flex-basis:100%; flex-direction:column; align-items:stretch; gap:16px; padding-block:16px 8px; border-block-start:1px solid var(--hc-border); }
 .hc-primary-links { flex-direction:column; align-items:stretch; gap:0; }
 .hc-account-links { border-block-start:1px solid var(--hc-border); padding-block-start:16px; justify-content:space-between; }
 .hc-site-header .hc-language-nav__inner { padding-inline:24px; }
 .hc-footer-grid { gap:32px; }
}
@media(max-width:540px) {
 .hc-shell { padding-inline:16px; }
 .hc-brand { gap:8px; } .hc-brand-name { font-size:18px; } .hc-brand-tagline { font-size:12px; }
 .hc-menu-toggle { padding-inline:12px; }
 .hc-site-header .hc-language-nav__inner { padding-inline:16px; }
 .hc-footer-grid { grid-template-columns:1fr; gap:24px; }
 .hc-footer-bottom { flex-direction:column; gap:16px; }
 .hc-site-footer { margin-block-start:48px; padding-block-start:32px; }
}

/* Full-glyph local fonts: see fonts/provenance.json and bundled OFL licenses. */
@font-face { font-family:"Source Sans 3"; font-style:normal; font-weight:200 900; font-display:swap; src:url("fonts/source-sans-3.woff2") format("woff2"); }
@font-face { font-family:"Noto Sans Arabic"; font-style:normal; font-weight:100 900; font-display:swap; src:url("fonts/noto-sans-arabic.woff2") format("woff2"); }
body { font-size:18px; line-height:1.75; }
.site-content :is(h1,h2,h3,h4,h5,h6),.hc-site-header,.hc-site-footer { font-family:"Source Sans 3","Noto Sans Arabic",Arial,sans-serif; }
.hc-locale-ar .site-content :is(h1,h2,h3,h4,h5,h6),.hc-locale-ar .hc-site-header,.hc-locale-ar .hc-site-footer { font-family:"Noto Sans Arabic",Tahoma,Arial,sans-serif; }
.site-content :is(h1,h2,h3,h4,h5,h6) { color:var(--hc-ink); font-weight:700; text-wrap:balance; overflow-wrap:break-word; }
.site-content h1 { font-size:clamp(2rem,4vw,3rem); line-height:1.3; }
.site-content h2 { font-size:clamp(1.5rem,3vw,2.25rem); line-height:1.4; }
.site-content h3 { font-size:1.375rem; line-height:1.5; }
.hc-locale-ar .site-content :is(h1,h2,h3) { line-height:1.65; }
.site-content :is(input,select,textarea,button) { font-family:inherit; font-size:1rem; }
.site-content :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) { border:1px solid var(--hc-muted); border-radius:8px; background:var(--hc-surface); color:var(--hc-ink); padding:12px 16px; min-block-size:48px; max-inline-size:100%; }
.site-content textarea { resize:vertical; min-block-size:144px; }
.site-content :is(input,select,textarea,button,a):focus-visible { outline:3px solid var(--hc-ink); outline-offset:3px; }
.site-content [tabindex="-1"]:focus { outline:3px solid var(--hc-ink); outline-offset:3px; }
.site-content :is(input,select,textarea)[aria-invalid="true"] { border-width:2px; border-color:var(--hc-ink); }
.site-content .wp-block-button__link,.hc-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-block-size:48px; padding:12px 24px; font:inherit; font-weight:600; line-height:1.5; color:var(--hc-surface); background:var(--hc-accent); border:1px solid var(--hc-accent); border-radius:8px; text-decoration:none; }
.site-content .wp-block-button__link:hover,.hc-button:hover { color:var(--hc-surface); background:var(--hc-accent-hover); }
.site-content .is-style-outline .wp-block-button__link { color:var(--hc-accent-hover); background:var(--hc-surface); border:1px solid var(--hc-accent); }
.site-content a:not(.wp-block-button__link):not(.hc-button) { color:var(--hc-accent-hover); text-underline-offset:4px; }
.site-content .hc-language-nav a[aria-current="page"] { color:var(--hc-surface); }
.hc-notice,.hc-empty-state { padding:24px; background:var(--hc-bg); color:var(--hc-ink); border-inline-start:4px solid var(--hc-accent); overflow-wrap:anywhere; }
.hc-notice > :first-child,.hc-empty-state > :first-child { margin-block-start:0; }
.hc-notice > :last-child,.hc-empty-state > :last-child { margin-block-end:0; }
.hc-field-help { color:var(--hc-muted); font-size:.95rem; margin-block:8px 0; }
.hc-field-error { color:var(--hc-ink); font-weight:600; margin-block:8px 0; }
.hc-prose { max-inline-size:68ch; line-height:1.9; }
.hc-recovery-links { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-block:32px; }
.hc-recovery-links a { min-block-size:44px; display:inline-flex; align-items:center; }
body.error404.hc-locale-ar,body.error404.hc-locale-en { background:var(--hc-bg); }
.hc-account { font-size:1rem; }
.hc-account-page .site-content h1 { font-size:2rem; }
@media(max-width:540px) { body { font-size:17px; } .hc-notice,.hc-empty-state { padding:16px; } }
@media(prefers-reduced-motion:reduce) { .site-content *, .hc-site-header * { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

/* Native public-page composition. Gutenberg remains the editable content source. */
.hc-public-page #content > .ast-container { max-width:none; padding:0; display:block; }
.hc-public-page #primary { margin:0; width:100%; }
.hc-public-page .site-main article { padding:0; }
.hc-public-page .entry-content > .hc-public-section { max-width:1200px; margin-inline:auto; padding:72px 32px; }
.hc-public-page .entry-content .hc-public-section > :first-child { margin-block-start:0; }
.hc-public-page .entry-content .hc-public-section > :last-child { margin-block-end:0; }
.hc-public-page .entry-content .hc-hero { padding-block:80px 64px; }
.hc-public-page .hc-editorial-columns { gap:64px; align-items:center; margin:0; }
.hc-public-page .hc-hero h1 { max-inline-size:20ch; margin-block:16px 24px; }
.hc-public-page .hc-lead { max-inline-size:54ch; font-size:1.25rem; line-height:1.85; color:var(--hc-muted); }
.hc-eyebrow { color:var(--hc-accent-hover); font-size:.875rem; font-weight:700; letter-spacing:.06em; margin-block:0 16px; }
.hc-locale-ar .hc-eyebrow { letter-spacing:0; }
.hc-hero-aside { border:1px solid var(--hc-border); border-block-start:4px solid var(--hc-accent); border-radius:12px; padding:32px; background:var(--hc-bg); }
.hc-public-page .hc-hero-aside h2 { font-size:1.6rem; margin-block:16px; }
.hc-public-page .wp-block-buttons { gap:16px; margin-block-start:32px; }
.hc-public-page .hc-notice { margin-block-end:48px; }
.hc-public-page .hc-empty-state { margin-block-start:32px; border-inline-start:0; border:1px solid var(--hc-border); border-radius:12px; padding:32px; }
.hc-public-page .hc-empty-state h3 { margin-block-end:12px; }
.hc-public-page .hc-empty-state p { color:var(--hc-muted); }
.hc-tinted-section { background:var(--hc-bg); }
.hc-process { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-block:40px; }
.hc-process-step { border-block-start:1px solid var(--hc-border); padding-block-start:24px; }
.hc-step-number { font-size:1.1rem; color:var(--hc-accent-hover); font-weight:700; margin-block:0 16px; }
.hc-process-step h3 { margin-block:0 16px; }
.hc-process-step p:last-child { color:var(--hc-muted); margin:0; }
.hc-doctor-invite { border-block-start:1px solid var(--hc-border); }
.hc-public-page .hc-prose-section > :is(h2,p) { max-inline-size:68ch; }
.hc-public-page .hc-prose-section > h2 { margin-block-start:48px; }
@media(max-width:900px) { .hc-public-page .hc-editorial-columns { gap:32px; } .hc-public-page .entry-content > .hc-public-section { padding:48px 24px; } .hc-process { gap:24px; } }
@media(max-width:600px) { .hc-public-page .entry-content > .hc-public-section { padding:40px 16px; } .hc-process { grid-template-columns:1fr; gap:24px; } .hc-hero-aside { padding:24px; } .hc-public-page .hc-lead { font-size:1.125rem; } .hc-public-page .hc-empty-state { padding:24px; } .hc-public-page .wp-block-buttons { align-items:stretch; } .hc-public-page .wp-block-button { flex:1 1 100%; } .hc-public-page .wp-block-button__link { width:100%; } }

/* Override starter-template outline presets with the approved control tokens. */
.hc-public-page .site-content .wp-block-button.is-style-outline > .wp-block-button__link { background:var(--hc-surface); color:var(--hc-accent-hover); border:1px solid var(--hc-accent); border-radius:8px; }
.hc-public-page .site-content .wp-block-button.is-style-outline > .wp-block-button__link:hover { background:var(--hc-bg); }
.hc-public-page .entry-content :is(p,a,li) { font-family:inherit; }
