html{scroll-padding-top:90px}.hero h1{font-size:clamp(3rem,5vw,4.9rem)}.hero-photo{position:absolute;width:80%;height:78%;object-fit:contain;left:10%;top:1%;transform:rotate(18deg);border-radius:30px}.hero-visual{background:#d6ecfc}.hero-visual>p{color:var(--navy);font-size:1rem}.hero-proof{line-height:1.8}.editorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.editorial-card{border:1px solid var(--line);border-radius:22px;padding:26px;background:white;display:flex;flex-direction:column}.editorial-card:first-child{background:var(--navy);color:white}.editorial-card h3{font-size:1.35rem;line-height:1.25}.editorial-card p{font-size:.9rem}.editorial-card .read{margin-top:auto;color:var(--blue)}.editorial-card:first-child .read{color:#9bd9ff}.editorial-card time{font-size:.75rem;color:#64849d}.editorial-card:first-child time{color:#bfe3fd}.catalog-note{font-size:.85rem;color:#47677d}.methodology{margin-top:24px;padding:20px 24px;border:1px solid var(--line);background:#fff;border-radius:16px;font-size:.87rem}.methodology summary{font-weight:750;cursor:pointer}.methodology a,.source-link{color:#08699f;text-decoration:underline;text-underline-offset:3px}.library-tools{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;margin-bottom:20px}.library-tools label,.setup-fields label{font-size:.78rem;font-weight:750;display:flex;flex-direction:column;gap:7px}input[type=search],select,input[type=number]{min-width:0;width:100%;background:#f8fcff;border:1px solid #b5d4e9;border-radius:10px;padding:11px;color:var(--navy)}.string-grid{margin-bottom:22px}.string-card{display:flex;flex-direction:column}.string-meta{color:#47677d}.string-card .source-link{font-size:.75rem;display:inline-block;margin-top:12px}.product-card .availability{color:#47677d;font-weight:500}.card-actions{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:12px;font-size:.8rem}.card-actions button,.small-button{border:1px solid #b9d8ec;background:#edf7ff;border-radius:9px;padding:8px 12px;cursor:pointer;color:var(--navy)}.badge-exception{background:#fff0ce;color:#805810;padding:6px 10px;border-radius:8px;font-size:.75rem}.compare-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.compare-toolbar button{cursor:pointer}.compare-toolbar label{font-size:.85rem}.ab-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.setup-card{padding:28px;border:1px solid var(--line);border-radius:26px;background:#fff;min-width:0}.setup-card>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.setup-card h3{font-size:1.55rem;margin:0}.setup-letter{display:inline-grid;place-items:center;background:var(--blue);color:#fff;width:38px;height:38px;border-radius:12px;margin-right:10px}#setup-B .setup-letter{background:var(--navy)}.setup-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.setup-fields .wide{grid-column:1/-1}.string-pick{min-width:0;border-top:1px solid var(--line);padding-top:18px}.string-pick p{font-size:.76rem;color:#47677d;min-height:34px;margin:8px 0}.swatches{flex-wrap:wrap;min-height:32px}.swatch{width:28px;height:28px}.swatch:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #228ac9;outline-offset:4px}.setup-preview{margin:24px 0;background:#eff8ff;border-radius:18px;padding:16px;display:grid;grid-template-columns:1.2fr 1fr;gap:16px;align-items:center}.photo-stage{height:300px;overflow:hidden;display:grid;place-items:center;perspective:700px;touch-action:pan-y;cursor:grab}.photo-stage img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transform:rotateY(var(--tilt,0deg));transition:transform .06s}.preview-caption{font-size:.7rem;color:#47677d;margin:8px 0}.colour-sample{aspect-ratio:1;border:1px solid #a8c9df;border-radius:50%;background-color:#fff;background-image:repeating-linear-gradient(90deg,transparent 0 10px,var(--main) 10px 12px),repeating-linear-gradient(0deg,transparent 0 10px,var(--cross) 10px 12px);box-shadow:inset 0 0 0 7px #e1edf6;max-width:150px;margin:auto}.preview-side p{font-size:.74rem;text-align:center;overflow-wrap:anywhere}.tension-box{background:#eaf6ff;border-radius:16px;padding:18px;margin-top:20px}.tension-box h4{margin:0 0 10px;font-size:.8rem;letter-spacing:.07em}.tension-inputs{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tension-inputs label{display:block;font-size:.8rem}.tension-inputs input{font-size:1.5rem;font-weight:800;margin-top:6px}.tension-box p,.setup-summary{font-size:.84rem}.tension-box button{margin-top:6px}.caution{font-size:.78rem;color:#785d1f;background:#fff7e4;padding:12px;border-radius:10px}.comparison-panel{background:var(--navy);color:white;border-radius:26px;padding:34px;margin-top:22px}.comparison-panel .eyebrow{color:#88cffe}.comparison-panel h3{font-size:1.8rem;margin:0 0 14px}.comparison-panel table{border-collapse:collapse;width:100%;font-size:.87rem}.comparison-panel th,.comparison-panel td{text-align:left;vertical-align:top;padding:15px 12px;border-bottom:1px solid #36566e}.comparison-panel th:first-child{width:110px}.comparison-panel p{color:#d4e6f3;font-size:.9rem}.comparison-panel .table-scroll{overflow-x:auto}.empty{padding:30px;grid-column:1/-1}.photo-stage:focus-visible{outline:3px solid #228ac9}.small-count{opacity:.7;font-weight:500}#action-status{font-size:.8rem;color:#38627d}section{min-width:0}@media(min-width:761px) and (max-width:1280px){.section:not(.string-section){margin-left:24px;margin-right:24px}.hero{margin-left:24px;margin-right:24px}}@media(max-width:900px){.editorial-grid{grid-template-columns:repeat(2,1fr)}.library-tools{grid-template-columns:1fr 1fr}.setup-card{padding:20px}.setup-fields{grid-template-columns:1fr}.setup-fields .wide{grid-column:auto}.setup-preview{grid-template-columns:1fr}.photo-stage{height:260px}.preview-side{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:12px}.colour-sample{width:90px}}@media(max-width:680px){.ab-grid,.editorial-grid{grid-template-columns:1fr}.setup-fields{grid-template-columns:1fr 1fr}.setup-fields .wide{grid-column:1/-1}.setup-preview{grid-template-columns:1.2fr 1fr}.preview-side{display:block}.comparison-panel{padding:22px 16px}.comparison-panel th,.comparison-panel td{padding:12px 6px}.hero-visual{min-height:440px}}@media(max-width:420px){.setup-fields,.library-tools{grid-template-columns:1fr}.setup-fields .wide{grid-column:auto}.hero h1{font-size:3rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
[hidden]{display:none!important}
.domain-signature{display:inline-block;font-size:1rem;color:white;font-weight:700;letter-spacing:.02em;margin-bottom:5px}

/* Tennis Match Science — a clear, court-inspired equipment journal. */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.language-picker{margin-left:16px}.language-picker select{width:auto;max-width:138px;padding:8px;font-size:.8rem;background:#fff}
.site-header{gap:12px}.site-header nav{margin-left:auto}
.review-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}.review-form,.playtest-card{padding:26px;border:1px solid var(--line);border-radius:12px;background:white;min-width:0}
.reviews-section{border-top:1px solid var(--line)}.local-notice{padding:16px 20px;background:#eaf6ff;border-left:3px solid var(--blue);font-size:.87rem;margin-bottom:28px}
.review-form h3{margin-top:0}.review-form fieldset{border:1px solid var(--line);border-radius:8px;padding:16px;margin:24px 0}.review-form legend{font-size:.8rem;padding:0 8px}
.review-comment{display:grid;gap:8px;font-size:.85rem;font-weight:700}.review-comment textarea{width:100%;font:inherit;font-weight:400;resize:vertical;border:1px solid #b5d4e9;border-radius:8px;padding:12px;color:var(--navy);background:#f8fcff}.review-form button[type=submit]{border:0;cursor:pointer;margin-top:18px}
#review-status{font-size:.85rem;color:var(--blue)}.playtest-card{margin-bottom:18px}.playtest-card header{display:flex;justify-content:space-between;gap:12px}.playtest-card time{font-size:.75rem;color:var(--muted)}.playtest-card h3{margin-top:0}.playtest-card p{font-size:.85rem}.review-notes{white-space:pre-wrap;overflow-wrap:anywhere}.review-ratings{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.review-ratings div{background:var(--sky);padding:10px 7px;border-radius:6px}.review-ratings dt{font-size:.7rem}.review-ratings dd{margin:3px 0 0;font-weight:700}
@media(min-width:761px) and (max-width:1280px){.site-header{height:auto;min-height:78px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.site-header nav{order:3;width:100%;justify-content:center}.language-picker{margin-left:auto}}
@media(max-width:760px){.site-header .menu-toggle{margin-left:auto}.language-picker{margin-left:0}.language-picker select{width:67px}.review-layout{grid-template-columns:1fr}.review-form,.playtest-card{padding:20px}.review-ratings{grid-template-columns:1fr 1fr}}
:root{--navy:#12334c;--blue:#1676bd;--sky:#edf7ff;--line:#d3e4f0;--muted:#526e82;--shadow:0 12px 40px rgba(24,74,109,.06)}
body{background:#fbfdff}
.brand{gap:12px;letter-spacing:0;flex-shrink:0}
.tms-mark{position:relative;display:grid;place-items:center;width:57px;height:44px;border:1px solid #1676bd;background:#edf7ff;color:#12334c!important;border-radius:7px;font-size:19px;font-weight:900;letter-spacing:-1px;line-height:1}
.mark-dot{position:absolute;width:6px;height:6px;background:#1676bd;border-radius:50%;right:5px;top:5px}
.brand-lockup{display:flex;flex-direction:column;gap:4px;color:var(--navy)!important}
.brand-lockup strong{font-size:15px;font-weight:750;letter-spacing:-.3px;line-height:1.2}
.brand-lockup small{font-size:8px;font-weight:600;letter-spacing:1.5px;line-height:1.2;color:var(--muted)}
.site-header nav{gap:23px;font-size:.85rem}
.nav-cta,.button{border-radius:8px}
.hero{border-radius:16px;min-height:570px;box-shadow:none;background:#f4faff}
.hero-copy{padding:68px 48px}
.hero h1{font-size:clamp(2.8rem,4.7vw,4.5rem);line-height:1.04;letter-spacing:-.055em}
.hero-text{font-size:1rem;line-height:1.8}
.eyebrow,.visual-label,.science-path>div>span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;letter-spacing:.12em;font-weight:650}
.hero-visual{border-left:1px solid var(--line);background-color:#e8f4fc;background-image:linear-gradient(#c9dfed80 1px,transparent 1px),linear-gradient(90deg,#c9dfed80 1px,transparent 1px);background-size:32px 32px}
.hero-photo{mix-blend-mode:multiply;top:8%;height:70%;transform:rotate(15deg);border-radius:0}
.court-lines{inset:80px 65px 100px;border-color:#9ac4df;transform:none;opacity:.45;border-radius:140px}
.court-lines:before,.court-lines:after{background:#9ac4df}
.visual-label{position:absolute;top:24px;left:28px;color:#3d647e}
.hero-visual>p{bottom:18px;left:28px;font-size:1.05rem;font-weight:700}
.hero-visual>p span{font-size:.8rem;font-weight:450;color:#526e82}
.science-path{max-width:1240px;margin:20px auto 0;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:12px;background:white}
.science-path>div{padding:24px 30px}
.science-path>div+div{border-left:1px solid var(--line)}
.science-path>div>span{color:var(--blue);display:block;margin-bottom:10px}
.science-path strong{font-size:1rem;color:var(--navy)}
.science-path p{font-size:.82rem;color:var(--muted);margin:6px 0 0}
.section-head h2{font-size:clamp(2rem,3.5vw,3rem);line-height:1.08}
.product-card,.string-card,.editorial-card,.setup-card,.comparison-panel{border-radius:12px}
.product-image,.string-card .string-image,.setup-preview,.tension-box{border-radius:8px}
.specs span,.tension-inputs input{font-variant-numeric:tabular-nums}
.filter{border-radius:7px}.filter.active{background:var(--blue);border-color:var(--blue)}
.setup-card>header{padding-bottom:18px;border-bottom:1px solid var(--line)}
.setup-letter{border-radius:7px}.comparison-panel{border-top:4px solid #74c4f0}
footer{grid-template-columns:1.2fr 1.8fr 1fr}
footer .brand-lockup{color:#fff!important}footer .brand-lockup small{color:#b9d4e6}
@media(min-width:761px) and (max-width:1280px){.science-path{margin-left:24px;margin-right:24px}}
@media(max-width:1000px){.site-header nav{gap:14px}.brand-lockup strong{font-size:13px}.hero-copy{padding:54px 30px}footer{grid-template-columns:1fr}}
@media(max-width:760px){.hero-copy{padding:42px 25px}.hero-visual{border-left:0;border-top:1px solid var(--line)}.science-path{margin:16px 12px 0}.science-path>div{padding:20px 16px}.science-path strong{font-size:.9rem}.science-path p{font-size:.76rem}.brand-lockup strong{font-size:13px}.brand-lockup small{font-size:7px;letter-spacing:1px}.tms-mark{width:46px;height:38px;font-size:17px}}
@media(max-width:520px){.science-path{grid-template-columns:1fr}.science-path>div+div{border-left:0;border-top:1px solid var(--line)}.science-path>div{padding:18px 22px}.science-path>div>span{margin-bottom:6px}.hero h1{font-size:2.8rem}.site-header{padding-left:16px;padding-right:16px}.brand{gap:8px}}
@media(max-width:380px){.site-header{gap:8px;padding-left:10px;padding-right:10px}.site-header .brand{gap:6px}.site-header .tms-mark{width:34px;height:34px;font-size:14px}.site-header .brand-lockup strong{font-size:12px}.site-header .brand-lockup small{font-size:6px;letter-spacing:.8px}.language-picker select{width:60px;padding:8px 3px}.menu-toggle{padding:8px}}
.spam-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.publish-consent{display:flex;align-items:start;gap:10px;margin-top:18px;font-size:.82rem}.publish-consent input{margin-top:5px}.review-author{font-weight:800;color:var(--blue)}#review-list{margin-top:18px}button:disabled{opacity:.55;cursor:not-allowed!important}
.photo-stage{border:0;background:transparent;width:100%;padding:0;cursor:zoom-in}.photo-stage img{transform:none!important}.viewer-dialog{width:min(1100px,96vw);max-width:96vw;height:min(850px,94dvh);max-height:94dvh;padding:0;border:1px solid #b6d4e8;border-radius:18px;color:var(--navy);background:#eef6fc}.viewer-dialog::backdrop{background:#082337ba;backdrop-filter:blur(5px)}.viewer-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px;background:white}.viewer-dialog h3{margin:0;font-size:1rem}.viewer-dialog .viewer-canvas{height:calc(100% - 205px);min-height:180px;position:relative;touch-action:none}.viewer-canvas canvas{display:block;width:100%;height:100%;outline:none}.viewer-tools{display:flex;justify-content:center;gap:8px;padding:8px;flex-wrap:wrap}.viewer-legend{display:flex;gap:20px;justify-content:center;font-size:.8rem;margin:0 16px;flex-wrap:wrap}.viewer-legend i{display:inline-block;width:13px;height:13px;border-radius:50%;border:1px solid #64748b;vertical-align:middle;margin-right:5px}.viewer-help{text-align:center;font-size:.75rem;margin:6px 20px;color:#48677e}.viewer-note{font-size:.7rem;text-align:center;margin:6px 22px}.viewer-photo-link{font-size:.78rem;text-decoration:underline}.viewer-failure{padding:30px;text-align:center}.viewer-close{font-size:1.2rem;padding:6px 14px}.viewer-dialog-open{overflow:hidden}@media(max-width:600px){.viewer-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0}.viewer-dialog header{padding:12px}.viewer-dialog .viewer-canvas{height:calc(100% - 240px)}.viewer-legend{gap:8px}}
.site-header nav a[aria-current=page]{color:var(--blue);box-shadow:0 2px var(--blue);padding-bottom:6px}.section-head h1{font-size:clamp(2rem,3.5vw,3rem);line-height:1.08;letter-spacing:-.04em;margin:0;color:var(--navy)}main>.section{padding-top:55px}.news-masthead{display:flex;justify-content:space-between;gap:30px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:38px;margin-bottom:28px}.news-masthead h1{font-size:clamp(2.5rem,5.5vw,5.2rem);line-height:1.04;letter-spacing:-.05em;margin:0}.news-masthead h1 em{font-style:normal;color:var(--blue)}.news-masthead p{color:var(--muted)}.edition-stamp{display:grid;justify-items:center;min-width:170px;border:1px solid var(--line);padding:22px;border-radius:10px;background:#edf7ff}.edition-stamp strong{font-size:4rem;line-height:1.1}.edition-stamp span{font:11px ui-monospace,monospace}.edition-stamp small{color:var(--muted);margin-top:10px}.news-filter-row{margin-bottom:18px}#news-grid .editorial-card:first-child{grid-column:span 2}#news-grid .editorial-card:first-child h3{font-size:1.9rem}.live-news,.calendar-section{margin-top:70px;padding-top:30px;border-top:1px solid var(--line)}#live-headlines .editorial-card:first-child{background:white;color:var(--navy)}#live-headlines .editorial-card:first-child .read{color:var(--blue)}#live-headlines .editorial-card:first-child time{color:var(--muted)}#live-headlines .editorial-card h3{font-size:1.05rem}.calendar-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px}.calendar-toolbar h3{min-width:180px;text-align:center;margin:0}.calendar-toolbar [data-today]{margin-left:auto}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{text-align:center;font-size:.8rem;color:var(--muted);margin-bottom:10px}.calendar-grid{border-top:1px solid var(--line);border-left:1px solid var(--line)}.calendar-day,.calendar-empty{min-height:95px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);position:relative;background:white}.calendar-empty{background:#f0f5f8}.calendar-day>span{display:block;padding:12px}.calendar-day button{width:100%;height:100%;min-height:95px;border:0;background:#e5f3ff;color:var(--navy);cursor:pointer;text-align:left;padding:12px;display:flex;flex-direction:column;gap:6px}.calendar-day button span{font-size:.7rem}.calendar-day button i{width:6px;height:6px;background:var(--blue);border-radius:50%}.calendar-tooltip{display:none;position:absolute;bottom:calc(100% + 6px);left:0;background:var(--navy);color:white;border-radius:8px;box-shadow:var(--shadow);padding:16px;width:270px;z-index:10;pointer-events:none}.calendar-day:nth-child(7n) .calendar-tooltip,.calendar-day:nth-child(7n - 1) .calendar-tooltip{left:auto;right:0}.calendar-tooltip strong,.calendar-tooltip span{display:block}.calendar-tooltip strong{font-size:.82rem;margin-top:8px}.calendar-tooltip span{font-size:.7rem;color:#c8dfef;margin-top:4px}.event-day:hover .calendar-tooltip,.event-day:focus-within .calendar-tooltip{display:block}.calendar-note{font-size:.8rem;color:var(--muted)}.event-dialog{max-width:650px;width:94vw;border:1px solid var(--line);border-radius:16px;padding:24px;color:var(--navy)}.event-dialog::backdrop{background:#082337aa}.event-dialog header{display:flex;justify-content:space-between;gap:16px;align-items:center}.event-dialog h2{font-size:1.2rem}.event-dialog article{padding:20px 0;border-top:1px solid var(--line)}.event-dialog article p{font-size:.9rem}.organisation-links{grid-column:1/-1;border-top:1px solid #34566d;padding-top:20px}.organisation-links nav{display:flex;gap:20px;flex-wrap:wrap}.organisation-links a{text-decoration:underline;text-underline-offset:4px}.organisation-links p{font-size:.72rem;max-width:800px}@media(max-width:680px){#news-grid .editorial-card:first-child{grid-column:auto}.edition-stamp{display:none}.calendar-day,.calendar-empty,.calendar-day button{min-height:70px}.calendar-day button{padding:7px}.calendar-toolbar{gap:6px;flex-wrap:wrap}.calendar-toolbar h3{min-width:135px;font-size:1rem}.calendar-tooltip{width:210px}.calendar-day:nth-child(7n - 2) .calendar-tooltip{left:auto;right:0}}

.organisation-links nav a{display:flex;align-items:center;gap:14px;color:var(--navy);background:#fff;padding:12px 18px;border-radius:10px;text-decoration:none;min-width:180px;max-width:330px}.organisation-links nav img{width:100px;height:56px;object-fit:contain;flex-shrink:0}.organisation-links nav span{font-size:.8rem;font-weight:650}.organisation-links h3{font-size:.9rem;color:#fff;font-weight:600}.organisation-links nav a:hover{outline:2px solid #7cc6f4}

/* Source-linked model colours, usable on touch screens. */
.colour-links{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.colour-links a{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #d7e5ef;border-radius:18px;background:#f5faff;color:#244c64;font-size:13px;text-decoration:none;min-height:36px}
.colour-links i{width:15px;height:15px;border-radius:50%;border:1px solid #8393a7;flex:none}
.colour-links a:hover,.colour-links a:focus-visible{border-color:#258ec2;background:#e5f4fc}
.colour-details{font-size:12px;line-height:1.6;color:#446379}
.photo-stage:disabled{cursor:default;opacity:.65}

.setup-recommendations{margin:22px 0;padding:18px 0;border-top:1px solid #d5e7f3;border-bottom:1px solid #d5e7f3}
.setup-recommendations h4{font-size:20px;margin:0 0 6px}.recommendation-frame{color:#227aa9;font-weight:600;margin:0 0 8px}
.recommendation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.recommendation-card{min-width:0;background:#f4faff;border:1px solid #d3e7f5;border-radius:14px;padding:15px;display:flex;flex-direction:column;gap:10px}
.recommendation-card h5{font-size:16px;margin:0;color:#164d71}.recommendation-card p{font-size:13px;line-height:1.55;margin:0;overflow-wrap:anywhere}
.recommendation-strings{display:grid;gap:8px}.recommendation-strings span{color:#58758b;font-size:12px}
.recommendation-card .recommendation-tension{font-size:23px;font-weight:700;color:#166b9a}.recommendation-tension span{font-size:12px;font-weight:400}
.recommendation-card details{font-size:12px;line-height:1.5}.recommendation-card details p{margin-top:8px}.recommendation-card summary{cursor:pointer;color:#246482}
.recommendation-card button{margin-top:auto;min-height:42px}.recommendation-card button:focus-visible{outline:3px solid #238bbd;outline-offset:3px}
@media(max-width:600px){.recommendation-grid{grid-template-columns:1fr}}

.recommendation-group{margin-top:10px;border:1px solid #d3e7f5;border-radius:12px;padding:12px;background:#fff}
.recommendation-group>summary{cursor:pointer;font-size:15px;font-weight:650;color:#1c608a;min-height:32px;line-height:32px}
.recommendation-count{float:right;background:#e4f3fd;border-radius:20px;padding:0 11px;margin-left:8px;font-size:12px}

.string-inventory{border:1px solid #cbe3f3;background:#f4faff;border-radius:16px;padding:18px;margin:0 0 22px}.string-inventory summary{cursor:pointer;font-weight:700;font-size:19px}.inventory-toggle{display:flex;align-items:center;gap:8px;margin:14px 0}.inventory-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;max-height:360px;overflow:auto;margin:14px 0}.inventory-list fieldset{border:1px solid #d4e6f2;border-radius:10px;padding:10px}.inventory-list label{display:block;font-size:13px;padding:7px 0}.inventory-list label[hidden]{display:none}.inventory-list input{margin-right:6px}.inventory-shortfall{font-size:13px;line-height:1.5;color:#66542d}

/* Mobile usability pass, 24 September 2026. No browser/device QA claimed. */
.mobile-setup-nav{display:none}
.setup-fields>*{min-width:0}
.viewer-dialog[open]{display:flex;flex-direction:column;overflow-y:auto}
.viewer-dialog header{flex:none;position:sticky;top:0;z-index:2}
.viewer-dialog header>div{min-width:0;overflow-wrap:anywhere}
.viewer-dialog .viewer-canvas{height:auto;flex:1 0 220px;min-height:220px}
.viewer-dialog .viewer-legend,.viewer-dialog .viewer-tools,.viewer-dialog .viewer-help,.viewer-dialog .viewer-note{flex-shrink:0}
.viewer-close{flex-shrink:0;min-width:44px;min-height:44px}
@media(max-width:760px){
 :root{--muted:#496a80}
 html{scroll-padding-top:84px}
 .section,main>.section{padding-top:30px;padding-bottom:42px}
 .site-header{gap:8px}.site-header nav{top:100%;max-height:calc(100dvh - 80px);overflow-y:auto}
 .site-header nav a{min-height:44px;display:flex;align-items:center}
 .menu-toggle,.language-picker select{min-height:44px}
 .language-picker select{font-size:16px}
 input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;max-width:100%}
 .ab-grid{grid-template-columns:minmax(0,1fr)}
 .setup-card{padding:16px;scroll-margin-top:84px}
 .setup-card>header{gap:10px;flex-wrap:wrap}
 .setup-fields{grid-template-columns:minmax(0,1fr)}
 .string-pick p,.string-meta,.preview-caption,.preview-side p,.colour-details{font-size:14px;line-height:1.55}
 .swatches{gap:10px;padding:4px;min-height:48px}
 .swatch{width:44px;height:44px;min-width:44px;flex-shrink:0}
 .small-button,.card-actions button,.filter,.colour-links a{min-height:44px}
 .small-button{font-size:14px}
 .mobile-setup-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
 .mobile-setup-nav a{display:flex;align-items:center;justify-content:center;min-height:44px;flex:1;padding:8px 12px;background:#e4f3fd;border:1px solid #bddcef;border-radius:9px;font-weight:650}
 .recommendation-grid{grid-template-columns:minmax(0,1fr)}
 .recommendation-card p,.recommendation-card details,.recommendation-strings span{font-size:14px;line-height:1.55}
 .recommendation-card h5{font-size:17px}.recommendation-card button{min-height:46px}
 .recommendation-group>summary{min-height:44px;line-height:1.5;padding:8px 0}
 .recommendation-group{padding:10px}.recommendation-card{padding:12px}
 .inventory-list{grid-template-columns:minmax(0,1fr);max-height:50dvh;overscroll-behavior:contain}
 .inventory-list fieldset{min-width:0}.inventory-list label{font-size:15px;min-height:44px;display:flex;align-items:center;gap:8px}
 .inventory-list input,.inventory-toggle input{width:22px;height:22px;flex-shrink:0}
 .inventory-shortfall{font-size:14px}.string-inventory{padding:14px}
 .comparison-panel{padding:18px;scroll-margin-top:84px;min-width:0}
 .table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
 .comparison-panel table{min-width:540px}.comparison-panel th,.comparison-panel td{font-size:14px}
 .review-form{min-width:0;padding:16px}.review-form fieldset{min-width:0}
 .viewer-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;margin:0;padding-bottom:env(safe-area-inset-bottom,0px)}
 .viewer-dialog .viewer-canvas{height:auto;min-height:220px;flex-basis:220px}
 .viewer-help,.viewer-note,.viewer-legend{font-size:13px;line-height:1.45}
 .viewer-tools button{min-width:44px;min-height:44px}
 .event-dialog{max-height:90dvh;overflow-y:auto;padding:16px}
 .calendar-day button span{overflow-wrap:anywhere;font-size:11px}
 .calendar-day button{padding:5px}.calendar-toolbar button{min-width:44px;min-height:44px}
 .organisation-links nav a{min-width:0;width:100%}
}
@media(max-width:380px){
 .site-header{padding:0 10px;gap:6px}.language-picker select{width:65px;padding:6px 2px}
 .site-header .brand-lockup small{letter-spacing:.3px}.menu-toggle{padding:8px}
 .configurator-section{padding-left:8px;padding-right:8px}.setup-card{padding:12px}
 .setup-preview{grid-template-columns:minmax(0,1fr);padding:12px}.photo-stage{height:250px}
 .preview-side .colour-sample{width:90px}.tension-inputs{gap:10px}
 .comparison-panel{padding:14px}
}
@media(hover:none){.calendar-tooltip{display:none!important}.product-card:hover,.news-card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

.journal-tension-note{font-size:14px;line-height:1.6;color:#47677d;margin:16px 0}

.racquet-page-title{font-size:clamp(2rem,4vw,3rem);margin:0 0 20px;color:var(--navy)}
.sport-categories{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:30px}.sport-categories a{min-height:48px;padding:12px 24px;border:1px solid #b9d8ec;border-radius:12px;background:#fff;color:#174d70;font-weight:700}.sport-categories a[aria-current=true]{background:var(--blue);color:#fff;border-color:var(--blue)}
.sport-panel[hidden]{display:none}.sport-panel{scroll-margin-top:90px}.coming-soon-panel{padding:80px 20px;text-align:center;border:1px solid #c9e2f3;background:linear-gradient(135deg,#fff,#eaf6ff);border-radius:18px}.coming-soon-panel h2{font-size:clamp(2rem,6vw,4rem);color:var(--navy);margin:10px 0}

.viewer-background-control{display:flex;align-items:center;justify-content:center;gap:10px;flex:1 0 100%;font-size:14px;color:#244a64}
.viewer-background-control select{width:auto;max-width:220px;min-height:44px;font-size:16px;background:#fff}

/* Keep background choices above the canvas, visible on narrow screens. */
.viewer-background-bar{display:flex;flex:0 0 auto;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 0 12px}.viewer-background-bar>span{font-weight:700;margin-right:4px}.viewer-background-bar button{min-height:44px;border:2px solid transparent}.viewer-background-bar button[data-background="dark"]{background:#252a30;color:#fff}.viewer-background-bar button[data-background="light"]{background:#f2f3f5;color:#15324a}.viewer-background-bar button[aria-pressed="true"]{border-color:#087ac4;box-shadow:0 0 0 2px #9dd8ff}.viewer-background-bar button:focus-visible{outline:3px solid #087ac4;outline-offset:3px}.viewer-canvas{background:#252a30}

/* Pickleball catalogue */
#pickleball{min-width:0}#pickleball[hidden]{display:none}
.paddle-search{display:grid;gap:8px;max-width:560px;margin:28px 0 18px;font-weight:700}
.paddle-search input{width:100%;box-sizing:border-box;min-height:48px;border:1px solid #b6d8ef;border-radius:12px;padding:12px 16px;background:#fff;color:#12364d;font:inherit}
.paddle-filters{display:flex;flex-wrap:wrap;gap:8px}.paddle-filters button{min-height:46px;padding:10px 16px;border:1px solid #b6d8ef;border-radius:10px;background:#fff;color:#12364d;font:inherit;cursor:pointer}.paddle-filters button[aria-pressed=true]{background:#147abd;color:white;border-color:#147abd}.paddle-filters span{opacity:.7}
.paddle-brand{margin-top:36px}.paddle-brand>h3{font-size:26px;border-bottom:1px solid #cce3f3;padding-bottom:14px}.paddle-brand>h3 span{font-size:16px;color:#52748b;margin-left:8px}.paddle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.paddle-card{min-width:0;border:1px solid #cee3f2;background:white;border-radius:18px;overflow:hidden;display:flex;flex-direction:column}.paddle-photo{display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;background:white;padding:20px;color:#52748b}.paddle-photo img{width:100%;height:100%;object-fit:contain;min-height:0}.paddle-card-body{padding:20px;display:flex;flex-direction:column;flex:1}.paddle-card h4{font-size:22px;line-height:1.3;margin:8px 0 16px;overflow-wrap:anywhere}.paddle-card .eyebrow{margin:0}.paddle-card dl{margin:0 0 22px;flex:1}.paddle-card dl>div{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid #eef5fa;font-size:14px}.paddle-card dt{color:#52748b}.paddle-card dd{margin:0;text-align:right;max-width:60%;overflow-wrap:anywhere}.paddle-shop{display:flex;align-items:center;justify-content:center;min-height:46px;padding:8px 12px;border-radius:10px;background:#e9f5ff;color:#125d91;font-weight:700;text-align:center;text-decoration:none}.paddle-source{padding:12px 0 0;min-height:32px;font-size:14px;color:#356888}.paddle-empty{padding:36px 0}.paddle-filters button:focus-visible,.paddle-search input:focus-visible,.paddle-card a:focus-visible{outline:3px solid #118acb;outline-offset:3px}
@media(max-width:1000px){.paddle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.paddle-grid{grid-template-columns:minmax(0,1fr)}.paddle-filters button{flex-grow:1}.paddle-card-body{padding:18px}.paddle-photo{aspect-ratio:1.1/1}.paddle-brand>h3{font-size:24px}}
