/* Site-wide type scale. Loaded last on every page so headings and body text
   match everywhere. ":not(#_)" lifts specificity above page-level styles. */
:root{
  --type-head:"Gallery",Georgia,serif;
  --type-font:"Lato",Arial,Helvetica,sans-serif;
  --type-h1:clamp(2.25rem,1.6rem + 2vw,3.25rem);    /* 36px phone -> 52px desktop */
  --type-h2:clamp(1.75rem,1.35rem + 1.3vw,2.375rem); /* 28px -> 38px */
  --type-h3:clamp(1.25rem,1.15rem + .35vw,1.375rem); /* 20px -> 22px */
  --type-body:1rem;                                  /* 16px phones, 15px desktop (below) */
  --type-lead:1rem;                                  /* 16px */
  --type-label:clamp(.75rem,.72rem + .1vw,.8125rem); /* 12px -> 13px */
  --type-lh-body:1.2;
}

/* Headings */
html body h1:not(#_){font-family:var(--type-head);font-size:var(--type-h1);font-weight:500;line-height:1.1;letter-spacing:normal}
html body h2:not(#_){font-family:var(--type-head);font-size:var(--type-h2);font-weight:500;line-height:1.15;letter-spacing:normal}
html body h3:not(#_){font-family:var(--type-head);font-size:var(--type-h3);font-weight:500;line-height:1.25;letter-spacing:normal}
html body h1 span:not(#_),html body h2 span:not(#_),html body h2 em:not(#_),html body h1 em:not(#_){font-size:inherit;line-height:inherit}

/* Headings that only wrap a control keep the control's own size */
html body .faq-accordion-item h2:not(#_){font-family:var(--type-font);font-size:inherit;line-height:inherit}

/* Small labels above headings */
html body :is(.eyebrow,.section-kicker,.it-kicker,.kicker,.small-label,.privacy-label):not(#_){font-family:var(--type-font);font-size:var(--type-label);font-weight:700;letter-spacing:.12em;line-height:1.2;text-transform:uppercase}

/* Body text */
html body main p:not([class]):not(#_),
html body main li:not([class]):not(#_),
html body main dd:not(#_){font-family:var(--type-font);font-size:var(--type-body);line-height:var(--type-lh-body)}
html body :is(.it-lead,.section-copy,.lead,.it-intro,.hero p,.page-hero p,.cta p,.overview-copy p):not(#_){font-size:var(--type-lead);line-height:var(--type-lh-body)}
html body main p:not(#_),html body main li:not(#_){line-height:var(--type-lh-body)}

/* One body font everywhere */
html body:not(#_){font-family:var(--type-font)}
html body :is(input,select,textarea,button):not(#_){font-family:inherit}
html body main :is(p,li):not([class]):not(#_){font-family:var(--type-font)}
html body :is(h1,h2,h3,h1 *,h2 *,h3 *):not(#_){font-family:var(--type-head)}
html body .faq-accordion-item h2 :is(button):not(#_){font-family:var(--type-head);font-size:1.125rem;line-height:1.35;padding-top:16px;padding-bottom:16px}
html body .faq-accordion-panel p:not(#_){font-size:var(--type-body);line-height:var(--type-lh-body)}

/* Decorative serif taglines */
html body :is(.destination-callout,.destination-expanding-note,.about-closing,.it-destinations,.hero-destinations):not(#_){font-size:clamp(1.25rem,1.1rem + .6vw,1.6rem);line-height:1.25}

/* Headings inside narrow side panels (quizzes, sidebars) */
html body aside :is(h1,h2):not(#_){font-size:var(--type-h3);line-height:1.25}

/* Even line breaks in headings (no single stranded word) */
html body :is(h1,h2,h3):not(#_){text-wrap:balance}

/* Short captions overlaid on photos */
html body .destination-feature-copy p:not(#_){font-size:.9375rem;line-height:1.5}

/* "Start Planning" pop-up bar title */
html body .planning-modal-title:not(#_){font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem);line-height:1.2}

/* Desktop: slightly more refined body text. Phones stay at 16px; form fields stay 16px everywhere. */
@media (min-width:821px){
  :root{--type-body:.9375rem}
}

/* Body line spacing 1.2 everywhere text runs in paragraphs (incl. footer, forms, captions) */
html body :is(p,li,dd,blockquote,figcaption):not(#_){line-height:var(--type-lh-body)}
html body :is(.footer-contact,.footer-seller-numbers,.footer-seller-column p,.newsletter-signup p,.check-option,.it-stay,.it-tags li,.it-inclusions li):not(#_){line-height:var(--type-lh-body)}
html body :is(.site-footer p,.gtc-unified-footer p,.footer-seller-numbers,.footer-contact,.callout,.it-field,.group-label,.it-checks-title,.pill,.field label):not(#_){line-height:var(--type-lh-body)!important}
html body .it-checks label:not(#_){line-height:var(--type-lh-body)}

/* Photos: not draggable, selectable or long-press savable (see js/image-protect.js) */
html body img:not(#_),html body picture:not(#_),html body video:not(#_){-webkit-user-drag:none;user-drag:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
