/* Production adaptations reuse the approved prototype components and tokens. */
.honeypot { position:absolute; inline-size:1px; block-size:1px; overflow:hidden; clip-path:inset(50%); }
.flash { margin-block:20px; padding:15px; background:var(--teal-wash); color:var(--teal); border-radius:6px; }
.form-success { color:var(--teal); }
.service-list-item > div { flex:1; }
.service-list-item p { font-size:11px; margin-top:7px; line-height:1.8; }
.service-list-item > span:last-child { margin-inline-start:auto; font-size:18px; }
.filter-tabs a { padding:9px 12px; font-size:11px; border-radius:5px; color:var(--muted); }
.filter-tabs a.active { background:var(--gold-wash); color:var(--ink); font-weight:600; }
.listing-tools select { max-width:180px; padding:10px; border:1px solid var(--line); background:var(--surface); border-radius:5px; }
.narrow-page { max-width:620px; }
.policy-page form { margin-top:25px; }
.policy-page .field { margin-bottom:18px; }
.production-booking { align-items:start; padding-bottom:90px; }
.production-booking .booking-panel { padding:30px; }
.production-booking .booking-panel h3 { margin:28px 0 20px; }
.production-booking .booking-summary h2 { font-size:32px; margin:20px 0; }
.production-booking .booking-summary p { margin-top:20px; }
.production-slots { display:grid; gap:10px; max-height:420px; overflow:auto; margin:25px 0; }
.production-slot { display:flex; align-items:center; gap:10px; border:1px solid var(--line); padding:15px; font-size:12px; cursor:pointer; border-radius:6px; }
.production-slot > span:last-child { margin-inline-start:auto; font-size:10px; color:var(--teal); }
.production-slot:has(input:checked) { background:var(--teal-wash); border-color:var(--teal); }
.slot-unavailable { opacity:.5; cursor:default; }
.zone-select { display:grid; font-size:11px; gap:5px; color:var(--muted); }
.zone-select select { padding:7px; border:1px solid var(--line); background:var(--surface); font:inherit; max-width:190px; }
.contact-form-panel { padding:35px; }
.course-summary form { margin-top:20px; }
.course-summary h3 { margin-top:25px; }
.course-summary .info-note { margin:22px 0; }
.course-summary .button { margin-top:15px; }
.reservation-page { padding-block:65px 90px; max-width:780px; }
.reservation-page h1 { margin:20px 0; }
.reservation-page h2 { font-size:30px; margin-bottom:20px; }
.reservation-page > p { margin:15px 0; }
.reservation-content { padding:25px; margin:25px 0; }
.reservation-content p + p { margin-top:12px; }
.reservation-page form { margin:22px 0; }
.reservation-page .field { margin-bottom:15px; }
.staff-login { max-width:570px; margin:65px auto; padding:0 25px; }
.staff-login .panel { padding:40px; margin:32px 0 22px; }
.staff-login h1 { font-size:41px; margin:18px 0; }
.staff-login form { margin-top:30px; }
.staff-login .field { margin-bottom:18px; }
.staff-login > a:last-child { font-size:12px; color:var(--muted); }
.staff-shell { min-height:100vh; }
.staff-sidebar { overflow-y:auto; }
.staff-sidebar nav a { gap:12px; font-size:12px; padding-block:10px; }
.nav-marker { display:grid; place-items:center; min-width:20px; width:20px; height:20px; border:1px solid var(--surface)40; font-size:9px; border-radius:4px; }
.staff-sidebar .nav-marker { display:grid; }
.staff-sidebar-note { position:static; margin-top:20px; }
.editor-panel { padding:28px; margin-top:28px; scroll-margin-top:30px; }
.editor-panel > h2 { font:500 24px var(--font-en); margin-bottom:24px; letter-spacing:-.4px; }
.editor-panel > p { font-size:12px; margin-bottom:20px; }
.staff-form .field { margin-bottom:15px; }
.staff-form .field > input,.staff-form .field > select,.staff-form .field > textarea { width:100%; min-width:0; }
.staff-form .modal-actions { margin-top:15px; }
.staff-form .catalogue-fieldset { margin-top:20px; }
.checkbox-field { display:flex; align-items:center; gap:10px; font-size:12px; margin:22px 0; }
.program-card-bottom form { display:inline; }
.catalogue-table td form { margin-top:12px; font-size:11px; }
.record-card { border-bottom:1px solid var(--line); padding:22px; }
.record-card > summary { display:flex; justify-content:space-between; gap:15px; cursor:pointer; list-style:none; align-items:center; }
.record-card summary small { display:block; color:var(--muted); margin-top:7px; font-size:10px; }
.record-details { border-top:1px solid var(--line); margin-top:22px; padding-top:10px; }
.record-details .staff-form { margin:18px 0; }
.record-details .catalogue-actions { margin-top:15px; }
.record-card > p { font-size:13px; margin:15px 0; }
.content-tabs { display:flex; gap:10px; flex-wrap:wrap; }
.onboarding-panel { padding:25px; }
.onboarding-panel h2 { font-size:26px; }
.onboarding-panel ol { padding-inline-start:20px; font-size:13px; line-height:2.4; margin-top:20px; }
.onboarding-panel p { font-size:12px; margin-top:20px; }
.ui-autocomplete { background:var(--surface); border:1px solid var(--line); list-style:none; padding:8px; max-height:250px; overflow:auto; max-width:400px; z-index:50; font-size:13px; }
.ui-menu-item { padding:6px; cursor:pointer; }
.ui-state-active { background:var(--teal-wash); }
.ui-helper-hidden-accessible { position:absolute; clip-path:inset(50%); width:1px; height:1px; overflow:hidden; }

