/* Talusridge Sports Massage: big-type poster. Chalk page, ink type, signal orange for bibs and buttons,
   glacier blue for the price board. Orange text only ever sits on ink; ink text sits on orange, glacier and chalk. */
:root{
  --chalk:#F2F0EB;--ink:#111111;--orange:#FF5A1F;--glacier:#9CC6DB;
  --head:"Anton","Impact","Arial Narrow",sans-serif;
  --body:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --pad:clamp(16px,4vw,40px);
  --pin:var(--chalk);
  --ridge-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='30' viewBox='0 0 240 30'%3E%3Cpath d='M0 27 L30 15 L48 20 L86 3 L112 17 L130 12 L164 25 L194 8 L218 18 L240 27' fill='none' stroke='%23111111' stroke-width='3'/%3E%3C/svg%3E");
  --ridge-orange:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='30' viewBox='0 0 240 30'%3E%3Cpath d='M0 27 L30 15 L48 20 L86 3 L112 17 L130 12 L164 25 L194 8 L218 18 L240 27' fill='none' stroke='%23FF5A1F' stroke-width='3'/%3E%3C/svg%3E");
  --ridge-line:var(--ridge-ink);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--chalk);color:var(--ink);font:400 1.0625rem/1.6 var(--body)}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:3px}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.on-ink :focus-visible,.foot :focus-visible,.mnav-panel :focus-visible{outline-color:var(--orange)}
.on-orange :focus-visible{outline-color:var(--ink)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--chalk);padding:12px 18px;font-weight:700}
.skip:focus{left:12px;top:12px;z-index:99}
.wrap{width:100%;max-width:1280px;margin-inline:auto;padding-inline:var(--pad)}
.reveal-pending{transform:translateY(14px)}
.reveal-in{opacity:1;transform:none;transition:opacity .5s,transform .5s}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:52px;padding:6px 22px;font:400 1.2rem/1.05 var(--head);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:3px solid var(--ink);background:var(--orange);color:var(--ink);cursor:pointer}
.btn:hover{background:var(--ink);color:var(--orange)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--chalk)}
.btn.dark{background:var(--ink);color:var(--chalk)}
.btn.dark:hover{background:var(--chalk);color:var(--ink)}
.btn-pair{display:flex;gap:12px}
.btn-pair .btn{flex:1 1 0;min-width:0}

/* header */
.site-head{position:sticky;top:0;z-index:20;background:var(--chalk);border-bottom:3px solid var(--ink)}
.head-row{display:flex;align-items:center;gap:12px;min-height:68px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;min-height:44px}
.brand img{flex:none}
.brand-name{font:400 1.45rem/1 var(--head);letter-spacing:.04em;text-transform:uppercase}
.brand-name small{display:block;margin-top:3px;font:700 .6rem/1 var(--body);letter-spacing:.2em}
.nav-main{display:none}
.nav-main ul{display:flex;gap:2px}
.nav-main a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;font:700 .78rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.nav-main a:hover{background:var(--ink);color:var(--chalk)}
.nav-main a[aria-current="true"],.mnav-panel a[aria-current="true"]{background:var(--orange);color:var(--ink)}
.head-tel{display:none;align-items:center;min-height:44px;padding:0 14px;border:2px solid var(--ink);font:400 1.15rem/1 var(--head);letter-spacing:.05em;text-decoration:none}
.head-tel:hover{background:var(--ink);color:var(--chalk)}
.head-row>.lang{margin-left:auto}
.lang,.mnav{position:relative}
.mnav{position:static}
.lang summary,.mnav summary{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:2px solid var(--ink);cursor:pointer;font:700 .78rem/1 var(--body);letter-spacing:.12em;text-transform:uppercase}
.lang summary::-webkit-details-marker,.mnav summary::-webkit-details-marker{display:none}
.lang summary svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}
.lang[open] summary,.mnav[open] summary{background:var(--ink);color:var(--chalk)}
.lang-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:30;min-width:220px;max-height:70vh;overflow:auto;background:var(--chalk);border:3px solid var(--ink);padding:8px}
.lang-panel a,.lang-panel button{min-height:44px}
.bars{position:relative;width:18px;height:2px;background:currentColor}
.bars::before,.bars::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor}
.bars::before{top:-6px}.bars::after{top:6px}
.mnav-panel{position:absolute;left:0;right:0;top:100%;background:var(--ink);color:var(--chalk);padding:8px var(--pad) 22px;max-height:calc(100vh - 68px);overflow:auto}
.mnav-panel a{display:flex;align-items:center;min-height:56px;padding:0 4px;font:400 1.7rem/1 var(--head);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid rgba(242,240,235,.25)}
.mnav-panel a:hover{color:var(--orange)}
.mnav-panel a[aria-current="true"]{padding-left:12px}
@media (max-width:520px){.brand-name small,.lang-text{display:none}.brand-name{font-size:1.3rem}.head-row{gap:8px}}
@media (min-width:720px){.head-tel{display:inline-flex}}
@media (min-width:1160px){.nav-main{display:block;margin-left:auto}.mnav{display:none}.head-row>.lang{margin-left:0}}

