/* GUNYATOO GLOBAL POLISH v1.2 */
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
h1,h2,h3,h4 { line-height: 1.15; letter-spacing: -0.01em; }
p { line-height: 1.78; }

/* Numeral fallbacks - Playfair for all numbers */
a[href^="tel"],
.intro-strip__num,
.room-booking__price-amount,
.acc-card__price,
.acc-card__price-overlay span:first-child,
.stat-card__num,
.room-booking__stat-value,
.site-footer__contact-item a,
.nearby__dist,
.acc-info-val,
.room-price,
time { font-family: 'Playfair Display', serif !important; }

/* APAPA for labels */
.eyebrow, .section-label, [class*="eyebrow"]:not(.acc-eyebrow):not(.room-eyebrow) {
    font-family: 'APAPA', 'Playfair Display', serif !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
}

/* Accommodation/room eyebrows were explicitly asked to NOT use APAPA
   (unlike eyebrows elsewhere on the site) - excluded above, styled here. */
.acc-eyebrow, .room-eyebrow {
    font-size: 0.85rem !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
}

/* Buttons */
.btn, .btn--primary, .btn--outline, .btn--dark,
button[type="submit"], input[type="submit"],
.acc-card__btn, .btn-copper, .btn-ghost {
    font-family: 'APAPA', 'Playfair Display', serif;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-size: 0.9rem;
    border-radius: 2px;
    transition: all 0.25s ease;
    cursor: pointer;
}

/* Intro strip */
.intro-strip__num {
    font-family: 'Playfair Display', serif !important;
    font-size: clamp(1.8rem, 3vw, 2.6rem) !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: -0.02em !important;
}
.intro-strip__label {
    font-family: 'APAPA', 'Playfair Display', serif !important;
    font-size: 0.73rem !important;
    letter-spacing: 0.18em !important;
}

/* Hero */
.hero__title { font-size: clamp(2.4rem, 5.5vw, 4.5rem) !important; letter-spacing: -0.02em; }
.hero__subtitle { font-size: clamp(0.95rem, 1.8vw, 1.1rem); line-height: 1.75; }

/* Pull quotes */
.pull-quote p, blockquote p {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-size: clamp(1.2rem, 2.5vw, 1.8rem);
    line-height: 1.55;
}
blockquote cite, .pull-quote cite {
    font-family: 'APAPA', 'Playfair Display', serif;
    font-size: 0.87rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-style: normal;
    color: #E5A76B;
}

/* Room booking panel */
.room-booking__price-amount {
    font-family: 'Playfair Display', serif !important;
    font-size: 2.6rem !important;
    letter-spacing: -0.02em !important;
    line-height: 1 !important;
}
.room-booking__stat-value { font-family: 'Playfair Display', serif !important; }

/* Sticky sidebar on desktop */
@media (min-width: 900px) { .room-sidebar { position: sticky; top: 100px; } }

/* Card images */
.acc-card__image img {
    width: 100% !important; height: 100% !important;
    object-fit: cover !important; object-position: center !important;
}

/* Nearby */
.nearby__dist, [class*="nearby"] [class*="dist"] {
    font-family: 'Playfair Display', serif !important;
    font-size: 0.85rem; color: #E5A76B; font-weight: 700;
}

/* Footer */
.site-footer__contact-item a[href^="tel"],
.site-footer__contact-item span { font-family: 'Playfair Display', serif !important; }
.site-footer__bottom-inner p a[href*="astra"] { display: none !important; }

/* Card animations */
.acc-card, .event-card { animation: gu-fadeUp 0.5s ease both; }
@keyframes gu-fadeUp {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
}
.acc-card:nth-child(1) { animation-delay: 0.05s; }
.acc-card:nth-child(2) { animation-delay: 0.12s; }
.acc-card:nth-child(3) { animation-delay: 0.19s; }
.acc-card:nth-child(4) { animation-delay: 0.26s; }
.acc-card:nth-child(5) { animation-delay: 0.33s; }

/* Mobile */
@media (max-width: 768px) {
    .btn, .acc-card__btn { min-height: 46px; }
    h1 { font-size: clamp(1.8rem, 7vw, 2.8rem); }
    h2 { font-size: clamp(1.4rem, 6vw, 2.2rem); }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* ── APAPA DIGIT FIX (v3 — corrected) ─────────────────────────
   v2's theory was wrong: APAPA does NOT lack digit glyphs. Checked
   the actual font file — it has real (badly-designed, circular-badge
   style) glyphs for 0-9 and "+". Because the font itself claims those
   characters, a browser never falls back to Playfair Display for
   them, no matter what's listed after 'APAPA' in the font-family
   stack — that's why 'APAPA', 'Playfair Display', serif never fixed
   phone numbers, prices, etc. (The v2 fallback-stack change is still
   worth keeping, though — APAPA genuinely has no glyph for "%", so
   that case does correctly fall through to Playfair Display.)

   Real fix: override just the digit/"+" Unicode range with a second
   @font-face declaration under the SAME font-family name ('APAPA').
   Per the CSS spec, when multiple @font-face rules share a name,
   the browser picks whichever one's unicode-range covers the
   character being rendered — so any digit or "+" now renders using
   a local serif system font instead of APAPA's own broken glyph,
   while every other character (letters, punctuation) still uses the
   real APAPA font file untouched. Georgia/Cambria/Times New Roman are
   used because they're near-universally preinstalled on Windows and
   Mac — reliable without depending on a network font load. */
@font-face {
    font-family: 'APAPA';
    src: local('Georgia'), local('Cambria'), local('Times New Roman'), local('Times'), serif;
    unicode-range: U+0030-0039, U+002B, U+0025;
    font-weight: normal;
    font-style: normal;
}
