/* 13th update: mobile booking routes and readable service navigation. */
.home-hero-content{padding-top:44px;padding-bottom:44px}
.home-hero h1{font-size:clamp(3.3rem,5.1vw,5.8rem);line-height:.98;margin:16px 0 20px}
.home-hero p{margin-bottom:20px}
.quick-booking{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:680px;scroll-margin-top:18px}
.quick-booking a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:13px 15px;border:1px solid #798b92;background:#fff;color:var(--ink);font-size:.94rem;font-weight:800;line-height:1.25;box-shadow:3px 3px 0 #171b1f0c;transition:background .2s,transform .2s}
.quick-booking b{flex:none;display:grid;place-items:center;width:29px;height:29px;background:var(--signal);color:var(--ink);font-size:1.2rem}
.quick-booking a:hover{background:#fce3d9;transform:translateY(-2px)}
.hero-help{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:12px}
.hero-help a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:.88rem;font-weight:750;text-decoration:underline;text-underline-offset:4px}
.directory-opening .quick-booking{max-width:900px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:24px}
.directory-jump{margin-top:20px}
.service-opening .breadcrumbs ol{color:#d7e5e9}
.service-opening .breadcrumbs li+li:before{color:#ffab91}
.service-opening .breadcrumbs a{display:inline-flex;align-items:center;min-height:32px;text-decoration:underline;text-underline-offset:3px}
.service-opening .service-booking-note{font-size:.87rem;line-height:1.5;color:#d7e5e9;margin:15px 0 6px}
.service-shortcuts{display:flex;flex-wrap:wrap;gap:6px 20px}
.service-shortcuts a{display:inline-flex;align-items:center;min-height:44px;color:#fff;font-size:.88rem;font-weight:750;text-decoration:underline;text-underline-offset:4px}
#service-prices,#service-detail,#questions{scroll-margin-top:20px}
.service-card .card-booking{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin-top:12px;padding:12px 16px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-size:.92rem;font-weight:800;line-height:1.3}
.card-booking span{color:#ffae94;font-size:1.2rem}
.service-card .card-booking:hover{background:#333c40}
.mobile-booking-bar,.primary-nav .nav-book{display:none}
.guide-next-step{padding:40px clamp(24px,7.2vw,120px) 60px;background:#dbe5e8}
.guide-next-step h2{font-size:clamp(2.4rem,4vw,4rem);margin:12px 0}
.guide-service-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.guide-service-links>div{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:24px;background:#fff;border:1px solid var(--line)}
.guide-service-name{font-size:1.1rem;font-weight:800;text-decoration:underline;text-underline-offset:4px}
.guide-service-links .button{margin-top:auto}
.not-found-page{position:relative;display:grid;place-items:center;min-height:clamp(360px,56svh,680px);padding:44px 24px;background:var(--paper);text-align:center}
.not-found-content{display:flex;flex-direction:column;align-items:center}
.not-found-content .eyebrow{position:absolute;top:24px;left:clamp(18px,3vw,44px);margin:0;color:var(--muted);font-size:.68rem}
.not-found-content .button{min-width:min(300px,100%);min-height:68px;gap:2.6rem;font-size:1.05rem;font-weight:800;box-shadow:0 12px 28px #171b1f24}
.service-card .card-copy p,.article-card p{font-size:1rem;line-height:1.6}
.service-card .card-link{font-size:.83rem}
@media(max-width:1100px){
  .primary-nav .nav-book{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:12px 16px;background:var(--ink);color:#fff;border:0}
  .primary-nav .nav-book:after{display:none}
}
@media(min-width:761px) and (max-width:1100px){
  .site-header{position:relative;gap:18px;padding-left:22px;padding-right:22px}
  .brand{width:210px}
  .header-cta{display:none}
  .menu-toggle{display:block;margin-left:auto}
  .primary-nav{display:none;position:absolute;top:100%;left:0;right:0;z-index:30;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:12px 24px 24px;background:var(--white);border-bottom:1px solid var(--line);box-shadow:0 15px 30px #00000014}
  .primary-nav.open{display:flex}
  .primary-nav a{min-height:48px;padding:12px 0;border-bottom:1px solid var(--line);font-size:1rem}
}
@media(min-width:761px) and (max-width:900px){
  .footer-invitation{display:block}
  .footer-invitation .button{margin-top:2rem}
}
@media(max-width:760px){
  .home-hero-content{padding:28px 20px 24px}
  .home-hero h1{font-size:clamp(2.7rem,10.7vw,3.55rem);line-height:1;margin:12px 0 15px}
  .home-hero p{font-size:1rem;line-height:1.5;margin-bottom:18px}
  .home-hero .eyebrow{font-size:.65rem;letter-spacing:.1em}
  .quick-booking{gap:8px}
  .quick-booking a{padding:11px 12px;min-height:64px;font-size:.94rem;gap:7px}
  .quick-booking b{width:25px;height:25px;font-size:1.1rem}
  .home-hero-image{height:200px}
  .hero-help{justify-content:space-between;gap:4px 12px;margin-top:8px}
  .hero-help a{font-size:.84rem}
  .directory-opening{padding:28px 20px 30px}
  .directory-opening h1{font-size:clamp(2.55rem,9.7vw,3.5rem);line-height:1.03;margin:12px 0 16px}
  .directory-opening .quick-booking{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}
  .directory-opening p{font-size:1rem;line-height:1.5}
  .directory-jump{gap:8px}
  .directory-jump a{font-size:.78rem;min-height:44px}
  .directory-jump a span{height:42px;width:34px}
  .service-opening{padding:18px 20px 24px}
  .service-opening-grid{margin-top:14px;gap:20px}
  .service-opening h1{font-size:clamp(2.75rem,10vw,3.8rem);line-height:1.02;margin-top:12px}
  .service-opening .eyebrow{font-size:.67rem;letter-spacing:.08em}
  .service-opening-aside>p:first-child{font-size:1.04rem;line-height:1.55;margin-bottom:20px}
  .service-opening-aside>.button{width:100%;font-size:.94rem;min-height:54px}
  .not-found-page{min-height:54svh;padding:48px 18px 32px}
  .not-found-content .eyebrow{top:16px;left:18px}
  .not-found-content .button{min-width:min(280px,100%);min-height:64px;font-size:1rem}
  .service-photo{height:280px}
  .service-photo figcaption{padding:10px 16px;gap:12px;font-size:.63rem}
  .service-photo figcaption span{display:none}
  .service-card .card-copy h3{font-size:2.3rem}
  .service-card .card-link{min-height:48px;font-size:.83rem}
  .service-card .card-link span{min-height:46px}
  .page-service{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
  .mobile-booking-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:25;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #b8c8cd;box-shadow:0 -4px 20px #171b1f12}
  .mobile-booking-bar a{display:flex;align-items:center;justify-content:center;min-height:48px;font-size:1rem;font-weight:800;line-height:1.2}
  .mobile-booking-primary{flex:1;gap:20px;padding:10px 14px;background:var(--ink);color:#fff}
  .mobile-booking-primary span{color:#ffae94}
  .mobile-booking-call{padding:10px 16px;border:1px solid var(--ink);color:var(--ink)}
  body:has(#consent:not([hidden])) .mobile-booking-bar,body:has(.primary-nav.open) .mobile-booking-bar{visibility:hidden}
  .guide-service-links{grid-template-columns:1fr}
  .contact-hero h1{font-size:clamp(2.9rem,10.5vw,3.7rem)}
}
@media(max-width:360px){
  .quick-booking a{font-size:.87rem;padding:10px;min-height:66px}
  .quick-booking b{width:22px;height:24px}
  .hero-help a{font-size:.79rem}
  .mobile-booking-bar{padding-left:10px;padding-right:10px;gap:8px}
  .mobile-booking-bar a{font-size:.92rem}
}
@media(prefers-reduced-motion:reduce){.quick-booking a{transition:none}.quick-booking a:hover{transform:none}}

/* Keep first-visit cookie choices clear of live booking controls on short mobile screens. */
body.booking-page #consent.consent-compact{right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));width:min(460px,calc(100% - 20px));padding:6px 9px;}
body.booking-page #consent.consent-compact strong{display:block;font:800 .94rem/1.1 var(--body);}
body.booking-page #consent.consent-compact p{font-size:.68rem;line-height:1.18;margin:2px 0 3px;}
body.booking-page #consent.consent-compact .consent-actions{gap:4px;flex-wrap:nowrap;}
body.booking-page #consent.consent-compact .consent-actions button{flex:1;min-width:0;min-height:32px;padding:4px 5px;font-size:.65rem;line-height:1.1;white-space:nowrap;}
body.booking-page #consent.consent-rail{padding:6px 8px;}
body.booking-page #consent.consent-rail>div:first-child{display:none;}
body.booking-page #consent.consent-above-action{top:var(--consent-top,8px);bottom:auto;}