@media(max-width:800px) { .production-slot { flex-wrap:wrap; } .staff-account form { font-size:11px; } }
@media(max-width:640px) {
 .production-booking .booking-panel,.contact-form-panel { padding:22px; }
 .booking-heading { flex-wrap:wrap; gap:15px; }
 .production-booking { padding-bottom:50px; }
 .production-slot { font-size:11px; padding:12px; }
 .course-summary { margin-top:20px; }
 .staff-login { margin-block:35px; }
 .staff-login .panel { padding:25px; }
 .staff-login h1 { font-size:34px; }
 .editor-panel { padding:20px; }
 .record-card { padding:18px; }
 .record-card > summary { align-items:start; flex-direction:column; }
 .staff-topbar { padding:15px; gap:10px; }
 .staff-topbar > span { display:none; }
 .staff-account { width:100%; justify-content:space-between; }
 .staff-sidebar .nav-marker { display:grid; }
 .staff-sidebar nav a { padding:12px 8px; }
 .editor-panel .form-grid { grid-template-columns:minmax(0,1fr); }
 .listing-tools { flex-wrap:wrap; }
 .listing-tools .search-field { width:100%; }
 .reservation-page h1 { font-size:44px; }
}

/* Approved identity: one original image across navigation, footer and workspace. */
.brand { flex-shrink:0; border-radius:50%; }
.brand-logo { display:block; inline-size:var(--logo-size); block-size:var(--logo-size); object-fit:contain; border-radius:50%; }
html:not([data-theme=light]) .brand-logo, .staff-sidebar .brand-logo { background:var(--logo-backing); padding:6px; }
.header-inner { min-height:108px; gap:24px; padding-block:10px; }
.header-actions { gap:18px; }
.desktop-nav { gap:26px; }
.desktop-nav a { font-size:14px; }
.desktop-nav a.active { font-weight:600; }
.desktop-nav a.active::after { background:var(--gold-text); }
.language-button { min-height:44px; font-size:13px; }
.icon-button { width:44px; height:44px; flex-shrink:0; border-color:var(--control-line); }
.theme-toggle { color:var(--ink); }
.theme-toggle .theme-sun, html[data-theme=dark] .theme-moon { display:none; }
html[data-theme=dark] .theme-sun { display:block; }
html:not(.js) .theme-toggle { display:none; }
.login-branding { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.footer-brand { --logo-size:100px; }
.staff-sidebar .brand { align-self:center; width:auto; padding:0; margin-bottom:26px; overflow:visible; --logo-size:108px; }
.staff-sidebar { background:var(--ink-deep); }
.staff-sidebar nav a.active { box-shadow:inset 3px 0 var(--accent); color:var(--inverse-accent); }
.staff-sidebar :focus-visible { outline-color:var(--inverse-accent); }
.staff-sidebar-note button { min-height:44px; }

/* Keep identity colors on fixed dark surfaces independent of foreground tokens. */
.approach-section .eyebrow, .step-number, .approach-glyph > span,
.sheet-back > span:last-child, .art-spoken p span,
.service-card:first-child .eyebrow, .service-card:first-child .round-link,
.staff-sidebar-note > span { color:var(--inverse-accent); }
.approach-section :focus-visible, .service-card:first-child :focus-visible { outline-color:var(--inverse-accent); }
.service-card:first-child .round-link:hover { color:var(--accent-ink); }
.service-card:first-child .service-number { color:var(--inverse-muted); }
.service-card:first-child .price-quote { color:var(--inverse-muted); }
.day-button.selected, .booking-steps .active i { color:var(--inverse-accent); }
.toast.error { color:var(--danger); }
.button-white { color:var(--ink); }
.button-outline { border-color:var(--control-line); }
.round-link:hover { color:var(--accent-ink); }
.art-spoken { background:var(--brand); }
.badge.green { background:var(--success-wash); }

/* Readable bilingual type; system fonts stay local and load without layout shifts. */
body { font-size:16px; }
h1, h2 { letter-spacing:-.03em; }
p { text-wrap:pretty; }
.hero .eyebrow, .eyebrow, .approach-section .eyebrow,
.booking-summary .eyebrow, .cta-section .eyebrow { font-size:12px; }
.hero-description, .section-intro, .page-intro > p,
.contact-copy > p, .service-detail p, .detail-panel p { font-size:16px; }
.section-heading-aside p, .services-home .section-intro,
.approach-intro > p, .approach-steps p, .service-list-item p,
.service-card > p, .course-card-body > p, .booking-summary > p,
.footer-brand > p, .policy-page > p { font-size:14px; }
.hero-facts, .card-labels > span:last-child, .course-meta,
.footer-grid h3, .footer-grid > div:not(:first-child) > a,
.footer-language, .footer-bottom, .small-note, .field-help,
.form-privacy, .price > span, .price-quote { font-size:12px; }
.button { font-size:14px; }
.button-small, .staff-title .button, .staff-form .button { min-height:44px; font-size:13px; }
.field, .checkbox-field, .checkbox-list label { font-size:14px; }
.field input, .field select, .field textarea { font-size:16px; min-height:46px; }
.field-error, .form-error { font-size:14px; }
input::placeholder, textarea::placeholder { color:var(--muted); opacity:1; }
input[type=checkbox], input[type=radio] { accent-color:var(--teal); }
.search-field, .select-wrap select, .staff-filters select,
.staff-filters > input[type=date], .zone-select select,
.listing-tools select, .production-slot { border-color:var(--control-line); color:var(--text); }
.search-field:focus-within { outline:3px solid var(--teal); outline-offset:3px; }
.search-field > input, .staff-filters select, .listing-tools select { font-size:14px; }
.zone-select, .zone-select select, .production-slot, .production-slot > span:last-child { font-size:13px; }
.production-slot > span:last-child { color:var(--teal); }
.filter-tabs a, .filter-tabs button { font-size:13px; min-height:44px; display:inline-flex; align-items:center; }
.staff-sidebar nav a { font-size:13px; min-height:44px; }
.workspace-label { font-size:11px; }
.staff-title p, .staff-topbar > span, .staff-account strong,
.staff-account small, .stat-card > div > span, .stat-card p,
.record-card summary small, .data-table th, .table-muted,
.catalogue-table .catalogue-arabic, .catalogue-row-actions .text-button { font-size:12px; }
.data-table td, .staff-panel-heading h2, .staff-panel-heading p,
.staff-form > p, .program-card > p:not(.catalogue-arabic),
.onboarding-panel p, .catalogue-fieldset legend { font-size:14px; }
.data-table th { font-weight:600; }
.data-table .badge, .badge { font-size:12px; }
.breadcrumb, .staff-sidebar-note a, .staff-sidebar-note button,
.professional-card time, .professional-customer p { font-size:12px; }
.professional-card h3, .professional-customer strong { font-size:14px; }
.staff-panel-heading a, .table-action { min-height:36px; font-size:12px; }
.catalogue-weekdays label { font-size:13px; }
.catalogue-weekdays input { flex-shrink:0; }
html[dir=rtl] h1, html[dir=rtl] h2, html[dir=rtl] .course-card h3,
html[dir=rtl] .service-list-item h3 { letter-spacing:normal; }

@media(max-width:900px) and (min-width:641px) {
 .staff-sidebar .brand { --logo-size:44px; }
 .staff-sidebar .brand-logo { padding:3px; }
}
@media(max-width:640px) {
 .brand { --logo-size:72px; }
 .header-inner { min-height:92px; gap:12px; }
 .header-actions { gap:12px; }
 .mobile-menu-button { width:44px; height:44px; }
 .mobile-nav a { min-height:44px; display:flex; align-items:center; font-size:14px; }
 .hero h1 { font-size:clamp(58px,15vw,82px); }
 .hero .eyebrow, html[dir=rtl] .hero .eyebrow { font-size:11px; }
 .hero-actions { flex-wrap:wrap; gap:20px; }
 .hero-actions .subtle-link { font-size:13px; }
 .footer-brand .brand { --logo-size:88px; }
 .footer-bottom { flex-wrap:wrap; gap:16px; }
 .staff-sidebar .brand { display:inline-flex; --logo-size:64px; margin-bottom:16px; }
 .staff-sidebar { padding-top:16px; }
 .staff-sidebar nav a > span { font-size:12px; }
 .staff-account strong, .staff-account small { font-size:12px; }
 .catalogue-actions .button { font-size:13px; }
 .staff-form .field input, .staff-form .field select, .staff-form .field textarea { font-size:16px; }
}

/* Text-only public biographies: shared visual weight, natural RTL and no images. */
.people-section { padding-block: 12px 72px; scroll-margin-top: 120px; }
.people-section + .people-section { padding-top: 32px; border-top: 1px solid var(--line); }
.people-section .section-heading { gap: 32px; align-items: end; }
.people-section h2, .home-people-link h2 { font-size: clamp(30px, 3.5vw, 48px); letter-spacing: -1px; margin-block: 14px 0; }
.people-intro { max-width: 420px; color: var(--muted); font-size: 16px; line-height: 1.8; }
.people-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.person-bio { display: flex; flex-direction: column; align-items: start; min-width: 0; padding: 36px; border: 1px solid var(--line); border-top: 3px solid var(--accent); border-radius: var(--radius); background: var(--surface); overflow-wrap: anywhere; }
.person-bio header { width: 100%; }
.person-category { font-size: 12px; color: var(--gold-text); }
.person-bio h3 { font-size: 30px; letter-spacing: -.5px; margin-block: 18px 10px; }
.person-headline { color: var(--teal); font-size: 16px; line-height: 1.6; margin: 0; }
.person-story { padding-block: 22px 8px; width: 100%; }
.person-story p, .person-credentials p { font-size: 16px; line-height: 1.9; margin-block: 0 16px; }
.person-credentials { width: 100%; border-top: 1px solid var(--line); padding-top: 20px; }
.person-credentials h4 { font-family: var(--font-en); color: var(--muted); font-size: 12px; font-weight: 600; margin-block: 0 10px; }
.person-credentials p { color: var(--muted); font-size: 14px; }
.person-link { margin-top: auto; min-height: 44px; display: inline-flex; align-items: center; }
.home-people-link { border-top: 1px solid var(--line); padding-block: 48px; }
.home-people-link .subtle-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 20px; }
#public-bio, .editor-panel[id^=founder-] { scroll-margin-top: 24px; }
html[dir=rtl] .person-bio h3, html[dir=rtl] .people-section h2, html[dir=rtl] .home-people-link h2 { letter-spacing: normal; }
html[dir=rtl] .person-credentials h4 { font-family: var(--font-ar); }
@media(max-width: 760px) {
 .people-section { padding-bottom: 44px; }
 .people-section .section-heading { flex-direction: column; align-items: start; gap: 16px; }
 .people-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
 .person-bio { padding: 26px; }
 .person-bio h3 { font-size: 27px; }
}
