/* V2.2 — Nunito, bundled locally with full Vietnamese support. */
@font-face {
  font-family: "Nunito";
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url("../fonts/nunito-variable.woff2") format("woff2");
}
:root { --font-family: "Nunito", "Trebuchet MS", Arial, sans-serif; }
body { font-family: var(--font-family); font-weight: 400; font-size: 16px; line-height: 1.75; }
button, input, select, textarea, .facebook-mark { font-family: var(--font-family); }
h1, h2, h3 { font-family: var(--font-family); font-weight: 800; line-height: 1.3; letter-spacing: -.35px; }
.hero-copy h1, .hero-copy h2 { font-size: clamp(38px, 3.8vw, 54px); font-weight: 800; line-height: 1.22; letter-spacing: -.7px; }
.hero-copy>p:not(.section-kicker) { font-size: 18px; line-height: 1.75; }
.brand-name { font-weight: 800; font-size: 17px; letter-spacing: 0; line-height: 1.45; }
.brand-name small { font-weight: 600; letter-spacing: 1.5px; }
.section-kicker, .eyebrow { font-weight: 700; letter-spacing: 1.2px; }
.main-nav a { font-weight: 700; font-size: 15px; }
.header-contact, .button, .hero-secondary { font-weight: 800; }
.section-heading h2 { font-size: 35px; font-weight: 800; line-height: 1.3; letter-spacing: -.45px; }
.service-card h3 { font-size: 21px; font-weight: 800; letter-spacing: 0; line-height: 1.4; }
.service-card p { font-size: 16px; line-height: 1.75; }
.about-copy h2 { font-size: 39px; line-height: 1.3; letter-spacing: -.5px; }
.about-photo-caption { font-weight: 800; font-size: 20px; letter-spacing: 0; }
.about-photo-caption span { font-weight: 600; letter-spacing: 1.3px; }
.activity-copy h3 { font-size: 34px; font-weight: 800; line-height: 1.3; letter-spacing: -.4px; }
.activity-copy>p { font-size: 16px; line-height: 1.8; }
.brand-section h2 { font-size: 36px; line-height: 1.35; letter-spacing: -.4px; }
.brand-categories span { font-weight: 700; letter-spacing: .1px; }
.process-grid h3 { font-size: 19px; font-weight: 800; line-height: 1.4; }
.process-grid p { font-size: 15px; }
.process-grid li>span { font-weight: 800; }
.preparation-grid h2 { font-size: 32px; line-height: 1.35; letter-spacing: -.4px; }
.faq-list summary { font-size: 16px; font-weight: 700; line-height: 1.6; }
.faq-list details p { font-size: 15px; }
.booking-copy h2 { font-size: 39px; line-height: 1.3; letter-spacing: -.5px; }
.form-heading h3, .booking-result h3 { font-size: 25px; font-weight: 800; line-height: 1.35; }
.form-grid label { font-size: 14px; font-weight: 700; }
input, select, textarea { font-size: 16px; line-height: 1.5; }
.contact-box strong { font-weight: 800; }
.footer-brand h2 { font-size: 22px; font-weight: 800; letter-spacing: 0; }
.footer-grid h3 { font-size: 17px; font-weight: 800; letter-spacing: 0; }
.company-legal h3 { font-size: 20px; font-weight: 800; line-height: 1.5; }
.company-legal dd, .footer-grid>div>a, .footer-hours { font-size: 15px; }
.image-ribbon, .hero-keywords { font-weight: 700; letter-spacing: .6px; }
@media(max-width:1150px) {
  .hero-copy h1, .hero-copy h2 { font-size: 46px; }
  .about-copy h2 { font-size: 35px; }
  .main-nav { gap: 18px; }
}
@media(max-width:900px) {
  .hero-copy h1, .hero-copy h2 { font-size: 36px; line-height: 1.26; }
  .hero-copy>p:not(.section-kicker) { font-size: 16px; }
  .about-copy h2 { font-size: 31px; }
  .activity-copy h3 { font-size: 29px; }
  .booking-copy h2 { font-size: 33px; }
  .service-card h3 { font-size: 19px; }
  .service-card p { font-size: 15px; }
  .brand-name { font-size: 16px; }
}
@media(max-width:640px) {
  .brand-name { font-size: 12px; }
  .brand-name small { font-size: 8px; letter-spacing: 1.2px; }
  .hero-copy h1, .hero-copy h2 { font-size: clamp(32px, 8.5vw, 43px); line-height: 1.25; letter-spacing: -.4px; }
  .hero-copy>p:not(.section-kicker) { font-size: 16px; }
  .hero-copy .section-kicker { letter-spacing: .6px; }
  .section-heading h2 { font-size: 28px; letter-spacing: -.25px; }
  .section-heading .section-kicker { letter-spacing: .6px; }
  .service-card h3 { font-size: 21px; }
  .service-card p { font-size: 16px; }
  .about-copy h2, .preparation-grid h2 { font-size: 32px; }
  .activity-copy h3 { font-size: 30px; }
  .brand-section h2 { font-size: 29px; }
  .process-grid h3 { font-size: 18px; }
  .process-grid p { font-size: 14px; }
  .booking-copy h2 { font-size: 36px; }
  .form-heading h3, .booking-result h3 { font-size: 24px; }
  .footer-brand h2 { font-size: 22px; }
  .footer-grid h3 { font-size: 16px; }
  .company-legal h3 { font-size: 19px; }
  .footer-grid>div>a, .footer-grid>div:last-child>a { font-size: 14px; }
}
