/* First release: approved TABU palette over the existing functional layouts.
   No selector changes the Stage 1 Hero or its header. */
@font-face{font-family:Tabu Display;src:url('/assets/fonts/cormorant-garamond-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Tabu Sans;src:url('/assets/fonts/manrope-medium.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
:root{--color-primary:#ac4c69;--color-primary-hover:#99415d;--color-soft-pink:#f0e0e1;--color-bg:#eee7e1;--color-card:#faf7f4;--color-text:#242322;--color-muted:#625751;--border:#d3c4bd;--shadow:none;--radius:4px;--ink:#242322;--muted:#625751;--cream:#eee7e1;--green:#f0e0e1;--dark:#ac4c69;--orange:#ac4c69;--line:#d3c4bd}
body{background:#eee7e1;color:#242322;font-family:'Tabu Sans',Arial,sans-serif;caret-color:#ac4c69;scrollbar-color:#9e8581 #eee7e1}
::selection{background:#d6a3ad;color:#242322}
body :is(a,button,input,textarea,select):focus-visible{outline:2px solid #ac4c69;outline-offset:4px}
.hero-wrap{background:#eee7e1}
.hero-wrap .card,.home-sections .card,.reviews-grid .card{background:#faf7f4;border-color:#d3c4bd;box-shadow:none;border-radius:4px}
.hero-wrap h2,.home-sections h2,#reviews h2,.booking-intro h2{font:400 clamp(30px,3vw,46px)/1.05 'Tabu Display',Georgia,serif;letter-spacing:-.025em;color:#242322}
.hero-wrap h3,.hero-wrap p,.feature-list,.master-card p{color:#625751}
.hero-wrap .handwritten,.home-sections .handwritten,#reviews .handwritten,.booking-intro .handwritten,footer .handwritten{font-family:'Tabu Display',Georgia,serif;color:#7b4054}
body .pink-button{background:#ac4c69;color:#fff9f6;border-radius:1px;box-shadow:none;min-height:48px}
body .pink-button:hover{background:#99415d;box-shadow:none;transform:none}
body .check-icon,.benefits-grid svg{background:#f0e0e1;color:#99415d}
.service-item{gap:14px}.service-item strong{font-size:12px;color:#625751;font-weight:500;white-space:normal;min-width:0;text-align:right}
.catalog-note{color:#625751;line-height:1.7;font-size:13px;margin:18px 0 0}
.catalog-retry{min-height:44px;padding:8px 14px;border:1px solid #ac4c69;color:#7b4054;background:#faf7f4;cursor:pointer}
.booking-section{background:#e5d8d3}
.booking-section .card{box-shadow:none;border-radius:4px;border-color:#d3c4bd}
.booking-intro .eyebrow{color:#7b4054}
body>footer,#contacts{background:#242322;color:#eee7e1;border-color:#625751}
#contacts .footer-bottom{color:#d1c7c1;border-color:#625751}
#contacts .handwritten{color:#d6a3ad}
#contacts .footer-contacts svg{color:#d6a3ad}
#contacts .brand{gap:16px;color:#eee7e1}
.tabu-footer-logo{display:block;width:52px;height:57px;flex-shrink:0}
#contacts .brand b{font-size:19px;letter-spacing:1px;font-weight:500}
#contacts .brand small{color:#d1c7c1;font-size:11px;white-space:normal}
#contacts a:focus-visible{outline-color:#f2bacb}
body .mobile-nav{background:#242322;border-color:#625751;color:#d1c7c1;backdrop-filter:none}
body .mobile-nav a.active{color:#f2bacb}
body .mobile-nav a{min-height:48px}
body .mobile-more{color:#7b4054;min-height:44px}
body .arrows button{background:#faf7f4;color:#7b4054;border:1px solid #d3c4bd;min-height:44px;min-width:44px}
body .lightbox{background:#242322;color:#eee7e1}
body .lightbox-controls button{background:#ac4c69;color:#fff9f6;min-width:44px;min-height:44px}
.booking-component{--pink:#ac4c69;--soft:#f0e0e1;--ink:#242322;--muted:#625751;--line:#d3c4bd;font-family:'Tabu Sans',Arial,sans-serif}
.booking-component .dialog-inner{background:#faf7f4;border-radius:4px}
.booking-component .service-card,.booking-component .master-choice,.booking-component .date-card,.booking-component .time-card,.booking-component .field-with-icon input,.booking-component .field-with-icon textarea{border-radius:4px;box-shadow:none}
.booking-component .service-card.selected,.booking-component .date-card.selected,.booking-component .time-card.selected{background:#f0e0e1;border-color:#ac4c69;color:#242322}
.booking-component .date-card strong,.booking-component .time-card{color:#242322}
.booking-component .date-card.selected small,.booking-component .date-card.selected span{color:#625751}
.booking-component .primary-button{background:#ac4c69;color:#fff9f6;box-shadow:none;border-radius:1px}
.booking-component .primary-button:hover{background:#99415d}
.booking-component .telegram-button,.booking-component .master-pill{color:#7b4054;background:#f0e0e1;border-color:#d3c4bd}
.booking-component .hint-icon,.booking-component .master-choice .check-badge{background:#ac4c69;color:#fff9f6}
.booking-component .confirmation-hint p,.booking-component .dialog-footer p{color:#625751}
.booking-component .master-text strong{font-size:14px}
.booking-component #booking-title{font:400 38px/1.05 'Tabu Display',Georgia,serif;letter-spacing:-.025em}
.booking-component :is(button,input,textarea):focus-visible{outline-color:#ac4c69}
.booking-component .field-with-icon input::placeholder,.booking-component .field-with-icon textarea::placeholder{color:#625751;opacity:1}
.booking-component .success-icon{color:#ac4c69}
.booking-modal{background:#faf7f4;border-radius:4px}
.booking-modal .modal-close{background:#242322;color:#eee7e1;min-width:44px;min-height:44px}
body.booking-page{background:#242322;margin:0;padding:28px 16px}
.booking-page-card{background:#faf7f4;border-radius:4px}
.booking-page-brand{display:flex;align-items:center;gap:16px;padding:18px 28px 8px;font:500 12px/1.5 'Tabu Sans',Arial,sans-serif;color:#242322}
.booking-page-brand img{width:48px;height:52px;flex-shrink:0}.booking-page-brand span{max-width:26ch}.booking-page-brand{text-decoration:none}
.booking-page .back-home{display:inline-flex;align-items:center;min-height:44px;margin:0 28px;color:#625751}
.portal-head{background:#242322;border-color:#625751;color:#eee7e1;gap:24px}
.portal-head .brand{font-family:'Tabu Sans',Arial,sans-serif;letter-spacing:0;white-space:normal;font-size:16px;font-weight:500;gap:16px;min-width:0;flex-shrink:1}
.portal-head .brand>span{min-width:0}
.portal-head .brand small{color:#d1c7c1;font-size:11px;line-height:1.4;letter-spacing:.4px;white-space:normal}
.portal-head .brand img{width:48px;height:52px;display:block;flex-shrink:0}
.portal-head>a:last-child{min-height:44px;display:inline-flex;align-items:center;text-align:right;flex-shrink:0}
.portal h1{font:400 clamp(44px,7vw,72px)/1.05 'Tabu Display',Georgia,serif;letter-spacing:-.025em}
.portal h1 em{font:inherit;color:#7b4054;letter-spacing:inherit}
.portal .kicker{color:#7b4054;letter-spacing:1.5px}
.portal .button,.portal .slots button.selected,.portal .tabs button.selected{background:#ac4c69;color:#fff9f6;border:1px solid #ac4c69}
.portal .tabs button,.portal .plain,.portal .row-actions button{border-color:#d3c4bd}
.portal .button:hover{background:#99415d;transform:none}
.portal .field input,.portal .field select,.portal .field textarea,.portal .booking-card,.portal .confirmed{background:#faf7f4;color:#242322;border-color:#d3c4bd;border-radius:4px}
.portal .booking-card small{color:#625751}.portal .error{color:#9b2448}
.portal :is(button,input,select){min-height:44px}
.admin section{background:#faf7f4;border-radius:4px;border-color:#d3c4bd}
.admin button{background:#ac4c69;color:#fff9f6;border-color:#ac4c69;font:inherit;font-size:12px}
.admin .field input{border-color:#d3c4bd}
@media(max-width:600px){body{background:#eee7e1}.hero-wrap .master-card h2{font-size:27px}.booking-component #booking-title{font-size:30px}.booking-component .master-text strong{font-size:12px}.booking-component .master-pill{white-space:normal;max-width:76px;text-align:center}.booking-component .contact-fields{grid-template-columns:1fr}.booking-component .date-card,.booking-component .time-card{min-height:44px}.booking-page-brand{padding:16px 18px 6px}.booking-page .back-home{margin-inline:18px}.portal-head{padding:14px 18px;gap:14px}.portal-head .brand{font-size:14px;gap:10px}.portal-head .brand small{display:block;font-size:9px}.portal-head .brand img{width:38px;height:42px}.portal-head>a:last-child{font-size:11px;max-width:90px}.portal{margin-top:36px}#contacts .brand{white-space:normal}.tabu-footer-logo{width:44px;height:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.pink-button,.booking-component *{transition:none!important}}
@media(max-width:600px){
 .home-sections .services-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .home-sections .service-item{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;text-align:left;min-height:112px;padding:14px 12px;gap:10px;font-size:12px;line-height:1.5}
 .home-sections .service-item>span{font-size:12px;flex:initial;min-width:0;max-width:100%}
 .home-sections .service-item strong{font-size:11px;line-height:1.5;white-space:normal;width:auto;margin:0;text-align:left;grid-column:auto}
 .home-sections .service-item:nth-child(n+5){display:none}
 .home-sections .services-grid.mobile-expanded .service-item{display:flex}
 #contacts .footer-main>.brand{display:flex;margin-bottom:22px}
 #contacts .footer-bottom{display:flex;margin-top:18px}
 body .mobile-more{background:#faf7f4;border-color:#d3c4bd;border-radius:1px;font-size:10px}
 .master-contacts a{background:#f0e0e1;color:#625751;border-radius:4px}
 .mobile-booking-cta .pink-button{border-radius:1px}
 .portal-head .brand small{font-size:11px;line-height:1.4}
}
