:root { --paper:#F2EDE3; --ink:#24201E; --plum:#601F45; --khaki:#636A42; }
.ui-icon { width:1em; height:1em; display:inline-block; vertical-align:-.12em; flex:none; }
.menu .ui-icon { width:22px; height:22px; }
.menu[aria-expanded="false"] .icon-close, .menu[aria-expanded="true"] .icon-menu { display:none; }
a, button, summary { min-height:44px; min-width:44px; }
.skip, .main-nav a, .footer-bottom a, .top-link, .contact-lines a, .contact-phone,
.menu-call, .request-consent a, .instagram>a, .salon-back, .hero-bottom a,
.form-content noscript a, .form-submit-row a { display:inline-flex; align-items:center; }
.contact-lines, .footer-contact { display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.contact-lines a, .footer-contact a { overflow-wrap:anywhere; max-width:100%; text-decoration:underline; text-underline-offset:.2em; }
.footer-brand img { width:190px; height:70px; object-fit:contain; }
.instagram-consent { padding:24px; border:1px solid var(--line); }
.instagram-consent button { display:block; margin:12px 0; padding:10px 16px; line-height:1.5; background:var(--plum); color:var(--paper); }
[hidden], .instagram-consent[hidden], .instagram-consent [hidden] { display:none !important; }
.legal { max-width:76rem; margin:auto; }
.legal h1 { font-size:clamp(32px,6vw,78px); line-height:1.1; letter-spacing:-.045em; overflow-wrap:anywhere; }
.legal h2 { margin:2em 0 .6em; font-size:clamp(22px,3.6vw,38px); letter-spacing:-.035em; }
.legal p { max-width:65ch; line-height:1.65; }
.trap { position:absolute!important; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
#appointment-form input[type="date"], #appointment-form .date-trigger, #appointment-form .time-fields select { box-sizing:border-box; height:52px; }
#appointment-form .date-calendar { width:334px; min-width:334px; padding:12px; }
#appointment-form .calendar-days, #appointment-form .calendar-week { gap:0; }
#appointment-form .date-calendar button { min-width:44px; min-height:44px; }
#appointment-form .calendar-footer button, #appointment-form .calendar-heading button { min-height:44px; }
.salon-lightbox-image { object-fit:contain; }
.hair-original-reset { left:66px; }
.hair-autoplay-toggle, .male-hair-pause, .male-hair-actions button, .male-hair-style-buttons button, .campaign-genders button { min-width:44px; min-height:44px; }
.salon-photo-label .ui-icon { width:13px; height:13px; }
@media(max-width:700px) {
  .site-header { position:sticky; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:0; }
  .site-header .brand { grid-column:2; grid-row:1; margin:0; justify-self:center; }
  .site-header .header-actions { display:contents; }
  .site-header .menu { grid-column:3; grid-row:1; justify-self:end; }
  .site-header .menu-panel { left:auto; right:var(--gutter); width:min(360px, calc(100% - var(--gutter) - var(--gutter))); }
  .site-header .book-button { grid-column:1; grid-row:1; justify-self:start; min-width:0; gap:5px; padding:8px; }
  .site-header .book-button .arrow { font-size:16px; }
  .footer-brand img { width:135px; height:52px; }
  main p, main .welcome-text p:first-child, .body-copy p:first-child,
  #appointment-form .form-submit-row p, #appointment-form .form-status, .request-area>p,
  .salon-page-heading p, .visit-copy p, .news-copy p, .booking-layout p, .about-copy .body-copy p,
  .hero-aside-bottom p, .salon-heading p, .male-hair-hint { font-size:16px; line-height:1.65; }
  .footer-bottom { flex-wrap:wrap; }
  .footer-bottom nav { flex-wrap:wrap; }
  .request-area, .form-content, .form-grid, .booking-layout>* { min-width:0; }
  .request-area #appointment-form .date-calendar { left:50%; transform:translateX(-50%); width:334px; min-width:334px; }
  .site-header { background:var(--paper); }
}
@media(max-width:420px) {
  .request-area #appointment-form .date-calendar { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); max-height:90vh; overflow:auto; z-index:60; }
}
.result-brand { display:inline-flex; align-items:center; margin-bottom:32px; }
.result-brand img { width:108px; height:auto; }
