/* Hallmark · shape: Editorial studio · genre: editorial · theme: brand · redesign: full · job: book · paper: brand paper · accent: brand blue · display: Playfair Display · body: DM Sans · hero: Stage (/) Banner (/style-hub) Settled (/rent-a-chair) · nav: compact edge-aligned · footer: contact mast · signature: the actual barber chair beside the service introduction · posture: Restrained · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H4 E3 S5 R4 V4 · weakest: E, inherited widgets and long managed copy require narrow-screen checks. */
@import url("./tokens.css?v=20261112hallmark1");
@import url("./base.css?v=20261112hallmark1");
html, body { overflow-x: clip; }
body { background: var(--color-paper); color: var(--color-ink); font-family: var(--font-body); }
body .page-width { width: min(calc(100% - var(--gutter) * 2), var(--container)); max-width: var(--container); }
body .site-header { position: relative; background: var(--color-paper); border-bottom: 1px solid var(--color-rule); box-shadow: none; }
body .header-inner { min-height: 88px; gap: var(--space-lg); }
body .brand { gap: var(--space-md); }
body .brand-name { font-size: var(--text-lg); }
body .main-nav { gap: var(--space-lg); }
body .main-nav > a:not(.button) { font-family: var(--font-body); font-size: var(--text-sm); letter-spacing: 0; text-transform: none; white-space: nowrap; }
body .visit-actions { padding-bottom: var(--space-sm); }
body .visit-action { border-radius: var(--radius-card); min-height: 44px; font-size: var(--text-sm); }
body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--color-focus); outline-offset: 4px; transition: none; }
body :is(button, .button, .visit-action, .side-booking-button) { white-space: nowrap; }
body :is(button, .button):active { transform: translateY(1px); }
body button:disabled, body button[aria-disabled="true"] { opacity: .55; cursor: not-allowed; transform: none; }
body button[aria-busy="true"] { cursor: progress; }
body :is(h1, h2, h3) { min-width: 0; overflow-wrap: break-word; text-wrap: balance; }
body h1 em { font-style: normal; font-weight: inherit; color: inherit; }
body .eyebrow { font-family: var(--font-body); text-transform: none; letter-spacing: 0; }
body[data-page] .services-intro.barber-opening { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: var(--space-2xl); padding-block: var(--space-xl); min-height: min(660px, calc(100svh - 144px)); }
body .barber-opening > div { display: flex; flex-direction: column; align-items: flex-start; }
body .barber-opening h1 { font-family: var(--font-display); font-size: clamp(2.5rem, 4.3vw, 4.75rem); font-weight: 700; line-height: 1.05; max-width: 17ch; margin: 0 0 var(--space-lg); letter-spacing: var(--tracking-display); }
body .barber-opening .lead { font-size: var(--text-lead); line-height: 1.5; max-width: 34ch; color: var(--color-ink-2); }
body .barber-opening-photo { width: 100%; height: clamp(360px, 42vw, 560px); margin: 0; background: var(--color-paper-2); overflow: clip; border-radius: var(--radius-card); }
body .barber-opening-photo img { width: 100%; height: 100%; object-fit: cover !important; object-position: 50% 55%; }
body .barber-opening-actions { margin-top: var(--space-xl); display: flex; flex-wrap: wrap; gap: var(--space-sm); }
body .barber-opening-actions .side-booking-button { width: auto; min-height: 48px; padding: var(--space-sm) var(--space-lg); border: 0; border-radius: var(--radius-card); background: var(--color-accent); color: var(--color-accent-ink); font-size: var(--text-md); font-family: var(--font-body); text-transform: none; letter-spacing: 0; }
body .barber-opening-actions .side-booking-button:hover { background: var(--blue-dark); }
body .barber-opening .barber-context-note { margin: var(--space-xl) 0 0; font-size: var(--text-sm); color: var(--color-muted); }
body .barber-opening-actions .side-booking-button svg:last-child { display: none; }
body .page-image-header.page-width { width: min(calc(100% - var(--gutter) * 2), var(--container)); max-width: var(--container); border: 0; border-radius: var(--radius-card); background: var(--color-paper-2); margin-block: var(--space-xl); }
body .page-header-slide { background: var(--color-paper-2); }
body .page-header-controls button, body .page-header-playback { color: var(--color-ink); background: var(--color-paper); border: 1px solid var(--color-rule); }
body .page-header-dots button { width: 44px; height: 44px; border: 14px solid var(--color-paper); background: var(--color-ink-2); border-radius: var(--radius-pill); transition: opacity var(--dur-short) var(--ease-out); }
body .page-header-dots button.active { width: 44px; background: var(--color-accent); }
@media (max-width: 900px) {
  body .header-inner { min-height: 76px; }
  body .main-nav { background: var(--color-paper); }
  body .main-nav:not(.open) { pointer-events: none; }
  body[data-page] .services-intro.barber-opening { grid-template-columns: minmax(0, 1fr); min-height: 0; gap: var(--space-xl); padding-block: var(--space-xl); }
  body .barber-opening-photo { height: auto; aspect-ratio: 4 / 3; }
  body .barber-opening h1 { max-width: 21ch; }
  body .barber-opening .barber-context-note { margin-top: var(--space-lg); }
}
@media (max-width: 480px) {
  body .brand-name { font-size: var(--text-md); }
  body .barber-opening h1 { font-size: 2.6rem; }
  body .barber-opening-actions { margin-top: var(--space-lg); }
  body .page-header-dots { bottom: var(--space-2xs); left: var(--space-xs); transform: none; gap: 0; }
  body .page-header-dots button { width: 36px; border-width: 12px; }
  body .page-header-dots button.active { width: 36px; }
}
@media (prefers-reduced-motion: no-preference) {
  html:not(.site-a11y-reduce-motion) .barber-opening > div { animation: barber-arrive 420ms var(--ease-out) both; }
}
@keyframes barber-arrive { from { transform: translateY(8px); opacity: .9; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { body .barber-opening > div, body :is(.button, .visit-action, .side-booking-button) { animation: none; transition: none; transform: none; } }
.site-a11y-reduce-motion .barber-opening > div { animation: none; }
body.hallmark-barber .reveal { opacity: 1; transform: none; }
body .button { min-height: 48px; border-radius: var(--radius-card); font-family: var(--font-body); font-size: var(--text-sm); text-transform: none; letter-spacing: 0; }
body .button-primary, body .service-book-button { color: var(--color-accent-ink); background: var(--color-accent); border-color: var(--color-accent); }
body .button-outline:not(.service-book-button) { color: var(--color-ink); background: transparent; border-color: var(--color-ink-2); }
body .cinematic-feature { width: min(calc(100% - var(--gutter) * 2), var(--container)); max-width: var(--container); margin: var(--space-2xl) auto; padding: 0; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: center; gap: var(--space-2xl); border: 0; border-radius: 0; box-shadow: none; background: transparent; }
body .cinematic-feature__title { font-family: var(--font-display); font-size: var(--text-section); color: var(--color-ink); line-height: 1.1; }
body .cinematic-feature__copy > p:last-of-type { color: var(--color-ink-2); font-size: var(--text-md); line-height: 1.6; }
body .cinematic-feature__copy > .button { margin-top: var(--space-lg); }
body .cinematic-feature__frame { border-radius: var(--radius-card); box-shadow: none; }
body .services-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3xl); margin-top: var(--space-2xl); padding-bottom: var(--space-3xl); }
body .service-list { gap: 0; }
body .service-row { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--space-2xl); min-height: 320px; padding-block: var(--space-xl); border: 0; border-top: 1px solid var(--color-rule); border-radius: 0; box-shadow: none; background: transparent; }
body .service-row:last-child { border-bottom: 1px solid var(--color-rule); }
body .service-title { padding: 0; gap: var(--space-lg); align-items: flex-start; }
body .service-title > svg, body .service-title > .custom-service-icon { margin-top: var(--space-xs); }
body .service-title h2 { font-family: var(--font-display); font-size: var(--text-section); font-weight: 700; line-height: 1.1; text-transform: none; }
body .service-title :is(p, span) { font-family: var(--font-body); font-size: var(--text-md); font-weight: 400; letter-spacing: 0; text-transform: none; line-height: 1.6; }
body .service-title .service-book-button { margin-top: var(--space-lg); }
body .service-gallery { min-width: 0; align-self: center; }
body .service-images { gap: var(--space-md); }
body .service-image { min-width: 200px; flex-basis: 45%; border-radius: var(--radius-card); box-shadow: none; }
body .service-image-media { min-height: 240px; background: var(--color-paper-2); }
body .service-row:hover .service-image img { transform: none; }
body .service-image-meta { background: transparent; padding: var(--space-sm) 0; }
body .service-image-meta strong { font-family: var(--font-body); font-size: var(--text-sm); letter-spacing: 0; text-transform: none; }
body .gallery-arrow { opacity: 1; pointer-events: auto; }
body .top-booking-strip { width: min(calc(100% - var(--gutter) * 2), var(--container)); max-width: var(--container); border: 0; border-radius: 0; background: var(--color-paper-2); box-shadow: none; padding: var(--space-lg); margin-block: var(--space-xl); }
body .top-booking-strip .side-booking-button { background: transparent; color: var(--color-ink); border: 1px solid var(--color-ink-2); border-radius: var(--radius-card); text-transform: none; letter-spacing: 0; min-height: 48px; }
body .education-site-teaser { width: min(calc(100% - var(--gutter) * 2), var(--container)); max-width: var(--container); margin: var(--space-2xl) auto; padding: var(--space-xl) 0; border: 0; border-block: 1px solid var(--color-rule); border-radius: 0; background: transparent; box-shadow: none; }
body .education-site-teaser h2 { font-family: var(--font-display); font-size: var(--text-section); line-height: 1.1; }
body .education-site-teaser p { font-size: var(--text-md); }
body .social-rail { gap: var(--space-lg); }
body .social-rail > .panel { border-radius: var(--radius-card); box-shadow: none; }
body .social-rail :is(h2, h3) { font-family: var(--font-display); }
body .social-rail .instagram-widget-fallback { background: var(--blue-dark); }
body .social-rail .instagram-widget-fallback strong { color: var(--color-accent-ink); background: var(--blue-dark); padding: var(--space-sm); }
body .local-contact-section, body .local-service-areas { width: min(calc(100% - var(--gutter) * 2), var(--container)); max-width: var(--container); margin: var(--space-2xl) auto; padding: var(--space-xl) 0; background: transparent; border: 0; border-top: 1px solid var(--color-rule); border-radius: 0; box-shadow: none; }
body .local-contact-section h2, body .local-service-areas h2 { font-family: var(--font-display); font-size: var(--text-section); }
body .local-contact-action, body .local-service-area-list > a { border-radius: var(--radius-card); color: var(--color-ink); background: var(--color-paper); }
body .content-page { padding-block: var(--space-xl); }
body .content-hero { max-width: none; padding-block: var(--space-xl) var(--space-2xl); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--space-2xl); align-items: start; }
body .content-hero h1 { grid-column: 1; font-size: var(--text-display); }
body .content-hero .eyebrow { grid-column: 1 / -1; }
body .content-hero .lead { grid-column: 2; grid-row: 2; font-size: var(--text-lead); line-height: 1.6; }
body .style-hub-booking-action { grid-column: 1; margin-top: var(--space-lg); }
body .hub-tools { padding: var(--space-xl) 0; border: 0; border-block: 1px solid var(--color-rule); border-radius: 0; background: transparent; box-shadow: none; }
body .hub-tools input { border: 1px solid var(--color-muted); border-radius: var(--radius-card); min-height: 48px; font-size: var(--text-md); }
body :is(.article-grid, .hub-featured .article-grid) { gap: var(--space-xl); }
body .article-card { border: 0; border-top: 1px solid var(--color-rule); border-radius: 0; box-shadow: none; background: transparent; }
body .article-card h3 { font-family: var(--font-display); font-size: var(--text-title); }
body :is(.soro-blog-card-date, .soro-blog-card-meta) { color: var(--color-ink-2) !important; }
body .rent-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-2xl); align-items: center; padding-block: var(--space-xl); }
body .rent-hero-copy { grid-column: 1; grid-row: 1; }
body .rent-hero-images { grid-column: 2; grid-row: 1; min-height: 460px; border-radius: var(--radius-card); }
body .rent-hero h1 { font-size: var(--text-display-s); }
body .rent-hero .lead { font-size: var(--text-lead); }
body .contact-panel { margin-top: var(--space-lg); padding: var(--space-lg) 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body .feature-strip { margin-block: var(--space-2xl); padding-block: var(--space-lg); border: 0; border-block: 1px solid var(--color-rule); border-radius: 0; background: transparent; }
body .space-gallery { margin-block: var(--space-2xl); }
body .rent-details { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-2xl); margin-block: var(--space-3xl); }
body .detail-card { padding: var(--space-xl) 0; border: 0; border-top: 1px solid var(--color-rule); border-radius: 0; box-shadow: none; background: transparent; }
body .card-kicker { font-family: var(--font-display); font-size: var(--text-title); letter-spacing: 0; text-transform: none; }
body .site-footer { padding-block: var(--space-2xl) var(--space-xl); color: var(--color-accent-ink); background: var(--blue-dark); }
body .footer-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-xl); align-items: start; }
body .footer-brand { grid-column: 1 / -1; display: flex; align-items: center; gap: var(--space-lg); }
body .footer-brand p { max-width: 55ch; font-family: var(--font-display); font-size: var(--text-title); }
body .footer-detail { color: var(--color-accent-ink); font-size: var(--text-md); }
body .footer-detail small { color: var(--color-accent-ink); font-family: var(--font-body); letter-spacing: 0; text-transform: none; font-size: var(--text-sm); }
body .footer-map-card { grid-column: span 2; }
body .footer-socials { align-self: end; }
body .footer-copyright { color: var(--color-accent-ink); }
body .policy-modal-close { position: absolute; top: var(--space-md); }
@media (max-width: 900px) {
  body :is(.cinematic-feature, .service-row, .content-hero, .rent-hero, .rent-details) { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); }
  body :is(.content-hero .lead, .rent-hero-copy, .rent-hero-images) { grid-column: auto; grid-row: auto; }
  body .content-hero .lead { margin-top: var(--space-lg); }
  body .rent-hero-copy { order: -1; }
  body .service-title h2 { font-size: 2.25rem; }
  body .rent-hero-images { min-height: 320px; }
  body .service-row { padding-block: var(--space-xl); }
  body .footer-inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  body .footer-brand { flex-direction: column; align-items: flex-start; }
  body .footer-map-card { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  body .footer-inner { grid-template-columns: minmax(0, 1fr); }
  body .social-rail { grid-template-columns: minmax(0, 1fr); }
  body .service-image { min-width: 180px; }
  body .education-site-teaser { grid-template-columns: minmax(0, 1fr); }
  body .cinematic-feature { margin-block: var(--space-xl); }
}
body .local-contact-ribbon { width: min(calc(100% - var(--gutter) * 2), var(--container)); max-width: var(--container); margin: var(--space-2xl) auto; padding: var(--space-xl) 0; background: transparent; border: 0; border-block: 1px solid var(--color-rule); border-radius: 0; box-shadow: none; }
body .local-contact-ribbon::after { content: none; }
body .local-contact-ribbon h2 { font-family: var(--font-display); font-size: var(--text-section); }
body .authority-panel { padding: var(--space-xl) 0; border: 0; border-block: 1px solid var(--color-rule); background: transparent; border-radius: 0; box-shadow: none; gap: var(--space-2xl); }
body .authority-panel h2 { font-family: var(--font-display); font-size: var(--text-section); }
body .authority-panel li { padding: var(--space-md) 0; background: transparent; border: 0; border-bottom: 1px solid var(--color-rule); border-radius: 0; font-weight: 500; }
body .footer-brand p, body .footer-detail svg, body .footer-map-card :is(a,svg), body .copyright, body .footer-policy-links :is(button,span) { color: var(--color-accent-ink); }
body .footer-policy-links button { border-color: var(--color-accent-ink); font-size: var(--text-sm); }
body .copyright { font-size: var(--text-sm); line-height: 1.6; }
body .footer-map-card a, body .footer-socials a { min-height: 44px; }
body .footer-map-card a { font-size: var(--text-sm); }

body .site-footer :is(a,button,[tabindex]):focus-visible { outline-color: var(--color-accent-ink); }

body .service-image { display: grid; grid-template-rows: minmax(0, 240px) auto; height: auto; min-height: 0; overflow: clip; }
body .service-image-media { min-height: 0; height: 240px; }
body .service-image-meta { position: relative; min-height: 48px; padding: var(--space-sm); }
body .service-image-meta strong { overflow: visible; white-space: normal; line-height: 1.4; }
body .page-header-playback { right: auto; left: var(--space-md); bottom: var(--space-sm); min-height: 44px; }
body .page-header-dots { bottom: 60px; }
body .unavailable-panel { padding-block: var(--space-2xl); }
body .unavailable-panel h1 { font-size: var(--text-display-s); }
@media (max-width: 560px) { body .page-header-dots { bottom: 60px; } body .service-image { grid-template-rows: minmax(0, 200px) auto; } body .service-image-media { height: 200px; } }
