/* Shared editorial heading scale. rem units follow the large-screen reading scale. */
:root{--title-brown:#795438;--title-accent:#946443;--title-section:clamp(1.875rem,3.1vw,2.875rem);--title-page:clamp(2.125rem,4vw,3.625rem)}
#main :is(h1,h2,h3){font-weight:500;color:var(--title-brown);letter-spacing:-.035em}
#main :is(h1,h2,h3) em{font-weight:inherit;color:var(--title-accent)}
#main h1{font-size:var(--title-page);line-height:1.22}
#main h2{font-size:var(--title-section);line-height:1.28}
#main :is(.dx-feature-card-body,.dx-tour-content,.dx-culture-ref-grid,.record-body) h3{font-size:clamp(1.375rem,1.8vw,1.625rem);line-height:1.35}
#main .dx-experience-intro h1{font-size:clamp(1.875rem,3.3vw,2.875rem)}
#main :is(.dx-directory-heading,.dx-contact-form,.dx-tour-dialog-scroll) h2{font-size:clamp(1.625rem,2.6vw,2.25rem)}
/* Headings on photographs and dark immersive surfaces need a light foreground. */
#main :is(.dx-flycam-content,.dx-profile-heading,.dx-pano-immersive,.dx-roadmap,.dx-culture-bottom,.dx-feature-copy) :is(h1,h2,h3){color:#fff8ed}
#main :is(.dx-flycam-content,.dx-profile-heading,.dx-culture-bottom) :is(h1,h2,h3) em{color:#f0d7ac}
#main .dx-flycam-content h1{font-size:clamp(2.75rem,6vw,5.75rem);line-height:1.16}
/* Keep the compact tour viewer controls at their existing component sizes. */
#main .dx-pano-immersive h1{font-size:1.6875rem}
#main .dx-pano-immersive h2{font-size:1.25rem}
@media(max-width:600px){#main .dx-flycam-content h1{font-size:clamp(2.5rem,10vw,3.75rem)}#main .dx-pano-immersive h1{font-size:1.3125rem}}

/* Text roles: 12 / 13 / 14 / 15 / 16 / 18px at the standard root size.
   Keep rem sizing so browser preferences and the wide-screen scale still work. */
:root{--text-micro:.75rem;--text-caption:.8125rem;--text-label:.875rem;--text-ui:.9375rem;--text-body:1rem;--text-lead:1.125rem}
body{font-size:var(--text-body);line-height:1.7}
body :is(.brand-text small,.footer-brand-row small){font-size:var(--text-caption)}
body .site-header .main-nav>a{font-size:var(--text-ui)}
body :is(.header-cta,.footer-nav-group>a){font-size:var(--text-label)}
body :is(.footer-nav-group>strong,.footer-bottom){font-size:var(--text-caption)}
#main :is(.dx-demo-badge,.detail-rank,.record-rank){font-size:var(--text-caption);line-height:1.45;letter-spacing:.07em;padding:.375rem .625rem}
#main :is(.dx-eyebrow,.eyebrow,.section-kicker,.dx-tour-label,.aside-label){font-size:var(--text-caption);line-height:1.6;letter-spacing:.12em}
#main :is(.dx-feature-card-body>p,.dx-360-library-body>small,.dx-culture-ref-grid small,.dx-artifact-card-copy small,.dx-tour-stops small,.dx-profile-actions-name>small,.dx-profile-related-grid small,.dx-event-copy>small,.dx-agenda-copy small,.dx-lunar-event small){font-size:var(--text-caption);line-height:1.6}
#main :is(.dx-art-caption,.art-note,.hero-footnote,.stats-note,.dx-data-note,.dx-artifact-note,.dx-contact-demo-note,.dx-360-copy>small,.dx-360-library-note,.dx-tour-dialog-note,.dx-pano-caption,.dx-media-disclosure,.dx-media-figure figcaption span){font-size:var(--text-caption);line-height:1.65}
#main :is(.dx-flycam-credit>span,.dx-flycam-credit>a,.dx-calendar-toolbar small,.dx-agenda-date small,.dx-event-date-badge small,.dx-calendar-legend,.dx-gallery-navigation>span){font-size:var(--text-micro);line-height:1.5}
#main :is(.dx-atlas-filters button,.dx-artifact-filters button,.dx-profile-nav a,.dx-contact-form label,.dx-quick-search,.dx-quick-search button,.dx-tour-stops ol,.dx-360-photo-label,.dx-experience-results small,.dx-atlas-results>button small){font-size:var(--text-label)}
#main :is(.dx-atlas-filters button span,.dx-pano-identity small,.dx-pano-places small,.dx-pano-demo-note>p,.dx-pano-demo-note>a){font-size:var(--text-caption)}
#main :is(.dx-atlas-results>button strong,.dx-tour-content>button,.dx-contact-open,.dx-contact-submit,.dx-light-button,.dx-360-button,.dx-profile-button,.dx-profile-action-links>a,.dx-area-links>a,.dx-feature-all,.dx-text-link,.dx-feature-card-body>span,.dx-360-library-body>a,.dx-artifact-navigation button){font-size:var(--text-ui)}
#main #dx-experience-search>button{font-size:var(--text-ui)}
#main :is(input,select,textarea){font-size:var(--text-body)}
#main :is(.dx-tour-intro,.dx-360-library-body>p,.dx-culture-ref-grid p,.dx-tour-dialog-stops p,.dx-contact-form p){font-size:var(--text-body);line-height:1.75}
@media(max-width:1000px){body .site-header .main-nav>a{font-size:1.25rem}}
@media(max-width:420px){#main #dx-experience-search>button{font-size:0}}

#main :is(.directory-tools>label,.dx-filter-search>span:first-child,.dx-directory-spotlight small){font-size:var(--text-caption)}
#main :is(.results-line,.results-line button,.record-more,.dx-directory-heading>a,.load-wrap .button){font-size:var(--text-ui)}
#main .facts span{font-size:var(--text-caption);letter-spacing:.08em}
#main .facts strong{font-size:var(--text-body)}
#main .dx-pano-immersive .dx-pano-identity h1{color:var(--title-brown)}
#main .dx-pano-stage-label>span{font-size:var(--text-caption)}
/* Compact map list heading, shared by home and the area page. */
#main .dx-atlas-sidebar-head{font-size:var(--text-caption);line-height:1.5;letter-spacing:.025em;gap:.5rem;white-space:nowrap}
#main .dx-atlas-sidebar-head strong{font-size:inherit;font-weight:600}
#main .dx-atlas-sidebar-head output{font-size:inherit;letter-spacing:0;flex-shrink:0}

/* Keep the 360 entry visible at every breakpoint. */
body .site-header .header-cta{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;flex-shrink:0;min-height:2.75rem;white-space:nowrap}
@media(min-width:1001px) and (max-width:1400px){
 body .site-header{padding-inline:1.25rem;gap:1rem}
 body .site-header .main-nav{gap:1.5rem}
 body .site-header .header-cta{padding-inline:.75rem}
 body .header-cta-label{display:none}
}
@media(max-width:1000px){
 body .site-header{gap:.625rem}
 body .site-header .brand{min-width:0;margin-right:auto}
 body .site-header .header-cta{order:2;padding:.5rem .625rem;font-size:var(--text-caption)}
 body .site-header .menu-toggle{order:3;flex-shrink:0}
 body .header-cta-label{display:none}
 body .site-header .header-cta .material-symbols-outlined{display:none}
}
@media(max-width:390px){body .site-header{padding-inline:.75rem;gap:.5rem}body .brand-text small{font-size:var(--text-micro)}}

/* Card metadata stays quieter than titles and actions across all collections. */
#main :is(.dx-feature-card-body>p,.dx-tour-label,.dx-tour-stops small,.record-body>.eyebrow,.dx-360-library-body>small,.dx-culture-ref-grid small,.dx-artifact-card-copy small,.dx-profile-related-grid small,.dx-directory-spotlight small,.dx-event-copy>small,.dx-agenda-copy small,.dx-lunar-event small){font-size:var(--text-micro);font-weight:500;letter-spacing:.06em;line-height:1.55}

/* Mobile reading rhythm: preserve label scale, balance titles, avoid cramped controls. */
@media(max-width:600px){
 #main :is(h1,h2,h3){text-wrap:balance;overflow-wrap:break-word}
 #main h2{font-size:clamp(1.625rem,6.8vw,1.875rem);line-height:1.3}
 #main :is(.dx-feature-card-body,.dx-tour-content,.dx-culture-ref-grid,.record-body) h3{font-size:1.375rem;line-height:1.35}
 #main :is(.dx-artifact-card-copy strong,.dx-profile-related-grid strong){font-family:'Noto Serif',Georgia,serif;font-size:1.375rem;font-weight:500;line-height:1.35;text-wrap:balance}
 #main :is(.dx-profile-body section>p:not(.dx-eyebrow),.dx-culture-ref-hero p:not(.dx-eyebrow),.dx-directory-copy>p:not(.dx-eyebrow),.dx-artifact-heading>p){font-size:1rem;line-height:1.75}
 #main .dx-profile-breadcrumb{font-size:.8125rem;line-height:1.6}
 #main .dx-profile-action-links>a{font-size:.8125rem;gap:.375rem;min-height:2.75rem;padding:.625rem .375rem;white-space:nowrap}
 #main .dx-profile-action-links small{font-size:.75rem}
 #main .dx-profile-action-links .material-symbols-outlined{font-size:1.125rem}
 #main .dx-pano-immersive .dx-pano-identity small{display:block;font-size:.75rem;line-height:1.4;letter-spacing:.025em;text-wrap:balance}
 #main .dx-pano-immersive .dx-pano-identity h1{font-size:1.125rem;white-space:normal;line-height:1.3}
 #main .dx-pano-demo-note>a{font-size:.75rem;white-space:nowrap}
 #main .dx-pano-demo-note>p{font-size:.75rem}
}
@media(max-width:360px){
 body .site-header .brand-mark{width:2.25rem;height:2.25rem;flex-shrink:0}
 body .site-header .brand{gap:.375rem}
 body .site-header .brand-text strong{font-size:1rem}
 body .site-header .header-cta{padding-inline:.5rem;min-width:3rem}
 body .site-header .header-cta>span{font-size:.875rem}
}
