/* One type scale for every page. Kept last so page layouts cannot redefine text roles. */
:root {
 --xinoble-body: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
 --xinoble-display: var(--xinoble-body);
 --xinoble-type-h1: clamp(2rem, 3.5vw, 3.5rem);
 --xinoble-type-h2: clamp(1.625rem, 2.5vw, 2.25rem);
 --xinoble-type-h3: clamp(1.25rem, 1.6vw, 1.5rem);
 --xinoble-type-h4: 1.125rem;
 --xinoble-type-body: 1rem;
 --xinoble-type-label: .8125rem;
 --xinoble-type-metric: clamp(1.75rem, 3vw, 3rem);
}
body { font-family: var(--xinoble-body); font-size: var(--xinoble-type-body); line-height: 1.8; }
#main-content :is(h1,h2,h3,h4,h5,h6), .site-footer :is(h2,h3,h4) { font-family: var(--xinoble-body); font-weight: 500; line-height: 1.35; letter-spacing: .02em; }
#main-content h1 { font-size: var(--xinoble-type-h1); }
#main-content h2, .site-footer h2 { font-size: var(--xinoble-type-h2); }
#main-content h3, .site-footer h3 { font-size: var(--xinoble-type-h3); }
#main-content h4, .site-footer h4 { font-size: var(--xinoble-type-h4); }
#main-content h5 { font-size: 1.0625rem; }
#main-content h6 { font-size: 1rem; }
#main-content :is(p,li,dd,dt,address,blockquote), .site-footer :is(p,li,address) { font-family: var(--xinoble-body); font-size: var(--xinoble-type-body); font-style: normal; line-height: 1.8; letter-spacing: normal; }
#main-content :is(h1,h2,h3,h4,h5,h6) :is(span,a,small,strong), #main-content p :is(span,a) { font-family: inherit; font-size: inherit; line-height: inherit; letter-spacing: inherit; }
#main-content :is(.xinoble-kicker,.xinoble-card-number,.arrival-card-index,.wedding-fine-print,.arrival-map-note,.venue-arrangement-note), #main-content small { font-size: var(--xinoble-type-label); line-height: 1.7; }
#main-content .xinoble-kicker { letter-spacing: .12em; }
#main-content :is(.xinoble-button,.xinoble-text-link,.hub-index a), .site-nav a, .site-nav .menu a { font-family: var(--xinoble-body); font-size: .875rem; line-height: 1.6; }
#main-content :is(.home-faq-item,.hub-faq-item) summary { font-family: var(--xinoble-body); font-size: 1rem; line-height: 1.7; }
#main-content :is(.home-overview-facts article>strong,.hub-venue-facts strong,.wedding-venue-facts dd,.arrival-practical-grid article>strong) { font-family: var(--xinoble-body); font-size: var(--xinoble-type-metric); font-weight: 500; line-height: 1.2; }
#main-content :is(.xinoble-copy-keep,.xinoble-copy-tail,.xinoble-copy-flow) { display: inline; margin: 0; font: inherit; color: inherit; letter-spacing: inherit; }
#main-content .editorial-fact-ribbon dd { font-size: 1.25rem; overflow-wrap: anywhere; }
#main-content .hub-service-copy>strong, #main-content .editorial-related-copy>strong { font-family: var(--xinoble-body); font-size: var(--xinoble-type-h3); font-weight: 500; line-height: 1.35; }
#main-content :is(.hub-choice-topline,.hub-service-copy,.editorial-related-copy) h3 { color: inherit; margin: .4rem 0; }
#main-content :is(.hub-choice-copy,.hub-service-copy,.editorial-related-copy) p { color: inherit; margin: .75rem 0 0; }
.about-page-body, .travel-page-body { max-width: 88rem; margin-inline: auto; padding-inline: var(--xinoble-gutter,clamp(1.25rem,4vw,4.5rem)); }
.about-section, .travel-section { padding-block: clamp(3rem,6vw,6rem); border-bottom: 1px solid var(--xinoble-line); }
.about-intro { max-width: 52rem; }
.about-stats, .travel-driving-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1.5rem; margin-top: 2.5rem; }
.about-stat { padding-top: 1.25rem; border-top: 1px solid var(--xinoble-line); }
#main-content .about-stat strong, #main-content .about-year { display: block; font-family: var(--xinoble-body); font-size: var(--xinoble-type-metric); line-height: 1.2; font-weight: 500; color: var(--xinoble-ink); }
.about-stat span { display: block; margin-top: .75rem; }
.about-history, .about-contact-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; margin-top: 2rem; }
.about-history article { border-top: 1px solid var(--xinoble-line); padding-top: 1.5rem; }
.about-story { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; margin-top: 3rem; }
.about-story figure { margin: 0; }
.about-story img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.about-contact-grid article { padding: 1.5rem; background: var(--xinoble-paper); border: 1px solid var(--xinoble-line); }
#main-content .about-contact-phone { display: inline-block; font-size: var(--xinoble-type-h3); color: var(--xinoble-ink); margin-block: .75rem; text-decoration: none; }
.travel-driving-card { padding: 1.5rem; border: 1px solid var(--xinoble-line); background: var(--xinoble-paper); }
.travel-driving-card h3 { margin: 0 0 1.5rem; }
.travel-metrics { display: grid; gap: 1rem; margin: 0; }
.travel-metrics>div { display: flex; flex-direction: column-reverse; gap: .35rem; }
#main-content .travel-metrics dt { font-size: var(--xinoble-type-label); color: var(--xinoble-muted); }
#main-content .travel-metrics dd { margin: 0; line-height: 1.2; }
#main-content .travel-metrics strong { font-size: var(--xinoble-type-metric); font-weight: 500; font-variant-numeric: tabular-nums; }
#main-content .travel-metrics dd span { font-size: .875rem; margin-left: .35rem; }
#main-content .travel-metrics .travel-distance strong { font-size: 1.75rem; }
.travel-heading { max-width: 52rem; }
.travel-map-layout { display: grid; grid-template-columns: 1.5fr 1fr; gap: 3rem; margin-top: 2rem; align-items: start; }
.travel-map-layout .xinoble-map { height: 32rem; }
.travel-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 2rem; }
.travel-info-card { padding: 1.5rem; border: 1px solid var(--xinoble-line); }
.travel-info-card dl>div { padding-block: 1rem; border-bottom: 1px solid var(--xinoble-line); }
.travel-info-card dd { margin: .35rem 0 0; }
.travel-origin-links { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 1.5rem; }
.travel-tour-map { margin: 2rem 0 0; }
.travel-tour-map figcaption { margin-bottom: 1rem; }
.xinoble-map-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #e9e5dc; }
.xinoble-map-frame { min-height: 18rem; }
@media(max-width:60rem) { .about-stats,.travel-driving-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .about-history,.about-contact-grid { grid-template-columns: 1fr; } .about-story,.travel-map-layout { grid-template-columns: 1fr; gap: 1.75rem; } }
@media(max-width:38rem) { .travel-driving-grid,.travel-info-grid { grid-template-columns: 1fr; } .travel-metrics { grid-template-columns: 1fr 1fr; align-items: end; } .travel-map-layout .xinoble-map { height: 27rem; } }

/* Optional web booking after a mobile App attempt; never moves focus or scroll. */
#main-content .xinoble-booking-help { margin: .75rem 0 0; font-size: var(--xinoble-type-label); line-height: 1.6; color: inherit; }
.xinoble-booking-help[hidden] { display: none; }
.xinoble-booking-help a { display: inline-block; padding-block: .5rem; color: inherit; text-decoration: underline; text-underline-offset: .2em; }
