/* Frontend readability and responsive safeguards.
   Loaded after page styles so reference layouts keep their visual identity. */

:where(.about-reference-page,.contact-reference-page,.faq-reference-page,.news-page,.events-page,.smart-page,.culinary-page,.culinary-detail-page,.culture-page,.city-map-page,.explore-reference-page,.planner-page,.trips-page,.tourism-detail-page) {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

/* About */
.about-reference-hero-content>p,.about-reference-values p,.about-reference-intro>p,
.about-reference-vision-card p,.about-reference-vision-card li,.about-reference-milestone p,
.about-reference-partners>div>p,.about-reference-app p { font-size: .78rem; line-height: 1.75; }
.about-reference-values h2,.about-reference-stat b,.about-reference-milestone h3,
.about-reference-partner b { font-size: .78rem; }
.about-reference-stat small,.about-reference-section-head>span,.about-reference-partners>div>span,
.about-reference-app>div>span { font-size: .7rem; }
.about-reference-app-actions a { min-height: 42px; font-size: .76rem; }

/* Contact */
.contact-reference-hero-content>p,.contact-reference-values p,.contact-reference-lead,
.contact-reference-cards p,.contact-reference-hours p,.contact-reference-map-label p,
.contact-reference-quick>div:nth-child(2)>p { font-size: .76rem; line-height: 1.7; }
.contact-reference-values b,.contact-reference-field>span,.contact-reference-cards b,
.contact-reference-hours b,.contact-reference-map-label b,.contact-reference-help b { font-size: .75rem; }
.contact-reference-input input,.contact-reference-input select,.contact-reference-field textarea { font-size: .82rem; }
.contact-reference-error,.contact-reference-alert,.contact-reference-map-label a,
.contact-reference-help small { font-size: .7rem; }
.contact-reference-send { min-height: 44px; font-size: .78rem; }
.contact-reference-main { margin-top: 32px; }

/* FAQ */
.faq-reference-hero-content>p,.faq-reference-contact p,.faq-reference-answer,
.faq-reference-support p { font-size: .78rem; line-height: 1.75; }
.faq-reference-question span { font-size: .84rem; line-height: 1.5; }
.faq-reference-category b,.faq-reference-contact b,.faq-reference-contact a,
.faq-reference-channels a { font-size: .74rem; }
.faq-reference-category>span,.faq-reference-popular,.faq-reference-popular button,
.faq-reference-empty span { font-size: .68rem; }
.faq-reference-search input { font-size: .82rem; }

/* News */
.news-hero-copy>p,.news-featured-copy>p,.news-article p,.news-newsletter p { font-size: .75rem; line-height: 1.7; }
.news-featured-copy time,.news-article time,.news-update small,.news-popular time,
.news-category-list span,.news-author b { font-size: .68rem; }
.news-update b,.news-category-list b,.news-popular b,.news-article-body>a,
.news-read,.news-section-head>a,.news-section-head>span { font-size: .72rem; }
.news-article h3 { min-height: auto; font-size: .84rem; }
.news-search input,.news-filter-button,.news-newsletter input { font-size: .78rem; }

/* Events */
.events-page :where(.events-hero-copy>p,.events-card p,.events-featured p,.events-subscribe p,
.events-calendar-event p,.events-empty p) { font-size: .75rem; line-height: 1.65; }
.events-page :where(.events-meta,.events-card footer,.events-featured-meta,.events-calendar-event time,
.events-section-head>a,.events-section-head>span,.events-toolbar button,.events-toolbar a) { font-size: .7rem; }
.events-page :where(.events-card h3,.events-calendar-event h3) { font-size: .84rem; line-height: 1.45; }
.events-page :where(input,select,button) { font-size: .75rem; }

/* Smart City */
.smart-page :where(.smart-hero-copy>p,.smart-panel p,.smart-service-list small,.smart-project-list small,
.smart-open-data>p,.smart-cta p,.smart-cctv-description) { font-size: .74rem; line-height: 1.65; }
.smart-page :where(.smart-metric h3,.smart-stats span,.smart-stats small,.smart-sources small,
.smart-service-list b,.smart-project-list b,.smart-datasets a,.smart-cta b,.smart-cta small) { font-size: .7rem; }
.smart-page :where(.smart-primary,.smart-secondary,button,select) { font-size: .74rem; }
.smart-metric footer { font-size: .65rem; }

/* Culinary index and detail */
.culinary-page :where(.culinary-hero-copy p,.culinary-food-body p,.culinary-recommend p,
.culinary-guide p,.culinary-panel p,.culinary-contribution-note) { font-size: .75rem; line-height: 1.65; }
.culinary-page :where(.culinary-meta,.culinary-food-tag,.culinary-section-head>a,
.culinary-section-head>span,.culinary-toolbar,.culinary-guide small) { font-size: .7rem; }
.culinary-page :where(.culinary-food-body h3,.culinary-recommend h3) { font-size: .82rem; }
.culinary-page :where(input,select,textarea,button) { font-size: .75rem; }
.culinary-detail-description,.culinary-detail-about blockquote,.culinary-review-list article p { font-size: .75rem; }
.culinary-detail-info-grid small,.culinary-detail-panel>header small,.culinary-review-form label,
.culinary-detail-actions small,.culinary-related p,.culinary-detail-hero-meta { font-size: .68rem; }
.culinary-detail-info-grid b,.culinary-detail-info-grid a,.culinary-review-list article b,
.culinary-detail-actions b,.culinary-related h3 { font-size: .74rem; }
.culinary-review-form textarea,.culinary-review-form>button { font-size: .75rem; }

/* Culture */
.culture-hero-copy p,.culture-did p,.culture-time-card p,.culture-card p,
.culture-festival p,.culture-fact span,.culture-feature span { font-size: .75rem; line-height: 1.65; }
.culture-time-card h3,.culture-card h3,.culture-festival h3,.culture-fact b,
.culture-feature b { font-size: .8rem; }
.culture-year,.culture-tag,.culture-article-meta,.culture-card-footer,.culture-festival time,
.culture-section-head>a,.culture-section-head>span,.culture-search input { font-size: .7rem; }

/* Map and Explore */
.city-map-page :where(.city-map-hero-copy>p,.city-map-place p,.city-map-detail-description,
.city-map-recommend p,.city-map-feature p,.city-map-transit-heading p) { font-size: .75rem; line-height: 1.6; }
.city-map-page :where(.city-map-place-kind,.city-map-place-rating,.city-map-detail-kind,
.city-map-detail-meta,.city-map-rec-body>span,.city-map-panel-title span,.city-map-tab,
.city-map-category,.city-map-route-summary small) { font-size: .69rem; }
.city-map-page :where(.city-map-place strong,.city-map-recommend h3,.city-map-detail h3) { font-size: .82rem; }
.city-map-page :where(input,select,button) { font-size: .74rem; }
.explore-reference-page :where(.hero-copy p,.destination-card p,.map-subtitle,.map-stat,
.planner p,.category-card span,.category-card small) { font-size: .75rem; line-height: 1.6; }
.explore-reference-page :where(.destination-card h3,.category-card b) { font-size: .82rem; }

/* Trip planner and saved trips */
.planner-page :where(.planner-hero p,.planner-panel p,.planner-step p,.planner-tip p,
.planner-result p,.planner-modal p) { font-size: .75rem; line-height: 1.65; }
.planner-page :where(label,small,.planner-meta,.planner-step span,.planner-badge) { font-size: .69rem; }
.planner-page :where(input,select,textarea,button) { font-size: .76rem; }
.trips-page :where(.trips-hero-row>div>p,.trips-form-hero .trips-wrap>p,.trip-card>p,
.trip-detail-description,.trip-item p,.trips-empty p) { font-size: .75rem; line-height: 1.65; }
.trips-page :where(.trip-card-meta span,.trip-status,.trip-privacy,.trip-type,
.trip-detail,.trip-item small,label) { font-size: .68rem; }
.trips-page :where(input,select,textarea,button) { font-size: .76rem; }

/* Authentication and legacy frontend pages. */
:where(.login-page,.register-page,.verify-page,.auth-page) :where(p,label,small,a) { line-height: 1.55; }
:where(.login-page,.register-page,.verify-page,.auth-page) :where(input,select,textarea,button) { font-size: .85rem; }

/* Shared responsive safeguards */
@media (max-width: 900px) {
    :where(.about-reference-page,.contact-reference-page,.faq-reference-page,.news-page,.events-page,
    .smart-page,.culinary-page,.culinary-detail-page,.culture-page,.city-map-page,
    .explore-reference-page,.planner-page,.trips-page,.tourism-detail-page) :where(img,iframe,video,canvas,svg) {
        max-width: 100%;
    }
    .about-reference-journey { overflow-x: auto; }
    .contact-reference-main,.faq-reference-layout,.news-layout,.events-layout,.culinary-layout,
    .city-map-shell,.planner-layout,.trip-detail-layout { min-width: 0; }

}

@media (max-width: 720px) {
    :where(.about-reference-page,.contact-reference-page,.faq-reference-page,.news-page,.events-page,
    .smart-page,.culinary-page,.culinary-detail-page,.culture-page,.city-map-page,
    .explore-reference-page,.planner-page,.trips-page,.tourism-detail-page) :where(input,select,textarea) {
        font-size: 16px;
    }
    .about-reference-wrap,.contact-reference-wrap,.faq-reference-wrap,.news-wrap,.events-wrap,
    .smart-wrap,.culinary-wrap,.culinary-detail-wrap,.culture-wrap,.city-map-wrap,
    .explore-wrap,.planner-wrap,.trips-wrap,.tourism-detail-wrap { max-width: calc(100% - 28px); }
    .contact-reference-main,.faq-reference-panel,.news-panel,.events-panel,.smart-panel,
    .culinary-panel,.culture-panel,.city-map-panel,.planner-panel { padding: 1rem; }
    .contact-reference-map { height: 320px; }
    .contact-reference-main { margin-top: 24px; }
    .city-map-shell { margin-inline: 14px; }
}

@media (max-width: 430px) {
    .about-reference-stats,.about-reference-partners,.contact-reference-cards,
    .faq-reference-side,.news-grid,.events-grid,.smart-metrics,.culinary-recommend-grid,
    .culture-heritage-grid,.city-map-rec-grid,.trips-grid { grid-template-columns: 1fr; }
    .contact-reference-map-label { inset: auto 10px 10px; width: auto; }
    .faq-reference-question { gap: .7rem; }
    .faq-reference-answer { padding-right: 5px; }
}

@media (prefers-reduced-motion: reduce) {
    :where(.about-reference-page,.contact-reference-page,.faq-reference-page,.news-page,.events-page,
    .smart-page,.culinary-page,.culinary-detail-page,.culture-page,.city-map-page,
    .explore-reference-page,.planner-page,.trips-page,.tourism-detail-page) *,
    :where(.about-reference-page,.contact-reference-page,.faq-reference-page,.news-page,.events-page,
    .smart-page,.culinary-page,.culinary-detail-page,.culture-page,.city-map-page,
    .explore-reference-page,.planner-page,.trips-page,.tourism-detail-page) *::before,
    :where(.about-reference-page,.contact-reference-page,.faq-reference-page,.news-page,.events-page,
    .smart-page,.culinary-page,.culinary-detail-page,.culture-page,.city-map-page,
    .explore-reference-page,.planner-page,.trips-page,.tourism-detail-page) *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
