:root{
  --type-xs:13px;
  --type-sm:14px;
  --type-base:16px;
  --type-md:17px;
  --type-lg:20px;
  --type-xl:28px;
  --type-2xl:34px;
  --leading-tight:1.25;
  --leading-normal:1.55;
  --leading-relaxed:1.7;
}

html{font-size:16px}
body{font-size:var(--type-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* Navigation and actions */
.brand{font-size:18px;line-height:1.15}
.nav a{font-size:15px;font-weight:600;line-height:1.35}
.btn{font-size:15px;line-height:1.2;font-weight:700}

/* Main hierarchy */
.title{font-size:var(--type-2xl);line-height:1.18;letter-spacing:-.025em}
.form-card h1,.status-card h1,.booking-card h1,.success-card h1,.legal-card h1{font-size:var(--type-xl);line-height:1.2;letter-spacing:-.02em}
.section-title,.legal-card h2{font-size:var(--type-lg);line-height:1.3}
.side-card h3,.aside-info h3,.what-next h3,.day-group h3,.timeline-content h3,.location h3{font-size:var(--type-md);line-height:1.35}

/* Body copy */
.description,.lead,.notice,.location p,.legal-card p,.legal-intro,.success-card>p{font-size:var(--type-base);line-height:var(--leading-relaxed)}
.fact,.kv,.checkbox,.question-box,.next-row,.timeline-content p,.slot,.footer-inner{font-size:var(--type-sm);line-height:var(--leading-normal)}
.price-item strong{font-size:20px;line-height:1.25}
.price-item span{font-size:var(--type-sm);line-height:1.4}

/* Forms */
.field label{font-size:var(--type-sm);line-height:1.4;font-weight:700}
.control{font-size:var(--type-base);line-height:1.35;min-height:46px}
textarea.control{line-height:1.5}
.field-help{font-size:var(--type-xs)!important;line-height:1.5}

/* Steps, information and status */
.step{font-size:var(--type-xs);line-height:1.35}
.info-item strong{font-size:var(--type-sm);line-height:1.4}
.info-item p{font-size:var(--type-sm);line-height:1.55}
.info-icon{font-size:12px}
.slot .availability,.appointment-links a{font-size:var(--type-xs)}
.privacy-location-note,.privacy-trust,.legal-note{font-size:var(--type-sm);line-height:1.6}

/* Page-specific informational elements */
.handover-note strong,.selection-note strong,.movein-deadline strong{font-size:var(--type-md)!important;line-height:1.4}
.handover-note p,.selection-note p,.movein-deadline p,.slot-intro,.address-lock-note span{font-size:var(--type-sm)!important;line-height:1.65!important}
.address-lock-note strong{font-size:var(--type-sm)!important}
.calendar-month-title{font-size:var(--type-md)!important}
.calendar-weekdays span{font-size:12px!important}
.calendar-day-button{font-size:var(--type-sm)}
.calendar-day-button small{font-size:11px!important}
.time-slot-time{font-size:var(--type-base)!important}
.time-slot-meta{font-size:var(--type-xs)!important}

/* Trust section */
.trust-section h2,.portal-explainer h2{font-size:var(--type-lg);line-height:1.3}
.trust-section h3,.trust-card strong,.portal-explainer strong{font-size:var(--type-md);line-height:1.4}
.trust-section p,.trust-card p,.portal-explainer p,.source-hint{font-size:var(--type-sm);line-height:1.65}

/* Process / FAQ pages */
.info-hero h1,.faq-hero h1{font-size:var(--type-2xl)!important;line-height:1.18!important;letter-spacing:-.025em}
.info-hero p,.faq-hero p,.process-step p,.faq-item p,.side-panel p,.side-panel li{font-size:var(--type-base)!important;line-height:1.65!important}
.process-step h2,.faq-item h2,.faq-item h3,.side-panel h3{font-size:var(--type-md)!important;line-height:1.35!important}
.process-deadline{font-size:var(--type-sm)!important;line-height:1.6!important}

@media(max-width:900px){
  .title{font-size:30px}
  .form-card h1,.status-card h1,.booking-card h1,.success-card h1,.legal-card h1{font-size:26px}
}

@media(max-width:520px){
  html{font-size:16px}
  .brand{font-size:16px}
  .btn{font-size:14px}
  .title{font-size:27px;line-height:1.2}
  .form-card h1,.status-card h1,.booking-card h1,.success-card h1,.legal-card h1{font-size:25px}
  .section-title,.legal-card h2{font-size:19px}
  .description,.lead,.notice,.location p,.legal-card p,.legal-intro,.success-card>p{font-size:15px}
  .step{font-size:12px}
  .footer-inner{font-size:13px}
}
