/* Shared spacing rules for the public website. Page scopes keep legacy selectors
   from overriding the responsive rhythm or affecting private Studio pages. */
body.site-home, body.site-about, body.site-privacy { --section-space: clamp(64px, 6.2vw, 92px); }
body.site-home .section, body.site-about .section { padding-block:var(--section-space); }
body.site-home .hero { padding-top:154px; min-height:0; }
body.site-home .hero-grid { grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); gap:42px; }
body.site-home .hero .hero-copy h1 { font-size:clamp(48px,5.3vw,76px); line-height:1.12!important; letter-spacing:-.04em!important; max-width:none; margin:22px 0 24px; padding:0 .06em .05em 0; }
body.site-home .hero h1 em { display:block; line-height:1.14; letter-spacing:-.025em; margin-top:.08em; }
body.site-home .hero h1 em::after { content:none; }
body.site-home .hero-lead { font-size:18px; line-height:1.7; }
body.site-home .hero-actions { flex-wrap:wrap; gap:18px 24px; margin-top:28px; }
body.site-home .hero-actions .text-link { white-space:nowrap; }
body.site-home .trust-row { margin-top:56px; }
body.site-home .section-title-row { gap:48px; margin-bottom:40px; align-items:start; }
body.site-home .split-heading { gap:32px; }
body.site-home .intro.section { padding-bottom:36px; }
body.site-home .services.section { padding-top:0; }
body.site-home .service-card { padding:32px 26px; min-height:0; }
body.site-home .service-card h3 { margin-top:32px; }
body.site-home .service-card a { padding-top:18px; }
body.site-home .statement-grid, body.site-home .about-grid, body.site-home .contact-grid, body.site-home .why-eastward { gap:56px; }
body.site-home .care-section { padding-top:16px; }
body.site-home .investment-grid .price-card, body.site-home .care-grid .price-card { min-height:0; padding:32px; }
body.site-home .price-card.featured { transform:none; }
body.site-home .price-card h3 { margin-bottom:20px; }
body.site-home .price-card .popular { position:static!important; margin-bottom:18px; align-self:flex-start; }
body.site-home .solution-card { padding:32px; }
body.site-home .solution-card h3 { line-height:1.2; }
body.site-home .allset-intro { margin-bottom:24px; }
body.site-home .allset-how { margin-top:28px; }
body.site-home .allset-enquiry { margin-block:12px; }
body.site-home .contact .allset-feature-options input { min-height:18px; }
body.site-home .form-row > *, body.site-home .steps > *, body.site-about .capabilities > * { min-width:0; }
body.site-home .email-link, body.site-privacy a { overflow-wrap:anywhere; }
body.site-home .section h2, body.site-about main h2 { line-height:1.12!important; }
body.site-home .section-title-row > p { margin-top:0; }
body.site-about .about-hero h1 { line-height:1.08!important; }
body.site-about .manifesto-grid, body.site-about .section-head, body.site-about .belief-grid, body.site-about .difference-grid, body.site-about .local-grid { gap:56px; }
body.site-about .capabilities article { min-height:0; }
body.site-about .capabilities h3 { margin-top:36px; }
body.site-about .principles { margin-top:56px; }
body.site-about .cta { padding-block:var(--section-space); }
body.site-privacy .wrap { padding-block:48px 64px; }
body.site-privacy h1 { margin-top:44px; line-height:1.12; }
body.site-privacy .note { line-height:1.7; }
@media(max-width:1050px) and (min-width:901px) {
  body.site-home .nav { gap:18px; font-size:13px; }
  body.site-home .hero-grid { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:24px; }
  body.site-home .browser-card { width:92%; }
}
@media(max-width:900px) {
  body.site-home .hero-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
  body.site-home .hero .hero-copy h1 { font-size:clamp(44px,7vw,64px); }
  body.site-home .section-title-row, body.site-home .split-heading, body.site-home .statement-grid, body.site-home .about-grid, body.site-home .contact-grid, body.site-home .why-eastward { gap:28px; }
  body.site-home .hero-visual { max-width:560px; width:100%; margin-inline:auto; }
  body.site-home .investment-grid .price-card, body.site-home .care-grid .price-card { padding:28px; }
  body.site-about .manifesto-grid, body.site-about .section-head, body.site-about .belief-grid, body.site-about .difference-grid, body.site-about .local-grid { gap:30px; }
}
@media(max-width:600px) {
  body.site-home, body.site-about, body.site-privacy { --section-space:60px; }
  body.site-home .hero { padding-top:118px; }
  body.site-home .hero .hero-copy h1 { font-size:clamp(38px,11.5vw,52px); line-height:1.14!important; letter-spacing:-.035em!important; }
  body.site-home .hero-lead { font-size:16px; }
  body.site-home .hero-allset { margin-top:18px; }
  body.site-home .hero-visual { height:270px; margin-top:8px; }
  body.site-home .hero-actions { gap:18px; }
  body.site-home .trust-row { margin-top:32px; gap:12px; }
  body.site-home .section-title-row { margin-bottom:28px; }
  body.site-home .intro.section { padding-bottom:28px; }
  body.site-home .service-card { padding:28px 20px; }
  body.site-home .service-card h3 { margin-top:28px; }
  body.site-home .solution-card, body.site-home .investment-grid .price-card, body.site-home .care-grid .price-card { padding:24px; }
  body.site-home .step, body.site-home .step:not(:first-child) { min-height:0; padding:24px 0; }
  body.site-home .step h3 { margin-top:24px; }
  body.site-home .allset-split { gap:16px; }
  body.site-home .allset-cta { margin-top:24px; }
  body.site-home .contact-grid { gap:32px; }
  body.site-home .allset-enquiry { padding:16px; }
  body.site-home .about-art { height:320px; }
  body.site-about .principles { margin-top:36px; }
  body.site-about .hero-bottom { margin-top:32px; }
  body.site-about .capabilities h3 { margin-top:28px; }
  body.site-about .cta h2 { margin-bottom:28px; }
  body.site-privacy .wrap { padding-block:32px 48px; }
  body.site-privacy h1 { margin-top:36px; }
  body.site-privacy .note { padding:18px; }
}
/* About should follow its content, rather than reserve an almost full screen. */
body.site-about .about-hero { min-height:0; padding:154px 0 64px; }
body.site-about .hero-inner { margin:0 auto; }
body.site-about .about-hero h1 { font-size:clamp(48px,7.4vw,106px); }
@media(max-width:600px) {
  body.site-about .about-hero { padding:126px 0 48px; }
  body.site-about .about-hero h1 { font-size:clamp(42px,12vw,56px); }
}
