/* PC review, 2026-10-13. Keep decorative portraits outside section backgrounds. */
.responsive-section{overflow:visible}
.section-audience,.section-holdings{overflow:visible}
#audience,#price,#media,#technology,#faq{z-index:2}
#media{z-index:3}
.section-root [data-layout="absolute"]:has(>img){pointer-events:none}
@media(min-width:768px){
 #hero{height:calc(750 * 100cqw / 1440);overflow:hidden}
 .section-hero.layout-desktop{transform:scale(calc(100cqw / 1440px))}
}
/* One unfragmented vector logo: the letterforms share the same baseline. */
.brand-logo{display:block;width:100%;height:auto;object-fit:contain}
.home-logo{width:138px;flex-shrink:0}
.footer-logo{display:block;width:320px;max-width:100%}
@media(min-width:1200px){.home-logo{width:230px}}
@media(min-width:1200px) and (max-width:1380px){.home-logo{width:185px}}
@media(max-width:389px){.home-logo{width:115px}}
/* Natural-width symptom pills prevent two-character labels wrapping vertically. */
.section-symptom-index [data-name="Symptom Tag"]{width:max-content;height:auto;min-height:30px;white-space:nowrap;flex:none}
.section-symptom-index [data-name="Symptom Tag"]>div{flex:none;width:auto;min-width:max-content;white-space:nowrap}
.section-symptom-index [data-name="Symptom Tag"] a,.section-symptom-index [data-name="Symptom Tag"] p{white-space:nowrap!important}
/* White keyline, behind the original orange text. */
.duration-outline p{-webkit-text-stroke:5px white;paint-order:stroke fill}
.duration-outline span{-webkit-text-stroke:inherit;paint-order:stroke fill}
@media(max-width:1199px){.duration-outline p{-webkit-text-stroke-width:3px}}
/* Official testimonial sources. Each card opens its own vertical video. */
.official-videos{display:flex;gap:18px;width:100%!important;max-width:1200px!important;align-items:stretch;padding:4px 0 12px;overflow-x:auto;justify-content:flex-start!important}
.official-video{display:flex;flex:0 0 calc((100% - 72px)/5);min-width:175px;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;color:#20201b}
.video-thumbnail{position:relative;display:block;width:100%;aspect-ratio:9/16;overflow:hidden}
.video-thumbnail>img{width:100%;height:100%;object-fit:cover;object-position:center}
.play-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;background:#e52117;color:white;width:58px;height:40px;border-radius:10px;font-size:21px}
.video-caption{display:block;width:100%;padding:9px 4px;text-align:center;font-size:15px;font-weight:700;white-space:nowrap}
.video-dialog{width:min(480px,94vw)}
.video-player{aspect-ratio:9/16;max-height:75dvh;width:auto;margin:auto}
@media(max-width:1199px){.official-video{flex-basis:180px}.official-videos{max-width:100%!important}.video-caption{font-size:13px}}
/* Seamless leftward loops. Only the moving window clips, never the section. */
.marquee{position:relative;width:100%;min-width:0;max-width:100%;--marquee-gap:16px;--marquee-duration:64s}
.marquee-window{width:100%;overflow:hidden}
.marquee-track{display:flex;width:max-content;animation:slide-left var(--marquee-duration) linear infinite;will-change:transform}
.marquee-group{display:flex;align-items:stretch;gap:var(--marquee-gap);padding-right:var(--marquee-gap);flex:none}
.marquee-window:hover .marquee-track,.marquee-window:focus-within .marquee-track,.marquee.is-paused .marquee-track{animation-play-state:paused}
.motion-toggle{display:block;margin:10px 16px 0 auto;border:1px solid #03624266;border-radius:20px;padding:4px 13px;font-size:11px;line-height:1.5;color:var(--green);background:#fff;min-height:30px}
.motion-toggle[aria-pressed="true"]{background:#e3ece4}
@keyframes slide-left{to{transform:translate3d(-50%,0,0)}}
.treatment-photo{position:relative;flex:0 0 289px;width:289px;height:193px;overflow:hidden}
.treatment-photo>img{position:static!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;transform:none!important}
.section-features [data-node-id="1:2032"],.section-features [data-node-id="1:249"]{width:100%;max-width:none!important}
.marquee-photos{--marquee-duration:80s}
/* Official site: ten brands; 64s desktop / 52s phone, same 2:1 assets. */
.marquee-holdings{--marquee-gap:clamp(16px,2vw,24px);--marquee-duration:64s}
.brand-card{display:flex;flex-direction:column;flex:0 0 clamp(320px,34vw,480px);width:clamp(320px,34vw,480px);background:#edf0e8;color:#20201b}
.brand-card>img{width:100%;height:auto;aspect-ratio:2/1;object-fit:cover}
.brand-card>span{display:block;padding:10px 8px;text-align:center;font-size:15px;line-height:1.5}
.brand-card>span>span{color:var(--green)}
.section-holdings [data-node-id="1:2860"]{width:100%;max-width:none!important}
/* Background wordmark stays below the people and behind the group content. */
.section-group{position:relative;isolation:isolate}
.section-group>.marquee-words{position:absolute;left:0;right:0;bottom:0;z-index:-1;--marquee-gap:52px;--marquee-duration:70s}
.marquee-words .marquee-group>span{font:700 200px/1 "Arial",sans-serif;letter-spacing:-.04em;color:#d0e0cc;white-space:nowrap}
.marquee-words .motion-toggle{position:absolute;right:16px;bottom:8px;opacity:.85}
@media(max-width:1199px){
 .treatment-photo{flex-basis:230px;width:230px;height:154px}
 .marquee-holdings{--marquee-duration:52s}
 .brand-card{flex-basis:min(82vw,350px);width:min(82vw,350px)}
 .brand-card>span{font-size:13px}
 .section-group>.marquee-words{--marquee-gap:26px}
 .marquee-words .marquee-group>span{font-size:110px}
 .layout-mobile.section-holdings{padding-inline:0}
 .layout-mobile.section-holdings .section-title,.layout-mobile.section-holdings [data-node-id="1:2864"]{padding-inline:20px}
}
@media(prefers-reduced-motion:reduce){
 .marquee-track{animation:none;transform:none;will-change:auto}
 .marquee-window{overflow-x:auto}
 .marquee-copy,.motion-toggle{display:none}
}
@media(min-width:768px){
 #hero{height:auto;aspect-ratio:1440/750}
 .section-hero.layout-desktop{position:absolute;top:0}
}
/* Clip horizontal decoration only; portraits may still cross vertical boundaries. */
.responsive-section{overflow-x:clip;overflow-y:visible}
@media(max-width:1199px){
 .section-audience [data-node-id="1:328"],.section-media [data-node-id="1:924"]{left:auto;right:0}
}
/* Second PC review: logo edge clearance, region anchors and link feedback. */
.home-logo,.brand-logo{overflow:visible}
.text-link{transition:color .18s,text-decoration-color .18s;text-underline-offset:.22em;text-decoration-thickness:2px}
.text-link:hover,.text-link:focus-visible{color:#95610a;text-decoration-line:underline;filter:none}
.link-button,.header-booking,.champion-news{transition:filter .18s,box-shadow .18s}
.link-button:hover,.link-button:focus-visible,.header-booking:hover,.header-booking:focus-visible{filter:brightness(1.15);box-shadow:0 3px 10px #003e352b}
.link-card{transition:box-shadow .18s,filter .18s}
.link-card:hover,.link-card:focus-visible{box-shadow:0 5px 18px #003e352e;filter:brightness(.96)}
.desktop-nav a,.desktop-nav button{transition:color .18s;text-underline-offset:.35em}
.desktop-nav a:hover,.desktop-nav button:hover,.desktop-nav a:focus-visible,.desktop-nav button:focus-visible{color:#036242;text-decoration:underline;text-decoration-thickness:2px;filter:none}
#menu-area.store-area-links{display:flex;flex-direction:column;gap:0;width:100%}
.menu-source a.store-area-link{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:15px 8px;border-bottom:1px solid #d9e0d3;color:#036242;font-size:15px;font-weight:700;transition:background-color .18s,color .18s}
.menu-source a.store-area-link:hover,.menu-source a.store-area-link:focus-visible{background:#e5ece1;color:#95610a;text-decoration:underline;text-underline-offset:.2em}
.store-area-all{margin-top:18px;font-size:14px;font-weight:700}
.champion-intro{white-space:normal;max-width:100%;text-wrap:balance}
.champion-copy{display:flex;flex-direction:column;align-items:flex-start;gap:12px;flex:1;min-width:0;padding:28px;font-size:15px;line-height:1.8;letter-spacing:.025em;color:#20201b}
.team-owner{display:inline-block;padding:4px 12px;border-radius:4px;background:#036242;color:#fff;font-size:12px;font-weight:700;line-height:1.6}
.champion-copy h3{font-size:25px;font-weight:700;color:#036242;line-height:1.3}
.team-sport{font-size:12px}
.champion-result{width:100%;padding:14px 16px;border-left:4px solid #c9962f;background:#f7f3e4;color:#69501b;line-height:1.7}
.champion-result p{font-size:12px;font-weight:700}
.champion-result strong{display:block;font-size:29px;letter-spacing:.025em;line-height:1.5;color:#946818}
.champion-links{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:4px;font-size:13px;font-weight:700;color:#036242}
.champion-news{display:inline-flex;padding:9px 12px;background:#036242;color:#fff;border-radius:4px}
@media(min-width:1200px){
 .champion-team{align-items:stretch}
 .champion-team>[data-node-id="1:2693"]{height:auto;align-self:stretch}
 .section-media [data-node-id="1:2720"]{top:auto;bottom:-75px}
}
@media(max-width:1199px){
 .champion-copy{padding:22px 20px;font-size:14px;width:100%}
 .champion-copy h3{font-size:23px}
 .champion-result strong{font-size:clamp(22px,6.5vw,29px)}
 .champion-result{padding:12px}
 .team-owner{font-size:11px}
}
@media(max-width:1199px){
 .section-media .section-title p{white-space:normal;max-width:100%;text-wrap:balance}
 .team-owner{text-wrap:balance}
}
@media(max-width:1199px){
 .section-media [data-node-id="1:924"]{top:auto;bottom:-40px}
}
@media(max-width:360px){
 .champion-copy{padding:20px 16px}
 .champion-result strong{font-size:18px;letter-spacing:0}
 .champion-links{font-size:12px}
 .champion-news{padding:9px 8px}
}
/* Third review: fluid phone/tablet content and booking-banner feedback. */
.section-cta>div,.section-cta-end>div{transition:filter .2s,box-shadow .2s}
@media(hover:hover){
 .section-cta>div:hover,.section-cta-end>div:hover{filter:brightness(1.06);box-shadow:0 8px 22px #003e3538}
}
.section-cta>div:focus-within,.section-cta-end>div:focus-within{filter:brightness(1.06);box-shadow:0 8px 22px #003e3538}
@media(max-width:1199px){
 /* The decorative background must follow both the section width and its content height. */
 .section-method [data-node-id="1:174"]{inset:353px 0 0;width:100%;height:auto;z-index:-1}
 .section-method .f-615,.section-method .f-616{width:100%;height:100%}
 .section-features [data-node-id="1:230"],.section-features [data-node-id="1:237"],.section-features [data-node-id="1:245"]{width:100%;height:auto;aspect-ratio:350/200}
 .section-flow [data-node-id="1:352"]{width:100%;align-items:stretch}
 .section-flow [data-name="card"]{width:100%;min-width:0}
 .section-flow [data-node-id="1:353"],.section-flow [data-node-id="1:361"],.section-flow [data-node-id="1:369"],.section-flow [data-node-id="1:377"]{width:100%;min-width:0}
 .section-flow [data-node-id="1:358"],.section-flow [data-node-id="1:366"],.section-flow [data-node-id="1:374"],.section-flow [data-node-id="1:382"],.section-flow [data-node-id="1:396"],.section-flow [data-node-id="1:403"]{width:100%;height:auto;aspect-ratio:308/205}
 .section-media{justify-content:center}
 .section-media [data-node-id="1:887"]{width:100%;margin-inline:auto}
 .section-media [data-node-id="1:906"],.section-media [data-node-id="1:907"]{width:100%;height:auto;aspect-ratio:366/206}
 .layout-mobile.section-footer{padding-inline:0;max-width:none}
 .layout-mobile.section-footer>[data-node-id="1:1141"]{width:calc(100% - 40px);max-width:560px}
 .section-footer [data-node-id="1:1158"],.section-footer [data-node-id="1:1181"]{width:100%;border-top:1px dashed #d6a744}
 .section-footer [data-node-id="1:1158"]>div,.section-footer [data-node-id="1:1181"]>div{display:none}
 .layout-mobile.section-footer>[data-node-id="1:1190"]{width:100%;max-width:none;padding-inline:16px}
 .section-column [data-node-id="1:983"]{left:auto;right:16px}
 .section-column [data-node-id="1:988"]{left:max(20px,calc(50% - 320px))}
}
@media(min-width:600px) and (max-width:1199px){
 .home-logo{width:240px}
 .site-header{height:72px;gap:20px}
 .header-booking{font-size:13px;height:38px}
 .section-media [data-node-id="1:887"]{max-width:560px}
}
@media(min-width:390px) and (max-width:599px){
 .home-logo{width:155px}
 .site-header{padding-inline:14px;gap:10px}
}
@media(max-width:1199px){
 #footer .layout-mobile>[data-node-id="1:1190"]{width:100%;max-width:none}
}
/* Fourth review, 2026-10-14: looping videos and aligned mobile decoration. */
.marquee-videos{max-width:1200px;align-self:center;--marquee-gap:18px;--marquee-duration:48s}
.marquee-videos .official-video{flex:0 0 240px;width:240px;min-width:0}
.marquee-videos .marquee-window{padding-block:4px 12px}
.marquee-videos .motion-toggle{color:#fff;background:transparent;border-color:#ffffff80}
.marquee-videos.is-video-open .marquee-track{animation-play-state:paused}
@media(max-width:1199px){
 .marquee-videos .official-video{flex-basis:180px;width:180px}
 .layout-mobile.section-cta,.layout-mobile.section-cta-end{align-items:center}
 .layout-mobile.section-cta>div,.layout-mobile.section-cta-end>div{margin-inline:auto}
 .section-column [data-node-id="1:988"]{left:16px;top:-36.91px}
}
@media(max-width:1199px){.marquee-videos{max-width:900px}}
/* Fifth review: edge-to-edge phone hero at every width below the desktop artwork. */
@media(max-width:767px){
 #hero{height:auto;aspect-ratio:390/602;overflow:hidden}
 #hero .section-hero.layout-mobile{position:absolute;top:0;left:50%;width:390px;height:602px;margin-left:-195px;margin-top:0;transform:scale(calc(100cqw / 390px));transform-origin:top center}
}
/* Sixth review: show complete YouTube artwork instead of cropping a fixed-height slot. */
@media(max-width:1199px){
 .section-column [data-node-id="1:986"],.section-column [data-node-id="1:987"]{display:block;width:100%;max-width:560px;height:auto}
 .section-column [data-node-id="1:986"]>img,.section-column [data-node-id="1:987"]>img{position:static;width:100%;height:auto;max-width:100%;object-fit:contain}
}
/* Seventh review: enlarge the phone logo while reserving room for navigation. */
@media(min-width:390px) and (max-width:599px){
 .home-logo{width:clamp(170px,calc(100vw - 264px),240px)}
 .header-booking{min-width:95px}
 .site-header{gap:8px}
}
@media(max-width:389px){.home-logo{width:clamp(128px,calc(100vw - 192px),170px)}}
/* Eighth review: keep both decorative slashes with the YouTube heading. */
@media(max-width:1199px){
 .section-column [data-node-id="1:985"]{font-size:clamp(16px,5vw,18px);letter-spacing:0}
 .section-column [data-node-id="1:985"] p{white-space:nowrap}
}
/* Ninth review: narrow-screen banner scaling, flexible card titles and portrait spacing. */
@media(max-width:1199px){
 .layout-mobile.section-flow [data-name="card"]>.section-title{width:100%;align-items:flex-start}
 .layout-mobile.section-flow [data-name="card"]>.section-title>div:last-child{flex:1 1 0;min-width:0;width:auto;white-space:normal}
 .layout-mobile.section-flow [data-name="card"]>.section-title>div:last-child p{white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:599px){
 .layout-mobile.section-audience{padding-top:112px;padding-bottom:140px}
 .layout-mobile.section-audience [data-node-id="1:328"]{top:auto;bottom:16px}
 .layout-mobile.section-technology{padding-top:24px}
 .layout-mobile.section-technology [data-node-id="1:960"]{position:relative;top:auto;left:auto;flex:none;order:-1}
}
@media(max-width:389px){
 #cta>.layout-mobile,#cta-end>.layout-mobile{height:calc(96px + min(350px,calc(100cqw - 32px)))}
 #cta>.layout-mobile>div,#cta-end>.layout-mobile>div{position:absolute;top:48px;left:50%;width:350px;max-width:none;margin-left:-175px;margin-right:0;transform:scale(min(1,calc((100cqw - 32px)/350px)));transform-origin:top center}
}
@media(max-width:1199px){
 .section-technology [data-node-id="1:964"],.section-technology [data-node-id="1:970"],.section-technology [data-node-id="1:973"]{height:auto}
}

/* Tenth review: center the tablet GIFT diagram and research introduction. */
@media(min-width:600px) and (max-width:1199px){
 .layout-mobile.section-method [data-node-id="1:192"]{width:350px;max-width:100%;margin-inline:auto}
 .layout-mobile.section-method [data-node-id="1:188"],.layout-mobile.section-method [data-node-id="1:189"]{left:calc(50% + 45px)}
 .layout-mobile.section-research [data-node-id="1:930"]{width:100%;text-align:center}
}

/* Eleventh review: anchor tablet audience portraits to the content frame. */
@media(min-width:600px) and (max-width:1199px){
 .layout-mobile.section-root.section-audience{width:600px;max-width:100%;margin-inline:auto}
 .layout-mobile.section-audience [data-node-id="1:328"]{top:auto;bottom:-20px}
}

/* Three green accent strokes shown in the supplied portrait reference. */
.layout-mobile.section-audience [data-node-id="1:328"]::after{content:"";position:absolute;left:80%;top:1px;width:16px;height:20px;background:url("../images/audience-accent.svg") center/contain no-repeat;pointer-events:none}

/* Twelfth review: include the supporting male portrait on desktop, too. */
.layout-desktop.section-audience .audience-men{position:absolute;width:207px;height:139px;right:0;bottom:-20px;pointer-events:none}
.audience-men>img{display:block;width:100%;height:100%;object-fit:cover}
.audience-men::after{content:"";position:absolute;left:80%;top:1px;width:20px;height:25px;background:url("../images/audience-accent.svg") center/contain no-repeat;pointer-events:none}

/* Mobile fixed booking button: based on Figma 9:2, with requested depth and motion. */
.mobile-sticky-footer{display:none}
@media(max-width:767px){
 body{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
 html{scroll-padding-bottom:calc(94px + env(safe-area-inset-bottom,0px))}
 .mobile-sticky-footer{display:block;position:fixed;inset:auto 0 0;z-index:45;padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(to bottom,transparent,rgba(255,255,255,.94));pointer-events:none}
 .mobile-sticky-booking{display:flex;position:relative;align-items:center;justify-content:center;height:56px;padding-inline:42px;border:1px solid #ed946d;border-radius:14px;overflow:hidden;isolation:isolate;background:linear-gradient(to bottom,#e77949 0%,#d46239 48%,#cb4819 52%,#c34115 100%);box-shadow:0 4px 0 #943610,0 7px 18px #81300d38,inset 0 1px 0 #ffffff66;color:#fff;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;line-height:normal;text-align:center;white-space:nowrap;text-decoration:none;pointer-events:auto;transition:filter .18s,transform .18s,box-shadow .18s;-webkit-tap-highlight-color:transparent}
 .mobile-sticky-booking::before{content:"";position:absolute;inset:0 auto 0 -50%;width:40%;background:linear-gradient(90deg,transparent,#ffffff70,transparent);transform:skewX(-20deg);opacity:0;animation:mobile-booking-shine 4.8s ease-in-out infinite;pointer-events:none}
 .mobile-sticky-label{position:relative;font-size:20px;letter-spacing:1px;transform:translateX(-2px);text-shadow:0 1px 1px #85300955}
 .mobile-sticky-arrow{position:absolute;right:24px;font-size:18px;letter-spacing:.28px}
 .mobile-sticky-booking:focus-visible{outline:3px solid #fff;outline-offset:-5px;filter:brightness(1.08)}
 .mobile-sticky-booking:active{transform:translateY(3px);box-shadow:0 1px 0 #943610,0 3px 8px #81300d28,inset 0 1px 0 #ffffff44;filter:brightness(.97)}
}
@media(max-width:767px) and (hover:hover){
 .mobile-sticky-booking:hover{filter:brightness(1.08);transform:translateY(-1px)}
 .mobile-sticky-booking:hover:active{transform:translateY(3px)}
}
@keyframes mobile-booking-shine{
 0%,65%{transform:translateX(0) skewX(-20deg);opacity:0}
 70%{opacity:1}
 90%,100%{transform:translateX(400%) skewX(-20deg);opacity:0}
}
@media(prefers-reduced-motion:reduce){
 .mobile-sticky-booking::before{animation:none}
 .mobile-sticky-booking{transition:none}
}
