/* Shared reading scale for both review concepts. */
:root{font-size:17px;--muted:#574c42}
body{line-height:1.65}
h2{font-size:clamp(42px,4.2vw,60px)}
.eyebrow,.hero.hero-laser .hero-copy>.eyebrow,.hero.hero-v2 .hero-copy>.eyebrow{font-size:13px;letter-spacing:.1em}
.brand small{font-size:12px;letter-spacing:.025em}
.desktop-nav,.header-phone{font-size:16px}
.desktop-nav{gap:20px}
.button,.button-small,.text-link,.card-booking{font-size:16px;line-height:1.5;min-height:48px}
.hero .hero-description,.hero.hero-laser .hero-description,.hero.hero-v2 .hero-description{font-size:17px;line-height:1.75;max-width:460px}
.hero.hero-laser .hero-actions,.hero.hero-v2 .hero-actions{gap:20px}
.hero .hero-actions .button,.hero .hero-actions .text-link{font-size:16px;min-height:52px;gap:14px}
.hero-location,.hero.hero-laser .hero-location,.hero.hero-v2 .hero-location{font-size:16px;line-height:1.6}
.hero-location small,.hero.hero-v2 .hero-location small{font-size:14px}
.hero-reviews{font-size:16px;gap:11px}
.hero-reviews>span{font-size:29px}
.service-line span{font-size:16px;letter-spacing:0}
.section-intro,.section-heading>.section-intro{font-size:17px;line-height:1.75;max-width:390px}
.price-tabs button,.price-tabs button:first-child{font-size:16px;min-height:52px;padding:14px 20px;line-height:1.5}
.price-card{padding:29px 25px 20px;min-height:415px}
.price-card .eyebrow{font-size:14px}
.price-card h3{font-size:38px;min-height:80px;line-height:1.1}
.price-card p{font-size:17px;line-height:1.7;max-width:none}
.price-value{font-size:44px}
.card-booking{gap:10px;padding-top:16px;line-height:1.5}
.more-prices summary{font-size:17px;line-height:1.6;gap:18px}
.price-row{font-size:17px;line-height:1.65;gap:22px;align-items:flex-start}
.price-row>div{min-width:0}
.price-row small{font-size:16px;color:var(--muted);line-height:1.6;margin-top:5px}
.price-row strong{font-size:18px;font-weight:600;flex-shrink:0}
.price-row .row-booking{color:var(--gold);text-decoration-thickness:1px;text-underline-offset:4px}
.price-footnote{font-size:16px;line-height:1.7;flex-wrap:wrap}
.price-footnote a{white-space:normal}
.price-explainer{font-size:16px;line-height:1.75;color:var(--muted);padding:22px 0 2px;max-width:930px}
.price-explainer strong{color:var(--ink);font-weight:600}
.studio-story>p:not(.eyebrow),.team-info p,.visit-steps p,.faq-list details>p{font-size:17px;line-height:1.75;max-width:none}
.gallery-strip .photo-button>span{font-size:16px;line-height:1.55;min-height:66px}
.offers-list h3{font-size:18px;line-height:1.5}
.offers-list p{font-size:16px;line-height:1.7}
.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}
.team-experience,.team-role{display:block;color:var(--gold);font-size:16px;line-height:1.6;margin-top:7px}
.team-info .text-link{margin-top:16px}
.founder-summary{display:grid;grid-template-columns:150px 1fr;gap:30px;padding:30px 0;border-block:1px solid var(--line);margin-top:35px}
.founder-summary>img{width:150px;height:180px;object-fit:cover;border-radius:5px;object-position:center 25%}
.founder-summary h3{font:400 34px/1.2 var(--serif);margin-bottom:12px}
.founder-summary p{font-size:17px;line-height:1.75;color:var(--muted);max-width:780px}
.founder-summary .text-link{margin-top:14px}
.preparation-links a{font-size:16px;line-height:1.65}
.faq-list summary{font-size:18px;line-height:1.6;min-height:64px}
.faq-list details>p{padding-right:18px}
.contact-address{font-size:18px;line-height:1.75}
.contact-address>span,.contact-map-links,.reviews-link,.entrance-photo figcaption{font-size:16px;line-height:1.7}
.footer-top>div,.footer-top>span{font-size:16px}
.footer-brand small,.footer-bottom{font-size:14px;line-height:1.75}
.gallery-toolbar,.gallery-toolbar button,#gallery-count{font-size:16px;line-height:1.6}
.founder-greeting{font-size:18px;line-height:1.65}
.founder-caption p,.founder-caption small{font-size:16px;line-height:1.55}
.care-copy>p{font-size:17px;line-height:1.75}
.care-copy .text-link{font-size:16px}
.care-copy>small{font-size:14px;line-height:1.7}
.guide-navigation{display:flex;gap:14px 28px;flex-wrap:wrap;margin:0 0 36px}
.guide-navigation a{font-size:16px;color:var(--gold);text-underline-offset:5px;line-height:1.7;padding-block:8px}
.guide-article{scroll-margin-top:120px;border-top:1px solid var(--line);padding:35px 0 42px}
.guide-article:last-child{padding-bottom:0}
.guide-article h3{font:400 40px/1.16 var(--serif);margin:12px 0 25px;max-width:800px}
.guide-article h4{font-size:19px;font-weight:600;line-height:1.5;margin:25px 0 10px}
.guide-article p,.guide-article li{font-size:17px;line-height:1.75;color:var(--muted)}
.guide-article p{max-width:950px}
.guide-article strong{color:var(--ink);font-weight:600}
.guide-steps{list-style:none;padding:0;margin:25px 0 30px;display:grid;grid-template-columns:1fr 1fr;gap:24px 42px}
.guide-steps li{border-top:1px solid var(--line);padding-top:20px;min-width:0}
.guide-time{font-size:16px;color:var(--gold);font-weight:600}
.guide-steps h4{margin:10px 0 8px}
.guide-list{padding-left:23px;margin:18px 0 28px;max-width:1010px}
.guide-list li{padding-left:5px;margin-bottom:12px}
.restrictions-list{columns:2;column-gap:56px;max-width:none}
.restrictions-list li{break-inside:avoid;padding-right:18px}
.guide-note{border-left:3px solid var(--gold);background:var(--paper);padding:20px 24px;margin:27px 0}
.guide-note h4{margin-top:0}
.guide-article .guide-footnote{font-size:16px}
.guide-footnote a{color:var(--gold);text-underline-offset:4px}
.reviews-section{padding-block:75px;border-block:1px solid var(--line)}
.review-summary{font-size:17px;line-height:1.7;margin:24px 0 32px}
.review-summary strong{font-size:24px;color:var(--gold)}
.review-quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-bottom:22px}
.review-quotes figure{border-left:1px solid var(--line);padding-left:23px;min-width:0}
.review-quotes blockquote{font:400 28px/1.35 var(--serif);margin:0 0 18px;color:var(--ink)}
.review-quotes figcaption{font-size:16px;line-height:1.6;color:var(--muted)}
.review-quotes time{display:block;font-size:14px;margin-top:4px}
.message-link{display:inline-flex;margin-top:20px;color:#ead8b7;font-size:17px;text-underline-offset:5px;line-height:1.6;padding-block:8px}
.budget-section{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:34px;margin-top:35px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.budget-section[hidden]{display:none}
.budget-section h3{font:400 35px/1.15 var(--serif);margin:0 0 16px}
.budget-section p{font-size:16px;line-height:1.75;color:var(--muted)}
.budget-controls{display:grid;gap:19px}
.budget-controls label{display:grid;gap:8px;font-size:16px;font-weight:500;min-width:0}
.budget-controls select,.budget-controls input{font:400 16px/1.5 var(--sans);border:1px solid var(--line);border-radius:4px;background:var(--ivory);color:var(--ink);padding:12px;min-height:50px;width:100%;min-width:0}
.budget-total>span{display:block;font-size:16px;color:var(--muted);margin-bottom:8px}
.budget-total output{display:block;font:500 28px/1.35 var(--serif);color:var(--gold)}
.budget-total output[data-calculated="true"]{font-size:40px}
.budget-controls .budget-note{font-size:14px;line-height:1.7}
@media(max-width:1150px){.desktop-nav,.header-phone{display:none}.menu-toggle{display:block}.mobile-navigation a{font-size:17px}.header-booking{display:none}}
@media(max-width:760px){
  :root{font-size:16px}
  .container{width:calc(100% - 42px)}
  .section{padding-block:66px}
  .brand>span{font-size:25px}
  .brand small{font-size:11px;letter-spacing:0}
  .brand img{width:48px;height:48px}
  .header-inner{gap:12px;min-height:82px}
  .hero .hero-copy>.eyebrow,.hero.hero-laser .hero-copy>.eyebrow,.hero.hero-v2 .hero-copy>.eyebrow{font-size:13px;letter-spacing:.07em;line-height:1.65}
  .hero .hero-description,.hero.hero-laser .hero-description,.hero.hero-v2 .hero-description,.section-heading>.section-intro,.studio-story>p:not(.eyebrow),.team-info p,.visit-steps p,.faq-list details>p,.care-copy>p{font-size:16px;line-height:1.75}
  .hero.hero-laser .hero-actions,.hero.hero-v2 .hero-actions{gap:15px;align-items:flex-start;flex-direction:column}
  .hero .hero-actions .button,.hero .hero-actions .text-link{font-size:16px;gap:20px;min-height:50px}
  .hero-location,.hero.hero-v2 .hero-location,.hero.hero-laser .hero-location{font-size:16px}
  .hero-location small,.hero.hero-v2 .hero-location small{font-size:14px}
  .service-line span{font-size:15px;line-height:1.5}
  .service-line>.container{gap:17px 16px}
  .price-tabs button,.price-tabs button:first-child{font-size:16px;padding:12px 13px;min-height:50px;white-space:normal;text-align:left}
  .price-card{padding:25px 23px 20px;min-height:0}
  .price-card .eyebrow{font-size:14px}
  .price-card p,.price-row,.price-row small{font-size:16px;line-height:1.7}
  .price-card h3{min-height:0}
  .price-row{gap:13px}
  .price-row strong{font-size:17px}
  .price-explainer,.price-footnote{font-size:16px}
  .price-footnote p{max-width:none}
  .team-grid{grid-template-columns:1fr;gap:38px}
  .founder-summary{grid-template-columns:1fr;gap:22px}
  .founder-summary p{font-size:16px}
  .founder-summary>img{width:135px;height:165px}
  .gallery-strip{grid-template-columns:1fr}
  .gallery-strip .photo-button:first-child{grid-column:auto}
  .gallery-strip .photo-button>span{font-size:16px;padding:16px;min-height:64px}
  .gallery-strip img,.gallery-strip .photo-button:first-child img{height:265px}
  .offers-list article{align-items:flex-start;gap:18px}
  .offers-list h3{font-size:18px}
  .offers-list p{font-size:16px}
  .offers-list article>strong{min-width:90px;font-size:48px}
  .faq-list summary{font-size:17px}
  .contact-address{font-size:17px}
  .contact-address>span,.contact-map-links,.reviews-link,.entrance-photo figcaption{font-size:16px}
  .contact-map-links{gap:15px 24px}
  .footer-top>div,.footer-top>span{font-size:16px}
  .footer-bottom{display:block;font-size:14px}
  .footer-bottom p{max-width:none}
  .footer-bottom>a{display:inline-block;margin-top:16px;font-size:16px}
  .mobile-booking{padding-inline:15px;gap:10px}
  .mobile-booking a{font-size:16px;line-height:1.45;min-height:52px;padding:12px 8px}
  .mobile-booking a:first-child{flex:.75}
  .mobile-booking a:last-child{flex:1.6;padding-inline:14px;gap:12px}
  .founder-greeting{font-size:17px}
  .founder-caption{gap:15px;align-items:flex-start}
  .founder-caption p,.founder-caption small{font-size:14px;line-height:1.6}
  .founder-caption p{max-width:185px}
  .guide-article{scroll-margin-top:110px;padding-block:30px}
  .guide-article h3{font-size:34px}
  .guide-article h4{font-size:18px}
  .guide-article p,.guide-article li{font-size:16px;line-height:1.75}
  .guide-steps{grid-template-columns:1fr;gap:20px}
  .restrictions-list{columns:1}
  .guide-navigation{gap:8px 20px;margin-bottom:23px}
  .guide-note{padding:18px;margin-block:24px}
  .reviews-section{padding-block:58px}
  .review-quotes{grid-template-columns:1fr;gap:28px}
  .budget-section{grid-template-columns:1fr;padding:23px;gap:25px}
  .budget-section h3{font-size:31px}
  .site-footer{padding-bottom:calc(125px + env(safe-area-inset-bottom))}
}
@media(max-width:370px){
  .container{width:calc(100% - 34px)}
  .brand>span{font-size:22px}
  .brand small{font-size:10px}
  .brand img{width:43px;height:43px}
  .brand{gap:8px}
  .brand small{max-width:185px;line-height:1.3}
  .header-inner{gap:5px}
  .mobile-booking{padding-inline:12px;gap:8px}
  .mobile-booking a{font-size:16px}
  .mobile-booking a:last-child{gap:7px;padding-inline:11px}
}

/* Keep preparation guidance available without dominating the page. */
.guides-section{padding-block:76px}
.guides-section .section-heading{margin-bottom:28px}
.guides-section h2{font-size:clamp(34px,3.5vw,48px);line-height:1.12}
.guide-disclosure{padding:0;scroll-margin-top:115px}
.guide-disclosure:last-child{border-bottom:1px solid var(--line)}
.guide-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:23px 2px;min-height:94px;list-style:none;cursor:pointer}
.guide-disclosure>summary::-webkit-details-marker{display:none}
.guide-disclosure-title{font-size:19px;line-height:1.5;font-weight:500;color:var(--ink)}
.guide-disclosure-title small{display:block;font-size:16px;font-weight:400;line-height:1.6;color:var(--muted);margin-top:4px}
.guide-toggle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;color:var(--gold);transition:transform .2s}
.guide-disclosure[open]>summary .guide-toggle{transform:rotate(45deg)}
.guide-content{padding:0 2px 30px}
.guide-content>.guide-steps{margin-top:0}
.guide-footnote a{display:inline-block;max-width:100%;padding-block:4px}
@media(max-width:760px){
  .guides-section{padding-block:54px}
  .guides-section .section-heading{margin-bottom:22px}
  .guide-disclosure{padding:0;scroll-margin-top:105px}
  .guide-disclosure>summary{padding-block:21px;gap:17px}
  .guide-disclosure-title{font-size:18px}
  .guide-disclosure-title small{font-size:14px}
  .guide-content{padding-bottom:25px}
}
