/* Shared components. Page CSS owns composition only. */
html{scroll-padding-top:calc(var(--header-height) + var(--space-6));scrollbar-gutter:stable}
body{background:var(--color-bg);color:var(--color-text)}
.skip{z-index:calc(var(--z-menu) + 1)}
.section,.nutrition-section{padding-block:var(--section-space)}
.section,.stats,.extras,.social-section,.trial,.contact,footer{padding-inline:var(--content-inset)}
.n-wrap{width:min(var(--container-width),calc(100% - 2 * var(--page-gutter)));margin-inline:auto}
.personal-page{max-width:calc(var(--container-width) + 2 * var(--page-gutter));padding:var(--section-space) var(--page-gutter);margin-inline:auto}
.section-head,.nutrition-heading{gap:var(--section-gap);margin-bottom:var(--section-gap)}
.space-copy{padding:var(--section-space) var(--space-8)}
.actions{gap:var(--space-6);margin-top:var(--space-8)}
h1{margin-bottom:var(--space-6)}
h2,h3,h4{margin-top:0}
.eyebrow{margin-bottom:var(--space-6)}
.programs,.cardio-grid,.equipment-group>ul,.personal-grid,.recipe-grid,.habit-grid,.price-grid{gap:var(--grid-gap)}
body :is(.programs article,.cardio-card,.equipment-card,.personal-card,.recipe,.price-card,.muscle-plan-card,.supplement-brand,.workout-panel,.social-card){
 background:var(--color-surface);border:var(--border);border-radius:var(--radius-card);
 transition:border-color var(--transition-ui),background-color var(--transition-ui),box-shadow var(--transition-ui);
}
body :is(.programs article,.price-card,.muscle-plan-card,.supplement-brand,.workout-panel){padding:var(--card-padding)}
body :is(.personal-card summary,.recipe summary,.cardio-card-copy){padding:var(--card-padding)}
body :is(.programs article,.cardio-card,.equipment-card,.personal-card,.recipe,.price-card,.social-card):is(:hover,:focus-within){border-color:var(--color-border-hover);box-shadow:var(--shadow-card);transform:none}
body :is(.personal-card,.recipe)[open],body .programs .featured{border-color:var(--color-accent-text)}
body .equipment-group li.equipment-card{padding:var(--card-padding);min-width:0}
.equipment-photo-link{margin:calc(-1 * var(--card-padding)) calc(-1 * var(--card-padding)) var(--space-4)}
.equipment-photo-link,.cardio-product-image{border-radius:var(--radius-card) var(--radius-card) 0 0;overflow:hidden}
body .button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:var(--control-height);padding:var(--space-3) var(--space-6);border:var(--border-width) solid transparent;border-radius:var(--radius-control);background:var(--color-accent);color:var(--color-on-accent);text-decoration:none;transition:background-color var(--transition-ui),border-color var(--transition-ui);transform:none}
body .button:hover{background:var(--color-accent-hover);color:var(--color-on-accent);transform:none}
body .button:is(.outline,.light,.white){background:transparent;border-color:var(--color-text);color:var(--color-text)}
body .button:is(.outline,.light,.white):hover{background:var(--color-text);color:var(--color-bg)}
body :is(input,select,textarea){min-height:var(--control-height);border:var(--border);border-radius:var(--radius-control);background:var(--color-raised);color:var(--color-text);padding:var(--space-3) var(--space-4);transition:border-color var(--transition-ui);max-width:100%}
body textarea{min-height:8rem;resize:vertical}
body :is(input,textarea)::placeholder{color:var(--color-muted);opacity:1}
body :is(input,select,textarea):hover{border-color:var(--color-border-hover)}
body :is(.text-link,.equipment-training,.personal-end a,.footer-main a,.footer-equipment a,.programs article>a){text-underline-offset:.25em;transition:color var(--transition-ui)}
body :is(.text-link,.equipment-training,.personal-end a,.footer-main a,.footer-equipment a,.programs article>a):hover{color:var(--color-accent-text)}
body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}
body :is(.eyebrow.red,.equipment-brand,.cardio-model,.supplement-program-label,.tag,.recipe-no,.day-heading>span,.supplement-brand>span,.personal-number){color:var(--color-accent-text)}
body :is(.booking-red,.nutrition-cta){background:var(--color-accent);color:var(--color-on-accent)}
.footer-main{gap:var(--section-gap)}
@media(max-width:600px){.space-copy{padding:var(--section-space) var(--page-gutter)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:0ms!important;animation-duration:0ms!important}}