/* hero */
.hero{border-bottom:3px solid var(--ink)}
.hero .wrap:first-child{padding-top:clamp(28px,5vw,60px)}
.eyebrow{display:flex;flex-wrap:wrap;gap:8px 12px;font:700 .78rem/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase}
.eyebrow span{padding:7px 11px;border:2px solid var(--ink)}
.eyebrow span:first-child{background:var(--ink);color:var(--chalk)}
h1{margin-top:clamp(16px,3vw,32px);font:400 min(20.2vw,16.8rem)/.88 var(--head);letter-spacing:-.004em;text-transform:uppercase}
.hero-ridge{position:relative;height:clamp(96px,15vw,190px);margin-top:clamp(8px,2vw,24px)}
.hero-ridge .sun{position:absolute;right:13%;bottom:12%;width:clamp(70px,11vw,150px);aspect-ratio:1;border-radius:50%;background:var(--orange)}
.hero-ridge svg{position:absolute;inset:0;width:100%;height:100%}
.hero-foot{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding-top:clamp(20px,3vw,36px);padding-bottom:clamp(28px,4vw,48px)}
.lede{font-size:clamp(1.15rem,2.1vw,1.5rem);line-height:1.45}
@media (min-width:900px){.hero-foot{grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:56px;align-items:center}}
.strip{background:var(--ink);color:var(--chalk)}
.strip dl{display:grid;grid-template-columns:minmax(0,1fr)}
.strip dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid rgba(242,240,235,.25)}
.strip dl>div:last-child{border-bottom:0}
.strip dt{font:700 .74rem/1.2 var(--body);letter-spacing:.16em;text-transform:uppercase}
.strip dd{font:400 clamp(1.5rem,3vw,2.3rem)/1 var(--head);letter-spacing:.03em;color:var(--orange);text-transform:uppercase}
@media (min-width:760px){.strip dl{grid-template-columns:repeat(3,minmax(0,1fr))}.strip dl>div{display:block;padding:22px 24px 24px;border-bottom:0;border-left:1px solid rgba(242,240,235,.25)}.strip dl>div:first-child{border-left:0;padding-left:0}.strip dt{margin-bottom:6px}}

/* sections */
.sec{padding:clamp(56px,9vw,112px) 0;scroll-margin-top:68px}
.on-ink{background:var(--ink);color:var(--chalk);--pin:var(--ink);--ridge-line:var(--ridge-orange)}
.on-ink a{color:var(--orange)}
.on-orange{background:var(--orange);color:var(--ink);--pin:var(--orange)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;margin-bottom:clamp(28px,5vw,56px)}
@media (min-width:760px){.sec-head{grid-template-columns:auto minmax(0,1fr);align-items:end;gap:36px}}
.bib{position:relative;display:flex;flex-direction:column;justify-content:space-between;width:clamp(104px,13vw,150px);aspect-ratio:1/.95;padding:18px 20px 10px;background:var(--orange);color:var(--ink);transform:rotate(-2deg);
  background-image:radial-gradient(circle at 11px 11px,var(--pin) 4px,transparent 4.6px),radial-gradient(circle at calc(100% - 11px) 11px,var(--pin) 4px,transparent 4.6px),radial-gradient(circle at 11px calc(100% - 11px),var(--pin) 4px,transparent 4.6px),radial-gradient(circle at calc(100% - 11px) calc(100% - 11px),var(--pin) 4px,transparent 4.6px)}
