/* Shared public-site typography. Keep icons and the admin editor untouched. */
@font-face {
    font-family: "Senora Editorial";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/noto-serif-latin.woff2') format('woff2');
}
@font-face {
    font-family: "Senora Editorial";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/noto-serif-vietnamese.woff2') format('woff2');
    unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
    font-family: "Senora Inter";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/inter-latin.woff2') format('woff2');
}
@font-face {
    font-family: "Senora Inter";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/inter-vietnamese.woff2') format('woff2');
    unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
@font-face {
    font-family: "Senora Song";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/noto-serif-sc-marks.woff2') format('woff2');
    unicode-range: U+00B7,U+4E00,U+4E2D,U+5386,U+5408,U+56DB,U+56FD,U+57CE,U+5883,U+5BB6,U+5C71,U+5E02,U+6C34,U+6D77,U+6E38,U+7F8E,U+81FB,U+8D8A;
}
:root {
    --senora-font-display: "Senora Editorial", "Senora Song", Georgia, serif;
    --senora-font-body: "Senora Inter", Arial, sans-serif;
    --senora-font-han: "Senora Song", "Songti SC", SimSun, serif;
}
body.frontend-page,
body.senora-news-page,
.senora-page,
.senora-modal {
    font-family: var(--senora-font-body);
    font-size: 16px;
    line-height: 1.75;
    letter-spacing: 0;
    -webkit-font-smoothing: antialiased;
}
.senora-page :is(button, input, select, textarea),
.frontend-page :is(button, input, select, textarea),
.senora-modal :is(button, input, select, textarea) {
    font-family: var(--senora-font-body);
    letter-spacing: 0;
}
.senora-page :is(h1, h2, h3, h4),
.senora-news-page :is(h1, h2, h3, h4) {
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0;
    text-wrap: balance;
    overflow-wrap: break-word;
}
.senora-page :is(h1, h2) em,
.senora-news-page :is(h1, h2) em {
    font-style: normal;
    font-weight: inherit;
}
.senora-page .senora-hero h1 {
    max-width: 1000px;
    margin-inline: auto;
    font-size: 64px;
    line-height: 1.3;
    font-weight: 500;
}
.senora-page .senora-hero p { font-size: 16px; font-weight: 400; line-height: 1.85; }
.senora-page :is(.senora-title h2, .senora-copy h2, .senora-portfolio-head h2, .senora-cta h2),
.senora-news-page .senora-about-heading { font-size: 42px; line-height: 1.4; }
.senora-page :is(.senora-card h3, .senora-concierge-item h3, .senora-feature h3, .senora-portfolio-copy h3) {
    font-size: 23px; line-height: 1.45;
}
.senora-page .senora-news-main h3 { font-size: 30px; line-height: 1.45; }
.senora-page .senora-news-item h3 { font-size: 21px; line-height: 1.5; }
.senora-page .senora-tour-title { font: 600 18px/1.55 var(--senora-font-body); text-wrap: pretty; }
.senora-page .senora-tour-price strong { font: 600 23px/1.4 var(--senora-font-body); font-variant-numeric: lining-nums tabular-nums; }
.senora-page :is(.senora-check strong, .senora-card-highlight) { font-family: var(--senora-font-body); }
.senora-page .senora-check strong { font-weight: 600; line-height: 1.6; }
.senora-page :is(.senora-eyebrow, .senora-kicker, .senora-card-kicker) { font-size: 12px; line-height: 1.6; font-weight: 600; }
.senora-page .senora-cinematic-bg::after,
.senora-page .senora-vertical span,
.senora-page :is(.senora-seal, .senora-portfolio-badge) { font-family: var(--senora-font-han); font-weight: 500; }
.senora-page .senora-cinematic-bg::after { font-size: 120px; }
.senora-page .senora-links a,
.senora-news-page .senora-news-links a {
    font: 600 13px/1.5 var(--senora-font-body); text-transform: none;
}
.senora-page .senora-btn,
.senora-news-page .senora-news-btn { font-size: 13px; font-weight: 600; line-height: 1.5; }
.senora-page .senora-title p,
.senora-page .senora-copy p { font-size: 16px; line-height: 1.85; }
.senora-news-page .senora-news-title { font-size: 44px; line-height: 1.4; }
.senora-news-page .senora-about-title { font-size: 58px; line-height: 1.35; }
.senora-news-page :is(.senora-news-feature-copy h2, .senora-news-feature h2) { font-size: 28px; line-height: 1.5; }
.senora-news-page .senora-news-latest-grid .senora-news-card h3 { font: 600 16px/1.55 var(--senora-font-body); }
.senora-news-page .senora-news-card h3 { font-size: 23px; line-height: 1.5; }
.senora-news-page .senora-news-cta-band h2 { font-size: 36px; line-height: 1.4; }
.senora-news-page .senora-article h1 { font-size: 40px; line-height: 1.45; }
.senora-news-page .senora-article-content { font: 400 17px/1.9 var(--senora-font-body); }
.senora-news-page .senora-article-content h2 { font: 500 30px/1.5 var(--senora-font-display); }
.senora-news-page .senora-article-content h3 { font: 600 22px/1.6 var(--senora-font-body); }
.senora-news-page .senora-article-content h4 { font: 600 18px/1.6 var(--senora-font-body); }
.senora-news-page .senora-article-content p { margin-bottom: 20px; }
.senora-news-page :is(.sidebar-widget h3, .sidebar-title, .senora-about-process-item h3, .senora-about-member h3) { font-size: 22px; line-height: 1.5; }
.senora-page .senora-modal-head h3,
.senora-news-page .senora-modal-head h3,
.senora-modal .senora-modal-head h3 { font: 500 28px/1.5 var(--senora-font-display); }
.senora-modal .senora-field label { font-size: 13px; line-height: 1.5; font-weight: 500; text-transform: none; color: #444; }
.senora-modal .senora-field :is(input, select, textarea) { font-size: 16px; line-height: 1.5; }
.senora-modal .senora-eyebrow { font: 600 11px/1.6 var(--senora-font-body); }
.senora-modal .senora-btn { font: 600 13px/1.5 var(--senora-font-body); }
.senora-page .senora-footer :is(h3, h4),
.senora-news-page .senora-news-footer :is(h3, h4) { font-size: 20px; line-height: 1.5; }
.frontend-page .bc_wrap .bc_header .content .header-left .bc-menu a,
.frontend-page .bc-menu-mobile a { font-family: var(--senora-font-body); font-weight: 600; letter-spacing: 0; }
.frontend-page .bc_search_tour { font-family: var(--senora-font-body); }
.frontend-page .bc_search_tour .item-tour .item-title { font: 600 18px/1.5 var(--senora-font-body); }
.bc_wrap .bc_detail_tour.senora-tour-detail .g-header h1 { font: 500 32px/1.5 var(--senora-font-display); text-wrap: balance; }
.bc_wrap .bc_detail_tour.senora-tour-detail :is(h2, .g-overview > h3, .g-itinerary > h3) { font: 500 30px/1.5 var(--senora-font-display); }
.bc_wrap .bc_detail_tour.senora-tour-detail .g-overview .description { font: 400 16px/1.9 var(--senora-font-body); }
.bc_wrap .bc_detail_tour.senora-tour-detail .g-overview .description h3 { font: 600 20px/1.6 var(--senora-font-body); }
.bc_wrap .bc_detail_tour.senora-tour-detail .text-price { font-family: var(--senora-font-body); font-variant-numeric: lining-nums tabular-nums; }
@media (max-width: 1023px) {
    .senora-page .senora-hero h1 { font-size: 50px; }
    .senora-page :is(.senora-title h2, .senora-copy h2, .senora-portfolio-head h2, .senora-cta h2),
    .senora-news-page .senora-about-heading { font-size: 36px; }
}
@media (max-width: 767px) {
    .senora-page .senora-hero h1 { font-size: 34px; line-height: 1.4; }
    .senora-page .senora-hero p { font-size: 15px; line-height: 1.75; }
    .senora-page :is(.senora-title h2, .senora-copy h2, .senora-portfolio-head h2, .senora-cta h2),
    .senora-news-page .senora-about-heading { font-size: 29px; }
    .senora-page :is(.senora-card h3, .senora-concierge-item h3, .senora-feature h3, .senora-portfolio-copy h3) { font-size: 21px; }
    .senora-page .senora-news-main h3 { font-size: 25px; }
    .senora-page .senora-news-item h3 { font-size: 20px; }
    .senora-page .senora-cinematic-bg::after { font-size: 64px; }
    .senora-page .senora-links a,
    .senora-news-page .senora-news-links a { font-size: 16px; line-height: 1.6; }
    .senora-news-page :is(.senora-news-title, .senora-about-title) { font-size: 32px; }
    .senora-news-page .senora-article h1 { font-size: 28px; }
    .senora-news-page .senora-article-content { font-size: 16px; line-height: 1.85; }
    .senora-news-page .senora-article-content h2 { font-size: 25px; }
    .senora-news-page .senora-article-content h3 { font-size: 21px; }
    .senora-news-page :is(.senora-news-feature-copy h2, .senora-news-feature h2, .senora-news-cta-band h2) { font-size: 25px; }
    .senora-page .senora-modal-head h3,
    .senora-news-page .senora-modal-head h3,
    .senora-modal .senora-modal-head h3 { font-size: 23px; }
    .bc_wrap .bc_detail_tour.senora-tour-detail .g-header h1 { font-size: 24px; line-height: 1.55; }
    .bc_wrap .bc_detail_tour.senora-tour-detail :is(h2, .g-overview > h3, .g-itinerary > h3) { font-size: 26px; }
    .bc_wrap .bc_detail_tour.senora-tour-detail .g-overview .description h3 { font-size: 18px; }
}
@media (max-width: 374px) {
    .senora-page .senora-hero h1 { font-size: 30px; }
    .senora-page .senora-modal-head h3,
    .senora-news-page .senora-modal-head h3,
    .senora-modal .senora-modal-head h3 { font-size: 21px; }
}
