/* Web adaptations of Apple HIG: readable type, consistent controls, safe areas,
   keyboard focus, touch targets, predictable feedback and adaptive layouts. */
:root {
  --ui-font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --control-radius: 8px;
  --target-size: 44px;
  font-family: var(--ui-font);
  font-size: 100%;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body { font-family: var(--ui-font); font-size: 1.0625rem; }
.studio { --accent: #873b2b; --button-ink: #fff; }
#app {
  padding-left: env(safe-area-inset-left, 0px);
  padding-right: env(safe-area-inset-right, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
button, input, select, textarea { font-family: var(--ui-font); font-size: 1rem; }
button, .btn, .text-link, nav a, footer a, .demo-bar a, .business-logo, .studio-logo {
  min-width: var(--target-size);
  min-height: var(--target-size);
  touch-action: manipulation;
}
nav a, footer a, .demo-bar a, .business-logo, .studio-logo {
  display: inline-flex;
  align-items: center;
}
nav { gap: 1.5rem; }
nav a, nav button, .studio-header nav, .business-header nav,
.business-header nav button { font-size: .9375rem; line-height: 1.4; }
.btn, .studio-intro .text-link, .business-header nav .booking {
  border-radius: var(--control-radius);
  font-size: 1rem;
  font-weight: 600;
  padding: .75rem 1.25rem;
  background: var(--accent, #873b2b);
  color: var(--button-ink, #fff);
  border: 1px solid transparent;
  text-align: center;
  line-height: 1.35;
  white-space: normal;
}
.business-header nav .booking { text-decoration: none; }
.text-link, .service { font-size: 1rem; font-weight: 500; padding-block: .75rem; }
button:active, .btn:active { filter: brightness(.85); }
button:disabled, .btn[aria-disabled="true"] { opacity: .55; cursor: default; }
:focus-visible { outline: 3px solid #1763c2; outline-offset: 4px; }
.cars :focus-visible, .barber :focus-visible { outline-color: #477edf; }
:target { scroll-margin-top: 1.5rem; }
.studio-header, .business-header { gap: 1.5rem; }
.studio-hero h1, .studio-hero h1 > span {
  font-family: var(--ui-font);
  font-size: clamp(2.25rem, 1.2rem + 4vw, 4.25rem);
  letter-spacing: -.04em;
  line-height: 1.12;
  font-weight: 600;
}
.studio-intro p, .case-caption p, .method-list p, .contact-explainer,
.osteria-heading p, .menu-heading p, .apex-intro p, .bravo-bottom p,
.lumina-copy p, .care-heading p, .business .offer p, .business-end p {
  font-family: var(--ui-font);
  font-size: 1.0625rem;
  line-height: 1.6;
}
.studio-method h2, .studio-contact h2 { font-size: clamp(2rem, 1.3rem + 2vw, 3rem); line-height: 1.2; letter-spacing: -.035em; }
.section-label h2, .case-caption h3 { font-size: 1.625rem; font-weight: 600; }
.method-list h3 { font-size: 1.25rem; font-weight: 600; }
.label, .business .label, .hero-kicker, .case-caption > span, .section-label > span,
.osteria-hours, .project-note, .disclaimer, .business-footer, .studio-footer {
  font-size: .875rem;
  line-height: 1.5;
}
.offer-num, .clinic .offer strong, figcaption, .demo-bar > span {
  font-size: .8125rem;
  line-height: 1.5;
}
.offer h3 { font-size: 1.5rem; line-height: 1.3; }
.cars .offer strong { font-size: 1.25rem; }
.restaurant .service, .barber .service, .clinic .service { font-size: .9375rem; }
.osteria-heading h1 { font-size: clamp(2.75rem, 2rem + 3vw, 4.5rem); }
.bravo-type h1 { font-size: clamp(4rem, 2.5rem + 5vw, 7rem); }
.apex-title h1 { font-size: clamp(3rem, 1.5rem + 5vw, 6.5rem); }
.lumina-copy h1 { font-size: clamp(2.75rem, 1.5rem + 3vw, 4.5rem); }
.filters { gap: .5rem; flex-wrap: wrap; }
.filter {
  padding: .625rem .875rem;
  min-height: var(--target-size);
  border-radius: 6px;
  border: 1px solid #697478;
  font-size: .9375rem;
  background: transparent;
  color: #f0f1ed;
}
.filter.active { background: #e3eb56; color: #17191a; border-color: #e3eb56; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.results-status { font-size: .9375rem; margin-top: 1.5rem; color: #c7cdcf; }
.form-sheet {
  font-family: var(--ui-font);
  border: 1px solid #c6c8c0;
  border-radius: 14px;
  width: min(560px, calc(100% - 2rem));
  max-height: calc(100dvh - 2rem);
  padding: 1.5rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #fafaf8;
  color: #262923;
  box-shadow: 0 16px 60px #0003;
  color-scheme: light;
}
.form-sheet::backdrop { background: #1118; backdrop-filter: none; }
.form-sheet h2 { font: 600 1.5rem/1.25 var(--ui-font); letter-spacing: -.025em; margin: .5rem 0 1rem; clear: both; }
.form-sheet h2:focus { outline: none; }
.form-sheet p { font-size: 1rem; line-height: 1.5; color: #50554b; }
.form-sheet .close { float: right; padding: .625rem .75rem; min-height: 44px; font-size: 1rem; line-height: 1.4; color: #383d33; background: #e9ebe5; border-radius: 8px; margin: 0 0 1rem 1rem; }
.form-sheet label { font-size: 1rem; font-weight: 500; margin: 1.5rem 0 .5rem; }
.form-sheet input, .form-sheet select, .form-sheet textarea {
  min-height: 48px;
  padding: .75rem;
  font-size: 1rem;
  line-height: 1.5;
  border: 1px solid #878d80;
  border-radius: 8px;
  background: white;
  color: #262923;
}
.form-sheet textarea { min-height: 120px; }
.form-sheet .field-hint { font-size: .875rem; margin-top: .75rem; }
.form-sheet .form-actions { margin-top: 1.5rem; }
.form-sheet .form-status { font-size: .9375rem; margin-top: 1rem; }
.form-sheet .form-status:empty { display: none; }
.form-sheet .btn { min-height: 48px; }
.business-footer, .studio-footer { align-items: center; gap: .75rem 1.5rem; }
@media (max-width: 48rem) {
  .studio-header, .business-header { flex-wrap: wrap; gap: .75rem; }
  .studio-header nav, .business-header nav { display: flex; flex-wrap: wrap; width: 100%; gap: .5rem 1rem; }
  .studio-header nav a, .business-header nav > a, .business-header nav > a:nth-child(2) { display: inline-flex; }
  .business-header nav .booking { margin-left: auto; }
  .studio-header nav { justify-content: space-between; }
  .studio-intro { grid-template-columns: 1fr; }
  .studio-intro .text-link { justify-self: start; }
  .studio-header nav a:last-child { border-bottom: 0; }
  .case, .case-apex { display: flex; flex-direction: column; align-items: stretch; }
  .case-pair, .studio-method, .osteria-hero, .osteria-menu, .bravo-hero, .bravo-services, .lumina-hero, .lumina-care { grid-template-columns: 1fr; }
  .case-apex .case-caption { grid-column: auto; grid-row: auto; }
  .stock-heading { display: block; }
  .stock-heading h2 { margin-bottom: 1rem; }
  .cars .offer { grid-template-columns: 1.5rem minmax(0, 1fr); }
  .cars .offer strong, .cars .service { grid-column: 2; }
  .barber .offer { grid-template-columns: 1.5rem minmax(0, 1fr); }
  .barber .offer strong, .barber .service { grid-column: 2; }
  .restaurant .offer { grid-template-columns: minmax(0, 1fr); }
  .studio-hero h1 br { display: none; }
  .studio-hero h1 > span { display: inline; }
  .studio-hero h1 > span::before { content: ' '; }
  .form-sheet {
    width: 100%; max-width: 100%; margin: auto 0 0;
    max-height: calc(100dvh - env(safe-area-inset-top, 0px) - 1rem);
    border-radius: 14px 14px 0 0;
    padding: 1.25rem max(1.25rem, env(safe-area-inset-right, 0px)) max(1.5rem, env(safe-area-inset-bottom, 0px)) max(1.25rem, env(safe-area-inset-left, 0px));
  }
  .form-sheet .form-actions .btn { width: 100%; }
  .business-footer > span:nth-child(2) { width: auto; }
}
@media (prefers-contrast: more) {
  p, .case-caption p, .method-list p, .form-sheet p { color: inherit; }
  .text-link, .offer, .method-list article, .section-label { border-color: currentColor; }
  .filter { border-width: 2px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.all-directions{margin:0 0 35px;font-size:18px}.all-directions a{display:inline-flex;align-items:center;min-height:48px;padding:12px 20px;border:1px solid currentColor;text-underline-offset:5px}
