/* Eretria Fitness Box: editorial sports interface. */
:root{--ink:#f4f1e8;--primary:#f4ca38;--muted:#a2a29b;--line:#34352f;--paper:#161713;--soft:#25261e;--accent:#f4ca38}body{background:var(--paper);color:var(--ink)}.wrap{max-width:1360px;padding-inline:48px}header{background:#000;border-bottom:1px solid var(--line)}.nav{min-height:102px}.nav .brand-logo{width:180px;height:94px;object-fit:cover}.nav-links{font-size:12px;letter-spacing:1px}.nav-links>a:hover{color:var(--accent)}.member{border:1px solid #747567;border-radius:0;background:transparent;color:var(--ink);padding:12px 18px}.nav-links>.member:hover,.nav-links>.member:focus-visible{background:var(--accent);color:#161713;border-color:var(--accent)}
.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:stretch;padding:80px 0 64px;margin:0;background:none;border:0;border-radius:0;overflow:visible}.hero .eyebrow{color:var(--muted);font-size:11px;letter-spacing:3px}.hero h1{font-size:clamp(66px,9vw,126px);font-weight:900;line-height:.94;letter-spacing:-7px;margin:32px 0}.hero h1 span{color:var(--accent);text-decoration:none}.hero p{color:#b5b6aa;font-size:16px;line-height:1.8}.hero-cta{display:inline-flex;align-items:center;gap:44px;margin-top:30px;border-bottom:2px solid var(--accent);padding:12px 0;font-size:14px;font-weight:700}.hero-cta span{color:var(--accent);font-size:30px}.hero-art{position:relative;min-height:410px;background:var(--accent);overflow:hidden;display:flex;align-items:center;justify-content:center;color:#151610}.art-orbit{position:absolute;width:340px;height:340px;border:1px solid #16171355;border-radius:50%;box-shadow:0 0 0 48px #1617130b,0 0 0 96px #1617130b}.art-bolt{font-family:Arial,sans-serif;font-size:350px;line-height:1;font-weight:900;transform:rotate(9deg)}.art-label{position:absolute;left:26px;bottom:24px;font-size:19px;font-weight:900;line-height:1.1;letter-spacing:-.5px}.art-index{position:absolute;right:20px;top:22px;writing-mode:vertical-rl;font-size:10px;letter-spacing:3px}.manifesto{border-block:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;padding:22px 0;font-weight:900;font-size:clamp(15px,2.2vw,29px);letter-spacing:-1px}.manifesto span:last-child{color:var(--accent)}.schedule-intro{margin:68px 0 24px;display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:2px;color:var(--muted)}.eyebrow{color:var(--accent);font-size:11px}
.calendar{border:0;border-radius:0;background:none;overflow:visible}.calendar-head{padding:0 0 22px;background:none;align-items:end}.calendar-head h2{font-size:clamp(25px,3vw,38px);font-weight:900;letter-spacing:-1.5px}.calendar-head .sub{color:var(--muted)}.icon-btn{border-radius:0;background:none;color:var(--ink);border-color:var(--line)}.icon-btn:hover:not(:disabled){border-color:var(--accent)}.month{font-size:12px}.view-bar{padding:10px 0;border-top:1px solid var(--line);background:none}.view-switch{border:1px solid var(--line);border-radius:0;background:none}.view-button{border-radius:0;color:var(--muted)}.view-button.active{background:var(--accent);color:#161713}.view-hint{color:var(--muted)}.days{padding:6px 0 16px;gap:8px}.days .day{border:1px solid var(--line);background:none;border-radius:0;color:var(--muted);min-width:0;min-height:92px;padding:10px 6px;gap:2px}.days .day strong{color:var(--ink)}.days .day.active{background:var(--accent);border-color:var(--accent);color:#171811}.days .day.active strong{color:#171811}.days .day:hover:not(.active){background:#303124;border-color:#6a6842}
#classes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.class-row,.class-row.capacity-hidden{display:grid;grid-template-columns:1fr auto;margin:0;padding:14px;background:#22231d;border:1px solid var(--line);gap:10px;border-radius:0;align-items:center}.class-row .time{grid-column:1/-1;grid-row:auto;align-self:auto;border-bottom:1px solid #3a3b31;padding-bottom:8px}.time strong{font-size:28px;line-height:1.15;font-weight:700;letter-spacing:-1px}.class-row>div:nth-child(2){grid-column:1/-1}.class-title{font-size:16px;font-weight:600;color:var(--ink)}.class-row .availability{grid-column:1;grid-row:auto;justify-self:start;font-size:11px;color:#c4c4ad;padding:0;min-height:0;background:none}.availability.last-place{color:var(--accent);background:none;border:0}.class-row .book{grid-column:2;grid-row:auto;justify-self:end;position:static;transform:none;background:var(--accent);color:#181910;border-radius:0;padding:8px 10px;font-size:12px;font-weight:700}.book:hover{background:#ffe278}.book:disabled{background:#33342b;color:#8c8d80}.draft-note{margin-top:20px;padding:14px 0;background:none;border-color:var(--line);font-size:11px;color:#929485}.draft-note b{color:#c5c6ba;white-space:nowrap}.empty-state{grid-column:1/-1;margin-inline:0;background:#22231d;border-color:var(--line);color:var(--ink);border-radius:0}.empty-state-icon{background:var(--soft);color:var(--accent);border-color:var(--line)}.empty-state p{color:var(--muted);max-width:none}.week-table th,.week-table td{border-color:var(--line)}.week-table thead th{background:#22231d;color:var(--ink)}.week-session{background:#28291f;border-color:#484936;color:var(--ink);border-radius:0}.week-session:hover:not(:disabled){background:#383923;border-color:var(--accent)}.week-session.last-place{background:#35331e;border-color:#817339}.session-count,.week-session.last-place .session-count{color:var(--accent)}
.about{margin-top:78px;border-top:1px solid var(--line);padding:52px 0 60px;gap:70px}.about h2{font-size:clamp(30px,4vw,49px);font-weight:900;line-height:1.05;letter-spacing:-2px}.about p{color:var(--muted);font-size:14px}.services{border-color:var(--line)}.service{border-color:var(--line);padding:26px 0}.service .num{color:var(--accent)}.service h3{font-size:23px;color:var(--ink)}.contact{background:var(--accent);color:#171811;border-radius:0;margin:0;padding:32px}.contact h2{font-size:26px;font-weight:800}.contact p{color:#545037;font-size:14px}.primary{background:#171811;color:white;border-radius:0}.primary:hover{background:#3c3c2a}.member-app{margin:0;padding:44px 0;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0}.member-app h2{font-size:29px;font-weight:700}.member-app p{color:var(--muted)}.app-symbol{background:none;border:1px solid var(--line);color:var(--accent);border-radius:0;width:90px;height:110px}.store-button{border-radius:3px}.store-apple{background:#fff;color:#111;border-color:white}.store-google{background:#fff;color:#111}.location{padding:42px 0;margin:0;border:0}.location h2{font-size:24px;color:var(--ink)}.location-pending{color:var(--muted);font-size:13px}footer{background:#0d0e0b;border-color:var(--line);color:var(--muted);font-size:13px}.gymbooking-link{color:var(--accent);background:none;border:0;padding:0}.gymbooking-link:hover{color:#fff;background:none}.page-loader{background:#000}.page-loader .loader-logo{width:260px;height:130px;object-fit:cover}.loader-spinner{border-color:#413913;border-top-color:var(--accent)}dialog{background:#22231d;color:var(--ink);border-color:var(--line);border-radius:0}.modal-class{background:#303124}.secondary{background:none;color:var(--ink);border-color:var(--line);border-radius:0}a[data-booking-pending]{opacity:.55;cursor:default}a:focus-visible,button:focus-visible{outline-color:var(--accent)}
@media(max-width:1100px){#classes{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.wrap{padding-inline:24px}.hero{gap:24px;padding-top:48px}.hero h1{letter-spacing:-4px}.hero-art{min-height:350px}.art-bolt{font-size:280px}.art-orbit{width:250px;height:250px}#classes{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-links{gap:18px}.about{gap:30px}}
@media(max-width:600px){.wrap{padding-inline:20px}.nav{min-height:86px}.nav .brand-logo{width:150px;height:80px}.nav-links>.member{padding:10px;font-size:11px;letter-spacing:0}.hero{grid-template-columns:1fr;padding:36px 0 28px;gap:30px}.hero h1{font-size:76px;margin:24px 0;letter-spacing:-4px}.hero-art{min-height:230px}.art-bolt{font-size:250px}.art-orbit{width:210px;height:210px}.art-label{font-size:16px;left:18px;bottom:18px}.hero-cta{margin-top:16px}.manifesto{gap:10px;font-size:12px;letter-spacing:0;padding:18px 0}.schedule-intro{margin-top:40px;font-size:9px}.schedule-intro>span:last-child{display:none}.calendar-head{padding:0 0 20px;gap:18px}.calendar-head h2{font-size:27px}.view-bar{padding-inline:0}.days{gap:5px;padding-inline:0}.days .day{padding:10px 0}.days .day strong{font-size:21px}#classes{gap:8px}.class-row,.class-row.capacity-hidden{padding:12px;gap:8px;grid-template-columns:1fr}.class-row .time{padding-bottom:6px}.time strong{font-size:25px}.class-title{font-size:14px}.class-row .availability{grid-column:1}.class-row .book{grid-column:1;justify-self:stretch}.draft-note{flex-direction:column;gap:5px}.about{grid-template-columns:1fr;margin-top:42px;padding-top:32px;gap:24px}.about h2{font-size:36px}.contact{padding:24px;align-items:start;flex-direction:column;gap:20px}.contact h2{font-size:23px}.contact .primary{white-space:normal}.member-app{padding:32px 0}.member-app h2{font-size:26px}.app-symbol{display:none}.footer-inner{flex-direction:column;gap:12px}.location{padding:32px 0}}
@media(prefers-reduced-motion:no-preference){.hero-copy{animation:arrive .6s ease-out}.hero-art{animation:arrive .9s ease-out}.class-row{transition:border-color .2s,background .2s}.class-row:hover{border-color:#77734b;background:#292a21}@keyframes arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}}

/* Contact details and social profiles. */
.phone-button,.location-phone{display:inline-flex;align-items:center;gap:9px}.phone-button{border:1px solid var(--accent);color:var(--accent);padding:10px 13px;white-space:nowrap}.nav-links>.phone-button{display:inline-flex}.location{display:grid;grid-template-columns:1fr 1.3fr;gap:36px;align-items:center}.location p{color:var(--muted)}.location-phone{font-size:23px;font-weight:700;margin:12px 0 24px}.map-link{display:flex;align-items:center;gap:22px;color:var(--accent);font-size:13px;width:fit-content;border-bottom:1px solid var(--accent);padding-bottom:8px}.map-link:hover{color:white;border-color:white}.location-map{width:100%;height:330px;border:1px solid var(--line)}.social-links{display:flex;gap:10px}.social-links a{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);color:var(--ink)}.social-links a:hover{background:var(--accent);border-color:var(--accent);color:#161713}.social-links svg{width:17px;height:17px}.footer-inner{align-items:center}.contact p a{text-decoration:underline;text-underline-offset:3px}@media(max-width:900px){.nav-links{gap:10px}.nav-links>a[href="#studio"]{display:none}.phone-button{font-size:11px;padding:10px}}@media(max-width:600px){.nav{flex-wrap:wrap;justify-content:center;padding-bottom:14px;gap:0}.nav .brand-logo{height:80px}.nav-links{justify-content:center;width:100%;gap:12px}.location{grid-template-columns:1fr;gap:22px}.location-map{height:280px}.footer-inner{align-items:flex-start}}

.week-session + .week-session{margin-top:8px}

.class-row.is-past{opacity:.5}.class-row.is-past:hover{background:#22231d;border-color:var(--line)}.class-row.is-past .book{background:#33342b;color:#aaa;cursor:default}

@media(max-width:420px){#classes{grid-template-columns:minmax(0,1fr)}}

/* Gallery aligned with the Eretria layout and dark palette. */
.studio-gallery.wrap{width:100%;max-width:1360px;padding:0 48px;margin:28px auto 0}
.gallery-viewport{position:relative}
.gallery-note{padding:0;margin:10px 0 0}
.gallery-expand{color:#161713}
.gallery-arrow{width:48px;height:48px;padding:0;background:#161713;color:#f4ca38;border:2px solid #f4ca38;box-shadow:0 3px 16px #0009}
.gallery-arrow svg{width:26px;height:26px;stroke-width:2.5}
.gallery-arrow:hover,.gallery-arrow:focus-visible{background:#f4ca38;color:#161713}
.gallery-dialog{background:var(--paper);color:var(--ink)}
.studio-gallery+main .hero{padding-top:80px}
@media(max-width:900px){.studio-gallery.wrap{padding-inline:24px}.studio-gallery+main .hero{padding-top:48px}}
@media(max-width:600px){.studio-gallery.wrap{padding-inline:20px;margin-top:18px}.studio-gallery+main .hero{padding-top:36px}}

/* Separate the timetable from the new-member section. */
.calendar+.contact{margin-top:40px}
@media(max-width:600px){.calendar+.contact{margin-top:28px}}

/* Highlight forward calendar navigation. */
#next,#prev:not(:disabled){background:var(--accent);border-color:var(--accent);color:#161713}

/* Framed introduction. */
.hero{background:var(--soft);border:1px solid var(--line);border-radius:12px;margin:32px 0;padding:40px}
.hero h1{font-size:clamp(60px,7vw,100px);letter-spacing:-4px}
@media(max-width:600px){.hero{margin:20px 0;padding:28px 24px;border-radius:10px}.hero h1{font-size:clamp(48px,12vw,76px);letter-spacing:-3px}}
