/* Fluid typography: every text size follows the viewport, so wide monitors get
   larger type and phones stay readable without per-breakpoint jumps. */
:root{
  --fs-body: clamp(14px, 10px + .30vw, 22px);
  --fs-h1: clamp(24px, 14px + .80vw, 48px);
  --fs-h2: clamp(21px, 13px + .60vw, 36px);
  --fs-h3: clamp(15px, 10px + .35vw, 23px);
  --fs-lead: clamp(13px, 9px + .30vw, 19px);
  --fs-text: clamp(12.5px, 8.6px + .27vw, 18px);
  --fs-small: clamp(11.5px, 8px + .25vw, 16.5px);
  --fs-micro: clamp(10.5px, 8px + .17vw, 14px);
}
body{font-size:var(--fs-body)}
.welcome h1,.page-title{font-size:var(--fs-h1);line-height:1.18}
.hero h2{font-size:clamp(25px, 12px + 1.1vw, 54px)}
.section-head h2{font-size:var(--fs-h2)}
.next-card h3,.support-banner h2,.empty h3,.price-line b,.modal-top h2{font-size:var(--fs-h2)}
h3,.step-card h3,.bottom-card h3,.ticket-row h3,.setting-row h3,.method-card h3,.handover-card h3{font-size:var(--fs-h3)}
.faq summary{font-size:var(--fs-text)}
.page-sub,.hero p,.empty p,.modal-body>p,.faq p{font-size:var(--fs-lead);line-height:1.8}
p,.message,.notice,.choice strong,label,.tabs button,.setting-row p,.help-mini p,.mini-link,.guest-mini b,.drop-zone,.stat span,.cookie-instruction h4{font-size:var(--fs-text)}
.small,.error,.footer,.footer button,.step-card p,.bottom-card p,.benefit,.journey li,.choice small,.badge,.card-label,.nav .count,.guest-mini small,.nav button,.welcome p,.next-card p,.language,.handover-card p,.cookie-steps li,.method-card p{font-size:var(--fs-small)}
.brand{font-size:clamp(16px, 11px + .34vw, 25px)}
.crumb,.prototype,.eyebrow,.modal-kicker,.card-label,.badge,.step-dot,.nav .count,.guest-mini small,.brand-sub,.nav-label,.edition,.scan-tag,.hero-corner,.hero-note,.step-card .number{font-size:var(--fs-micro)}
.btn,.signin,.tabs button,.form-actions .btn,input,select,textarea{font-size:var(--fs-text)}
.btn{padding:clamp(11px, .55vw + 6px, 17px) clamp(16px, .9vw + 9px, 26px)}
@media(max-width:600px){
  :root{
    --fs-body:14px; --fs-h1:clamp(22px, 6vw, 32px); --fs-h2:clamp(18px, 4.6vw, 26px);
    --fs-h3:15px; --fs-lead:13px; --fs-text:12.5px; --fs-small:11.5px; --fs-micro:10.5px;
  }
  .hero h2{font-size:clamp(23px, 6.4vw, 34px)}
}
