/* Glance Beauty: warm mineral colours, clear controls and a shared Beauty / Tattoo identity. */
:root {
  --paper: #f7f5f0;
  --white: #fffefa;
  --ink: #272824;
  --muted: #66675f;
  --rose: #41483d;
  --blush: #e8ebe3;
  --line: #dedfd6;
  --gold: #947b60;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --card-radius: 20px;
}
body { font-family: var(--sans); -webkit-font-smoothing: antialiased; }
::selection { background: #dce1d4; color: var(--ink); }
.wrap { max-width: 1320px; padding-left: 48px; padding-right: 48px; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.eyebrow { color: var(--muted); font-size: 11px; font-weight: 600; letter-spacing: .14em; }
em { color: #72715d; }
.preview-note { background: #343a31; color: #f2f1e9; padding: 7px 16px; font-size: 11px; letter-spacing: .025em; }
.header { padding: 15px max(28px, calc((100vw - 1224px) / 2)); gap: 24px; background: #f7f5f0f2; border-color: #dedfd6b0; }
.brand { gap: 12px; font-size: 16px; letter-spacing: .12em; }
.brand-mark { display: grid; place-items: center; width: 43px; height: 43px; padding: 0 7px 5px 0; font-size: 40px; border: 1px solid #b8bdae; border-radius: 50%; color: var(--rose); }
.brand small { font-size: 7px; letter-spacing: .24em; }
.header nav { gap: 21px; font-size: 12px; }
.header nav a { position: relative; padding: 10px 0; white-space: nowrap; }
.header nav a::after { content: ''; position: absolute; bottom: 5px; left: 0; right: 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .2s; }
.header nav a:hover::after { transform: scaleX(1); }
.header-actions { gap: 18px; }
.languages { gap: 0; padding: 3px; border: 1px solid var(--line); border-radius: 100px; }
.languages span { display: none; }
.languages button { min-width: 36px; min-height: 34px; padding: 5px 7px; border-radius: 100px; font-size: 11px; }
.languages button[aria-pressed=true] { background: var(--rose); color: #fff; font-weight: 500; }
.small-cta, .button { border-radius: 100px; background: var(--rose); border-color: var(--rose); font-weight: 500; }
.small-cta { padding: 12px 19px; }
.button { min-height: 52px; padding: 15px 24px; font-size: 14px; }
.button:hover, .small-cta:hover { background: #2e342b; border-color: #2e342b; }
.button:active { transform: translateY(1px); }
.text-link { font-size: 13px; border-color: #a8ac9f; }
/* Keep the booking form first and immediately usable. */
.booking-section { padding: 45px 0 46px; background: #eceee6; border-bottom: 1px solid var(--line); }
.booking-header { grid-template-columns: 1.1fr .9fr; gap: 65px; margin-bottom: 28px; align-items: end; }
.booking-header .eyebrow { margin-bottom: 13px; }
.booking-header h2 { font-family: var(--sans); font-weight: 500; font-size: clamp(34px, 3.7vw, 51px); line-height: 1.13; letter-spacing: -.055em; max-width: 650px; }
.booking-header>div>p:not(.eyebrow) { max-width: 430px; font-size: 14px; line-height: 1.75; margin: 0 0 3px; }
.booking-workspace { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 22px; align-items: stretch; }
.booking-card, .availability-panel { position: static; padding: 28px; background: var(--white); border: 1px solid #dfe2d8; border-radius: var(--card-radius); box-shadow: 0 5px 24px #28322104; }
#booking-category-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-bottom: 27px; }
#booking-category-options .booking-category { min-width: 0; min-height: 47px; padding: 10px 12px; border-radius: 10px; border-color: var(--line); background: #f7f8f3; font-size: 13px; line-height: 1.4; text-align: center; overflow-wrap: anywhere; }
#booking-category-options .booking-category:hover { border-color: #9ea994; }
#booking-category-options .booking-category[aria-pressed=true] { background: var(--rose); color: #fff; border-color: var(--rose); }
.booking-card label, .booking-card legend, .request-fields label { font-size: 13px; font-weight: 500; color: var(--ink); margin-bottom: 10px; }
.booking-card select, .request-fields input { font-family: var(--sans); background: #f7f8f3; border-color: var(--line); border-radius: 10px; min-height: 52px; font-size: 16px; padding: 12px; }
.booking-card select:hover, .request-fields input:hover { border-color: #aeb5a3; }
.booking-card select:focus, .request-fields input:focus { border-color: var(--rose); }
.booking-card fieldset { margin-top: 22px; }
.staff-options { gap: 9px; }
.staff-option { display: grid; grid-template-columns: 36px minmax(0,1fr); column-gap: 10px; row-gap: 3px; flex: 1; min-width: 135px; min-height: 70px; padding: 11px; border-radius: 12px; background: #fffefa; font-size: 14px; align-items: center; }
.staff-option.active { border-color: #68765b; background: #eef2e8; color: #343c2d; }
.staff-option-photo { grid-column: 1; grid-row: 1 / 3; width: 36px; height: 44px; border-radius: 7px; object-fit: cover; object-position: center 30%; }
.staff-option-name { grid-column: 2; min-width: 0; gap: 6px; line-height: 1.4; }
.staff-duration { grid-column: 2; font-size: 11px; line-height: 1.4; }
.booking-summary { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 20px; margin-top: 23px; padding-top: 20px; }
.booking-summary>strong { grid-column: 1; font: 500 21px/1.35 var(--sans); letter-spacing: -.025em; margin: 0 0 3px; }
.booking-summary>div:not(.selected-price), .booking-summary>small:not(.selected-price) { grid-column: 1; }
.booking-summary .selected-price { grid-column: 2; grid-row: 1 / 4; align-self: start; margin: 0; font: 400 32px/1.2 var(--sans); letter-spacing: -.05em; }
.booking-summary small, .service-duration, .extras-hint { font-size: 12px; line-height: 1.6; }
.calendar-jump { max-width: none; margin-top: 22px; font-size: 13px; }
.selection-note { font-size: 12px; line-height: 1.7; }
.availability-heading { margin-bottom: 20px; gap: 13px; }
.step-tag { width: 42px; height: 42px; border: 0; border-radius: 50%; background: #e9eee2; color: var(--rose); font: 500 14px var(--sans); }
.availability-heading h3 { font: 500 25px/1.3 var(--sans); letter-spacing: -.035em; }
.availability-heading .eyebrow { font-size: 10px; letter-spacing: .1em; }
.working-hours { padding: 14px 16px; border-radius: 11px; background: #f1f3ec; font-size: 12px; line-height: 1.7; }
.request-form { margin-top: 20px; padding-top: 20px; }
.request-fields { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.request-recap { margin: 16px 0; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 13px; }
.request-recap strong { font: 400 25px/1.3 var(--sans); letter-spacing: -.04em; }
.request-recap small { font-size: 12px; }
.booking-calendar { border-radius: 10px; }
.booking-calendar summary { min-height: 48px; padding: 13px 0; font-size: 13px; cursor: pointer; }
.calendar-placeholder { background: #f5f6f0; border-radius: 12px; padding: 25px 20px; }
.calendar-placeholder p { font-size: 12px; }
.calendar-scroll { border-radius: 12px; }
.request-hint, .privacy-note, .booking-state { font-size: 12px; line-height: 1.7; }
.booking-faq { max-width: none; margin: 27px 0 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: 28px; align-items: start; }
.booking-faq h3 { grid-column: 1/-1; font: 500 15px/1.5 var(--sans); margin-bottom: 10px; }
.booking-faq details, .booking-faq details:last-child { border-top: 1px solid #cfd6c8; border-bottom: 0; }
.booking-faq summary { font-size: 13px; padding: 14px 0; }
.booking-faq details p { font-size: 13px; margin-bottom: 12px; }
/* Editorial photographs are paired with restrained, contemporary cards. */
.hero { gap: 64px; padding-top: 80px; padding-bottom: 64px; }
.hero h1 { font-size: clamp(46px,5.4vw,76px); }
.hero-lead { font-size: 15px; line-height: 1.8; }
.hero-foot { font-size: 12px; }
.hero-duo { gap: 15px; }
.hero-visual { border-radius: 150px 150px 18px 18px; }
.hero-visual-tattoo { margin-top: 38px; }
.hero-visual-photo { height: 405px; }
.hero-visual>span { font-size: 12px; bottom: 22px; }
.art-tag { font-size: 9px; margin-top: 18px; }
.directions { gap: 12px; margin-bottom: 20px; }
.direction, .direction:not(:first-child), .direction:nth-child(3) { padding: 22px 20px; border: 1px solid var(--line); border-radius: 14px; background: #f0f1e9; min-height: 162px; }
.direction:hover { background: #e8ecdf; border-color: #c4cbb9; }
.direction strong { font: 500 20px/1.25 var(--sans); letter-spacing: -.035em; }
.direction>span { font-size: 12px; }
.direction>b { top: 20px; right: 15px; }
.section { padding-top: 82px; padding-bottom: 82px; }
.section-heading { margin-bottom: 34px; gap: 45px; }
h2 { font-size: clamp(38px,4.3vw,60px); }
.section-heading>p { font-size: 14px; line-height: 1.8; }
.filters { gap: 8px; flex-wrap: wrap; overflow: visible; margin: 0 0 25px; padding: 0; }
.filters .filter { border-radius: 100px; padding: 10px 18px; min-height: 43px; font-size: 12px; background: #fffefa; }
.filters .filter.active { background: var(--rose); }
.service-grid { gap: 16px; border: 0; }
.service-card, .nail-service-card { padding: 25px; border: 1px solid var(--line); border-radius: 16px; background: var(--white); column-gap: 18px; }
.service-meta { font-size: 10px; letter-spacing: .07em; }
.service-card h3 { font: 500 25px/1.25 var(--sans); letter-spacing: -.035em; }
.service-card .service-price { font: 400 25px/1.2 var(--sans); letter-spacing: -.04em; }
.service-card p { font-size: 14px; line-height: 1.75; }
.service-card button { font-size: 13px; font-weight: 500; }
.tattoo-section { background: #292d28; padding: 75px 0; }
.tattoo-section em { color: #d0c1a8; }
.tattoo-section .eyebrow { color: #c5c8bb; }
.tattoo-section .section-heading>p { color: #c5c8bd; }
.tattoo-grid { gap: 28px 22px; }
.tattoo-photo { border-radius: 14px; }
.tattoo-caption { border-color: #575e50; }
.tattoo-caption small { color: #c1c7b4; }
.tattoo-card-name { font: 400 22px/1.25 var(--sans); letter-spacing: -.035em; }
.tattoo-expand { width: 37px; height: 37px; background: #faf7efed; color: #292d28; border: 0; border-radius: 50%; }
.tattoo-cta { border-radius: 16px; border-color: #59614f; background: #353d30; padding: 36px; }
.tattoo-cta>p:not(.eyebrow) { color: #d4d8cb; }
.tattoo-cta .button { background: #e9e6d8; color: #30372a; border-color: #e9e6d8; }
.tattoo-cta .text-link { color: #f3f3e8; }
.look-grid { gap: 22px; }
.look-card { background: var(--white); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; }
.look-photo { aspect-ratio: 1; }
.look-info { padding: 24px; }
.look-info h3 { font-size: 33px; }
.look-description { font-size: 14px; }
.look-bottom { align-items: end; flex-direction: row; }
.look-choose { font-size: 13px; }
.look-price strong { font-family: var(--sans); font-size: 28px; letter-spacing: -.045em; }
.prices-section { padding-top: 60px; }
.price-intro { align-items: center; }
.price-table-wrap { border: 1px solid var(--line); border-radius: 15px; background: var(--white); }
.price-table th, .price-table td { padding: 18px; }
.price-table thead { background: #eef1e7; }
.price-table thead th { font-size: 12px; }
.price-table tbody th { font: 500 16px/1.5 var(--sans); }
.price-table tbody tr:last-child>th, .price-table tbody tr:last-child>td { border-bottom: 0; }
.price-choice { font-family: var(--sans); font-size: 16px; }
.price-details { gap: 16px; }
.price-details>div { background: #edf0e6; border-radius: 14px; padding: 23px; }
.price-details h3 { font: 500 20px/1.3 var(--sans); letter-spacing: -.03em; }
.price-details p { font-size: 13px; }
.additional-prices { gap: 10px; border: 0; margin-top: 32px; }
.additional-price-group { border: 1px solid var(--line); border-radius: 13px; background: var(--white); padding: 0 22px; }
.additional-price-group summary { padding: 19px 0; font: 500 18px/1.4 var(--sans); letter-spacing: -.025em; }
.treatment-prices tbody th { font: 400 14px/1.7 var(--sans); }
.treatment-prices th, .treatment-prices td { padding: 13px 5px; }
.team-grid { gap: 22px; align-items: stretch; }
.team-card { display: flex; flex-direction: column; align-items: stretch; padding: 14px 14px 24px; border: 1px solid var(--line); border-radius: 20px; background: var(--white); }
.portrait { height: auto; aspect-ratio: 1.05; border-radius: 12px; margin: 0 0 24px; }
.team-card h3, .team-card p, .team-card>.text-link, .team-card>.contact-link { margin-left: 10px; margin-right: 10px; }
.team-card h3 { font: 500 29px/1.2 var(--sans); letter-spacing: -.045em; margin-bottom: 12px; }
.team-card p { font-size: 13px; line-height: 1.8; }
.team-card .role { font-size: 10px; letter-spacing: .08em; min-height: 34px; }
.team-card>.text-link, .team-card>.contact-link { align-self: flex-start; font-size: 12px; }
.team-card>.text-link { margin-top: auto; }
.team-card>.contact-link { margin-top: 8px; }
.partners-section { background: #eaece2; padding: 65px 0; }
.partners-layout { gap: 65px; }
.partner-with-photo { padding: 20px; background: var(--white); border: 1px solid #d9decf; border-radius: 18px; grid-template-columns: 130px minmax(0,1fr); gap: 22px; }
.partner-with-photo .partner-photo { width: 130px; height: 185px; border-radius: 12px; }
.partner-info h3 { font: 500 30px/1.2 var(--sans); letter-spacing: -.04em; }
.partner-info .partner-bio { font-size: 13px; }
.partner-links a { border-radius: 100px; }
.partner-work img { border-radius: 13px; }
.partner-work-caption { font-size: 13px; }
.studio-layout { gap: 65px; }
.studio-photo-frame { border-radius: 16px; overflow: hidden; }
.studio-photo>span { font-size: 12px; }
.studio-image-hint { font-size: 12px; }
.location { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--white); }
.location b { font: 500 23px/1.3 var(--sans); letter-spacing: -.035em; }
.location small { font-size: 12px; }
.footer { font-size: 12px; }
dialog { border-radius: 18px; }
.tattoo-dialog { background: #292d28; border-color: #66715c; }
.tattoo-close, .tattoo-arrow { border-radius: 50%; }
.tattoo-view-footer .button { border-radius: 100px; }
.month-picker { border-color: var(--line); background: #f7f8f3; }
.month-day.available { border-radius: 12px; }
.month-time, .month-continue { border-radius: 100px; }
@media (min-width: 901px) and (max-width: 1180px) {
  .header nav { gap: 15px; font-size: 11px; }
  .header .small-cta { display: none; }
  .hero { gap: 35px; }
  .hero-visual-photo { height: 350px; }
  .direction strong { font-size: 18px; }
  .partner-with-photo { grid-template-columns: 105px minmax(0,1fr); gap: 15px; }
  .partner-with-photo .partner-photo { width: 105px; height: 170px; }
}
@media (max-width: 900px) {
  .wrap { padding-left: 28px; padding-right: 28px; }
  .header { padding: 13px 28px; }
  .header nav { padding: 14px 28px 24px; background: var(--paper); border-radius: 0 0 18px 18px; }
  .header nav a { padding: 14px 0; }
  .header nav a::after { display: none; }
  .small-cta { display: none; }
  .booking-header { gap: 30px; }
  .booking-workspace { grid-template-columns: 1fr; gap: 18px; }
  .booking-card, .availability-panel { padding: 25px; }
  .staff-option { flex: 0 1 200px; }
  .hero { gap: 30px; padding-top: 60px; }
  .hero h1 { font-size: 49px; }
  .hero-visual-photo { height: 320px; }
  .directions { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .direction { min-height: 146px; }
  .section { padding-top: 65px; padding-bottom: 65px; }
  .look-grid { gap: 14px; }
  .look-info { padding: 19px; }
  .look-info h3 { font-size: 29px; }
  .look-bottom { align-items: start; flex-direction: column; gap: 13px; }
  .look-choose { align-self: start; }
  .team-grid { gap: 14px; }
  .team-card { padding: 10px 10px 20px; }
  .team-card h3 { font-size: 25px; }
  .partners-layout { grid-template-columns: 1fr; gap: 30px; }
  .partner-with-photo { grid-template-columns: 155px minmax(0,1fr); }
  .partner-with-photo .partner-photo { width: 155px; height: 205px; }
  .studio-layout { gap: 36px; }
}
@media (max-width: 650px) {
  html { scroll-padding-top: 85px; }
  .wrap { padding-left: 20px; padding-right: 20px; }
  .preview-note { padding: 7px 12px; font-size: 9px; line-height: 1.5; }
  .header { padding: 11px 20px; gap: 10px; }
  .brand { gap: 10px; font-size: 13px; }
  .brand-mark { width: 35px; height: 35px; font-size: 33px; }
  .brand small { font-size: 6px; }
  .header-actions { gap: 8px; }
  .languages button { min-width: 30px; min-height: 36px; font-size: 11px; }
  .menu-toggle { min-width: 35px; min-height: 44px; }
  .header nav { padding: 8px 20px 20px; }
  .header nav a { min-height: 48px; font-size: 16px; }
  .booking-section { padding: 28px 0 32px; }
  .booking-header { grid-template-columns: 1fr; gap: 13px; margin-bottom: 22px; }
  .booking-header h2 { font-size: clamp(31px,8.7vw,40px); letter-spacing: -.045em; }
  .booking-header .eyebrow { font-size: 9px; margin-bottom: 12px; }
  .booking-header>div>p:not(.eyebrow) { font-size: 14px; line-height: 1.7; max-width: none; }
  .booking-card, .availability-panel { padding: 21px 17px; border-radius: 17px; }
  #booking-category-options { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin-bottom: 23px; }
  #booking-category-options .booking-category { min-height: 46px; padding: 10px 6px; font-size: 12px; }
  .booking-card label, .booking-card legend { font-size: 13px; }
  .booking-card select { font-size: 16px; }
  .staff-option { flex: 1; min-width: 125px; padding: 10px; font-size: 14px; }
  .booking-summary { gap: 5px 10px; }
  .booking-summary>strong { font-size: 19px; }
  .booking-summary .selected-price { font-size: 28px; }
  .calendar-jump { min-height: 50px; font-size: 12px; padding: 13px 10px; }
  .availability-heading h3 { font-size: 24px; }
  .request-fields { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .request-fields input { padding: 10px 7px; }
  .request-recap { gap: 12px; }
  .booking-faq { grid-template-columns: 1fr; gap: 0; margin-top: 23px; }
  .booking-faq summary { font-size: 13px; }
  .hero { grid-template-columns: 1fr; gap: 30px; padding-top: 48px; padding-bottom: 35px; }
  .hero h1 { font-size: clamp(44px,12vw,62px); }
  .hero .eyebrow { font-size: 10px; }
  .hero-lead { font-size: 15px; }
  .hero-buttons { gap: 18px; }
  .hero-buttons .button { font-size: 13px; min-height: 50px; }
  .hero-foot { margin-top: 24px; font-size: 11px; }
  .hero-duo { gap: 12px; }
  .hero-visual { border-radius: 100px 100px 13px 13px; }
  .hero-visual-tattoo { margin-top: 24px; }
  .hero-visual-photo { height: 278px; }
  .hero-visual>span { font-size: 11px; left: 13px; right: 30px; bottom: 17px; }
  .hero-visual>b { right: 12px; bottom: 17px; }
  .art-tag { font-size: 8px; letter-spacing: .06em; }
  .directions { gap: 9px; }
  .direction, .direction:not(:first-child), .direction:nth-child(3) { padding: 19px 14px; min-height: 153px; border-radius: 12px; }
  .direction strong { font-size: 18px; }
  .direction>span { font-size: 11px; }
  .direction small { font-size: 9px; }
  .direction>b { top: 16px; right: 11px; }
  .section { padding-top: 52px; padding-bottom: 52px; }
  h2 { font-size: 40px; }
  .section-heading { margin-bottom: 26px; }
  .section-heading>p { margin-top: 18px; font-size: 14px; }
  .filters { flex-wrap: wrap; gap: 7px; margin: 0 0 19px; padding: 0; }
  .filters .filter { min-height: 42px; font-size: 12px; padding: 10px 14px; }
  .service-grid { grid-template-columns: 1fr; gap: 12px; }
  .service-card { grid-template-columns: minmax(0,1fr); padding: 22px; }
  .service-card h3 { font-size: 24px; }
  .service-card .service-price { grid-column: 1; grid-row: auto; font-size: 24px; margin-top: 10px; }
  .service-card p { font-size: 14px; }
  .service-direct-links { flex-wrap: wrap; gap: 12px; }
  .tattoo-section { padding: 50px 0; }
  .tattoo-grid { gap: 24px 12px; }
  .tattoo-photo { border-radius: 11px; }
  .tattoo-card-name { font-size: 19px; }
  .tattoo-caption small { font-size: 10px; white-space: normal; }
  .tattoo-expand { width: 31px; height: 31px; }
  .tattoo-cta { padding: 27px 22px; }
  .tattoo-cta h3 { font-size: 37px; }
  .look-grid { grid-template-columns: 1fr; gap: 22px; }
  .look-photo { aspect-ratio: 1.12; }
  .look-info { padding: 23px; }
  .look-info h3 { font-size: 34px; }
  .look-bottom { flex-direction: row; align-items: end; }
  .look-description { min-height: 0; }
  .look-choose { align-self: end; }
  .price-intro { display: block; }
  .price-intro h3 { margin-bottom: 13px; }
  .price-intro p { font-size: 13px; max-width: none; }
  .price-periods { gap: 5px; padding: 9px; background: #eef1e7; margin: 0; }
  .period-button { border: 0; border-radius: 8px; font-size: 11px; min-height: 44px; }
  .period-button.active { background: var(--rose); }
  .price-table th, .price-table td { padding: 14px 12px; }
  .price-table tbody th { font-size: 15px; }
  .price-choice { font-size: 17px; }
  .price-details { grid-template-columns: 1fr; gap: 12px; }
  .price-details>div { padding: 22px; }
  .additional-price-group { padding: 0 17px; }
  .additional-price-group summary { font-size: 17px; }
  .treatment-prices tbody th { font-size: 13px; width: 75%; }
  .treatment-prices .price-choice { font-size: 15px; }
  .treatment-prices th, .treatment-prices td { padding: 13px 2px; }
  .team-grid { grid-template-columns: 1fr; gap: 20px; }
  .team-card { display: flex; padding: 12px 12px 24px; }
  .portrait { height: auto; aspect-ratio: 1.16; margin: 0 0 22px; }
  .team-card h3 { font-size: 29px; }
  .team-card .role { min-height: 0; font-size: 10px; }
  .team-card p { font-size: 14px; }
  .team-card>.text-link { margin-top: 0; }
  .team-card>.text-link, .team-card>.contact-link { min-height: 42px; }
  .partners-section { padding: 48px 0; }
  .partner-with-photo { grid-template-columns: 96px minmax(0,1fr); gap: 17px; padding: 17px; align-items: start; }
  .partner-with-photo .partner-photo { width: 96px; height: 145px; }
  .partner-info h3 { font-size: 27px; }
  .partner-info .partner-role { font-size: 10px; }
  .partner-info .partner-bio { font-size: 13px; }
  .partner-links a { font-size: 11px; padding: 11px 13px; }
  .partner-works-grid { gap: 18px 12px; }
  .partner-work-caption { font-size: 12px; }
  .studio-layout { grid-template-columns: 1fr; gap: 32px; }
  .studio-photo-frame { border-radius: 12px; }
  .studio-contact-links { gap: 17px; }
  .location { padding: 19px; }
  .location b { font-size: 22px; }
  .footer { padding-bottom: 115px; gap: 18px; }
  .footer .text-link { font-size: 11px; }
  .mobile-book { left: 14px; right: 14px; bottom: max(12px,env(safe-area-inset-bottom)); min-height: 54px; border-radius: 100px; padding: 14px 23px; box-shadow: 0 6px 24px #17221030; font-size: 14px; }
  .month-picker { padding: 20px 12px; }
}
@media (max-width: 360px) {
  .wrap { padding-left: 15px; padding-right: 15px; }
  .header { padding-left: 15px; padding-right: 15px; }
  .header .brand { font-size: 12px; }
  .brand-mark { width: 30px; height: 30px; font-size: 29px; }
  .staff-option { min-width: 115px; grid-template-columns: 30px minmax(0,1fr); column-gap: 7px; padding: 9px; font-size: 13px; }
  .staff-option-photo { width: 30px; height: 40px; }
  .booking-summary>strong { font-size: 18px; }
  .booking-summary .selected-price { font-size: 25px; }
  .hero-visual-photo { height: 240px; }
  .direction strong { font-size: 17px; }
  .partner-with-photo { grid-template-columns: 80px minmax(0,1fr); padding: 14px; gap: 14px; }
  .partner-with-photo .partner-photo { width: 80px; height: 125px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}
