/* Contact keeps the address and native navigation ahead of optional media. */
body.dg-page-contact .dg-site main :is(h1,h2,h3,p,a,button,address,dt,dd,figcaption){overflow-wrap:anywhere}
body.dg-page-contact .dg-site main :is(.dg-hero-grid,.dg-section-head,.dg-map-card,.dg-split,.dg-cta)>*{min-width:0}
body.dg-page-contact .dg-site main .dg-button{min-width:0;max-width:100%;white-space:normal;line-height:1.7;min-height:52px;gap:16px}
body.dg-page-contact .dg-site main .dg-text-link{white-space:normal;min-height:44px;line-height:1.7;gap:14px}
body.dg-page-contact .dg-site main :is(a,button):focus-visible{outline:3px solid var(--purple);outline-offset:5px}
body.dg-page-contact .dg-site main .dg-section-head{grid-template-columns:minmax(0,1fr);gap:24px}

/* The entrance photograph remains recognisable; the frame does not crop it. */
body.dg-page-contact .dg-site main>.dg-hero{background:var(--paper);color:var(--ink);padding-top:24px}
body.dg-page-contact .dg-site .dg-hero .dg-crumbs{padding-bottom:24px;border-bottom:1px solid var(--line);color:var(--body)}
body.dg-page-contact .dg-site .dg-hero .dg-crumbs a{color:var(--purple)}
body.dg-page-contact .dg-site .dg-hero-grid{grid-template-columns:minmax(0,1fr);gap:38px;align-items:center;padding-top:34px}
body.dg-page-contact .dg-site .dg-hero h1{font-size:clamp(2.7rem,6vw,5rem);line-height:1.07;max-width:13ch;color:var(--ink);letter-spacing:-.055em}
body.dg-page-contact .dg-site .dg-hero :is(h1 em,.dg-eyebrow){color:var(--purple)}
body.dg-page-contact .dg-site .dg-hero .dg-lead{color:var(--body);max-width:43ch}
body.dg-page-contact .dg-site .dg-hero .dg-actions{flex-direction:row;flex-wrap:wrap;align-items:center;gap:16px 24px}
body.dg-page-contact .dg-site .dg-hero .dg-text-link{color:var(--purple);border-color:var(--line)}
body.dg-page-contact .dg-site .dg-hero .dg-photo{position:relative;width:100%;max-width:380px;justify-self:center;border:1px solid var(--line);border-radius:18px;padding:10px;background:#fff;box-shadow:0 8px 0 -4px var(--soft),0 9px 0 -4px var(--line)}
body.dg-page-contact .dg-site .dg-hero .dg-photo::before{content:'';position:absolute;pointer-events:none;inset:-9px 8% auto;height:8px;border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0;background:var(--soft)}
body.dg-page-contact .dg-site .dg-hero .dg-photo>a{aspect-ratio:3/4;max-height:430px;display:block;position:relative;border-radius:10px;overflow:hidden;background:var(--paper)}
body.dg-page-contact .dg-site .dg-hero .dg-photo img{display:block;width:100%;height:100%;max-height:none;object-fit:contain;aspect-ratio:auto;transition:none;transform:none}
body.dg-page-contact .dg-site .dg-hero .dg-photo figcaption{margin-top:0;color:var(--body);font-size:.8125rem;line-height:1.7;padding:14px 8px 6px;background:transparent;position:static}
body.dg-page-contact .dg-site .dg-photo-zoom{width:44px;height:44px;background:var(--violet);color:var(--ink);border-radius:50%;display:grid;place-items:center;right:14px;bottom:14px}

body.dg-page-contact .dg-site .dg-hero .dg-photo>a:hover img{transform:none}

/* Reading and tab order both start with the address, followed by the map. */
body.dg-page-contact .dg-site .dg-map-card{grid-template-columns:minmax(0,1fr);border:1px solid var(--line);border-radius:18px;padding:10px;gap:10px;background:#fff}
body.dg-page-contact .dg-site .dg-map-copy{padding:24px 16px}
body.dg-page-contact .dg-site .dg-map-copy h2{font-size:clamp(2rem,3.5vw,3.2rem);line-height:1.15}
body.dg-page-contact .dg-site .dg-map-copy address{font-style:normal;font-size:1.5rem;line-height:1.5;letter-spacing:-.02em}
body.dg-page-contact .dg-site .dg-map-copy>.dg-actions{flex-direction:row;flex-wrap:wrap;gap:12px;margin-top:26px}
body.dg-page-contact .dg-site .dg-map-copy [data-copy-status]{min-height:1.8em;margin-top:12px}
body.dg-page-contact .dg-site .dg-contact-facts>div{flex-wrap:wrap;gap:6px 20px;line-height:1.6}
body.dg-page-contact .dg-site .dg-contact-facts dd{margin:0}
body.dg-page-contact .dg-site .dg-map{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:20px;width:100%;height:auto;min-height:260px;padding:26px;border-radius:12px;background:radial-gradient(ellipse at 50% 30%,#c5a9f133,transparent 70%),var(--soft)}
body.dg-page-contact .dg-site .dg-map>[data-map-load]{margin:0;max-width:100%;background:var(--purple);color:#fff}
body.dg-page-contact .dg-site .dg-map>[data-map-notice]{padding:0;margin:0;color:var(--body);font-size:.875rem;line-height:1.8;max-width:44ch}
body.dg-page-contact .dg-site .dg-map>[data-map-notice] a{color:var(--purple);text-decoration:underline;text-underline-offset:4px}
body.dg-page-contact .dg-site .dg-map iframe{width:100%;height:420px;min-height:320px;border-radius:8px;background:#fff}

/* Contact cards and parking alternatives use the same quiet, legible frame. */
body.dg-page-contact .dg-site main>.dg-section.dg-soft{background:var(--soft)}
body.dg-page-contact .dg-site main .dg-grid--3{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:18px}
body.dg-page-contact .dg-site .dg-contact-card{padding:26px;border:1px solid var(--line);border-radius:16px;background:#fff;display:flex;flex-direction:column}
body.dg-page-contact .dg-site .dg-contact-card .dg-number{font-size:.6875rem;line-height:1.8;color:var(--purple);letter-spacing:.06em}
body.dg-page-contact .dg-site .dg-contact-card h3{font-size:1.625rem;line-height:1.3;letter-spacing:-.03em;margin:26px 0 16px}
body.dg-page-contact .dg-site .dg-contact-value{font-size:clamp(1.5rem,2vw,1.875rem);line-height:1.5;color:var(--ink);white-space:normal;display:block;overflow-wrap:normal}
body.dg-page-contact .dg-site .dg-contact-email{font-size:1rem;line-height:1.7;display:block;color:var(--purple)}
body.dg-page-contact .dg-site .dg-contact-card .dg-text-link{margin-top:auto;padding-top:22px;align-self:flex-start}
body.dg-page-contact .dg-site .dg-contact-card p{margin:16px 0 0;line-height:1.8}
body.dg-page-contact .dg-site main .dg-section-foot{padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--paper);margin-top:24px}
body.dg-page-contact .dg-site main .dg-split{grid-template-columns:minmax(0,1fr);gap:32px}
body.dg-page-contact .dg-site .dg-parking-list{display:grid;gap:16px;min-width:0}
body.dg-page-contact .dg-site .dg-parking-list article{padding:26px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}
body.dg-page-contact .dg-site .dg-parking-list .dg-number{font-size:.6875rem;line-height:1.8;letter-spacing:.05em;color:var(--purple)}
body.dg-page-contact .dg-site .dg-parking-list h3{font-size:1.5rem;line-height:1.3}
body.dg-page-contact .dg-site .dg-parking-list p{font-size:.9375rem;line-height:1.8}
body.dg-page-contact .dg-site main>.dg-lilac{background:var(--paper)}
body.dg-page-contact .dg-site main .dg-cta{display:flex;flex-wrap:wrap;align-items:center;gap:28px;padding:28px;border:1px solid var(--line);border-radius:18px;background:var(--soft)}
body.dg-page-contact .dg-site main .dg-cta>div{flex:1 1 24rem}
body.dg-page-contact .dg-site main .dg-cta>.dg-button{flex:0 1 auto;min-width:0}
body.dg-page-contact .dg-site main .dg-cta p:not(.dg-eyebrow){color:var(--body)}
body.dg-page-contact .dg-site main>.dg-section:last-child .dg-section-head{display:block}
body.dg-page-contact .dg-site main .dg-visit-card{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px;min-width:0}
body.dg-page-contact .dg-site main .dg-visit-card .dg-media-slot{height:auto;min-height:200px;aspect-ratio:4/3;border-radius:8px;background:var(--paper)}
body.dg-page-contact .dg-site main .dg-visit-card .dg-media-slot img{width:100%;height:100%;object-fit:contain}
body.dg-page-contact .dg-site main .dg-visit-card>div:last-child{padding:22px 16px}
body.dg-page-contact .dg-site main .dg-visit-card h3{font-size:1.375rem;line-height:1.4}
body.dg-page-contact .dg-site main .dg-visit-card p{font-size:.875rem;line-height:1.8;color:var(--body)}

body.dg-page-contact .dg-site main .dg-photo-placeholder{background:var(--paper);color:var(--body);border-color:var(--line)}
body.dg-page-contact .dg-site main .dg-photo-placeholder::before{color:var(--purple)}

@media(min-width:701px){
 body.dg-page-contact .dg-site .dg-hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:48px;padding-top:48px}
 body.dg-page-contact .dg-site main .dg-section-head{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:44px}
 body.dg-page-contact .dg-site main .dg-split{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
 body.dg-page-contact .dg-site .dg-split .dg-section-head{display:block}
 body.dg-page-contact .dg-site main .dg-cta{padding:40px}
}
@media(min-width:1001px){
 body.dg-page-contact .dg-site .dg-map-card{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
 body.dg-page-contact .dg-site .dg-map-copy{padding:32px}
 body.dg-page-contact .dg-site .dg-map{padding:32px}
}
@media print{body.dg-page-contact .dg-site :is(.dg-map,.dg-actions){display:none}body.dg-page-contact .dg-site :is(.dg-contact-card,.dg-parking-list article){break-inside:avoid}}