.bib i{font:800 .64rem/1 var(--body);font-style:normal;letter-spacing:.14em;text-transform:uppercase}
.bib b{font:400 clamp(3.4rem,7.6vw,5.4rem)/.85 var(--head);letter-spacing:.01em}
.on-orange .bib{background-color:var(--ink);color:var(--orange)}
h2.big{font:400 clamp(2.7rem,9.2vw,7.6rem)/.92 var(--head);text-transform:uppercase}
h2.big::after{content:"";display:block;height:30px;margin-top:16px;background:var(--ridge-line) repeat-x left bottom/240px 30px}
.on-orange h2.big::after{background-image:var(--ridge-ink)}
.sec-intro{font-size:clamp(1.12rem,2vw,1.4rem);line-height:1.5;max-width:60ch;margin-bottom:clamp(28px,4vw,48px)}

/* 01 lanes */
.lanes{border-top:3px solid var(--ink)}
.lane{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:26px 0 30px;border-bottom:3px solid var(--ink)}
.lane+.lane{border-top:0}
.lane h3{font:400 clamp(2.9rem,8vw,6.2rem)/.9 var(--head);text-transform:uppercase}
.lane p{font-size:1.1rem}
.lane figure img{width:100%;aspect-ratio:16/10;object-fit:cover;box-shadow:7px 7px 0 var(--orange);margin-right:7px;width:calc(100% - 7px)}
@media (min-width:900px){.lane{grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,3fr);gap:40px;align-items:center}.lane figure img{aspect-ratio:1/1;box-shadow:10px 10px 0 var(--orange);margin-right:10px;width:calc(100% - 10px)}}

/* 02 sessions + board */
.sess{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}
@media (min-width:960px){.sess{grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:64px;align-items:start}}
.board-wrap{position:relative;overflow-x:auto;background:var(--glacier);border:3px solid var(--ink);box-shadow:10px 10px 0 var(--ink);margin-right:10px}
.board-wrap::before,.board-wrap::after{content:"";display:block;height:14px;background:repeating-linear-gradient(90deg,var(--ink) 0 22px,transparent 22px 44px)}
.board{width:100%;table-layout:fixed;border-collapse:collapse}
.board caption{padding:14px 14px 10px;text-align:left;font:800 .72rem/1.2 var(--body);letter-spacing:.16em;text-transform:uppercase}
.board th,.board td{padding:16px 8px;text-align:center;vertical-align:middle}
.board thead th{background:var(--orange);font:400 clamp(1rem,2.6vw,1.5rem)/1 var(--head);letter-spacing:.05em;text-transform:uppercase;border-block:3px solid var(--ink)}
.board th[scope="row"]{width:34%;padding-left:14px;text-align:left;font:400 clamp(1.15rem,3vw,1.9rem)/1 var(--head);letter-spacing:.03em;text-transform:uppercase}
.board td{font:400 clamp(2rem,6.2vw,4.2rem)/1 var(--head)}
.board tbody tr+tr>*{border-top:3px dashed rgba(17,17,17,.5)}
.board tfoot th,.board tfoot td{background:var(--chalk);border-top:3px solid var(--ink);padding-block:14px}
.board tfoot td{font:500 .98rem/1.35 var(--body);text-align:left;padding-left:12px}
.board tfoot td b{font:400 1.5rem/1 var(--head);letter-spacing:.04em}
.styles h3{font:400 clamp(1.9rem,3.4vw,2.5rem)/1 var(--head);text-transform:uppercase;margin-bottom:8px}
.styles h3::before{content:"";display:inline-block;width:.5em;height:.5em;margin-right:.35em;background:var(--orange);border:2px solid var(--ink)}
.styles p{margin-bottom:24px}
.styles ul{border-top:3px solid var(--ink)}
.styles li{padding:12px 0;border-bottom:1px solid var(--ink)}

