@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{
  --bg:#f6f6f2;
  --surface:#ffffff;
  --surface2:#f0f0ea;
  --line:#e6e7df;
  --ink:#1d211e;
  --muted:#777f76;
  --yellow:#c9b576;
  --yellow2:#ac985c;
  --dark:#171b19;
  --good:#7fa38b;
  --radius:19px;
}
body{background:#e8e9e3;color:var(--ink);font-family:"Aptos","Segoe UI",ui-sans-serif,system-ui,sans-serif}
.showcase{max-width:1380px;gap:5vw;padding:44px 6vw}
.pitch{max-width:640px}
.eyebrow{color:#8c7847;font-size:11px;letter-spacing:.14em}
.eyebrow i{background:#b49c5c;box-shadow:none}
.pitch h1{font-family:"Aptos Display","Segoe UI",sans-serif;text-transform:none;font-size:clamp(53px,6.1vw,86px);font-weight:730;line-height:1.03;letter-spacing:-.065em;margin:30px 0 24px}
.pitch h1 span{color:#9f884c}
.pitch p{color:#555e56;font-size:18px;line-height:1.65;max-width:560px}
.pitch-list{border-top:1px solid #d5d8cf;border-bottom:1px solid #d5d8cf;padding:18px 0;margin:34px 0;gap:15px}
.pitch-list div{color:#303831;font-size:14px;font-weight:620}
.pitch-list b{border:1px solid #b9ab7f;color:#8b7641;font-size:12px;width:29px;height:29px}
.pitch-foot{color:#6b746b;font-size:12px;margin-top:32px;max-width:600px}
.pitch-foot a{color:#806b39}
.phone{background:var(--bg);border:8px solid #202421;box-shadow:0 32px 70px #3f48343d,0 0 0 1px #7b8177;border-radius:39px}
.phone::before{background:#202421;width:88px;height:15px}
.app-top{background:#070807;border-bottom:none;padding:35px 23px 15px;min-height:91px}
.logo-window{width:184px;height:34px;position:relative;overflow:hidden;flex-shrink:0}
.official-logo{position:absolute;width:230px;height:auto;max-width:none;left:-23px;top:-13px}
.demo-pill{background:#20221d;border:1px solid #625b42;color:#d1be87;font-size:9px;letter-spacing:.08em;padding:6px 9px}
.app-scroll{scrollbar-color:#c7c9bf transparent}
.page{padding:27px 23px 29px}
.kicker{color:#9a824d;font-size:10px;letter-spacing:.13em;margin-bottom:10px}
.page h2{font-family:"Aptos Display","Segoe UI",sans-serif;text-transform:none;font-size:32px;font-weight:720;line-height:1.12;letter-spacing:-.055em;margin-bottom:10px}
.sub{color:#7a817a;font-size:13px;line-height:1.55;margin-bottom:22px}
.section-title{color:#303a32;font-size:14px;font-weight:750;margin:25px 0 12px}
.chip{background:#f2f1e9;border:1px solid #e2dfd1;color:#827656;font-size:10px;padding:6px 9px}
.chip.accent{background:#423f32;color:#e6d7a7;border-color:#68614a}
.hero-card{background:linear-gradient(145deg,#282e29,#171c19);color:#f4f3ed;border-radius:22px;padding:23px;box-shadow:0 16px 35px #2631291b}
.hero-card::after{border:1px solid #d1bf8552;width:235px;height:235px;right:-104px;top:-64px;box-shadow:0 0 0 37px #c6b47b0a,0 0 0 76px #c6b47b09}
.hero-card .micro{color:#d4c389;letter-spacing:.13em;font-size:10px}
.hero-card h3{font-family:"Aptos Display","Segoe UI",sans-serif;text-transform:none;font-weight:700;font-size:31px;line-height:1.08;letter-spacing:-.055em;margin:19px 0 10px}
.hero-card p{color:#bfc7be;font-size:12px;max-width:205px;margin-bottom:23px}
.dark-btn{background:#c9b576;color:#171b18;border-radius:11px;box-shadow:0 6px 16px #0002;font-size:12px;padding:12px 14px}
.dark-btn:hover,.main-btn:hover{filter:brightness(1.06)}
.main-btn{background:#bca76b;color:#171c19;border-radius:12px;font-weight:750;min-height:47px}
.ghost-btn{background:#f3f3ee;border:1px solid #dfe1d8;color:#363d36;border-radius:12px;font-weight:700}
.card{background:#fff;border:1px solid #e6e8e0;border-radius:17px;padding:16px;box-shadow:0 4px 16px #2e392508}
.card.clickable:hover{border-color:#c8b681;transform:translateY(-1px)}
.card h3{color:#303a33;font-size:13px;font-weight:760}
.card p{color:#869087;font-size:11px}
.card-icon{width:40px;height:40px;min-width:40px;background:#f0efe6;color:#9d8750;border-radius:12px}
.arrow{color:#a0a89f}
.occupancy-number{font-family:"Aptos Display","Segoe UI",sans-serif;color:#766338;font-size:33px;font-weight:740}
.occupancy .label{color:#29332c;font-size:12px}
.occupancy .tiny{color:#899187}
.note-box{background:#f0f0e9;color:#777d70;border:1px solid #e3e4d8;border-radius:12px;font-size:11px}
.nav{background:#fff;border-top:1px solid #e5e7df;padding:9px 8px max(9px,env(safe-area-inset-bottom))}
.nav button{color:#838b82;font-size:10px;gap:5px}
.nav button.active{color:#8e7947}
.nav button.active svg{stroke-width:2.2}
.field-label{font-size:11px;font-weight:780;text-transform:uppercase;letter-spacing:.09em;color:#515b50;margin-top:10px}
.segment{background:#eceee8;border-radius:11px;margin:9px 0 10px;padding:4px}
.segment button{color:#6f786e;border-radius:9px;padding:10px 8px;font-size:11px}
.segment button.selected{background:#fff;color:#2a332b;box-shadow:0 2px 8px #28352b16}
.location-note{color:#7e877d;font-size:11px}
.location-note svg{color:#9e8750}
.location-card{background:#fff;border:1px solid #e5e8df;border-radius:13px;padding:12px 13px;color:#505b51;font-weight:650;box-shadow:0 4px 14px #2f392508}
.entrances{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}
.entrance{display:flex;flex-direction:column;align-items:flex-start;text-align:left;position:relative;min-height:109px;padding:13px;background:#fff;border:1px solid #e2e5dc;border-radius:15px;color:#2b342e;box-shadow:0 4px 14px #2f392508;transition:border-color .16s,box-shadow .16s}
.entrance.selected{border:1.5px solid #b29b61;box-shadow:0 0 0 3px #bdaa7e1f}
.entrance-icon{display:grid;place-items:center;width:30px;height:30px;background:#f2f0e8;border-radius:9px;color:#988150;margin-bottom:10px}
.entrance-icon svg{width:17px;height:17px}
.entrance strong{display:block;font-size:12px;font-weight:800;line-height:1.2}
.entrance small{display:block;color:#8c948b;font-size:10px;margin-top:2px}
.entrance-check{position:absolute;top:12px;right:12px;color:#9c854d}
.entrance-check svg{width:16px;height:16px}
.access-panel{background:#fff;border:1px solid #e5e7df;border-radius:17px;margin-top:18px;padding:18px;text-align:left;box-shadow:0 4px 16px #2e392508}
.access-panel .row{align-items:center;margin-bottom:17px}
.access-panel strong{display:block;color:#2d352f;font-size:14px;margin-top:3px}
.access-eyebrow{display:block;color:#91988c;font-size:9px;font-weight:800;letter-spacing:.12em}
.access-panel p{margin:10px 0 0;color:#969d94;font-size:10px;text-align:center}
.status{background:#edf3ed;color:#658068;font-size:9px;padding:6px 8px;white-space:nowrap}
.status i{background:#87a58a}
.stat-big{font-family:"Aptos Display","Segoe UI",sans-serif;font-weight:750;color:#90794a;font-size:30px}
.info-row{border-color:#edf0e8;color:#2d382f}
.info-row span{color:#879086}
.info-row strong{font-size:11px}
.link-card{background:#fff;border-color:#e5e8df;box-shadow:0 4px 14px #2f392508}
.link-card svg{color:#a08a56}
.member-card{background:linear-gradient(140deg,#20251f,#111512);color:#f7f4e9;border-radius:20px;padding:20px;box-shadow:0 15px 34px #222a241f;min-height:205px;display:flex;flex-direction:column;justify-content:space-between}
.member-card img{width:155px;height:auto;display:block;margin:-4px 0 0 -12px}
.member-card .member-detail small{display:block;color:#c6b787;font-size:9px;font-weight:780;letter-spacing:.13em}
.member-card .member-detail strong{display:block;font-size:27px;letter-spacing:-.04em;font-weight:720;margin-top:4px}
.member-card .tiny{color:#bdc4b8}
.member-card .status{background:#334437;color:#cae4c8}
.member-card .status i{background:#92bd91}
.receipt strong{color:#303a32}
.receipt small{color:#899187}
.close{background:#eeeee8;color:#5d675d;border-radius:9px}
.overlay{background:#1117119c}
.dialog{background:#fff;border:1px solid #e2e4db;border-radius:21px;color:#242e27;padding:24px}
.dialog h3{color:#242e27;font-size:20px}
.dialog p{color:#6f796f}
.dialog .kicker{color:#9e8753}
.dialog .close{width:100%}
@media(max-width:850px){body{background:var(--bg)}.showcase{padding:0}.phone{border:0;border-radius:0;box-shadow:none}.app-top{padding-top:max(18px,env(safe-area-inset-top))}}
@media(max-width:370px){.page{padding:22px 17px 24px}.page h2{font-size:29px}.app-top{padding-left:16px;padding-right:16px}.logo-window{width:170px}.entrance{padding:11px}}

/* The gym's own photograph and training history give this concept its character. */
body,.pitch h1,.page h2,.hero-card h3,.stat-big,.occupancy-number{font-family:Manrope,"Segoe UI",sans-serif}
.page h2{font-weight:800;letter-spacing:-.065em}
.pitch h1{font-weight:800;letter-spacing:-.075em}
.hero-card{min-height:276px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;background:linear-gradient(180deg,#13171416 0%,#10131162 38%,#101310ed 100%),url('gym-kristinehamn-hero.jpg') center 43%/cover;color:#fff;border-radius:13px;box-shadow:none;padding:21px}
.hero-card::after{display:none}
.hero-card .micro{color:#ebd292;font-weight:800}
.hero-card h3{font-size:31px;line-height:1.02;margin:8px 0 5px;font-weight:800}
.hero-card p{margin:0 0 14px;color:#eeeae0;max-width:215px;font-size:11px}
.dark-btn{background:#d0b977;color:#1f211b;box-shadow:none;border-radius:6px;min-height:43px}
.home-page .sub{margin-bottom:20px}
.home-links{gap:0}
.home-links .card{border:0;border-bottom:1px solid #dfe2d9;border-radius:0;box-shadow:none;background:transparent;padding:14px 0}
.home-links .card:hover{transform:none;border-bottom-color:#b6a87e}
.home-links .card-icon{background:transparent;color:#8b7649;width:28px;height:28px;min-width:28px}
.home-links .card-icon svg{width:20px;height:20px}
.home-links .arrow{font-size:20px}
.card{box-shadow:none}
.access-panel,.link-card,.location-card,.entrance{box-shadow:none}
.entrance{border-radius:11px}
.entrance.selected{box-shadow:0 0 0 2px #bdaa7e1f}
.visit-teaser{background:#ded8c4;color:#26291f;display:flex;align-items:center;justify-content:space-between;padding:17px 19px;margin-top:13px;border-radius:10px;cursor:pointer;transition:background .2s,transform .2s}
.visit-teaser:hover{background:#d7cfb6;transform:translateY(-1px)}
.visit-teaser .kicker{display:block;color:#81704b;font-size:9px;margin-bottom:2px}
.visit-teaser strong{display:block;font-size:24px;font-weight:800;letter-spacing:-.05em;line-height:1.1}
.visit-teaser small{display:block;font-size:10px;color:#6c7166;margin-top:2px}
.teaser-arrow{width:32px;height:32px;border:1px solid #a99b75;border-radius:50%;display:grid;place-items:center}
.teaser-arrow svg{width:16px;height:16px}
.visits-page .sub{max-width:260px}
.visits-summary{background:#20251f;color:#f5f4ec;border-radius:13px;overflow:hidden}
.visits-primary{padding:22px 20px 20px;display:flex;align-items:baseline;gap:10px;border-bottom:1px solid #424a40}
.visits-primary strong{font-size:68px;font-weight:800;line-height:.95;letter-spacing:-.09em;font-variant-numeric:tabular-nums;color:#d8c58f}
.visits-primary span{font-size:12px;color:#d3d6cc;font-weight:600}
.visits-secondary{display:grid;grid-template-columns:1fr 1fr}
.visits-secondary>div{padding:14px 19px 16px;display:flex;flex-direction:column;gap:2px}
.visits-secondary>div+div{border-left:1px solid #424a40}
.visits-secondary strong{font-size:22px;line-height:1.1;font-variant-numeric:tabular-nums}
.visits-secondary span{font-size:10px;color:#abb4a8}
.calendar-head{display:flex;align-items:baseline;justify-content:space-between;margin:26px 0 11px}
.calendar-head h3{margin:0;font-size:14px;font-weight:800;text-transform:capitalize}
.cal-legend{display:flex;align-items:center;gap:5px;color:#899184;font-size:10px}
.cal-legend i{width:8px;height:8px;background:#a89157;border-radius:2px}
.calendar{background:#fff;border:1px solid #e7e9e1;border-radius:13px;padding:15px 11px}
.cal-weekdays,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}
.cal-weekdays{margin-bottom:8px;color:#9aa297;font-size:10px;font-weight:800}
.cal-grid{grid-auto-rows:34px}
.cal-day{display:grid;place-items:center;border-radius:6px;font-size:11px;color:#555f55;font-weight:600;font-variant-numeric:tabular-nums}
.cal-day.visited{background:#c6b277;color:#1d241d;font-weight:800}
.cal-day.future{color:#c2c8be}
.visit-add{width:100%;margin:14px 0 4px;border:1px solid #b9a369;background:transparent;color:#6f5c2f;min-height:44px;border-radius:7px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;font-weight:800;transition:background .2s,transform .2s}
.visit-add svg{width:16px;height:16px}
.visit-add:hover:not(:disabled){background:#eae3cf;transform:translateY(-1px)}
.visit-add:active:not(:disabled),.dark-btn:active,.main-btn:active,.entrance:active{transform:translateY(1px) scale(.99)}
.visit-add:disabled{border-color:#d7d8d0;color:#7d8b78;cursor:default}
.visit-history{background:#fff;border:1px solid #e7e9e1;border-radius:13px;padding:2px 15px}
.visit-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid #eff0eb}
.visit-row:last-child{border-bottom:0}
.visit-marker{width:8px;height:8px;min-width:8px;background:#b9a263;border-radius:50%}
.visit-row strong{display:block;font-size:11px;color:#2d352e;font-weight:750;text-transform:capitalize}
.visit-row small{display:block;font-size:10px;color:#929b90;margin-top:2px}
.member-info-link{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;border-bottom:1px solid #dfe3d9;background:transparent;color:#5d684f;font-size:12px;font-weight:750;text-align:left;padding:17px 2px;margin-top:7px}
.member-info-link svg{width:17px;height:17px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Editorial mobile direction, based on the three screen concept studies. */
:root{--bg:#f8f6f1;--surface:#fdfbf6;--surface2:#f1eee6;--line:#e5e0d6;--ink:#1a1b18;--muted:#777970;--yellow:#a89055;--yellow2:#927941;--dark:#111311}
body{background:#e9e5dc}
.phone{background:var(--bg)}
.app-top{background:#101110;min-height:101px;padding-top:40px;padding-bottom:18px}
.demo-pill{background:#2b2c27;color:#e1dac9;border:0;border-radius:14px;font-size:8px;font-weight:700;letter-spacing:.04em}
.page{padding:29px 23px 30px}
.page h2{font-family:"DM Sans",Manrope,sans-serif;font-size:40px;font-weight:700;line-height:1.08;letter-spacing:-.065em;margin:0 0 18px;color:#191a17}
.kicker{color:#968559;font-size:9px;font-weight:800;letter-spacing:.14em}
.nav{background:#fbfaf6;border-top:1px solid #e7e2d9;padding:11px 7px max(10px,env(safe-area-inset-bottom))}
.nav button{font-size:10px;color:#777a73}
.nav button.active{color:#967c42}
.nav button.active::after{content:"";height:4px;width:4px;background:#a58b4c;border-radius:50%;position:absolute;bottom:2px}
.nav button{position:relative}
.nav button svg{width:21px;height:21px}
.section-title{font-family:"DM Sans",Manrope,sans-serif;font-weight:700;font-size:17px;letter-spacing:-.045em;color:#23251f;margin:27px 0 12px}
.home-page{padding:0 0 28px}
.home-photo{height:225px;background:url('gym-kristinehamn-hero.jpg') center 46%/cover;border-bottom:5px solid #b69c5b}
.home-intro,.home-door,.home-visits,.home-page>.row,.home-page>.card,.home-page>.section-title,.home-page>.stack,.home-page>.note-box{margin-left:23px;margin-right:23px}
.home-intro{padding-top:25px}
.home-intro h2{font-size:40px;margin-bottom:12px}
.home-location{display:flex;align-items:center;gap:12px;margin:0 0 27px;color:#6f716a}
.home-location>svg{width:23px;height:23px;flex:none;color:#a58d52;fill:#a58d52;stroke:#a58d52}
.home-location strong{display:block;font-size:13px;color:#282b26;line-height:1.3}
.home-location small{display:block;font-size:11px;color:#898980;margin-top:1px;line-height:1.35}
.home-door,.home-visits{width:calc(100% - 46px);display:flex;align-items:center;text-align:left;border:0;cursor:pointer}
.home-door{background:#a78e53;color:#fff;border-radius:13px;padding:15px 17px;min-height:69px;font-size:17px;font-weight:700;gap:15px}
.home-door>span:nth-child(2){flex:1}
.home-door>svg,.home-visits>svg{width:18px;height:18px;flex:none}
.home-door-icon{display:grid;place-items:center;border-right:1px solid #e6d4a9;padding-right:14px}
.home-door-icon svg{width:22px;height:22px}
.home-visits{background:#f0ede5;color:#262a25;border-radius:13px;padding:15px 17px;min-height:66px;gap:13px;margin-top:10px}
.home-visits>span:nth-child(2){flex:1}
.home-visits-icon{color:#8f875e}
.home-visits-icon svg{width:24px;height:24px}
.home-visits strong{display:block;font-size:13px}
.home-visits small{display:block;font-size:11px;color:#777b73;margin-top:2px}
.home-visits>svg{color:#817e70}
.home-page>.row{margin-top:27px}
.home-page>.row .section-title{margin:0}
.home-page>.card{margin-top:12px}
.home-page>.section-title{display:block}
.occupancy{background:#fdfbf7;border-color:#eae5dc}
.note-box{background:#f2efe7;border-color:#e8e2d7;color:#818176}
.access-page>.home-location{margin-top:0;margin-bottom:30px}
.access-page>.kicker{margin-bottom:13px}
.entrances{gap:12px;margin:0 0 19px}
.entrance{height:153px;min-height:153px;align-items:center;justify-content:center;text-align:center;background:#f0ede6;border:1px solid transparent;border-radius:15px;box-shadow:none;padding:16px 10px}
.entrance.selected{background:#f4f0e6;border:1.5px solid #a48a4d;box-shadow:none}
.entrance-icon{height:42px;width:42px;background:transparent;margin:0 0 12px;color:#6e6d62}
.entrance.selected .entrance-icon{color:#9c8042}
.entrance-icon svg{height:30px;width:30px}
.entrance strong{font-family:"DM Sans",Manrope,sans-serif;font-weight:700;font-size:17px;letter-spacing:-.04em;color:#1b1c19}
.entrance small{font-size:10px;margin-top:3px;color:#777b73}
.entrance-check{top:12px;right:12px;background:#a58b4c;color:white;border-radius:50%;height:22px;width:22px;display:grid;place-items:center}
.entrance-check:empty{display:none}
.entrance-check svg{width:13px;height:13px}
.access-action{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:61px;background:#a78e53;color:#fff;border:0;border-radius:13px;font-size:15px;font-weight:700}
.access-action svg{width:19px;height:19px}
.access-action svg:last-child{margin-left:auto}
.access-action svg:first-child{margin-left:8px}
.access-disclaimer{display:flex;align-items:center;justify-content:center;gap:5px;font-size:10px;color:#8e8f87;margin:11px 0 25px}
.access-disclaimer svg{width:13px;height:13px}
.access-page>.row{margin-top:30px}
.access-page>.row .section-title{margin:0}
.visits-page h2{margin-bottom:4px}
.visits-summary{background:transparent;color:#1b1d18;border-radius:0;overflow:visible;border-bottom:1px solid #e4dfd5}
.visits-primary{display:flex;align-items:baseline;gap:13px;padding:7px 0 11px;border-bottom:0}
.visits-primary strong{font-family:"DM Sans",Manrope,sans-serif;font-size:76px;line-height:1;color:#a58b4d;font-weight:500;letter-spacing:-.08em}
.visits-primary span{font-family:"DM Sans",Manrope,sans-serif;color:#24251f;font-size:19px;font-weight:700;letter-spacing:-.045em}
.visits-secondary{display:flex;gap:19px;padding:0 0 12px}
.visits-secondary>div{display:flex;flex-direction:row;align-items:baseline;gap:4px;padding:0}
.visits-secondary>div+div{border:0}
.visits-secondary strong{font-size:12px;color:#625b49}
.visits-secondary span{font-size:10px;color:#8c8d84}
.calendar-head{margin:21px 0 10px}
.calendar-head h3{font-size:14px}
.cal-legend{font-size:9px}
.cal-legend i{border-radius:50%;width:6px;height:6px}
.calendar{padding:0;background:transparent;border:0;border-top:1px solid #e7e1d6;border-bottom:1px solid #e7e1d6;border-radius:0}
.cal-weekdays,.cal-grid{gap:0}
.cal-weekdays{padding:10px 0 8px;margin:0;border-bottom:1px solid #ece7dd;color:#84847b}
.cal-grid{grid-auto-rows:35px}
.cal-day{border-radius:0;color:#44463f;font-size:11px;position:relative}
.cal-day.visited{background:transparent;color:#252820;font-weight:800}
.cal-day.visited::after{content:"";position:absolute;width:5px;height:5px;background:#a58b4d;border-radius:50%;bottom:2px}
.cal-day.future{color:#bcbdb3}
.visit-add{border:0;background:#efe9db;color:#82703e;border-radius:11px;margin-top:15px;font-size:11px}
.visit-history{background:transparent;border:0;border-top:1px solid #e5e0d5;border-bottom:1px solid #e5e0d5;border-radius:0;padding:0}
.visit-row{padding:12px 2px;border-color:#e9e4da}
.visit-marker{background:#a58b4d}
.visit-row strong{font-size:11px}
.visit-row small{font-size:10px}
@media(max-width:850px){body{background:var(--bg)}.app-top{padding-top:max(24px,env(safe-area-inset-top));min-height:91px}}
@media(max-width:370px){.home-intro,.home-door,.home-visits,.home-page>.row,.home-page>.card,.home-page>.section-title,.home-page>.stack,.home-page>.note-box{margin-left:17px;margin-right:17px}.home-door,.home-visits{width:calc(100% - 34px)}.home-photo{height:195px}.page h2{font-size:36px}.home-intro h2{font-size:36px}.entrance{height:140px;min-height:140px}.entrance strong{font-size:16px}}

/* The page presents the working app inside the device shown in the concepts. */
html{min-height:100%;background:#e8e4dc}
body{min-height:100dvh;background:radial-gradient(circle at 50% 34%,#f4f1eb 0%,#e8e4dc 68%,#ded9d0 100%)}
.showcase{display:flex;justify-content:center;align-items:center;max-width:none;min-height:100dvh;padding:22px 16px;gap:0}
.pitch{display:none}
.phone-wrap{display:flex;justify-content:center;align-items:center;width:100%}
.phone{width:min(calc(100vw - 32px),clamp(330px,calc((100dvh - 44px)*.48),402px));max-width:none;height:min(850px,calc(100dvh - 44px));min-height:660px;border:6px solid #1b1d1c;border-radius:51px;box-shadow:0 0 0 1px #8f928d,0 0 0 4px #b3b6b1,0 30px 65px #38352f54;background:#101110;overflow:hidden;display:flex;flex-direction:column;position:relative}
.phone::before{content:"";position:absolute;z-index:12;top:8px;left:50%;transform:translateX(-50%);width:83px;height:21px;border:0;border-radius:20px;background:#020303;box-shadow:inset 0 0 2px #343638}
.phone::after{content:"";position:absolute;z-index:12;bottom:9px;left:50%;transform:translateX(-50%);width:105px;height:4px;border-radius:99px;background:#151715;pointer-events:none}
.ios-status{height:39px;min-height:39px;display:flex;align-items:center;justify-content:space-between;padding:8px 30px 0;color:#f6f6f3;background:#101110;font-family:Manrope,"Segoe UI",sans-serif;font-size:12px;font-weight:800;line-height:1;letter-spacing:-.03em;position:relative;z-index:1}
.ios-signals{display:flex;align-items:center;gap:3px}
.ios-signals svg{width:17px;height:13px;display:block;color:#f6f6f3;stroke:none}
.ios-signals svg:last-child{width:22px}
.app-scroll{flex:1 1 auto;min-height:0;background:var(--bg);overflow-y:auto;scrollbar-width:none}
.app-scroll::-webkit-scrollbar{display:none}
.home-photo{height:260px;background-image:url('gym-kristinehamn-hero.jpg');background-position:center center;background-size:cover;border-bottom:5px solid #b69c5b}
.home-photo{position:relative;isolation:isolate}
.home-photo::before{content:"";position:absolute;inset:0 0 auto;height:96px;background:linear-gradient(180deg,#050606b8,#05060600);pointer-events:none}
.photo-logo-window{position:absolute;z-index:1;top:12px;left:17px;width:225px;height:55px;overflow:hidden;mix-blend-mode:screen;pointer-events:none}
.photo-logo{position:absolute;display:block;width:285px;height:auto;max-width:none;left:-29px;top:-16px;filter:drop-shadow(0 1px 5px #0007)}
.home-intro{padding-top:22px}
.nav{padding-bottom:24px;min-height:74px}
.overlay{border-radius:45px}
@media(max-width:850px){body{background:radial-gradient(circle at 50% 34%,#f4f1eb 0%,#e8e4dc 68%,#ded9d0 100%)}.showcase{display:flex;padding:22px 16px}.phone-wrap{display:flex}.phone{width:min(calc(100vw - 32px),clamp(330px,calc((100dvh - 44px)*.48),402px));height:min(850px,calc(100dvh - 44px));min-height:660px;border:6px solid #1b1d1c;border-radius:51px;box-shadow:0 0 0 1px #8f928d,0 0 0 4px #b3b6b1,0 30px 65px #38352f54}.phone::before{display:block}}
@media(max-width:370px){.phone{width:calc(100vw - 24px)}.home-photo{height:225px}}

/* The image reaches the top glass; system chrome floats over the app. */
.phone{background:var(--bg)}
.ios-status{position:absolute;top:0;left:0;right:0;z-index:11;height:45px;min-height:45px;padding:10px 28px 0;background:transparent;color:#20211e;pointer-events:none}
.ios-signals svg{color:inherit}
.phone.is-home .ios-status{color:#fff}
.app-scroll{flex:1 1 auto}
.home-photo{height:299px;background-position:center center}
.home-photo::before{height:155px;background:linear-gradient(180deg,#030404a8 0%,#05060673 42%,#05060600 100%)}
.photo-logo-window{top:47px;left:15px;width:199px;height:49px}
.photo-logo{width:250px;left:-25px;top:-14px}
.page:not(.home-page){padding-top:73px}
@media(max-width:370px){.home-photo{height:265px}.photo-logo-window{top:46px;left:12px;width:182px}.photo-logo{width:230px;left:-23px}}

/* Shopping stays inside the same calm, tactile app language. */
.nav{grid-template-columns:repeat(5,minmax(0,1fr));padding-left:5px;padding-right:5px}
.nav button{min-width:0;font-size:9px}
.nav button svg{width:20px;height:20px}
.home-shop{width:calc(100% - 46px);display:flex;align-items:center;gap:13px;text-align:left;border:1px solid #ded8ca;background:#faf8f2;color:#262a25;border-radius:13px;padding:14px 17px;min-height:65px;margin:10px 23px 0;cursor:pointer}
.home-shop>span:nth-child(2){flex:1}
.home-shop-icon{display:grid;place-items:center;color:#9b8350}
.home-shop-icon svg{width:23px;height:23px}
.home-shop strong,.home-shop small{display:block}
.home-shop strong{font-size:13px;font-weight:750}
.home-shop small{font-size:11px;color:#777b73;margin-top:2px}
.home-shop>svg{width:18px;height:18px;color:#817e70}
.shop-page .sub{max-width:300px;margin-bottom:20px}
.shop-categories{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;margin:0 -23px 23px;padding:0 23px 3px}
.shop-categories::-webkit-scrollbar{display:none}
.shop-categories button{flex:none;border:1px solid #dedbd1;background:transparent;color:#686b63;border-radius:999px;padding:9px 12px;font-size:10px;font-weight:750;white-space:nowrap}
.shop-categories button.selected{background:#20251f;border-color:#20251f;color:#f7f3e7}
.shop-group{margin:0 0 25px}
.shop-group-head{margin:0 0 10px}
.shop-group-head h3{font-family:"DM Sans",Manrope,sans-serif;font-size:19px;letter-spacing:-.045em;margin:0 0 3px;color:#22251f}
.shop-group-head span{font-size:10px;color:#85867e}
.shop-list{border-top:1px solid #ddd8cb}
.shop-product{width:100%;min-height:76px;display:flex;align-items:center;gap:8px;text-align:left;background:transparent;border:0;border-bottom:1px solid #e4ded3;padding:12px 1px;color:#282c26}
.shop-product-text{min-width:0;flex:1}
.shop-product-text strong,.shop-product-text small,.shop-product-price strong,.shop-product-price small{display:block}
.shop-product-text strong{font-size:13px;font-weight:750;line-height:1.2}
.shop-product-text small{font-size:10px;color:#898b80;margin-top:4px}
.shop-product-price{text-align:right;white-space:nowrap}
.shop-product-price strong{font-size:15px;font-weight:750;letter-spacing:-.04em}
.shop-product-price small{font-size:9px;color:#8b8b80;margin-top:1px}
.shop-product-arrow{color:#a48b52;padding-left:4px}
.shop-product-arrow svg{width:16px;height:16px}
.shop-source{border-top:1px solid #e3ded3;padding-top:14px;color:#85877f;font-size:10px;line-height:1.5}
.shop-source a{display:inline-flex;align-items:center;gap:2px;color:#766339;text-decoration:underline;text-underline-offset:2px}
.shop-source svg{width:12px;height:12px}
.shop-back{border:0;background:transparent;color:#76663f;padding:0 0 28px;font-size:11px;font-weight:750}
.product-page h2,.checkout-page h2,.order-complete-page h2{font-size:36px;line-height:1.05}
.product-page .sub,.checkout-page .sub,.order-complete-page .sub{font-size:12px;line-height:1.6}
.product-price-panel{background:#242821;color:#f6f3e9;border-radius:16px;padding:22px;margin:25px 0 28px}
.product-price-panel>small{font-size:9px;letter-spacing:.12em;color:#b9aa80;font-weight:800}
.product-price-panel>div{display:flex;align-items:baseline;gap:6px;margin:12px 0 3px}
.product-price-panel strong{font-family:"DM Sans",Manrope,sans-serif;font-size:39px;font-weight:600;letter-spacing:-.065em;line-height:1}
.product-price-panel span{font-size:12px;color:#d8d4c5}
.product-price-panel p{font-size:11px;color:#c4c3b9;margin:9px 0 0}
.product-perks{border-top:1px solid #e4ded3;margin-bottom:20px}
.product-perks>div{display:flex;align-items:center;gap:10px;border-bottom:1px solid #e4ded3;padding:13px 0;color:#41453d;font-size:11px}
.product-perks svg{width:16px;height:16px;color:#a58b4c;flex:none}
.product-fees{background:#f2eee4;border-radius:10px;color:#77786e;font-size:10px;line-height:1.55;padding:13px 14px;margin:18px 0}
.shop-primary{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:#a78e53;border:0;border-radius:12px;color:white;padding:15px 17px;min-height:54px;font-size:13px;font-weight:750;text-align:left}
.shop-primary svg{width:17px;height:17px}
.shop-hint{color:#8b8d84;font-size:10px;line-height:1.5;text-align:center;margin:11px 5px 0}
.checkout-page .segment{margin:10px 0 21px}
.checkout-page .section-title{margin:20px 0 10px}
.checkout-summary{background:#fff;border:1px solid #e4ded3;border-radius:13px;padding:2px 16px}
.checkout-summary>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #ece8de;font-size:11px}
.checkout-summary>div:last-child{border-bottom:0}
.checkout-summary span{color:#85877e}
.checkout-summary strong{text-align:right;color:#2d312a;font-size:11px}
.checkout-summary .checkout-total{padding:17px 0}
.checkout-total strong{font-size:20px;letter-spacing:-.045em}
.checkout-total strong small{font-size:10px;font-weight:500;letter-spacing:0;color:#777a70}
.shop-official{display:flex;align-items:center;justify-content:center;gap:6px;min-height:49px;color:#77663f;text-decoration:underline;text-underline-offset:2px;font-size:11px;font-weight:750;margin-top:5px}
.shop-official svg{width:14px;height:14px}
.order-complete-page{display:flex;flex-direction:column;min-height:100%}
.complete-symbol{display:grid;place-items:center;background:#e7ddc4;color:#87703e;border-radius:50%;width:70px;height:70px;margin:27px 0 22px}
.complete-symbol svg{width:29px;height:29px}
.order-complete-page .sub strong{color:#252920}
.complete-recap{border-top:1px solid #e2dcd0;border-bottom:1px solid #e2dcd0;display:flex;justify-content:space-between;padding:17px 0;margin:20px 0 28px;font-size:11px;color:#797b72}
.complete-recap strong{color:#2e322b}
@media(max-width:370px){.home-shop{width:calc(100% - 34px);margin-left:17px;margin-right:17px}.nav button{font-size:8px}.shop-page .page h2{font-size:33px}}

/* Final app polish: fewer surfaces, clearer hierarchy and restrained motion. */
.page{animation:pageReveal .34s cubic-bezier(.2,.75,.28,1) both}
@keyframes pageReveal{from{opacity:.45;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.home-photo{height:280px;animation:photoReveal .7s ease-out both}
@keyframes photoReveal{from{filter:brightness(.8)}to{filter:brightness(1)}}
.home-photo::before{height:145px;background:linear-gradient(180deg,#030404b0 0%,#0506066b 53%,transparent 100%)}
.photo-logo-window{top:44px;left:19px;width:245px;height:56px;mix-blend-mode:screen}
.photo-logo{width:260px;left:-19px;top:-8px;filter:drop-shadow(0 1px 7px #0008)}
.home-intro{padding-top:25px}
.home-intro h2{margin-bottom:10px}
.home-location{margin-bottom:24px}
.home-door{min-height:66px;box-shadow:0 9px 20px #9078471c}
.home-visits{min-height:64px;margin-top:12px;background:#f0ede5}
.home-intro,.home-door,.home-visits,.demo-foot{animation:contentReveal .48s cubic-bezier(.2,.75,.28,1) both}
.home-intro{animation-delay:.1s}.home-door{animation-delay:.17s}.home-visits{animation-delay:.23s}.home-page .demo-foot{animation-delay:.29s}
@keyframes contentReveal{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
.demo-foot{margin:24px 23px 0;color:#92928a;font-size:10px;line-height:1.45;text-align:center}
.access-page .segment{margin:22px 0 20px;background:#ece9e1}
.access-page .segment button{min-height:39px;transition:background .22s,color .22s,box-shadow .22s,transform .18s}
.access-page .segment button.selected{background:#fff;box-shadow:0 2px 7px #756b541c}
.entrance{transition:background .22s,border-color .22s,transform .22s cubic-bezier(.2,.75,.28,1)}
.entrance.selected{background:#f5f0e5}
.access-action{margin-top:20px;transition:background .2s,transform .18s,box-shadow .2s;box-shadow:0 8px 18px #90784719}
.access-disclaimer{margin:12px 0 0}
.access-result{display:flex;align-items:center;gap:10px;padding:13px 0;margin-top:24px;border-top:1px solid #e4dfd4;color:#657b62;font-size:11px;font-weight:700;animation:contentReveal .32s ease-out both}
.access-result svg{width:16px;height:16px}
.visits-page .demo-foot{margin:20px 0 0;text-align:left}
.shop-page h2{margin-bottom:24px}
.shop-categories{margin-bottom:27px}
.shop-categories button{transition:background .2s,border-color .2s,color .2s,transform .18s}
.shop-product{transition:background .18s,transform .18s}
.shop-product:hover{background:#f1ede4}
.shop-product:active{transform:translateX(2px)}
.shop-source{margin-top:3px}
.shop-primary,.home-door,.home-visits,.member-link,.nav button{transition:background .2s,color .2s,transform .18s,box-shadow .2s}
.shop-primary:hover,.home-door:hover,.access-action:hover{background:#977f47}
.home-visits:hover{background:#e9e5da}
.shop-primary:active,.home-door:active,.home-visits:active,.access-action:active,.entrance:active,.shop-categories button:active,.segment button:active,.member-link:active,.nav button:active{transform:scale(.985)}
.nav button{min-height:47px;border-radius:10px}
.nav button.active svg{stroke-width:2.1}
.nav button.active::after{width:4px;height:4px;bottom:1px}
.member-card{margin:25px 0 19px;min-height:185px}
.member-card .chip{font-size:8px;letter-spacing:.08em}
.member-facts{border-top:1px solid #e2ddd2;border-bottom:1px solid #e2ddd2;margin-bottom:27px}
.member-facts .info-row:last-child{border:0}
.member-link{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:16px 1px;border:0;border-bottom:1px solid #e6e0d5;background:none;color:#31372d;font-size:12px;font-weight:700;text-decoration:none;text-align:left}
.member-link svg{width:17px;height:17px;color:#a28a50}
.member-link:hover{color:#8e7540}
.membership-page .demo-foot{margin:25px 0 0;text-align:left}
.overlay{animation:overlayFade .2s ease-out both}
.dialog{animation:dialogRise .3s cubic-bezier(.2,.75,.28,1) both}
@keyframes overlayFade{from{opacity:0}to{opacity:1}}
@keyframes dialogRise{from{opacity:.65;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
button:focus-visible,a:focus-visible{outline:2px solid #a38a4f;outline-offset:3px}
@media(max-width:370px){.home-photo{height:257px}.photo-logo-window{left:13px;width:220px}.photo-logo{width:245px}.demo-foot{margin-left:17px;margin-right:17px}}
.home-page,.access-page{min-height:100%;display:flex;flex-direction:column}
.home-photo{flex:none}
.home-page .demo-foot{margin-top:auto;margin-bottom:25px}
.access-page .access-action{margin-top:auto}
.access-page .access-result{flex:none}
.shop-group-head h3{margin-bottom:10px}
.product-page .sub{margin-bottom:0}
.product-price-panel{background:#eee9dd;color:#252720;box-shadow:none;border:1px solid #e4dccb;margin:26px 0 20px}
.product-price-panel>small{color:#8d7748}
.product-price-panel strong{color:#22251e}
.product-price-panel span{color:#6e6d64}
.product-price-panel p{color:#7e796b}
.product-perks{margin-bottom:25px}
.product-perks>div{padding:15px 0}
.checkout-summary{margin-bottom:20px}

/* Fit short views to the device; longer views retain natural scrolling. */
.phone{min-height:0}
.app-scroll{overscroll-behavior-y:contain}
.app-scroll.no-scroll{overflow-y:hidden;overscroll-behavior-y:none;touch-action:pan-x}
.home-photo{height:clamp(165px,calc(100dvh - 496px),280px)}
.home-photo:not(.is-karlskoga){background-size:auto 120%;background-position:center 8%}
.home-photo.is-karlskoga{background-image:url('gym-karlskoga.jpg')}
.home-location-picker{width:100%;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}
.home-location-picker>span:nth-child(2){flex:1}
.home-location-chevron{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#efede6;color:#938761;transition:background .2s,transform .2s}
.home-location-chevron svg{width:15px;height:15px}
.home-location-picker:hover .home-location-chevron{background:#e7e1d3;transform:translateX(2px)}
.home-location-picker:active .home-location-chevron{transform:scale(.94)}
.facility-dialog{padding:22px 20px 14px;background:#faf9f5;border:1px solid #e7e1d5;box-shadow:0 -18px 45px #10120f36}
.facility-dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.facility-dialog h3{font-family:"DM Sans",Manrope,sans-serif;font-size:22px;font-weight:700;letter-spacing:-.055em;margin:0;color:#20231d}
.facility-dialog-close{display:grid;place-items:center;width:29px;height:29px;border:0;border-radius:50%;background:#efede6;color:#72766e;font-size:21px;line-height:1}
.facility-options{display:grid;gap:6px}
.facility-option{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:55px;padding:0 15px;border:1px solid transparent;border-radius:12px;background:#f0eee8;color:#31342e;text-align:left;font-size:14px;font-weight:700;transition:background .2s,border-color .2s,transform .2s}
.facility-option.selected{background:#f3efe4;border-color:#c4b17c;color:#413a27}
.facility-option svg{width:16px;height:16px;color:#a18849}
.facility-option:active{transform:scale(.985)}
@media(max-height:760px){
  .membership-page{padding-top:62px!important;padding-bottom:20px}
  .membership-page h2{margin-bottom:11px}
  .member-card{min-height:150px;margin:15px 0 12px;padding:17px}
  .member-card img{width:145px}
  .member-facts{margin-bottom:15px}
  .member-facts .info-row{padding:11px 0}
  .member-link{padding:12px 1px}
  .membership-page .demo-foot{margin-top:13px}
}
@media(max-height:700px){
  .access-page .segment{margin:17px 0}
  .access-page .entrance{height:146px;min-height:146px}
  .membership-page{padding-bottom:14px}
}
