/* Contact uses the shared studio palette, hero, typography and motion controls. */
.contact-hero .hero-image img { object-position: 66% 48%; }
.contact-hero h1 { font-size: clamp(85px, 8.6vw, 132px); }
.contact-hero .hero-description { max-width: 650px; }
.contact-details { padding-block: 70px 80px; }
.contact-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.contact-card { position: relative; padding: 32px 28px; border: 1px solid #ff47be80; border-left: 2px solid var(--pink); border-radius: 7px; background: linear-gradient(135deg,#65546e55,#4d495d66); display: flex; flex-direction: column; align-items: flex-start; }
.contact-card:nth-child(2) { border-color: #54e7f280; border-left-color: var(--cyan); }
.contact-card-index { position: absolute; top: 24px; right: 22px; color: var(--muted); font-size: 12px; }
.contact-card .eyebrow { color: var(--cyan); font-size: 12px; letter-spacing: .1em; padding-right: 20px; }
.contact-card h2 { font-size: clamp(30px,2.9vw,42px); margin-top: 24px; }
.contact-card p, .contact-card address { margin-block: 20px 26px; color: var(--muted); font-size: 16px; line-height: 1.85; font-style: normal; }
.contact-card .contact-direct { margin-top: auto; padding-top: 5px; display: inline-flex; align-items: center; gap: 12px; max-width: 100%; color: var(--pink-text); font-size: clamp(15px,1.3vw,19px); font-weight: 600; overflow-wrap: anywhere; }
.contact-card:nth-child(2) .contact-direct { color: var(--cyan); font-size: 23px; }
.contact-direct svg { width: 19px; height: 19px; }
.contact-card > .text-link { margin-top: auto; color: var(--cyan); }
.contact-visit { padding-block: 75px 85px; background: #4d465b; border-block: 1px solid #b9b0ce55; scroll-margin-top: 15px; }
.contact-visit-layout { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 70px; align-items: start; }
.contact-hours > .eyebrow { color: var(--cyan); font-size: 12px; letter-spacing: .1em; margin-bottom: 25px; }
.contact-hours h2 { font-size: clamp(55px,5.3vw,77px); }
.contact-hours h2 span { color: var(--pink-text); }
.opening-table { border-collapse: collapse; width: 100%; margin-top: 25px; font-size: 17px; }
.opening-table caption { text-align: left; padding-bottom: 18px; font-size: 14px; color: var(--muted); }
.opening-table th, .opening-table td { border-bottom: 1px solid #b9b0ce55; padding: 16px 12px; text-align: left; }
.opening-table thead th { color: var(--cyan); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.opening-table tbody th { font-weight: 400; }
.opening-table td { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.opening-table thead th:last-child { text-align: right; }
.opening-table td > span { padding-inline: 9px; color: #b9b0ce; }
.opening-table .is-today { background: #54e7f20b; }
.opening-table .is-today th { color: var(--cyan); border-left: 2px solid var(--cyan); }
.today-tag { margin-left: 10px; font-size: 11px; padding: 3px 6px; border: 1px solid #54e7f280; }
.contact-hours-note { font-size: 15px; color: var(--muted); margin-top: 24px; }
.contact-location { border: 1px solid #54e7f288; border-right-color: #ff47be88; border-radius: 7px; overflow: hidden; box-shadow: -3px 0 18px #54e7f214,3px 0 18px #ff47be14; background: #51495f; }
.contact-location-photo { position: relative; margin: 0; height: 295px; }
.contact-location-photo img { width: 100%; height: 100%; object-fit: cover; }
.contact-location-photo::after { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent,#302a40cc); }
.contact-location-photo figcaption { position: absolute; bottom: 20px; left: 25px; right: 25px; z-index: 1; display: flex; align-items: center; gap: 10px; font-size: 11px; letter-spacing: .12em; }
.contact-location-copy { padding: 33px; }
.contact-location-copy > .eyebrow { color: var(--cyan); font-size: 12px; }
.contact-location h2 { font-size: clamp(33px,3.2vw,46px); margin-block: 20px; }
.contact-location address { font-size: 18px; line-height: 1.8; font-style: normal; color: var(--muted); }
.contact-location .button { margin-top: 25px; font-size: 15px; }
.contact-location-copy > p { color: var(--muted); margin-top: 22px; font-size: 14px; line-height: 1.85; }
.contact-connect { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 85px; }
.contact-connect .eyebrow { color: var(--cyan); font-size: 12px; }
.contact-connect h2 { font-size: clamp(50px,5.2vw,74px); margin-top: 24px; }
.contact-connect h2 span { color: var(--pink-text); }
.contact-connect p { color: var(--muted); font-size: 16px; margin-top: 24px; }
.contact-social-links { display: flex; gap: 32px; margin-top: 28px; }
.contact-social-links a { color: var(--cyan); padding-block: 8px; border-bottom: 1px solid #54e7f280; }
.contact-booking-help { border: 1px solid #ff47be80; border-left: 2px solid var(--cyan); border-radius: 7px; padding: 35px; background: #51495f; }
.contact-booking-help h3 { font-family: var(--heading); font-size: 34px; line-height: 1.05; margin-top: 23px; }
.contact-booking-help .button { margin-block: 26px 23px; gap: 25px; font-size: 15px; }
.contact-booking-help .inline-link { display: block; font-size: 14px; }
@media (max-width: 1100px) { .contact-cards { gap: 15px; } .contact-card { padding: 27px 20px; } .contact-visit-layout { gap: 35px; } .contact-connect { gap: 45px; } }
@media (max-width: 900px) { .contact-cards { grid-template-columns: 1fr; gap: 18px; } .contact-card { padding: 30px; } .contact-card h2 { font-size: 38px; } .contact-card .contact-direct { font-size: 20px; } .contact-visit-layout { grid-template-columns: 1fr; gap: 35px; } .contact-connect { grid-template-columns: 1fr; gap: 35px; } .contact-location-photo { height: 320px; } }
@media (max-width: 650px) {
  .contact-hero h1 { font-size: clamp(73px,18vw,112px); }
  .contact-hero .hero-content { padding-top: 0; padding-bottom: 40px; }
  .contact-hero .hero-description { font-size: 16px; max-width: 300px; }
  .contact-hero .hero-actions { gap: 19px; }
  .contact-hero .hero-actions .text-link { font-size: 12px; gap: 8px; }
  .contact-details { padding-block: 45px; }
  .contact-details .section-label, .contact-visit .section-label { flex-direction: column; gap: 8px; }
  .contact-details .section-label > span:last-child, .contact-visit .section-label > span:last-child { text-align: left; }
  .contact-card { padding: 28px 24px; }
  .contact-card h2 { font-size: 35px; }
  .contact-card .contact-direct { font-size: 18px; }
  .contact-card:nth-child(2) .contact-direct { font-size: 24px; }
  .contact-visit { padding-block: 45px; }
  .contact-hours h2 { font-size: 59px; }
  .opening-table { font-size: 16px; }
  .opening-table th, .opening-table td { padding: 15px 8px; }
  .opening-table td > span { padding-inline: 5px; }
  .today-tag { font-size: 10px; margin-left: 7px; padding-inline: 4px; }
  .contact-location-copy { padding: 26px 24px; }
  .contact-location h2 { font-size: 36px; }
  .contact-location-photo { height: 260px; }
  .contact-location-photo figcaption { left: 20px; right: 20px; font-size: 10px; }
  .contact-location-copy > p { font-size: 15px; }
  .contact-connect { padding-block: 50px; }
  .contact-connect h2 { font-size: 56px; }
  .contact-booking-help { padding: 28px 24px; }
}
@media print { .contact-page { background: white; color: #111; } .contact-card,.contact-location,.contact-booking-help,.contact-visit { background: white; color: #111; box-shadow: none; border-color: #888; } .contact-page p,.contact-page address,.contact-page h2 span,.contact-page .eyebrow,.contact-page a,.opening-table caption,.opening-table thead th,.opening-table .is-today th { color: #111; } .contact-location-photo,.contact-social-links { display: none; } .contact-details,.contact-connect,.contact-visit { padding-block: 20px; } }