/* photo band */
.band{position:relative}
.band img{width:100%;height:clamp(300px,52vw,640px);object-fit:cover;object-position:50% 45%}
.band figcaption{position:absolute;left:var(--pad);bottom:var(--pad);max-width:calc(100% - 2 * var(--pad));padding:10px 16px 8px;background:var(--orange);color:var(--ink);font:400 clamp(1.3rem,4vw,2.5rem)/1 var(--head);letter-spacing:.03em;text-transform:uppercase;border:3px solid var(--ink)}

/* 03 race week */
.rw{display:grid;grid-template-columns:minmax(0,1fr);border:3px solid var(--ink)}
.rw li{display:flex;flex-direction:column;gap:10px;min-width:0;padding:24px 22px 28px}
.rw li+li{border-top:3px solid var(--ink)}
.rw .when{font:800 .76rem/1.2 var(--body);letter-spacing:.16em;text-transform:uppercase}
.rw h3{font:400 clamp(2.1rem,3.8vw,3.2rem)/.95 var(--head);text-transform:uppercase}
.rw .s1{background:var(--orange)}
.rw .s2{background:repeating-linear-gradient(135deg,var(--chalk) 0 14px,#E4E1D9 14px 28px)}
.rw .s3{background:var(--ink);color:var(--chalk)}.rw .s3 h3{color:var(--orange)}
.rw .s4{background:var(--glacier)}
@media (min-width:900px){.rw{grid-template-columns:minmax(0,3fr) minmax(0,2fr) minmax(0,1.5fr) minmax(0,3fr)}.rw li+li{border-top:0;border-left:3px solid var(--ink)}.rw li{min-height:300px}}
.rw-notes{display:grid;grid-template-columns:minmax(0,1fr);gap:12px 48px;margin-top:28px;font-size:1.08rem}
@media (min-width:760px){.rw-notes{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 04 splits */
.splits{border-top:2px solid rgba(242,240,235,.4)}
.splits li{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:20px 0 24px;border-bottom:2px dashed rgba(242,240,235,.4)}
.splits .t{font:400 clamp(2.8rem,6vw,4.8rem)/.9 var(--head);color:var(--orange);letter-spacing:.02em}
.splits h3{font:400 clamp(1.7rem,3vw,2.3rem)/1 var(--head);text-transform:uppercase;letter-spacing:.02em;margin-bottom:6px}
@media (min-width:760px){.splits li{grid-template-columns:minmax(0,2fr) minmax(0,7fr);gap:40px;align-items:baseline}}

/* 05 limits */
.limits{display:grid;grid-template-columns:minmax(0,1fr);border:3px solid var(--ink)}
.nos{background:var(--ink);color:var(--chalk);padding:clamp(22px,4vw,44px)}
.nos li{padding:18px 0 20px;border-bottom:2px dashed rgba(242,240,235,.4)}
.nos li:first-child{padding-top:0}.nos li:last-child{border-bottom:0;padding-bottom:0}
.nos strong{display:block;font:400 clamp(2.5rem,6vw,4.6rem)/.92 var(--head);text-transform:uppercase;font-weight:400}
.nos strong em{font-style:normal;color:var(--orange)}
.nos p{margin-top:6px;font-size:1.08rem}
.refer{background:var(--glacier);padding:clamp(22px,4vw,44px)}
.refer h3{font:400 clamp(2.2rem,4vw,3.4rem)/.95 var(--head);text-transform:uppercase;margin-bottom:14px}
.refer p+p{margin-top:14px}
@media (min-width:900px){.limits{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}

/* 06 hours */
.hours-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:44px}
@media (min-width:900px){.hours-grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:72px;align-items:start}}
.hours-wrap{position:relative;overflow-x:auto}
.hours{width:100%;border-collapse:collapse;table-layout:fixed;border-top:6px solid var(--ink)}
.hours th,.hours td{padding:16px 8px;border-bottom:3px solid var(--ink);text-align:left;vertical-align:baseline}
.hours thead th{font:800 .72rem/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase;padding-block:12px}
.hours tbody th{width:30%;font:400 clamp(1.2rem,3vw,1.9rem)/1 var(--head);letter-spacing:.03em;text-transform:uppercase;padding-left:0}
.hours td{font:400 clamp(1.3rem,3.2vw,2.2rem)/1 var(--head);letter-spacing:.02em}
.hours td.closed{font:700 .85rem/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase}
.hours-note{margin-top:16px;font-size:1.05rem}
.where h3{font:400 clamp(2.2rem,4.2vw,3.4rem)/.95 var(--head);text-transform:uppercase;margin-bottom:12px}
.where address{font:400 clamp(1.5rem,3vw,2.1rem)/1.1 var(--head);font-style:normal;letter-spacing:.03em;text-transform:uppercase;margin-bottom:16px}
.where li{padding:11px 0;border-bottom:1px solid var(--ink)}
.where ul{border-top:3px solid var(--ink);margin-bottom:22px}

/* 07 request */
.req{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
@media (min-width:980px){.req{grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:56px;align-items:start}}
.form{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;background:var(--chalk);border:3px solid var(--ink);box-shadow:10px 10px 0 var(--ink);margin-right:10px;padding:clamp(18px,3vw,36px)}
@media (min-width:700px){.form{grid-template-columns:repeat(2,minmax(0,1fr))}.form .wide{grid-column:1/-1}}
.field{min-width:0}
.field label{display:block;margin-bottom:6px;font:800 .76rem/1.25 var(--body);letter-spacing:.12em;text-transform:uppercase}
.opt{font-weight:500;letter-spacing:.02em;text-transform:none;color:#3d3d3d}
.field input,.field select,.field textarea{display:block;width:100%;min-height:48px;padding:10px 12px;font:500 1rem/1.4 var(--body);color:var(--ink);background:#fff;border:2px solid var(--ink);border-radius:0}
.field textarea{min-height:110px;resize:vertical}
.fine{font-size:.92rem;line-height:1.5}
.form .btn{width:100%}
.req-side h3{font:400 clamp(1.9rem,3.2vw,2.6rem)/1 var(--head);text-transform:uppercase;margin-bottom:10px}
.req-side p+p{margin-top:12px}
.req-side .btn{margin-top:18px}

/* footer */
.foot{background:var(--ink);color:var(--chalk);padding:0 0 28px}
.foot::before{content:"";display:block;height:30px;margin-bottom:clamp(32px,5vw,56px);background:var(--ridge-orange) repeat-x left bottom/240px 30px}
.foot a{color:var(--chalk)}
.foot a:hover{color:var(--orange)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
@media (min-width:860px){.foot-grid{grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,3fr);gap:48px}}
.foot .brand-name{font-size:2rem}
.foot .brand-name small{display:block}
.foot h2{font:800 .74rem/1.2 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--orange);margin-bottom:12px}
.foot li a,.foot-contact a{display:inline-flex;align-items:center;min-height:44px}
.foot p{margin-top:14px}
.foot-copy{margin-top:36px;padding-top:18px;border-top:1px solid rgba(242,240,235,.3);font-size:.92rem}

/* accessibility statement */
.page-hero{padding:clamp(40px,7vw,88px) 0 clamp(24px,4vw,40px);border-bottom:3px solid var(--ink)}
.page-hero h1{margin-top:0;font-size:clamp(3rem,11vw,8rem)}
.page-hero .lede{margin-top:18px;max-width:60ch}
.statement{padding-block:clamp(36px,6vw,72px);max-width:860px}
.statement h2{font:400 clamp(1.9rem,4vw,2.8rem)/1 var(--head);letter-spacing:.02em;text-transform:uppercase;margin:44px 0 12px}
.statement h2:first-child{margin-top:0}
.statement p,.statement ul{margin-bottom:14px}
.statement ul{padding-left:1.2em;list-style:square}
.statement li{margin-bottom:6px;padding-left:4px}
.statement .reviewed{font-weight:700}
