/**
 * IRANSansX typography — responsive sizes & weight tuning for mobile/desktop.
 * Loaded after fonts-iransansx.css (@font-face).
 */
:root {
  --royal-font-family: "IRANSansX", system-ui, sans-serif;
  --royal-w-body: 425;
  --royal-w-regular: 400;
  --royal-w-medium: 500;
  --royal-w-semibold: 600;
  --royal-w-bold: 725;
  --royal-w-heading: 750;
  --royal-w-display: 800;
  --royal-text-base: clamp(0.9375rem, 0.88rem + 0.2vw, 1.0625rem);
  --royal-text-sm: clamp(0.8125rem, 0.78rem + 0.15vw, 0.875rem);
  --royal-text-lg: clamp(1.0625rem, 0.98rem + 0.25vw, 1.1875rem);
  --royal-leading-body: 1.8;
  --royal-leading-heading: 1.3;
  --royal-leading-tight: 1.25;
}

html {
  font-size: clamp(15px, 0.32vw + 14.2px, 17px);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: var(--royal-font-family);
  font-size: var(--royal-text-base);
  font-weight: var(--royal-w-body);
  font-variation-settings: "wght" var(--royal-w-body);
  line-height: var(--royal-leading-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* ── Classic theme pages ── */
.royal-iransansx-page {
  font-size: var(--royal-text-base);
  line-height: var(--royal-leading-body);
}

.royal-iransansx-page .header .nav-link {
  font-size: clamp(0.875rem, 0.82rem + 0.2vw, 0.9375rem);
  font-weight: var(--royal-w-medium);
  font-variation-settings: "wght" var(--royal-w-medium);
}

.royal-iransansx-page .section-title,
.royal-iransansx-page .section-title-center,
body .section-title,
body .section-title-center {
  font-size: clamp(1.75rem, 1.05rem + 2.6vw, 3rem);
  font-weight: var(--royal-w-heading);
  font-variation-settings: "wght" var(--royal-w-heading);
  line-height: var(--royal-leading-heading);
  letter-spacing: -0.02em;
}

.royal-iransansx-page .section-description,
body .section-description {
  font-size: var(--royal-text-lg);
  line-height: 1.85;
  font-weight: var(--royal-w-regular);
  font-variation-settings: "wght" var(--royal-w-regular);
}

.royal-iransansx-page .hero-title .hero-title-main {
  font-weight: var(--royal-w-display);
  font-variation-settings: "wght" var(--royal-w-display);
  line-height: var(--royal-leading-tight);
}

.royal-iransansx-page .hero-title-line--tagline .highlight {
  font-weight: var(--royal-w-semibold);
  font-variation-settings: "wght" var(--royal-w-semibold);
}

.royal-iransansx-page .hero-form-title,
body .hero-form-title {
  font-size: clamp(1.75rem, 1rem + 2.8vw, 3rem);
  font-weight: var(--royal-w-display);
  font-variation-settings: "wght" var(--royal-w-display);
  line-height: var(--royal-leading-heading);
}

.royal-iransansx-page .hero-form-subtitle,
body .hero-form-subtitle {
  font-size: var(--royal-text-lg);
  line-height: 1.85;
}

.royal-iransansx-page .newsletter-title {
  font-size: clamp(1.5rem, 1.1rem + 1.5vw, 2rem);
  font-weight: var(--royal-w-heading);
  font-variation-settings: "wght" var(--royal-w-heading);
  line-height: var(--royal-leading-heading);
}

.royal-iransansx-page .newsletter-description {
  font-size: var(--royal-text-base);
  line-height: 1.85;
}

.royal-iransansx-page .commitment-card h2,
body .commitment-card h2 {
  font-size: clamp(1.5rem, 1rem + 1.8vw, 2.25rem);
  font-weight: var(--royal-w-heading);
  font-variation-settings: "wght" var(--royal-w-heading);
  line-height: var(--royal-leading-heading);
}

.royal-iransansx-page .btn-primary,
.royal-iransansx-page .btn-cta,
.royal-iransansx-page .btn-secondary,
.royal-iransansx-page .btn-primary-outline,
.royal-iransansx-page .newsletter-btn {
  font-weight: var(--royal-w-semibold);
  font-variation-settings: "wght" var(--royal-w-semibold);
  font-size: clamp(0.9375rem, 0.88rem + 0.2vw, 1rem);
}

.royal-iransansx-page .contact-hero-text h1 {
  font-size: clamp(1.75rem, 1.1rem + 2.2vw, 2.5rem);
  font-weight: var(--royal-w-heading);
  font-variation-settings: "wght" var(--royal-w-heading);
  line-height: var(--royal-leading-heading);
}

/* ── Tailwind page wrappers ── */
:is(.page-keratopigmentation-wrapper, .page-faq-v2-wrapper, .page-laser-wrapper, .page-faq-wrapper,
  .page-about-v2-wrapper, .page-damaged-wrapper, .page-price-wrapper, .page-404-wrapper,
  .page-care-before-after-v1-wrapper, .page-gallery-video-wrapper, body.page-gallery-video,
  body.page-gallery-after-before-v2) {
  font-size: var(--royal-text-base);
  line-height: var(--royal-leading-body);
  font-weight: var(--royal-w-body);
  font-variation-settings: "wght" var(--royal-w-body);
}

:is(.page-keratopigmentation-wrapper, .page-faq-v2-wrapper, .page-laser-wrapper, .page-faq-wrapper,
  .page-about-v2-wrapper, .page-damaged-wrapper, .page-price-wrapper, .page-404-wrapper,
  .page-care-before-after-v1-wrapper, .page-gallery-video-wrapper, body.page-gallery-video,
  body.page-gallery-after-before-v2) p {
  line-height: 1.85;
}

:is(.page-keratopigmentation-wrapper, .page-faq-v2-wrapper, .page-laser-wrapper, .page-faq-wrapper,
  .page-about-v2-wrapper, .page-damaged-wrapper, .page-price-wrapper, .page-404-wrapper,
  .page-care-before-after-v1-wrapper, .page-gallery-video-wrapper, body.page-gallery-video,
  body.page-gallery-after-before-v2) .font-normal {
  font-weight: var(--royal-w-regular);
  font-variation-settings: "wght" var(--royal-w-regular);
}

:is(.page-keratopigmentation-wrapper, .page-faq-v2-wrapper, .page-laser-wrapper, .page-faq-wrapper,
  .page-about-v2-wrapper, .page-damaged-wrapper, .page-price-wrapper, .page-404-wrapper,
  .page-care-before-after-v1-wrapper, .page-gallery-video-wrapper, body.page-gallery-video,
  body.page-gallery-after-before-v2) .font-medium {
  font-weight: var(--royal-w-medium);
  font-variation-settings: "wght" var(--royal-w-medium);
}

:is(.page-keratopigmentation-wrapper, .page-faq-v2-wrapper, .page-laser-wrapper, .page-faq-wrapper,
  .page-about-v2-wrapper, .page-damaged-wrapper, .page-price-wrapper, .page-404-wrapper,
  .page-care-before-after-v1-wrapper, .page-gallery-video-wrapper, body.page-gallery-video,
  body.page-gallery-after-before-v2) .font-semibold {
  font-weight: var(--royal-w-semibold);
  font-variation-settings: "wght" var(--royal-w-semibold);
}

:is(.page-keratopigmentation-wrapper, .page-faq-v2-wrapper, .page-laser-wrapper, .page-faq-wrapper,
  .page-about-v2-wrapper, .page-damaged-wrapper, .page-price-wrapper, .page-404-wrapper,
  .page-care-before-after-v1-wrapper, .page-gallery-video-wrapper, body.page-gallery-video,
  body.page-gallery-after-before-v2) .font-bold {
  font-weight: var(--royal-w-bold);
  font-variation-settings: "wght" var(--royal-w-bold);
}

:is(.page-keratopigmentation-wrapper, .page-faq-v2-wrapper, .page-laser-wrapper, .page-faq-wrapper,
  .page-about-v2-wrapper, .page-damaged-wrapper, .page-price-wrapper, .page-404-wrapper,
  .page-care-before-after-v1-wrapper, .page-gallery-video-wrapper, body.page-gallery-video,
  body.page-gallery-after-before-v2) :is(h1, h2) {
  font-weight: var(--royal-w-heading);
  font-variation-settings: "wght" var(--royal-w-heading);
  line-height: var(--royal-leading-heading);
  letter-spacing: -0.02em;
}

:is(.page-keratopigmentation-wrapper, .page-faq-v2-wrapper, .page-laser-wrapper, .page-faq-wrapper,
  .page-about-v2-wrapper, .page-damaged-wrapper, .page-price-wrapper, .page-404-wrapper,
  .page-care-before-after-v1-wrapper, .page-gallery-video-wrapper, body.page-gallery-video,
  body.page-gallery-after-before-v2) h3 {
  font-weight: var(--royal-w-bold);
  font-variation-settings: "wght" var(--royal-w-bold);
  line-height: 1.35;
}

/* ── Single post & auth UI ── */
.single-post-page,
.royal-login-page,
.royal-profile-page {
  font-size: var(--royal-text-base);
  line-height: var(--royal-leading-body);
}

.single-post-prose {
  font-size: clamp(1rem, 0.94rem + 0.25vw, 1.0625rem);
  line-height: 1.9;
  font-weight: var(--royal-w-body);
  font-variation-settings: "wght" var(--royal-w-body);
}

.single-post-prose h2,
.single-post-prose h3,
.single-post-prose h4 {
  font-weight: var(--royal-w-heading);
  font-variation-settings: "wght" var(--royal-w-heading);
  line-height: var(--royal-leading-heading);
}

.royal-login-page .rl-title,
.royal-profile-page .rl-title {
  font-weight: var(--royal-w-heading);
  font-variation-settings: "wght" var(--royal-w-heading);
}

/* ── Gallery templates ── */
.page-gallery-video-wrapper,
body.page-gallery-video,
body.page-gallery-after-before-v2,
.page-gallery-video-wrapper .font-body,
.page-gallery-video-wrapper .font-headline,
.page-gallery-video-wrapper .font-label,
body.page-gallery-after-before-v2 .font-display {
  font-weight: var(--royal-w-body);
  font-variation-settings: "wght" var(--royal-w-body);
}

.page-gallery-video-wrapper .font-bold,
body.page-gallery-after-before-v2 .font-bold {
  font-weight: var(--royal-w-bold);
  font-variation-settings: "wght" var(--royal-w-bold);
}

/* ── Mobile ── */
@media (max-width: 767px) {
  :root {
    --royal-w-body: 420;
    --royal-w-heading: 740;
    --royal-w-display: 780;
  }

  :is(.page-keratopigmentation-wrapper, .page-faq-v2-wrapper, .page-laser-wrapper, .page-faq-wrapper,
    .page-about-v2-wrapper, .page-damaged-wrapper, .page-price-wrapper, .page-404-wrapper,
    .page-care-before-after-v1-wrapper, .page-gallery-video-wrapper, body.page-gallery-video,
    body.page-gallery-after-before-v2) h1.text-4xl {
    font-size: clamp(1.65rem, 5vw + 0.5rem, 2rem) !important;
    line-height: 1.28 !important;
  }

  :is(.page-keratopigmentation-wrapper, .page-faq-v2-wrapper, .page-laser-wrapper, .page-faq-wrapper,
    .page-about-v2-wrapper, .page-damaged-wrapper, .page-price-wrapper, .page-404-wrapper,
    .page-care-before-after-v1-wrapper, .page-gallery-video-wrapper, body.page-gallery-video,
    body.page-gallery-after-before-v2) .text-3xl {
    font-size: clamp(1.4rem, 3.5vw + 0.4rem, 1.75rem) !important;
    line-height: 1.32 !important;
  }

  :is(.page-keratopigmentation-wrapper, .page-faq-v2-wrapper, .page-laser-wrapper, .page-faq-wrapper,
    .page-about-v2-wrapper, .page-damaged-wrapper, .page-price-wrapper, .page-404-wrapper,
    .page-care-before-after-v1-wrapper, .page-gallery-video-wrapper, body.page-gallery-video,
    body.page-gallery-after-before-v2) .text-lg {
    font-size: var(--royal-text-base) !important;
    line-height: 1.8 !important;
  }

  .royal-iransansx-page .section-title,
  .royal-iransansx-page .section-title-center,
  body .section-title,
  body .section-title-center {
    font-size: clamp(1.5rem, 4.5vw + 0.25rem, 1.875rem);
  }

  .royal-iransansx-page .hero-form-title,
  body .hero-form-title {
    font-size: clamp(1.5rem, 4.5vw + 0.25rem, 1.875rem);
  }
}

/* ── Desktop ── */
@media (min-width: 1024px) {
  :root {
    --royal-w-body: 430;
    --royal-w-heading: 760;
    --royal-w-display: 820;
  }

  :is(.page-keratopigmentation-wrapper, .page-faq-v2-wrapper, .page-laser-wrapper, .page-faq-wrapper,
    .page-about-v2-wrapper, .page-damaged-wrapper, .page-price-wrapper, .page-404-wrapper,
    .page-care-before-after-v1-wrapper, .page-gallery-video-wrapper, body.page-gallery-video,
    body.page-gallery-after-before-v2) h1.text-4xl.lg\:text-6xl {
    line-height: 1.2;
    letter-spacing: -0.025em;
  }
}

/* ── Admin panels ── */
.royal-ts,
.royal-consult-inbox,
.royal-consult-dash-cal,
.royal-contact-inbox,
.royal-newsletter-inbox,
.royal-sim-admin {
  font-size: var(--royal-text-base);
  line-height: var(--royal-leading-body);
  font-weight: var(--royal-w-body);
  font-variation-settings: "wght" var(--royal-w-body);
}

.royal-ts__card-title,
.royal-consult-inbox h1,
.royal-consult-inbox h2,
.royal-contact-inbox h1,
.royal-newsletter-inbox h1 {
  font-weight: var(--royal-w-heading);
  font-variation-settings: "wght" var(--royal-w-heading);
  line-height: var(--royal-leading-heading);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
