/* Shared visual finish. Keep page layouts and image subject crops in their own stylesheets. */
:root{--page-width:1200px;--page-gutter:clamp(20px,4vw,40px);--surface:#f2f7fa;--border:#d8e3e9;--muted:#465969;--card-radius:12px;--section-space:clamp(32px,5vw,56px)}
body{line-height:1.6;-webkit-font-smoothing:antialiased}
body p{line-height:1.65}
body h1,body h2{letter-spacing:-.025em;text-wrap:balance}
body h3{line-height:1.3;text-wrap:balance}
body .eyebrow{font-size:12px;line-height:1.5;letter-spacing:.1em;font-weight:600}
body .header-inner{max-width:1280px;padding-inline:var(--page-gutter)}
body :is(.walk-content,.pilates-content,.shop-content){max-width:var(--page-width);width:100%;padding-inline:var(--page-gutter)}
body :is(.walk-intro,.pilates-intro,.shop-intro,.fitness-intro){padding-block:var(--section-space);background:linear-gradient(115deg,#edf6f8,#f6f9fb);border-bottom:1px solid var(--border)}
body .walk-intro{padding-inline:max(var(--page-gutter),calc((100% - var(--page-width))/2 + var(--page-gutter)))}
body :is(.photo-intro,.well-intro) .walk-content{padding-block:var(--section-space)}
body :is(.walk-intro,.pilates-intro,.shop-intro,.fitness-intro,.photo-intro,.well-intro) h1{font-size:clamp(36px,4.2vw,50px);line-height:1.12;margin-block:8px 18px}
body :is(.walk-intro,.pilates-intro,.shop-intro,.fitness-intro,.photo-intro,.well-intro) p:not(.eyebrow):not(.shop-intro-note):not(.fitness-intro-note){font-size:18px;line-height:1.7;max-width:740px}
body :is(.pilates-section,.shop-section,.well-section){padding-block:var(--section-space)}
body :is(.pilates-section,.shop-section-heading,.well-heading) h2{font-size:clamp(28px,3vw,34px);line-height:1.2}
body :is(.pilates-section,.legal-content) p + h2{margin-top:32px}
body :is(.shop-card,.fitness-card,.holiday-card,.retreat-card,.daily-card,.gear-card,.pilates-contact-card,.pilates-booking-card,.newsletter-signup,.home-shop-card){border-radius:var(--card-radius);border-color:var(--border);box-shadow:0 3px 14px #16365105}
body :is(.shop-card,.fitness-card,.holiday-card,.pilates-contact-card){padding:clamp(20px,2.5vw,28px)}
body :is(.shop-card,.fitness-card,.holiday-card,.retreat-card,.gear-card,.daily-card) h3{color:var(--navy);font:400 21px/1.3 Georgia,serif;letter-spacing:-.015em}
body :is(.shop-card,.fitness-card,.holiday-card) p{font-size:15px;line-height:1.7;color:var(--muted)}
body .button.button{min-height:48px;padding:12px 22px;border-radius:8px;font-size:15px;font-weight:600;line-height:1.4;gap:10px;white-space:normal;text-align:center;max-width:100%;transition:background-color .15s,border-color .15s}
body .button.button:not(.outline):not(.light){background:var(--blue);border-color:var(--blue);color:#fff}
body .button.button:not(.outline):not(.light):hover{background:#07457e;border-color:#07457e}
body .button.button.outline{background:#fff;border-color:var(--blue);color:var(--blue)}
body .button.button.light{background:#fff;border-color:#fff;color:var(--navy)}
body :is(.button.outline,.button.light):hover{background:#eaf3f9}
body :is(.text-button,.shop-retailer-link,.shop-context,.pilates-directions){font-size:14px;line-height:1.6;text-underline-offset:4px;min-height:44px;align-items:center}
body :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #0b79bc;outline-offset:4px}
body :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border-radius:8px;border-color:#bdcdd8}
body :is(.recipe-category img,.pilates-image img,.detail-heading img,.photo-detail-image img){border-radius:var(--card-radius)}
body :is(.walk-card,.recipe-card,.featured-card){border-radius:var(--card-radius);overflow:hidden;border-color:var(--border)}
body .pilates-image img{height:clamp(200px,25vw,320px)}
body .service-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
body .service-grid article{flex:0 0 calc((100% - 72px)/5);min-width:0;display:flex;flex-direction:column;border-radius:var(--card-radius);border-color:var(--border)}
body .service-image-link{display:block}
body .service-image-link:focus-visible{outline-offset:-4px}
body .service-copy{padding:18px 16px;flex:1;display:flex;flex-direction:column;align-items:flex-start}
body .service-copy>.text-button{margin-top:auto}
@media(max-width:800px){body .service-grid article{flex-basis:calc((100% - 28px)/3)}}
@media(max-width:480px){body .service-grid article{flex-basis:calc((100% - 14px)/2)}}
@media(max-width:360px){body .service-grid article{flex-basis:100%}}
body :is(.services,.local-pilates,.featured-products,.home-fitness,.newsletter){padding-inline:var(--page-gutter)}
body .services{padding-block:36px}
body .section-heading{margin-bottom:22px}
body .hero-copy h1{font-size:clamp(38px,4.2vw,57px);line-height:1.08}
body .hero-copy>p:not(.eyebrow){line-height:1.65}
body .about-copy h2{font-size:clamp(34px,3.2vw,44px)}
body .about{padding:24px var(--page-gutter) 28px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr) minmax(0,1.1fr);gap:24px;align-items:start}
body .about .founder{aspect-ratio:365/412;height:auto;min-height:0;background-size:374% auto;background-position:0 45.8%}
body .about-copy{padding:0;min-width:0}
body .about-copy h2{margin-bottom:16px}
body .about-copy p:not(.eyebrow){margin:0 0 12px;line-height:1.55}
body .about-copy p>.text-button{display:inline;min-height:0;font-size:inherit;line-height:inherit;vertical-align:baseline}
body .about-copy .about-bottom{margin-top:16px}
body .about .featured-video{justify-content:flex-start;gap:12px}
body .local-pilates-copy p a{color:#005fae;text-decoration:underline;text-underline-offset:4px}
body .class-feedback{max-width:1440px;margin:0 auto;padding:28px var(--page-gutter);border-top:1px solid var(--border)}
body .class-feedback h2{font-size:30px;margin:0 0 18px}
body .class-feedback figure{margin:0;max-width:820px;padding-left:20px;border-left:3px solid #0b66b2}
body .class-feedback figure+figure{margin-top:24px}
body .class-feedback blockquote{margin:0}
body .class-feedback blockquote p{font-size:18px;line-height:1.65;margin:0 0 12px}
body .class-feedback figcaption{font-size:14px;color:#526170}
@media(max-width:800px){body .about{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr)}}
@media(max-width:480px){body .about{grid-template-columns:minmax(0,1fr)}body .about .founder{width:100%;max-width:360px;justify-self:center}}
body .newsletter h2{font:400 28px/1.2 Georgia,serif;color:var(--navy)}
body footer{padding:40px var(--page-gutter);gap:28px;flex-wrap:wrap}
body .footer-links{flex-wrap:wrap;gap:8px 22px;font-size:14px;align-items:center}
body .footer-links :is(a,button){font-size:14px;line-height:1.5;min-height:44px;display:inline-flex;align-items:center}
body .legal-content{max-width:900px}
body .legal-content h2{font-size:28px}
@media(max-width:800px){body .hero-copy{height:auto;min-height:100%}body .hero-buttons{flex-wrap:wrap}body .service-grid{gap:14px}body .footer-links{gap:6px 18px}body .header-inner .brand-name{font-size:clamp(25px,5vw,34px)}body .header-inner .brand-name>span{font-size:20px}body .header-inner .tagline{font-size:11px;white-space:normal;max-width:270px}body .header-inner{gap:12px}}
@media(max-width:480px){body .hero-copy{width:100%;padding:28px 20px}body .hero{height:auto;min-height:440px}body .hero-copy h1{font-size:38px}body .hero-copy>p:not(.eyebrow){font-size:16px}body .button.button{padding:12px 18px}body .service-copy{padding:16px 14px}body .header-inner .tagline{max-width:220px}body .header-inner .brand-name>span{font-size:17px;margin-inline:3px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body .button.button{transition:none}}
@media print{body :is(.walk-intro,.pilates-intro,.shop-intro,.fitness-intro,.pilates-section,.shop-section,.well-section){padding-block:20px}body :is(.shop-card,.fitness-card,.holiday-card){box-shadow:none}}
/* Owner-supplied logo, displayed without recolouring or cropping. */
body .brand{white-space:normal;min-width:0;flex-shrink:1}
body .brand-logo{display:block;width:480px;max-width:100%;height:auto;object-fit:contain}
body footer .brand{background:#fff;padding:12px 16px;border-radius:8px}
body footer .brand-logo{width:340px}
@media(max-width:800px){body .header-inner .brand{max-width:calc(100% - 100px)}body .header-inner .brand-logo{width:380px}}
@media(max-width:480px){body .header-inner .brand-logo{width:260px}body footer .brand{width:100%;max-width:380px}}
@media(max-width:800px){body.walks-page .header-inner{flex-wrap:nowrap}body.walks-page .header-inner .back-home{display:none}body.walks-page .header-inner .brand{max-width:calc(100% - 112px)}}

/* Keep the local service heading and brand slogan readable together. */
body .hero-copy h1{font-size:clamp(36px,3.5vw,48px);max-width:580px}body .hero-copy>p.hero-slogan{font:italic 22px/1.4 Georgia,serif;color:var(--navy);margin:14px 0}body .hero{height:auto;min-height:470px}body .hero-copy{height:auto;min-height:470px}body .hero-buttons{flex-wrap:wrap}@media(max-width:480px){body .hero-copy>p.hero-slogan{font-size:21px;max-width:290px}body .hero-copy{min-height:520px}body #home.hero{height:auto;min-height:600px}}
