/* Jodie's Hair Room V28 — premium responsive experience layer */
:root{--v28-ink:#181114;--v28-wine:#7d294c;--v28-rose:#c55f84;--v28-blush:#f7e9ee;--v28-cream:#fffaf7;--v28-line:rgba(71,38,50,.12);--v28-shadow:0 22px 70px rgba(53,26,36,.11)}
body{overflow-x:hidden}.wrap{width:min(1180px,calc(100% - 40px));margin-inline:auto}.top{position:relative;z-index:102}.nav{position:sticky;top:0;z-index:100}.links a{position:relative}.links>a:not(.book):after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:2px;background:linear-gradient(90deg,var(--v28-rose),var(--v28-wine));transition:right .25s ease}.links>a:not(.book):hover:after{right:0}
.hero{min-height:min(820px,88vh);display:flex;align-items:center}.hero h1{max-width:900px}.heroactions{display:flex;gap:12px;flex-wrap:wrap}.btn,.book{transition:transform .22s ease,box-shadow .22s ease,filter .22s ease!important}.btn:active,.book:active{transform:translateY(0) scale(.98)!important}
section{scroll-margin-top:92px}.card,.offer,.location,.statbox{transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.imagewrap img,.gallery img{transition:transform .55s ease,filter .35s ease}.imagewrap:hover img,.gallery a:hover img{transform:scale(1.025)}
footer{margin-top:clamp(30px,5vw,70px)}footer .foot{align-items:start}footer a{display:inline-block}
/* forms and booking */
form .btn,form button{min-height:44px}input,select,textarea{min-height:46px}textarea{min-height:120px}.booking-summary,.portal-card{border:1px solid var(--v28-line);box-shadow:var(--v28-shadow)}
/* accessibility */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(197,95,132,.35)!important;outline-offset:3px}
/* mobile conversion bar */
@media(max-width:900px){body{padding-bottom:74px}.links{max-height:calc(100vh - 74px);overflow:auto}.hero{min-height:650px}.heroactions .btn{flex:1 1 180px;text-align:center}.mobileBookBar{display:flex!important}.stats{margin-top:-28px!important}.card:hover{transform:none}.foot{grid-template-columns:1fr 1fr!important}}
.mobileBookBar{display:none;position:fixed;left:12px;right:12px;bottom:10px;z-index:999;gap:8px;padding:8px;background:rgba(24,17,20,.92);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1);border-radius:18px;box-shadow:0 18px 45px rgba(0,0,0,.28)}.mobileBookBar a{flex:1;text-align:center;text-decoration:none;padding:12px 10px;border-radius:12px;font-size:13px;font-weight:800}.mobileBookBar .primary{color:#fff;background:linear-gradient(135deg,#d36a91,#8f3158)}.mobileBookBar .secondary{color:#fff;background:#ffffff12}
@media(max-width:560px){.wrap{width:min(100% - 24px,1180px)}.hero{min-height:590px}.hero h1{line-height:.98!important}.hero p{font-size:15px!important}.foot{grid-template-columns:1fr!important}.card,.offer,.location,.statbox{border-radius:20px!important}h2{letter-spacing:-.025em}.mobileBookBar{left:8px;right:8px;bottom:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* =========================================================
   V29 — BOOKING & CUSTOMER EXPERIENCE
   Progressive enhancement: backend remains unchanged.
========================================================= */
.bookingJourney{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 22px}.bookingJourneyStep{position:relative;padding:12px 8px;border:1px solid #eadde2;border-radius:14px;background:#fff;text-align:center;font-size:10px;font-weight:900;letter-spacing:.04em;color:#8a7b81}.bookingJourneyStep b{display:grid;place-items:center;width:24px;height:24px;margin:0 auto 6px;border-radius:50%;background:#f5edf0;color:#9d3e62}.bookingJourneyStep.active{border-color:#d98aaa;background:#fff7fa;color:#7d2e4d;box-shadow:0 8px 24px rgba(157,62,98,.08)}.bookingJourneyStep.active b,.bookingJourneyStep.done b{background:linear-gradient(135deg,#c85f86,#9d3e62);color:#fff}.bookingJourneyStep.done{background:#fffafb;color:#8a3d5c}.jhrBookingSummary{display:none;margin:18px 0;padding:18px;border:1px solid #eadde2;border-radius:18px;background:linear-gradient(135deg,#fff,#fff7fa)}.jhrBookingSummary.show{display:block}.jhrBookingSummary h4{margin:0 0 12px;font:700 18px Georgia,serif}.jhrSummaryGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.jhrSummaryItem{padding:11px;border-radius:12px;background:#fbf6f8}.jhrSummaryItem small{display:block;margin-bottom:4px;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#9b858e}.jhrSummaryItem strong{font-size:12px}.slotStatus{margin-top:8px;min-height:18px;font-size:11px;font-weight:700;color:#806d75}.slotStatus.ok{color:#317249}.slotStatus.warn{color:#96691d}.bookingTrustRow{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 0}.bookingTrustRow span{padding:7px 10px;border-radius:999px;background:#f8f1f4;color:#76545f;font-size:9px;font-weight:900;letter-spacing:.04em}.portalQuickActions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.portalQuickActions a{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;text-decoration:none;font-size:11px;font-weight:900;border:1px solid #e5cbd5;background:#fff;color:#8e3457}.portalStats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.portalStat{padding:16px;border-radius:18px;background:#fff;border:1px solid #eadde2}.portalStat small{display:block;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#9b858e;margin-bottom:5px}.portalStat strong{font:700 22px Georgia,serif;color:#3a222b}
@media(max-width:680px){.bookingJourney{grid-template-columns:repeat(2,1fr)}.jhrSummaryGrid,.portalStats{grid-template-columns:1fr}.bookingJourneyStep{font-size:9px}.jhrBookingSummary{padding:14px}}
/* V35 official logo */
.brand:has(.jhr-site-logo){display:flex!important;align-items:center!important;padding:0!important;line-height:1!important;background:none!important;text-decoration:none!important}
.jhr-site-logo{display:block;width:clamp(210px,20vw,330px);height:72px;object-fit:contain;object-position:left center}
@media(max-width:760px){.jhr-site-logo{width:190px;height:58px}}@media(max-width:420px){.jhr-site-logo{width:165px;height:52px}}

/* =========================================================
   V37 — mobile hardening
========================================================= */
@media(max-width:900px){
  .heroactions{width:100%;align-items:flex-start!important}
  .heroactions .btn{flex:0 0 auto!important;width:auto!important;min-width:0!important;max-width:100%!important;height:auto!important;min-height:46px!important;padding:13px 20px!important;border-radius:999px!important;line-height:1.25!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:normal!important}
  .heroactions .textlink{display:inline-flex;align-items:center;min-height:40px}
}
@media(max-width:560px){
  .hero{min-height:640px!important}
  .heroactions{gap:10px!important}
  .heroactions .btn{font-size:14px!important}
  .jhr-site-logo{width:178px!important;height:56px!important;max-width:48vw!important;object-fit:contain!important}
}
