/* Contact — the homepage palette, photography, type and glass carried into a visitor guide. */
.bcm-contact-page { background: #f5f1e7; color: #173e31; }
.bcm-contact-page :is(h1,h2,h3,h4,p,figure) { margin-top: 0; }
.bcm-contact-page :is(h1,h2,h3,h4) { font-weight: 400; }
.bcm-contact-page h2 { margin-bottom: 26px; font-family: var(--bcm-serif); font-size: clamp(42px,4.8vw,72px); letter-spacing: -.04em; line-height: 1.05; }
.bcm-contact-page a { text-decoration: none; }
.bcm-contact-page svg { flex: none; width: 22px; height: 22px; }
.contact-section { padding-block: clamp(65px,7vw,105px); scroll-margin-top: 110px; }
.bcm-contact-page .eyebrow { font-size: 10px; letter-spacing: .2em; }
.contact-hero { position: relative; isolation: isolate; overflow: hidden; background: #062b23; color: #fffdf7; }
.contact-hero-image { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 68% 46%; }
.contact-hero::before { position: absolute; z-index: -2; inset: 0; content: ''; background: linear-gradient(90deg,rgba(3,29,23,.94),rgba(3,29,23,.7) 44%,rgba(3,29,23,.2)),linear-gradient(0deg,#062b23,transparent 55%); }
.contact-hero-inner { min-height: 530px; display: grid; grid-template-columns: 1.3fr .7fr; align-items: center; gap: 80px; padding-block: 75px 60px; }
.contact-hero .eyebrow { color: #e4c78d; }
.contact-hero h1 { margin-bottom: 26px; font-family: var(--bcm-serif); font-size: clamp(64px,7vw,100px); letter-spacing: -.055em; line-height: 1; }
.contact-hero h1 span { color: #e4c78d; }
.contact-hero-intro { margin-bottom: 0; font-size: clamp(22px,2.2vw,30px); font-weight: 400; line-height: 1.5; color: #f1eee5; }
.contact-small-label { display: block; font-size: 10px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.contact-hero-plaque { justify-self: end; width: 100%; max-width: 345px; padding: 32px; border: 1px solid rgba(237,215,170,.45); border-radius: 18px; background: rgba(9,42,31,.4); box-shadow: inset 0 1px rgba(255,255,255,.12),0 24px 60px rgba(0,0,0,.14); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.contact-hero-plaque .contact-small-label { color: #e4c78d; }
.contact-hero-plaque p { margin: 23px 0 20px; font-family: var(--bcm-serif); font-size: 30px; line-height: 1.3; }
.contact-hero-plaque strong { color: #e4c78d; font-weight: 400; }
.contact-hero-plaque > span:last-of-type { font-size: 12px; color: #e3e7df; }
.contact-hero-plaque > a { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 25px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.22); color: #fffdf7; font-size: 11px; letter-spacing: .03em; }
.contact-jumpnav { display: flex; gap: 38px; padding-block: 20px; border-top: 1px solid rgba(255,255,255,.2); }
.contact-jumpnav a { padding: 8px 0; color: #fffdf7; font-size: 12px; }
.contact-jumpnav a:hover { color: #e4c78d; }
.contact-location-grid { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); gap: 65px; align-items: center; }
.contact-location-copy h2 span,.contact-resources h2 span { color: #8a7043; }
.contact-location-name { margin: 0 0 8px; font-size: 18px; font-weight: 600; }
.contact-location-copy > p:not(.eyebrow):not(.contact-location-name) { color: #526158; font-size: 14px; line-height: 1.8; }
.contact-location-copy .contact-date { margin-top: 20px; }
.contact-action { display: inline-flex; align-items: center; justify-content: space-between; gap: 25px; min-height: 48px; margin-top: 10px; padding: 16px 22px; border: 1px solid #1f5141; border-radius: 5px; background: #07372a; color: #fffdf7; font-size: 12px; }
.contact-action:hover { color: #e4c78d; background: #04271f; }
.contact-map-card { min-width: 0; margin: 0; padding: 10px; border: 1px solid rgba(255,255,255,.9); border-radius: 15px; background: rgba(255,255,255,.48); box-shadow: 0 25px 65px rgba(28,52,34,.1); }
.contact-map-open { display: block; color: #173e31; cursor: zoom-in; }
.contact-map-open img { display: block; width: 100%; height: auto; border-radius: 8px; }
.contact-map-caption { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 16px 8px 7px; font-size: 11px; }
.contact-map-caption > span { display: inline-flex; align-items: center; gap: 12px; color: #526158; }
.contact-map-caption svg { width: 17px; height: 17px; }
.contact-transport { position: relative; background: radial-gradient(ellipse at 95% 0,rgba(170,146,83,.13),transparent 50%),#062b23; color: #fffdf7; }
.contact-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 65px; margin-bottom: 34px; }
.contact-section-heading h2 { margin-bottom: 0; }
.contact-transport .eyebrow,.contact-organizer .eyebrow { color: #e4c78d; }
.contact-transport h2 span,.contact-organizer h2 span { color: #e4c78d; }
.contact-section-heading > p { max-width: 340px; margin-bottom: 6px; color: #c6d2c8; font-size: 14px; line-height: 1.85; }
.contact-transport-nav { display: flex; gap: 12px; padding-bottom: 12px; margin-bottom: 40px; flex-wrap: wrap; }
.contact-transport-nav a { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; padding: 14px 20px; border: 1px solid rgba(229,209,166,.28); border-radius: 8px; background: rgba(255,255,255,.055); color: #fffdf7; font-size: 12px; }
.contact-transport-nav a:hover { background: rgba(255,255,255,.11); color: #ead5a9; }
.contact-mode { scroll-margin-top: 115px; }
.contact-mode + .contact-mode { margin-top: 50px; }
.contact-mode > h3 { display: flex; align-items: center; gap: 15px; margin-bottom: 22px; font-family: var(--bcm-serif); font-size: 30px; }
.contact-mode > h3 > svg { color: #e4c78d; width: 27px; height: 27px; }
.contact-mode h3 small { margin-left: auto; font-family: var(--bcm-sans,Manrope,sans-serif); font-size: 9px; letter-spacing: .18em; color: #aabfb0; }
.contact-station-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.contact-tram-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.contact-station-card { min-width: 0; padding: 27px; border: 1px solid rgba(255,255,255,.16); border-radius: 13px; background: linear-gradient(125deg,rgba(255,255,255,.085),rgba(255,255,255,.025)); box-shadow: inset 0 1px rgba(255,255,255,.04); }
.contact-station-card .contact-small-label { color: #bdcabc; margin-bottom: 12px; }
.contact-station-card h4 { margin-bottom: 20px; font-family: var(--bcm-serif); font-size: 27px; }
.contact-station-card h4 a { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #fffdf7; }
.contact-station-card h4 a:hover { color: #e4c78d; }
.contact-station-card h4 svg { width: 18px; height: 18px; color: #e4c78d; }
.contact-route-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.contact-route-chips > span { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 31px; padding: 6px 10px; border: 1px solid rgba(225,206,166,.3); border-radius: 5px; background: rgba(0,0,0,.1); color: #eedab2; font-size: 11px; font-weight: 600; font-variant-numeric: tabular-nums; }
.bcm-contact-page .contact-station-sub { margin: 20px 0 0; font-size: 11px; line-height: 1.8; color: #bacabd; }
.contact-stop-list { display: grid; gap: 12px; }
.contact-stop { border: 1px solid rgba(255,255,255,.16); border-radius: 12px; background: rgba(255,255,255,.035); overflow: hidden; }
.contact-stop summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 24px 27px; cursor: pointer; list-style: none; }
.contact-stop summary::-webkit-details-marker { display: none; }
.contact-stop summary .contact-small-label { margin-bottom: 5px; color: #bdcabc; font-size: 9px; }
.contact-stop summary strong { display: block; font-size: 17px; font-weight: 500; }
.contact-stop-area { display: block; margin-top: 6px; color: #b4c4b8; font-size: 11px; }
.contact-stop-toggle { position: relative; flex: none; width: 32px; height: 32px; border: 1px solid rgba(229,209,166,.3); border-radius: 50%; }
.contact-stop-toggle::before,.contact-stop-toggle::after { position: absolute; top: 15px; left: 10px; width: 10px; height: 1px; content: ''; background: #e4c78d; }
.contact-stop-toggle::after { rotate: 90deg; transition: rotate .25s ease; }
.contact-stop[open] .contact-stop-toggle::after { rotate: 0deg; }
.contact-stop[open] summary { border-bottom: 1px solid rgba(255,255,255,.1); }
.contact-stop-body { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 25px; padding: 25px 27px; }
.contact-route-label { font-size: 10px; letter-spacing: .1em; color: #bacabd; text-transform: uppercase; }
.contact-stop-link { display: inline-flex; justify-self: start; align-items: center; gap: 16px; min-height: 44px; color: #e4c78d; font-size: 11px; }
.contact-stop-link svg { width: 17px; height: 17px; }
.bcm-contact-page .contact-route-note { max-width: 760px; margin: 36px 0 0; color: #b4c4b8; font-size: 12px; line-height: 1.9; }
.contact-resource-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px; }
.contact-resource-card { position: relative; min-width: 0; padding: 38px; border: 1px solid rgba(255,255,255,.9); border-radius: 16px; background: rgba(255,253,247,.65); box-shadow: 0 20px 55px rgba(28,52,34,.065); }
.contact-resource-icon { position: absolute; top: 30px; right: 30px; display: grid; place-items: center; width: 49px; height: 49px; border: 1px solid rgba(6,43,35,.17); border-radius: 50%; color: #41624b; }
.contact-resource-card .contact-small-label { max-width: calc(100% - 45px); font-size: 9px; line-height: 1.8; color: #677563; }
.contact-resource-card h3 { font-size: 24px; letter-spacing: .02em; margin-bottom: 35px; }
.contact-resource-card .contact-hours { margin-bottom: 17px; font-family: var(--bcm-serif); font-size: clamp(34px,3vw,44px); color: #173e31; line-height: 1.1; }
.contact-hours span { color: #a18b5d; }
.contact-resource-card > p:not(.contact-small-label):not(.contact-hours),.contact-night-info p { color: #526158; font-size: 13px; line-height: 1.9; }
.contact-resource-card .contact-resource-detail { font-size: 12px; }
.contact-resource-links { margin-top: 26px; }
.contact-resource-links a { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding-block: 15px; min-height: 48px; border-top: 1px solid rgba(6,43,35,.15); color: #173e31; font-size: 12px; line-height: 1.7; }
.contact-resource-links svg { width: 17px; height: 17px; }
.contact-resource-links a:hover { color: #926f32; }
.contact-night-info { margin-block: 20px; }
.contact-night-info summary { padding-block: 8px; font-size: 13px; cursor: pointer; }
.contact-night-info p { margin: 12px 0 0; }
.contact-organizer { background: #082e24; color: #fffdf7; }
.contact-organizer-inner { display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); gap: 90px; }
.contact-organizer-heading > img { width: 150px; height: auto; margin-top: 25px; filter: brightness(0) invert(1); mix-blend-mode: screen; }
.contact-organizer-details { min-width: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 35px; align-items: start; padding-top: 16px; }
.contact-address h3 { margin-bottom: 23px; font-family: var(--bcm-serif); font-size: 29px; line-height: 1.2; }
.contact-address address { font-size: 13px; font-style: normal; line-height: 1.9; color: #c4d0c5; }
.contact-phone { display: inline-block; margin-top: 24px; color: #fffdf7; font-size: 18px; }
.contact-secretariat { display: block; margin-top: 6px; font-size: 11px; color: #aebfac; }
.contact-email-list a { position: relative; display: block; padding: 0 25px 22px 0; border-bottom: 1px solid rgba(255,255,255,.17); color: #fffdf7; }
.contact-email-list a + a { padding-top: 22px; }
.contact-email-list a span { display: block; margin-bottom: 7px; color: #b6c6b7; font-size: 11px; }
.contact-email-list strong { display: block; font-size: 14px; font-weight: 500; overflow-wrap: anywhere; }
.contact-email-list svg { position: absolute; right: 0; bottom: 24px; width: 17px; height: 17px; color: #e4c78d; }
.contact-map-dialog img { width: auto; max-width: 100%; max-height: calc(100dvh - 120px); }
@media (max-width: 1100px) {
 .contact-hero-inner { gap: 40px; }
 .contact-location-grid { gap: 35px; }
 .contact-organizer-inner { gap: 45px; grid-template-columns: .7fr 1.3fr; }
 .contact-organizer-details { grid-template-columns: 1fr; gap: 30px; }
 .contact-station-card { padding: 23px; }
}
@media (max-width: 760px) {
 .contact-section { padding-block: 52px; scroll-margin-top: 90px; }
 .bcm-contact-page h2 { font-size: clamp(38px,10vw,52px); }
 .contact-hero-image { object-position: 65% center; }
 .contact-hero::before { background: linear-gradient(180deg,rgba(3,29,23,.58),rgba(3,29,23,.85) 50%,#062b23); }
 .contact-hero-inner { min-height: 0; grid-template-columns: 1fr; padding-block: 48px 30px; gap: 30px; }
 .contact-hero .eyebrow { font-size: 8px; line-height: 1.9; }
 .contact-hero h1 { font-size: clamp(48px,12vw,70px); margin-bottom: 22px; }
 .contact-hero-intro { font-size: 21px; }
 .contact-hero-plaque { max-width: none; padding: 22px; border-radius: 13px; }
 .contact-hero-plaque p { font-size: 26px; margin-block: 16px; }
 .contact-hero-plaque p br { display: none; }
 .contact-hero-plaque > a { margin-top: 20px; }
 .contact-jumpnav { justify-content: space-between; gap: 14px; padding-block: 13px; }
 .contact-jumpnav a { font-size: 10px; min-height: 40px; display: flex; align-items: center; }
 .contact-location-grid { grid-template-columns: 1fr; gap: 30px; }
 .contact-location-copy h2 br { display: none; }
 .contact-location-name { font-size: 19px; }
 .contact-map-card { padding: 7px; border-radius: 11px; }
 .contact-map-caption { font-size: 10px; padding: 13px 5px 6px; }
 .contact-section-heading { display: block; margin-bottom: 28px; }
 .contact-section-heading > p { margin: 23px 0 0; max-width: none; font-size: 13px; }
 .contact-transport-nav { display: grid; grid-template-columns: 1fr; gap: 8px; margin-bottom: 28px; }
 .contact-transport-nav a { padding: 13px 16px; font-size: 12px; }
 .contact-mode { scroll-margin-top: 95px; }
 .contact-mode > h3 { font-size: 25px; gap: 11px; }
 .contact-mode h3 small { font-size: 8px; }
 .contact-station-grid,.contact-tram-grid { grid-template-columns: 1fr; gap: 12px; }
 .contact-station-card { padding: 23px; }
 .contact-station-card h4 { font-size: 27px; margin-bottom: 16px; }
 .contact-stop summary { padding: 21px; }
 .contact-stop summary strong { font-size: 16px; }
 .contact-stop-body { grid-template-columns: 1fr; gap: 20px; padding: 21px; }
 .contact-route-chips { gap: 6px; }
 .contact-route-chips > span { padding: 6px 9px; font-size: 10px; }
 .contact-resource-grid { grid-template-columns: 1fr; gap: 20px; }
 .contact-resource-card { padding: 28px 23px; border-radius: 13px; }
 .contact-resource-icon { top: 24px; right: 23px; width: 42px; height: 42px; }
 .contact-resource-card h3 { margin-bottom: 28px; font-size: 23px; }
 .contact-resource-card .contact-hours { font-size: 38px; }
 .contact-organizer-inner { grid-template-columns: 1fr; gap: 32px; }
 .contact-organizer-heading > img { width: 125px; margin-top: 0; }
 .contact-organizer-details { padding-top: 0; gap: 32px; }
 .contact-address h3 { font-size: 28px; margin-bottom: 17px; }
 .contact-email-list strong { font-size: 16px; }
 .contact-email-list a { padding-bottom: 22px; }
}
@media (prefers-reduced-motion: reduce) { .contact-stop-toggle::after { transition: none; } }
@media (prefers-reduced-transparency: reduce) { .contact-hero-plaque { background: #10392c; backdrop-filter: none; -webkit-backdrop-filter: none; } }

/* Contact refinement: cinematic entrance, larger map and a persistent transport guide. */
.contact-hero-inner { min-height: 575px; padding-block: 85px 68px; }
.contact-hero h1 { font-size: clamp(68px,7.7vw,110px); }
.contact-hero-plaque { position: relative; background: linear-gradient(140deg,rgba(255,255,255,.11),rgba(7,40,29,.45)); border-color: rgba(237,215,170,.5); box-shadow: inset 0 1px rgba(255,255,255,.22),0 25px 80px rgba(0,0,0,.22); }
.contact-hero-plaque::before { position: absolute; left: 32px; top: -1px; width: 70px; height: 1px; content: ''; background: #f0d69f; }
.contact-jumpnav a { position: relative; }
.contact-jumpnav a::after { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; background: #e4c78d; content: ''; scale: 0 1; transform-origin: left; transition: scale .25s ease; }
.contact-jumpnav a:hover::after,.contact-jumpnav a:focus-visible::after { scale: 1 1; }
.contact-location-grid { grid-template-columns: minmax(0,.62fr) minmax(0,1.38fr); gap: 60px; }
.contact-map-card { position: relative; padding: 12px; border-color: #fffdf7; background: linear-gradient(145deg,rgba(255,255,255,.85),rgba(255,255,255,.3)); box-shadow: 0 4px 12px rgba(28,52,34,.04),0 35px 85px rgba(28,52,34,.12); }
.contact-map-caption { padding-block: 20px 9px; }
.contact-transport-nav { position: sticky; z-index: 8; top: var(--contact-header-offset,112px); width: fit-content; max-width: 100%; flex-wrap: nowrap; gap: 5px; margin-bottom: 40px; padding: 6px; border: 1px solid rgba(229,209,166,.27); border-radius: 13px; background: rgba(5,37,28,.91); box-shadow: 0 12px 35px rgba(0,15,10,.2),inset 0 1px rgba(255,255,255,.07); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); overflow-x: auto; scrollbar-width: none; }
.contact-transport-nav::-webkit-scrollbar { display: none; }
.contact-transport-nav a { flex: none; border: 1px solid transparent; border-radius: 8px; background: transparent; white-space: nowrap; transition: background .25s ease,color .25s ease,border-color .25s ease; }
.contact-transport-nav a[aria-current="location"] { color: #f3dcac; background: rgba(237,215,170,.11); border-color: rgba(237,215,170,.3); }
.contact-mode { scroll-margin-top: calc(var(--contact-header-offset,112px) + 92px); }
.contact-station-card { position: relative; background: linear-gradient(135deg,rgba(255,255,255,.11),rgba(255,255,255,.025)); border-color: rgba(255,255,255,.19); transition: opacity .75s ease,border-color .3s ease,box-shadow .3s ease,translate .65s ease; }
.contact-station-card::before { position: absolute; top: 0; left: 27px; width: 42px; height: 1px; content: ''; background: rgba(228,199,141,.75); }
.contact-stop { transition: border-color .25s ease,background .25s ease; }
.contact-stop[open] { border-color: rgba(228,199,141,.4); background: rgba(255,255,255,.055); }
.contact-stop summary:hover { background: rgba(255,255,255,.035); }
.contact-stop-toggle { transition: background .25s ease,border-color .25s ease; }
.contact-stop[open] .contact-stop-toggle { background: rgba(228,199,141,.1); border-color: rgba(228,199,141,.55); }
.contact-resource-card { background: linear-gradient(140deg,rgba(255,255,255,.9),rgba(255,253,247,.38)); box-shadow: 0 24px 65px rgba(28,52,34,.08),inset 0 1px #fff; }
.contact-resource-icon { background: rgba(255,255,255,.5); }
.contact-email-list a { transition: border-color .25s ease; }
.contact-email-list a:hover { border-color: rgba(228,199,141,.65); color: #ead6ab; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
 .contact-map-card { rotate: -1deg; transition: opacity .75s ease,translate .85s ease,rotate .6s ease,box-shadow .6s ease; }
 .contact-map-card:hover,.contact-map-card:focus-within { rotate: 0deg; box-shadow: 0 8px 18px rgba(28,52,34,.05),0 40px 90px rgba(28,52,34,.16); }
 .contact-station-card.is-visible:hover,.contact-station-card:not(.bcm-reveal):hover { translate: 0 -4px; border-color: rgba(228,199,141,.5); box-shadow: 0 15px 35px rgba(0,10,7,.12); }
 .contact-resource-links a svg,.contact-action svg,.contact-email-list svg { transition: translate .25s ease; }
 .contact-resource-links a:hover svg,.contact-action:hover svg,.contact-email-list a:hover svg { translate: 2px -2px; }
}
@media (prefers-reduced-motion: no-preference) {
 .contact-hero-image { animation: contact-shot 1.8s cubic-bezier(.2,.7,.2,1) both; }
 .contact-hero-copy { animation: contact-enter .9s cubic-bezier(.2,.7,.2,1) both; }
 .contact-hero-plaque { animation: contact-enter 1s .12s cubic-bezier(.2,.7,.2,1) both; }
 @keyframes contact-shot { from { transform: scale(1.045); } to { transform: scale(1); } }
 @keyframes contact-enter { from { opacity: 0; translate: 0 15px; } to { opacity: 1; translate: 0 0; } }
}
@media (max-width: 980px) {
 .contact-location-grid { gap: 35px; }
 .contact-transport-nav { top: var(--contact-header-offset,108px); }
}
@media (max-width: 760px) {
 .contact-hero-inner { min-height: 0; padding-block: 48px 30px; }
 .contact-hero h1 { font-size: clamp(48px,12vw,70px); }
 .contact-hero-plaque { background: linear-gradient(140deg,rgba(255,255,255,.085),rgba(7,40,29,.5)); }
 .contact-hero-plaque::before { left: 22px; }
 .contact-location-grid { grid-template-columns: 1fr; gap: 30px; }
 .contact-map-card { padding: 7px; }
 .contact-map-caption { padding-block: 14px 7px; }
 .contact-transport-nav { display: flex; top: var(--contact-header-offset,96px); margin-inline: -4px; width: calc(100% + 8px); max-width: calc(100% + 8px); padding: 5px; gap: 1px; border-radius: 10px; }
 .contact-transport-nav a { flex: 1 0 auto; justify-content: center; min-height: 44px; gap: 7px; padding: 10px 8px; font-size: 10px; }
 .contact-transport-nav svg { width: 17px; height: 17px; }
 .contact-mode { scroll-margin-top: calc(var(--contact-header-offset,96px) + 75px); }
}
@media (prefers-reduced-transparency: reduce) { .contact-transport-nav { background: #05251c; backdrop-filter: none; -webkit-backdrop-filter: none; } }
@media (prefers-reduced-motion: reduce) {
 .contact-station-card,.contact-stop,.contact-stop-toggle,.contact-transport-nav a,.contact-email-list a,.contact-jumpnav a::after { transition: none; }
}

/* Quiet Christmas details within the established evergreen, ivory and champagne palette. */
.contact-festive-detail { position: absolute; z-index: -1; top: -12px; right: max(20px,calc((100vw - 1240px)/2 - 35px)); width: 305px; height: auto; opacity: .58; pointer-events: none; }
.contact-hero::after { position: absolute; z-index: -1; inset: 0; pointer-events: none; content: ''; background: radial-gradient(circle at 70% 17%,rgba(247,205,126,.13),transparent 10%),radial-gradient(circle at 91% 43%,rgba(238,185,94,.1),transparent 13%),radial-gradient(circle at 57% 75%,rgba(241,208,143,.06),transparent 16%); }
.contact-hero-plaque { border-color: rgba(231,201,141,.65); }
.contact-hero-plaque .contact-small-label { color: #eed6a4; }
.contact-action { background: #87283d; border-color: #a24a5b; box-shadow: inset 0 1px rgba(255,255,255,.12),0 8px 22px rgba(97,30,43,.1); }
.contact-action:hover { background: #6e1d30; color: #fff1d3; }
.contact-location { background: radial-gradient(ellipse at 90% 45%,rgba(205,170,100,.1),transparent 60%),#f5f1e7; }
.contact-map-card { border-color: rgba(231,216,183,.9); }
.contact-transport { border-top: 1px solid rgba(212,180,113,.45); border-bottom: 1px solid rgba(212,180,113,.28); background: radial-gradient(ellipse at 100% 0,rgba(204,165,88,.16),transparent 50%),radial-gradient(ellipse at 0 100%,rgba(126,37,54,.1),transparent 50%),#062b23; }
#contact-metro .contact-route-chips > span { background: rgba(130,39,57,.55); border-color: rgba(218,165,151,.42); color: #fff1d9; }
.contact-station-card::before { width: 55px; background: linear-gradient(90deg,#d9bb7d,rgba(217,187,125,0)); }
.contact-resources { position: relative; background: radial-gradient(ellipse at 4% 0,rgba(205,170,100,.09),transparent 55%),#f5f1e7; }
.contact-resource-card { overflow: hidden; }
.contact-resource-card::before { position: absolute; top: 0; left: 38px; width: 70px; height: 2px; content: ''; background: linear-gradient(90deg,#8b2c40,#c1a16a); }
.contact-resource-icon { color: #8a3344; border-color: rgba(138,51,68,.2); }
@media (max-width: 760px) {
 .contact-festive-detail { right: -8px; top: -15px; width: 160px; opacity: .3; }
 .contact-hero::after { opacity: .65; }
 .contact-resource-card::before { left: 23px; width: 52px; }
}

/* Explicit disclosure indicator avoids Safari's emoji-style native marker. */
.contact-night-info summary { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 13px 0; list-style: none; line-height: 1.65; }
.contact-night-info summary::-webkit-details-marker { display: none; }
.contact-night-info summary::marker { content: ''; font-size: 0; }
.contact-night-info summary::before { display: block; flex: none; width: 7px; height: 7px; margin: 0 3px; border-right: 1.5px solid #8a7043; border-bottom: 1.5px solid #8a7043; content: ''; rotate: -45deg; transition: rotate .2s ease; }
.contact-night-info[open] summary::before { rotate: 45deg; }
.contact-resource-links a { column-gap: 20px; }
.contact-resource-links a svg { flex-shrink: 0; }
@media (prefers-reduced-motion: reduce) { .contact-night-info summary::before { transition: none; } }
