:root { --ink:#172224; --red:#207747; --paper:#f9f9f7; --line:#dcdedb; --dark:#263235; --sans:"Familjen Grotesk","Noto Sans JP",sans-serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); font-size:14pt; } a { color:inherit; text-decoration:none; } .page-rule { position:fixed; z-index:20; top:0; bottom:0; left:20px; width:1px; background:rgba(23,34,36,.13); pointer-events:none; }
.site-header { align-items:center; color:#fff; display:flex; height:72px; justify-content:space-between; left:0; padding:0 20px 0 36px; position:absolute; right:0; top:0; z-index:10; } .brand { align-items:center; display:flex; font-size:13px; font-weight:700; gap:8px; letter-spacing:.08em; line-height:1; } .brand small { display:block; font-size:7px; letter-spacing:.18em; margin-top:4px; } .brand-mark { align-items:center; border:2px solid currentColor; border-radius:50%; display:inline-flex; font-size:13px; height:27px; justify-content:center; letter-spacing:0; width:27px; }.desktop-nav,.header-reserve { display:none; }.menu-button { background:none; border:0; color:inherit; display:grid; gap:4px; padding:10px 0 10px 10px; width:44px; }.menu-button span { background:currentColor; display:block; height:1px; width:25px; }.menu-button b { font-size:7px; letter-spacing:.1em; margin-top:1px; }.mobile-menu { align-content:start; background:var(--dark); bottom:0; color:#fff; display:grid; gap:20px; grid-template-rows:repeat(4, auto) 1fr; left:0; padding:100px 38px 36px; position:fixed; right:0; top:0; transform:translateY(-110%); transition:transform .35s ease; z-index:8; }.mobile-menu.open { transform:translateY(0); }.mobile-menu > a { border-bottom:1px solid rgba(255,255,255,.25); font-size:17px; padding-bottom:14px; }
.hero { height:100vh; min-height:600px; overflow:hidden; position:relative; }.hero-image,.hero-shade { inset:0; position:absolute; }.hero-image { background-image:url("../hero-training.png"); background-position:61% center; background-size:cover; }.hero-shade { background:linear-gradient(90deg,rgba(16,30,37,.61),rgba(16,30,37,.15) 72%); }.hero-content { bottom:17%; color:#fff; left:36px; position:absolute; z-index:1; }.eyebrow,.section-kicker { font-size:10px; font-weight:700; letter-spacing:.1em; margin:0 0 17px; }.hero h1 { font-size:clamp(46px,13vw,94px); font-weight:700; letter-spacing:-.065em; line-height:.93; margin:0; }.hero h1 em { color:#fff; font-style:normal; }.hero-lead { font-size:13px; line-height:1.8; margin:23px 0; }.text-link { border-bottom:1px solid var(--ink); display:inline-flex; font-size:12px; font-weight:700; gap:32px; padding:0 0 9px; }.text-link span { color:var(--red); font-size:18px; line-height:.7; }.text-link.light { border-color:#fff; }.text-link.light span { color:#fff; }.hero-bottom { align-items:center; bottom:24px; color:#fff; display:flex; font-size:8px; gap:11px; left:36px; letter-spacing:.1em; position:absolute; right:20px; }.scroll-line { background:currentColor; flex:1; height:1px; opacity:.75; }
.section { padding:80px 36px; }.section-kicker { color:var(--red); }.section-kicker span { color:#8a9191; font-size:8px; margin-left:8px; }.intro { background:#fff; }.intro-copy h2,.menu h2,.reservation h2,.feature h2 { font-size:clamp(31px,9vw,57px); letter-spacing:-.07em; line-height:1.13; margin:0 0 34px; }.intro-copy p,.feature-copy > p,.reservation > p { font-size:13px; line-height:2; margin:0 0 17px; }.intro-copy .text-link { margin-top:15px; }
.feature { overflow:hidden; position:relative; }.feature-number { color:var(--red); font-size:11px; left:36px; position:absolute; top:28px; }.feature-stretch { background:#dde7e7; min-height:680px; }.feature-copy { max-width:580px; position:relative; z-index:2; }.feature h2 strong { color:var(--red); font-weight:700; }.stretch-art { bottom:-54px; color:rgba(255,255,255,.59); font-size:200px; font-weight:700; letter-spacing:-.15em; line-height:.7; position:absolute; right:-11px; }.stretch-art i { border:1px solid rgba(23,34,36,.15); border-radius:50%; display:block; height:95px; position:absolute; right:93px; top:-74px; width:95px; }.stretch-art i:nth-child(3) { right:0; top:-134px; }.stretch-art i:nth-child(4) { right:14px; top:28px; }.medicell { background:#fff; }.medicell-visual { background:var(--dark); color:#fff; height:238px; overflow:hidden; padding:24px 36px; position:relative; }.medicell-visual::after { border:1px solid rgba(255,255,255,.28); border-radius:50%; content:""; height:265px; position:absolute; right:-57px; top:-86px; width:265px; }.medicell-visual p { font-size:59px; font-weight:700; letter-spacing:-.09em; line-height:.78; margin:0; position:relative; z-index:1; }
.menu { padding-bottom:0; }.menu-list { margin:48px -36px 0; }.menu-list a { align-items:center; border-top:1px solid var(--line); display:grid; gap:4px; grid-template-columns:35px 1fr 24px; padding:20px 36px; }.menu-list a:last-child { border-bottom:1px solid var(--line); }.menu-list span,.menu-list small { color:#818989; font-size:8px; }.menu-list strong { font-size:15px; font-weight:600; }.menu-list small { grid-column:2; }.menu-list b { color:var(--red); font-size:23px; font-weight:400; grid-column:3; grid-row:1 / 3; }.reservation { background:var(--dark); color:#fff; padding:80px 36px; }.reservation .section-kicker { color:#ff756b; }.reservation .section-kicker span { color:#b8c1c1; }.reservation-links { display:grid; gap:10px; margin-top:32px; }.button { align-items:center; background:var(--red); display:flex; font-size:13px; font-weight:700; justify-content:space-between; padding:18px 20px; }.button-line { background:#5cbb54; } footer { background:#172022; color:#fff; padding:55px 36px 28px; } footer p { color:#b7c1c1; font-size:11px; line-height:2; margin:25px 0 0; }.copyright { border-top:1px solid rgba(255,255,255,.2); font-size:8px; margin-top:45px; padding-top:18px; }
.floating-cta { bottom:12px; display:grid; grid-template-columns:1fr 1fr; left:12px; position:fixed; right:12px; transform:translateY(0); transition:opacity .3s,transform .3s; z-index:15; }.floating-cta.is-hidden { opacity:0; pointer-events:none; transform:translateY(20px); }.floating-cta a { align-items:center; color:#fff; display:flex; font-size:11px; font-weight:700; justify-content:space-between; padding:15px 14px; }.floating-line { background:#58bc55; }.floating-reserve { background:var(--red); }.floating-cta b { font-size:17px; font-weight:400; }
@media (min-width: 800px) { .page-rule{left:30px}.site-header{height:86px;padding:0 35px 0 48px}.desktop-nav{display:flex;gap:29px;margin-left:auto;margin-right:30px}.desktop-nav a{font-size:10px;font-weight:700}.header-reserve{background:var(--red);display:flex;font-size:11px;font-weight:700;gap:16px;padding:13px 18px}.header-reserve span{font-size:16px}.menu-button,.mobile-menu{display:none}.hero-content{bottom:16%;left:9vw}.hero h1{font-size:clamp(70px,8.5vw,136px)}.hero-lead{font-size:15px}.hero-bottom{left:9vw;right:9vw}.section{padding:130px max(9vw,80px)}.intro-copy{display:grid;gap:10vw;grid-template-columns:1fr 1fr}.intro-copy h2{margin:0}.intro-copy > div{padding-top:12px}.feature{display:grid;grid-template-columns:1fr 1fr;min-height:670px}.feature-copy{align-self:center;padding-left:max(9vw,80px);padding-right:60px}.feature-number{left:max(9vw,80px);top:55px}.feature-stretch .stretch-art{bottom:-15px;font-size:320px;right:9vw}.medicell-visual{height:auto;grid-column:2;grid-row:1;padding:80px}.medicell-visual p{font-size:clamp(80px,10vw,150px);margin-top:215px}.medicell .feature-copy{grid-column:1;grid-row:1}.menu-list{margin:65px max(-9vw,-80px) 0}.menu-list a{grid-template-columns:10vw 1fr 1fr 40px;padding:24px max(9vw,80px)}.menu-list small{grid-column:3;grid-row:1}.menu-list b{grid-column:4;grid-row:1}.reservation{padding:130px max(9vw,80px)}.reservation-links{display:flex;max-width:540px}.button{min-width:240px}.floating-cta{bottom:auto;display:grid;left:auto;right:0;top:50%;transform:translateY(-50%);width:116px}.floating-cta a{min-height:116px;padding:16px;writing-mode:vertical-rl}.floating-cta.is-hidden{transform:translateX(20px);}.floating-cta b{margin-top:auto}footer{padding:80px max(9vw,80px) 30px}.footer-brand{font-size:16px} }

/* Refined typography, supplied image treatments, and CTA alignment. */
.hero-lead,
.text-link,
.intro-copy p,
.feature-copy > p,
.reservation > p,
.menu-list strong,
.button,
footer p,
.floating-cta a { font-size:14pt; }

.stretch-media { bottom:0; height:43%; position:absolute; right:0; width:68%; }
.stretch-machine { bottom:-15%; filter:drop-shadow(0 18px 20px rgba(23,34,36,.17)); height:118%; object-fit:contain; object-position:right bottom; position:absolute; right:-8%; width:100%; }
.stretch-logo { left:5%; max-width:280px; position:absolute; top:40%; width:75%; }
.medicell-visual { height:330px; padding:0; }
.medicell-treatment { height:100%; inset:0; object-fit:cover; opacity:.72; position:absolute; width:100%; }
.medicell-device { bottom:-26px; filter:drop-shadow(0 10px 12px rgba(0,0,0,.45)); height:61%; object-fit:contain; position:absolute; right:12px; width:42%; z-index:2; }
.medicell-visual p { left:36px; position:absolute; top:25px; z-index:3; }

@media (min-width:800px) {
  .desktop-nav a { font-size:14px; }
  .header-reserve { align-items:center; display:inline-flex; font-size:16px; gap:8px; height:48px; justify-content:center; line-height:1; padding:0 20px; }
  .header-reserve span { font-size:18px; line-height:1; }
  .hero-lead { font-size:14pt; }
  .stretch-media { height:100%; width:50%; }
  .stretch-machine { bottom:-5%; height:94%; right:2%; width:86%; }
  .stretch-logo { left:6%; top:15%; width:67%; }
  .medicell-visual { padding:0; }
  .medicell-treatment { object-position:center; }
  .medicell-device { bottom:-4%; height:57%; right:6%; width:38%; }
  .medicell-visual p { left:10%; margin:0; top:12%; }
  .floating-cta { display:flex; flex-direction:column; }
  .floating-cta a { align-items:center; justify-content:center; }
  .floating-cta b { margin-top:14px; }
}

/* Reservation form and confirmation modal */
.reservation-hero { background:linear-gradient(130deg,#e5eceb 0%,#fbfbf8 70%,var(--red) 70%,var(--red) 71%,#fbfbf8 71%); }
.form-section { background:#fff; padding:84px 36px; }.form-intro { margin-bottom:46px; }.form-intro h2 { font-size:clamp(31px,9vw,54px); letter-spacing:-.05em; line-height:1.2; margin:0 0 20px; }.form-intro > p:last-child { font-size:14pt; line-height:1.8; }.required-symbol,.form-row b { color:var(--red); }.reservation-form { max-width:820px; }.form-row { border-top:1px solid var(--line); margin:0; padding:22px 0; }.form-row:last-of-type { border-bottom:1px solid var(--line); }.form-row > label,.form-row legend { display:block; font-size:14pt; font-weight:700; margin:0 0 13px; padding:0; }.form-row small { color:#657072; font-size:11pt; font-weight:400; margin-left:6px; }.form-row input:not([type="radio"]),.form-row select,.form-row textarea { appearance:none; background:#f5f6f4; border:1px solid transparent; border-radius:0; color:var(--ink); font:inherit; font-size:14pt; min-height:53px; padding:11px 14px; width:100%; }.form-row input:focus,.form-row select:focus,.form-row textarea:focus { border-color:var(--red); outline:0; }.form-row select { background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%); background-position:calc(100% - 21px) 50%,calc(100% - 15px) 50%; background-repeat:no-repeat; background-size:6px 6px; }.form-row textarea { min-height:138px; resize:vertical; }.form-row fieldset { border:0; }.radio-group { display:flex; flex-wrap:wrap; gap:12px; }.radio-group label { align-items:center; background:#f5f6f4; display:flex; font-size:14pt; gap:8px; min-height:50px; padding:10px 17px; }.radio-group input { accent-color:var(--red); height:18px; width:18px; }.form-submit { align-items:center; background:var(--red); border:0; color:#fff; cursor:pointer; display:flex; font:inherit; font-size:14pt; font-weight:700; justify-content:space-between; margin-top:34px; padding:20px; width:100%; }.form-submit span { font-size:22px; }.modal { display:none; inset:0; position:fixed; z-index:100; }.modal.is-open { display:block; }.modal-backdrop { background:rgba(23,34,36,.7); inset:0; position:absolute; }.modal-panel { background:#fff; inset:16px; max-height:calc(100vh - 32px); overflow:auto; padding:55px 28px 28px; position:absolute; }.modal-close { background:none; border:0; cursor:pointer; font-size:34px; line-height:1; padding:8px; position:absolute; right:12px; top:12px; }.modal-panel h2 { font-size:30px; letter-spacing:-.04em; margin:0 0 14px; }.modal-panel > p { font-size:14pt; line-height:1.7; }.confirmation-list { border-top:1px solid var(--line); margin:25px 0; }.confirmation-list div { border-bottom:1px solid var(--line); padding:13px 0; }.confirmation-list dt { color:#657072; font-size:11pt; margin-bottom:5px; }.confirmation-list dd { font-size:14pt; line-height:1.6; margin:0; overflow-wrap:anywhere; }.modal-actions { display:grid; gap:10px; }.modal-actions button { border:0; cursor:pointer; font:inherit; font-size:14pt; font-weight:700; min-height:56px; padding:14px; }.modal-back { background:#e7eae7; color:var(--ink); }.modal-send { align-items:center; background:var(--red); color:#fff; display:flex; justify-content:space-between; }.modal-send span { font-size:22px; }.thanks-main { align-items:flex-start; background:#e2eae9; display:flex; flex-direction:column; justify-content:center; min-height:100vh; padding:130px 36px 70px; }.thanks-main h1 { font-size:clamp(44px,12vw,110px); letter-spacing:-.065em; line-height:1; margin:0 0 28px; }.thanks-main h1 em { color:var(--red); font-style:normal; }.thanks-main > p { font-size:14pt; line-height:1.9; margin:0; }.thanks-button { margin-top:38px; min-width:250px; }

@media (min-width:800px) { .form-section { display:grid; gap:11vw; grid-template-columns:minmax(260px,.8fr) minmax(550px,1.5fr); padding:140px max(9vw,80px); }.form-intro { margin:0; }.form-intro h2 br { display:none; }.form-row { align-items:start; display:grid; grid-template-columns:185px 1fr; gap:22px; }.form-row > label,.form-row legend { margin-top:13px; }.form-row .radio-group,.form-row input:not([type="radio"]),.form-row select,.form-row textarea { grid-column:2; }.form-row fieldset { display:grid; grid-template-columns:185px 1fr; }.form-row fieldset legend { grid-column:1; grid-row:1; }.form-row fieldset .radio-group { grid-column:2; }.modal-panel { box-shadow:0 22px 70px rgba(0,0,0,.22); inset:50% auto auto 50%; max-height:82vh; max-width:720px; padding:60px; transform:translate(-50%,-50%); width:calc(100% - 48px); }.confirmation-list div { display:grid; gap:25px; grid-template-columns:170px 1fr; }.confirmation-list dt { margin:0; }.modal-actions { grid-template-columns:1fr 1fr; }.thanks-main { padding-left:max(9vw,80px); }.thanks-button { width:300px; } }

/* Brand logo and fixed navigation */
.site-header {
  background:rgba(255,255,255,.9);
  color:var(--ink);
  position:fixed;
  transition:background-color .25s ease, box-shadow .25s ease;
  z-index:30;
}
.site-header.is-scrolled {
  background:rgba(255,255,255,.5);
  box-shadow:0 1px 0 rgba(23,34,36,.08);
}
.brand { display:block; line-height:0; }
.brand img { display:block; height:auto; width:154px; }
.footer-brand {
  background:rgba(255,255,255,.94);
  border-radius:2px;
  display:inline-block;
  padding:10px 13px;
}
.footer-brand img { width:190px; }

/* Supplied-image section refinements */
.medicell-visual p { letter-spacing:.04em; }
.medicell-visual .medicell-subcatch { color:#fff; font-size:14pt; font-weight:700; left:36px; letter-spacing:.04em; line-height:1.7; margin:0; position:absolute; text-shadow:0 1px 10px rgba(0,0,0,.25); top:150px; z-index:3; }

@media (min-width:800px) {
  .floating-cta { width:50px; }
  .floating-cta a { width:50px; }
  .header-reserve { color:#fff; }
  .medicell-visual .medicell-subcatch { left:10%; top:calc(12% + clamp(128px, 16vw, 230px)); }
}

@media (max-width:799px) {
  .site-header { padding-left:24px; padding-right:0; }
  .brand img { width:142px; }
  .menu-button { align-content:center; align-items:center; height:72px; justify-content:center; justify-items:center; margin-left:auto; padding:0; width:72px; }
  .mobile-menu { padding:44px 38px 36px; top:72px; }
}

.mobile-menu-cta { align-self:end; display:grid; gap:10px; margin-top:0; }
.mobile-menu-cta a { align-items:center; border:0; color:#fff; display:flex; font-size:14pt; font-weight:700; justify-content:space-between; padding:17px 18px; }
.mobile-menu-cta span { font-size:20px; line-height:1; }
.mobile-menu-cta .mobile-line { background:#58bc55; }
.mobile-menu-cta .mobile-reserve { background:var(--red); }

/* Full-bleed Medicell image treatment */
.medicell { background:#172224 url("../images/medicel/medicel-1.webp") center / cover no-repeat; color:#fff; isolation:isolate; }
.medicell::before { background:rgba(0,0,0,.8); content:""; inset:0; position:absolute; z-index:0; }
.medicell .medicell-visual { display:none; }
.medicell .feature-copy,.medicell .feature-number { position:relative; z-index:1; }
.medicell .section-kicker { color:#fff; }
.medicell .section-kicker span { color:rgba(255,255,255,.7); }
.medicell .feature h2 strong,.medicell h2 strong { color:#6bb34e; }
.medicell .text-link { border-color:#fff; color:#fff; }
.medicell .text-link span { color:#6bb34e; }

@media (min-width:800px) {
  .medicell .feature-copy { grid-column:1 / -1; max-width:none; width:100%; }
  .medicell h2 { font-size:clamp(34px,3.8vw,54px); white-space:nowrap; }
  .feature-stretch h2 { font-size:clamp(34px,3.8vw,54px); white-space:nowrap; }
}

/* Medicell detail page */
.medicel-page-hero { align-items:end; background:linear-gradient(90deg,rgba(14,25,22,.82),rgba(14,25,22,.3)),url("../images/medicel/medicel-1.webp") center / cover; color:#fff; display:flex; min-height:590px; padding:130px 36px 70px; }.medicel-page-hero-content { max-width:690px; }.medicel-page-hero .section-kicker { color:#fff; }.medicel-page-hero .section-kicker span { color:rgba(255,255,255,.7); }.medicel-page-hero h1 { font-size:clamp(43px,12vw,120px); letter-spacing:-.065em; line-height:1.04; margin:0 0 25px; }.medicel-page-hero h1 em { color:#80c35e; font-style:normal; }.medicel-page-hero p:not(.section-kicker) { font-size:14pt; line-height:1.85; margin:0 0 26px; }.medicel-intro { background:#fff; padding:80px 36px; }.medicel-intro-media { background:#e3ecea; display:flex; justify-content:center; margin:0 -36px 52px; min-height:335px; overflow:hidden; }.medicel-intro-media img { height:335px; max-width:86%; object-fit:contain; }.medicel-intro-copy h2,.medicel-section-heading h2,.medicel-scenes h2,.medicel-flow h2 { font-size:clamp(32px,9vw,65px); letter-spacing:-.065em; line-height:1.17; margin:0 0 28px; }.medicel-intro-copy > p:not(.section-kicker) { font-size:14pt; line-height:2; margin:0 0 17px; }.medicel-approach { background:var(--dark); color:#fff; padding:80px 36px; }.medicel-approach .section-kicker { color:#80c35e; }.medicel-approach .section-kicker span { color:rgba(255,255,255,.65); }.approach-list { margin-top:52px; }.approach-list article { border-top:1px solid rgba(255,255,255,.35); padding:22px 0 29px; }.approach-list article:last-child { border-bottom:1px solid rgba(255,255,255,.35); }.approach-list span { color:#80c35e; font-size:11pt; }.approach-list h3 { font-size:18pt; margin:20px 0 10px; }.approach-list p { color:rgba(255,255,255,.85); font-size:14pt; line-height:1.8; margin:0; }.medicel-scenes { background:#e5ecea; padding:80px 36px 0; }.medicel-scenes-copy { padding-bottom:55px; }.medicel-scenes ul { list-style:none; margin:35px 0 26px; padding:0; }.medicel-scenes li { border-top:1px solid rgba(23,34,36,.2); font-size:14pt; line-height:1.7; padding:15px 0 15px 25px; position:relative; }.medicel-scenes li::before { color:var(--red); content:"→"; left:0; position:absolute; }.medicel-scenes li:last-child { border-bottom:1px solid rgba(23,34,36,.2); }.medicel-note { color:#687273; font-size:10pt; line-height:1.7; }.medicel-scenes > img { display:block; margin:0 -36px; object-fit:cover; width:calc(100% + 72px); }.medicel-flow { background:#fff; padding:80px 36px; }.medicel-flow > ol { list-style:none; margin:38px 0 0; padding:0; }.medicel-flow li { align-items:start; border-top:1px solid var(--line); display:grid; gap:24px; grid-template-columns:44px 1fr; padding:21px 0; }.medicel-flow li:last-child { border-bottom:1px solid var(--line); }.medicel-flow li > span { color:var(--red); font-size:11pt; }.medicel-flow h3 { font-size:16pt; margin:0 0 10px; }.medicel-flow p { font-size:14pt; line-height:1.7; margin:0; }

@media (min-width:800px) { .medicel-page-hero { min-height:700px; padding:160px max(9vw,80px) 100px; }.medicel-page-hero h1 { font-size:clamp(70px,7vw,120px); }.medicel-intro { align-items:center; display:grid; gap:11vw; grid-template-columns:1fr 1fr; padding:130px max(9vw,80px); }.medicel-intro-media { margin:0; min-height:560px; }.medicel-intro-media img { height:560px; }.medicel-approach { padding:130px max(9vw,80px); }.medicel-approach { display:grid; gap:11vw; grid-template-columns:.85fr 1.5fr; }.approach-list { margin:0; }.approach-list article { padding:25px 0 34px; }.approach-list h3 { font-size:20pt; }.medicel-scenes { align-items:stretch; display:grid; grid-template-columns:1fr 1fr; padding:0; }.medicel-scenes-copy { padding:130px max(9vw,80px); }.medicel-scenes > img { height:100%; margin:0; width:100%; }.medicel-flow { padding:130px max(9vw,80px); }.medicel-flow > ol { max-width:920px; }.medicel-flow li { grid-template-columns:110px 1fr; padding:27px 0; } }

/* Footer contact details */
footer {
  background:#e6e9e7;
  color:var(--ink);
}
.footer-brand {
  background:transparent;
  border-radius:0;
  padding:0;
}
footer p { color:#465052; }
.store-info { margin-top:30px; }
.store-info-title { color:var(--ink); font-size:14pt; font-weight:700; margin:0 0 12px; }
.store-info dl { margin:0; }
.store-info dl div { display:grid; gap:10px; grid-template-columns:88px 1fr; padding:11px 0; }
.store-info dt,.store-info dd { font-size:14pt; line-height:1.55; margin:0; }
.store-info dt { color:#5e696a; }
.store-info dd { color:var(--ink); }
.store-info dd a { text-decoration:none; }
.instagram-link { align-items:center; border:1px solid #465052; border-radius:50%; display:flex; height:42px; justify-content:center; margin-top:18px; width:42px; }
.instagram-link svg { fill:none; height:21px; stroke:#263235; stroke-width:1.8; width:21px; }
.instagram-link .instagram-dot { fill:#263235; stroke:none; }
.footer-legal { display:flex; flex-wrap:wrap; gap:9px 19px; justify-content:center; margin-top:46px; }
.footer-legal a { color:#465052; font-size:14pt; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.copyright { color:#465052; font-size:.8rem; text-align:center; }

/* Menu / pricing page */
.page-hero { background:linear-gradient(125deg,#dbe7e5 0%,#f8f8f5 63%,var(--red) 63%,var(--red) 64%,#f8f8f5 64%); min-height:430px; padding:158px 36px 70px; position:relative; }
.page-hero::after { color:rgba(23,34,36,.07); content:"PRICE"; font-family:"Familjen Grotesk",sans-serif; font-size:28vw; font-weight:700; letter-spacing:.06em; line-height:.7; position:absolute; right:3vw; top:120px; }
.reservation-hero::after { content:"RESERVE"; font-size:22vw; letter-spacing:.055em; right:1vw; }
.page-hero > * { position:relative; z-index:1; }
.page-hero h1 { font-size:clamp(44px,12vw,124px); letter-spacing:-.025em; line-height:1.02; margin:0; }.page-hero h1 em { color:var(--red); font-style:normal; }
.page-hero > p:last-child { font-size:14pt; line-height:1.85; margin:28px 0 0; }
.pricing-section { padding:86px 36px; }.pricing-heading { margin-bottom:48px; }.pricing-heading h2 { font-size:clamp(30px,8vw,52px); letter-spacing:.025em; line-height:1.3; margin:0 0 22px; white-space:nowrap; }.pricing-heading > p:last-child { font-size:14pt; line-height:1.8; margin:0; }
.price-groups,.membership-list { display:grid; gap:20px; }.price-group,.membership-card { background:#fff; padding:29px 24px; }.price-group h3,.membership-card h3 { border-bottom:2px solid var(--ink); font-size:19pt; margin:0 0 12px; padding-bottom:14px; }.price-group dl,.membership-card dl { margin:0; }.price-group dl div,.membership-card dl div { align-items:baseline; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; padding:16px 0; }.price-group dl div:last-child,.membership-card dl div:last-child { border-bottom:0; }.price-group dt,.membership-card dt { font-size:14pt; }.price-group dd,.membership-card dd { font-size:14pt; margin:0; text-align:right; }.price-group dd { font-family:Helvetica,"Helvetica Neue",sans-serif; font-size:17pt; font-weight:700; }.membership { background:#e2e9e8; }.membership-card { background:rgba(255,255,255,.76); }.membership-card h3 { color:var(--red); }.membership-card dd strong { font-family:Helvetica,"Helvetica Neue",sans-serif; font-size:19pt; }.membership-card dd small { color:#697273; display:block; font-size:10pt; line-height:1.45; margin-top:5px; }.membership-card dt span { color:#697273; display:block; font-size:10pt; margin-top:4px; }.combination { background:var(--dark); color:#fff; }.combination h3 { border-color:#fff; color:#fff; }.gym { background:#fff8f5; }.menu-reservation { margin:0; }
footer small { font-size:10pt; line-height:1.65; }
#personal-only,#gym-only { scroll-margin-top:110px; }

/* Legal pages */
.legal-page-header { background:#e2e9e8; min-height:350px; padding:145px 36px 60px; }
.legal-page-header h1 { font-size:clamp(38px,10vw,84px); letter-spacing:-.055em; line-height:1.07; margin:0; }
.legal-page-header h1 em { color:var(--red); font-style:normal; }
.legal-page-content { background:#fff; margin:0 auto; max-width:1100px; padding:72px 36px; }
.legal-definition-list { margin:0; }
.legal-definition-list > div { border-top:1px solid var(--line); padding:20px 0; }
.legal-definition-list > div:last-child { border-bottom:1px solid var(--line); }
.legal-definition-list dt { color:#5e696a; font-size:13pt; font-weight:700; margin:0 0 9px; }
.legal-definition-list dd { font-size:14pt; line-height:1.8; margin:0; }
.legal-prose { line-height:1.9; }
.legal-prose p,.legal-prose li { font-size:14pt; line-height:1.9; }
.legal-prose h2 { border-left:4px solid var(--red); font-size:18pt; line-height:1.5; margin:55px 0 20px; padding-left:14px; }
.legal-prose ol { margin:18px 0; padding-left:1.65em; }
.legal-prose li + li { margin-top:8px; }
.legal-signature { margin-top:55px; }

@media (min-width:800px) {
  .page-hero { min-height:530px; padding:190px max(9vw,80px) 95px; }.page-hero::after { font-size:21vw; letter-spacing:.06em; right:8vw; top:155px; }.reservation-hero::after { font-size:17vw; letter-spacing:.055em; right:4vw; }.page-hero > p:last-child { max-width:520px; }
  .pricing-section { padding:140px max(9vw,80px); }.pricing-heading { align-items:end; display:grid; gap:40px; grid-template-columns:1fr 1fr; }.pricing-heading .section-kicker,.pricing-heading h2 { grid-column:1; }.pricing-heading > p:last-child { grid-column:2; grid-row:2; margin-bottom:4px; }
  .price-groups { grid-template-columns:repeat(2,1fr); }.membership-list { grid-template-columns:repeat(2,1fr); }.membership-card { min-height:100%; padding:39px 38px; }.membership-card.gym { grid-column:span 2; }.membership-card.gym dl { display:grid; grid-template-columns:repeat(2,1fr); column-gap:46px; }.membership-card.gym dl div:nth-child(-n+2) { border-top:1px solid var(--line); }
  .legal-page-header { min-height:440px; padding:180px max(9vw,80px) 85px; }.legal-page-content { padding:105px max(9vw,80px); }.legal-definition-list > div { display:grid; gap:50px; grid-template-columns:250px 1fr; }.legal-definition-list dt { margin:0; }.legal-prose { max-width:920px; }.legal-prose h2 { margin-top:70px; }
}

/* Keep the Medicell hero headline to the intended two lines. */
.medicel-page-hero h1 { white-space:nowrap; }
@media (max-width:799px) {
  .medicel-page-hero h1 { font-size:clamp(26px,8.3vw,66px); white-space:nowrap; }
}

/* Header navigation uses the regular weight. */
.desktop-nav a,.mobile-menu > a { font-weight:400; }

.medicel-intro-media { background:transparent; }

/* CTA buttons: regular weight and centered labels without directional icons. */
.header-reserve,.mobile-menu-cta a,.floating-cta a,.button,.form-submit,.modal-send,.modal-back {
  font-weight:400;
  justify-content:center;
  text-align:center;
}
.header-reserve,.mobile-menu-cta a,.floating-cta a,.button,.form-submit,.modal-send { color:#fff; }
.modal-actions .modal-back,.modal-actions .modal-send { font-weight:400; }
.hero-about-cta { max-width:240px; width:100%; }

/* 4D Stretch detail page */
.stretch-page-hero { background:#1e292b; color:#fff; min-height:670px; overflow:hidden; padding:142px 36px 74px; position:relative; }
.stretch-page-hero-copy { max-width:640px; position:relative; z-index:1; }.stretch-page-hero .section-kicker { color:#76c35b; }.stretch-page-hero .section-kicker span { color:rgba(255,255,255,.65); }
.stretch-page-hero h1 { font-size:clamp(48px,13vw,115px); letter-spacing:-.07em; line-height:.98; margin:0 0 26px; }.stretch-page-hero h1 em { color:#7dca62; font-style:normal; }.stretch-page-hero p:not(.section-kicker) { font-size:14pt; line-height:1.9; margin:0 0 32px; max-width:540px; }
.stretch-page-hero > img { bottom:27px; opacity:.76; position:absolute; right:-90px; width:94%; }
.stretch-page-hero .button { max-width:310px; }.stretch-page-intro { background:#e1eae9; padding:82px 36px; }.stretch-page-intro h2,.machine-copy h2,.training-section h2,.stretch-page-cta h2 { font-size:clamp(33px,9vw,63px); letter-spacing:-.06em; line-height:1.12; margin:0 0 28px; }.stretch-page-intro > p:last-child,.machine-copy > p:not(.section-kicker),.training-section article p,.stretch-page-cta > p:not(.section-kicker) { font-size:14pt; line-height:1.9; margin:0; }
.machine-section { overflow:hidden; padding:76px 36px; position:relative; }.machine-media { align-items:center; background:#f2f5f3; display:flex; justify-content:center; margin:0 -36px 48px; min-height:390px; padding:28px; }.machine-media img { display:block; max-height:420px; max-width:100%; object-fit:contain; }.machine-copy h2 em { color:var(--red); font-style:normal; }.machine-spec { border-top:1px solid var(--line); margin:34px 0 0; }.machine-spec > div { border-bottom:1px solid var(--line); padding:15px 0; }.machine-spec dt { color:#697273; font-size:11pt; margin:0 0 5px; }.machine-spec dd { font-size:14pt; line-height:1.6; margin:0; }.hip-machine { background:#e9eeed; }.hip-machine .machine-media { background:#fff; }
.training-section { background:var(--dark); color:#fff; padding:78px 36px; }.training-section .section-kicker { color:#7dca62; }.training-section .section-kicker span { color:rgba(255,255,255,.62); }.training-grid { display:grid; gap:34px; margin-top:45px; }.training-grid video { background:#10191b; display:block; width:100%; }.training-grid h3 { font-size:18pt; margin:20px 0 8px; }.training-grid p { color:rgba(255,255,255,.85); }.hip-training { background:#182224; }.stretch-page-cta { background:#fff; padding:82px 36px; }.stretch-page-cta .reservation-links { margin-top:32px; }

@media (min-width:800px) {
  .stretch-page-hero { align-items:center; display:flex; min-height:760px; padding:150px max(9vw,80px) 85px; }.stretch-page-hero > img { bottom:auto; opacity:.78; right:6vw; top:50%; transform:translateY(-44%); width:min(43vw,680px); }.stretch-page-hero h1 { font-size:clamp(68px,7vw,120px); }.stretch-page-intro { padding:130px max(9vw,80px); }.stretch-page-intro > p:last-child { max-width:720px; }.machine-section { align-items:center; display:grid; gap:9vw; grid-template-columns:1fr 1fr; padding:130px max(9vw,80px); }.machine-media { margin:0; min-height:600px; padding:55px; }.machine-media img { max-height:590px; }.hip-machine .machine-media { grid-column:2; grid-row:1; }.hip-machine .machine-copy { grid-column:1; grid-row:1; }.machine-copy h2,.training-section h2,.stretch-page-cta h2 { font-size:clamp(38px,4.3vw,68px); }.training-section { padding:130px max(9vw,80px); }.training-section header { display:grid; gap:40px; grid-template-columns:1fr 1fr; }.training-section h2 { margin:0; }.training-grid { grid-template-columns:repeat(2,1fr); margin-top:65px; }.training-grid h3 { font-size:20pt; }.stretch-page-cta { padding:130px max(9vw,80px); }.stretch-page-cta > p:not(.section-kicker) { max-width:560px; }
}

@media (min-width:800px) {
  .medicel-intro-copy h2,.medicel-section-heading h2,.medicel-scenes h2,.medicel-flow h2 {
    font-size:clamp(30px,2.7vw,50px);
    white-space:nowrap;
  }
}
