/*
  EGO reading scale
  Applied after page styles for calmer type hierarchy and card rhythm.
  Large type is reserved for page-level hero moments; cards stay scannable.
*/
:root{
  --ego-body-size:16px;
  --ego-body-leading:1.6;
  --ego-card-padding:clamp(28px,3vw,40px);
  --ego-section-space:clamp(56px,6vw,88px);
}

body{font-size:var(--ego-body-size);line-height:var(--ego-body-leading)}
p{line-height:1.6}

/* Standard page banners: compact enough to introduce the page without becoming a screen of their own. */
.hero{padding:clamp(40px,4vw,52px) 7%!important;min-height:0!important}
.hero h1{font-size:clamp(36px,4vw,52px)!important;line-height:1.12!important}
.hero p{max-width:62ch;line-height:1.65!important}
.wrap{padding-top:clamp(40px,5vw,64px)!important;padding-bottom:clamp(52px,6vw,80px)!important}

/* The English menu still uses this legacy hero class. Keep it at the same scale. */
.en-hero{padding:clamp(40px,4vw,52px) 7%!important;min-height:0!important}
.en-hero h1{font-size:clamp(36px,4vw,52px)!important;line-height:1.12!important}
.en-hero p{max-width:62ch!important;font-size:16px!important;line-height:1.65!important}

/* Homepage carousel: a strong first impression without taking an entire screen. */
.hero-carousel,.hero-carousel-stage{min-height:560px!important}
.hero-carousel .spotlight-slide{padding:clamp(32px,4vw,56px)!important}
.hero-carousel .spotlight-slide .hero-photo-copy h1{font-size:clamp(42px,4.7vw,62px)!important;line-height:1.1!important}
.hero-carousel .spotlight-slide .hero-photo-copy p:not(.section-kicker){font-size:16px!important;line-height:1.65!important}
.hero-carousel .spotlight-slide .hero-photo-copy .hero-proof-line{font-size:13px!important}
.hero-carousel .spotlight-slide h3{font-size:clamp(36px,4.3vw,62px)!important;line-height:1.12!important}

/* Homepage sections and route cards */
.home-section{padding-top:var(--ego-section-space)!important;padding-bottom:var(--ego-section-space)!important}
.section-title{font-size:clamp(34px,3.8vw,54px)!important;line-height:1.16!important}
.section-intro{font-size:16px!important;line-height:1.65!important}
.route-grid{gap:24px!important;margin-top:32px!important}
.route-card{min-height:430px!important;padding:var(--ego-card-padding)!important}
.route-card small{font-size:13px!important;letter-spacing:.1em!important}
.route-card h3{max-width:17ch!important;margin-top:15px!important;font-size:clamp(34px,3.25vw,46px)!important;line-height:1.14!important}
.route-card p{max-width:36ch!important;margin-top:16px!important;font-size:16px!important;line-height:1.65!important}
.route-card .ego-button{align-self:flex-start!important;width:auto!important;min-height:48px!important;margin-top:24px!important;padding:11px 20px!important}

/* Shared cards, catalogue and form content */
.card{padding:18px!important}
.card h3,.product h3{font-size:18px!important;line-height:1.35!important}
.card p,.product p{font-size:15px!important;line-height:1.55!important}
.product-grid{gap:20px!important}
.catering-catalogue h2{font-size:clamp(30px,3.4vw,44px)!important;line-height:1.18!important}
.catering-series header h3{font-size:clamp(26px,2.6vw,34px)!important;line-height:1.2!important}

/* Content-heavy pages */
.nutrition-page{padding-top:clamp(40px,4vw,52px)!important;padding-bottom:clamp(56px,6vw,84px)!important}
.nutrition-page h1{font-size:clamp(38px,4.2vw,54px)!important;line-height:1.14!important}
.nutrition-page__intro>p:last-child{font-size:17px!important;line-height:1.65!important}
.nutrition-guide__heading h2,.nutrition-calculator h2{font-size:clamp(30px,3vw,44px)!important;line-height:1.2!important}
.nutrition-topic__body{line-height:1.65!important}

.collab{padding-top:clamp(40px,4vw,56px)!important;padding-bottom:clamp(56px,6vw,84px)!important}
.collab h1{font-size:clamp(38px,4.2vw,54px)!important;line-height:1.14!important}
.collab-card h2{font-size:clamp(26px,2.5vw,34px)!important;line-height:1.2!important}
.collab-card p,.collab-form p{font-size:16px!important;line-height:1.65!important}

@media(max-width:640px){
  .hero{padding:36px 6%!important}
  .hero h1{font-size:clamp(32px,9vw,40px)!important}
  .en-hero{padding:36px 6%!important}
  .en-hero h1{font-size:clamp(32px,9vw,40px)!important}
  .hero-carousel,.hero-carousel-stage{min-height:520px!important}
  .hero-carousel .spotlight-slide{padding:30px 6%!important}
  .hero-carousel .spotlight-slide .hero-photo-copy h1{font-size:clamp(42px,8.8vw,48px)!important}
  .hero-carousel .spotlight-slide h3{font-size:clamp(34px,9vw,44px)!important}
  .home-section{padding-left:6%!important;padding-right:6%!important}
  .route-card{min-height:0!important;padding:28px!important}
  .route-card h3{font-size:clamp(30px,9vw,38px)!important}
  .route-card p{font-size:16px!important}
  .route-card .ego-button{width:100%!important;justify-content:center!important}
  .card{padding:14px!important}
  .nutrition-page h1,.collab h1{font-size:38px!important}
}
