/* Promotions inherit the clinic's ivory, forest green and warm brass palette. */
.promotions-section .promotions-heading { align-items:center; margin-bottom:32px; }
.promotions-heading > p { font-size:19px; line-height:1.45; max-width:300px; }
.promotions-section .promotion-grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:24px; margin-top:0; }
.promotions-section .promotion-card { --promo-bg:var(--green); --promo-ink:var(--cream); display:flex; flex-direction:column; padding:0; min-width:0; background:var(--promo-bg); color:var(--promo-ink); }
.promotions-section .promotion-card--1 { --promo-bg:#dfe5d8; --promo-ink:var(--green); }
.promotions-section .promotion-card--2 { --promo-bg:#d1b77f; --promo-ink:var(--green); }
.promotion-art { height:250px; display:flex; align-items:center; justify-content:center; padding:24px 30px 0; }
.promotion-art img { width:100%; height:100%; object-fit:contain; }
.promotion-copy { padding:26px 30px 28px; flex:1; display:flex; flex-direction:column; }
.promotion-copy h3 { color:inherit; font-size:clamp(29px,2.7vw,40px); line-height:1.1; letter-spacing:-.03em; min-height:2.2em; text-wrap:balance; overflow-wrap:anywhere; }
.promotions-section .promotion-summary { color:inherit; font-size:17px; line-height:1.55; margin:20px 0 0; min-height:4.65em; overflow-wrap:anywhere; }
.promotions-section .promotion-date { color:inherit; font-size:14px; margin:20px 0 0; font-variant-numeric:tabular-nums; }
.promotion-actions { margin-top:auto; padding-top:28px; }
.promotion-details { margin-top:18px; border-top:1px solid color-mix(in srgb,currentColor 24%,transparent); }
.promotion-details summary { display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:50px; padding:16px 0 0; font-size:15px; line-height:1.4; font-weight:500; cursor:pointer; list-style:none; }
.promotion-details summary::-webkit-details-marker { display:none; }
.promotion-details summary .icon { width:22px; height:22px; transition:transform .2s ease-out; }
.promotion-details[open] summary .icon { transform:rotate(90deg); }
.promotion-details summary:hover span:first-child { text-decoration:underline; text-underline-offset:5px; }
.promotions-section .promotion-terms p { color:inherit; font-size:15px; line-height:1.6; margin:20px 0 0; overflow-wrap:anywhere; }
.promotion-booking { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:54px; padding:14px 18px; color:var(--promo-bg); background:var(--promo-ink); font-size:15px; line-height:1.4; font-weight:600; text-align:left; transition:background .2s ease-out; }
.promotion-booking:hover { background:color-mix(in srgb,var(--promo-ink) 86%,var(--promo-bg)); }
.promotion-booking .icon { width:22px; height:22px; }
.promotion-details summary:focus-visible,.promotion-booking:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.promotion-booking:focus-visible { outline-color:var(--promo-ink); }
.promotion-card ::selection { background:var(--promo-ink); color:var(--promo-bg); }
@media(min-width:1001px) and (max-width:1350px) {
  .site-header--has-promotions .header-inner { gap:22px; }
  .site-header--has-promotions .desktop-nav { gap:18px; }
}
@media(min-width:1001px) and (max-width:1120px) {
  .site-header--has-promotions .header-inner { gap:16px; }
  .site-header--has-promotions .brand,.site-header--has-promotions .brand img { width:190px; }
  .site-header--has-promotions .desktop-nav { gap:8px; }
  .site-header--has-promotions .desktop-nav a { font-size:15px; }
  .site-header--has-promotions .phone-link { font-size:16px; }
}
@media(min-width:701px) and (max-width:1050px) {
  .promotions-section .promotion-grid { grid-template-columns:1fr; gap:20px; }
  .promotions-section .promotion-card { display:grid; grid-template-columns:35% minmax(0,1fr); }
  .promotion-art { height:100%; min-height:260px; padding:26px; }
  .promotion-copy { padding:30px 30px 30px 14px; }
  .promotion-copy h3 { font-size:34px; min-height:0; }
  .promotions-section .promotion-summary { min-height:0; }
}
@media(max-width:700px) {
  .promotions-section .promotions-heading { display:block; margin-bottom:24px; }
  .promotions-heading > p { margin-top:16px; font-size:18px; }
  .promotions-heading > p br { display:none; }
  .promotions-section .promotion-grid { grid-template-columns:1fr; gap:20px; }
  .promotion-art { height:240px; padding:24px 35px 0; }
  .promotion-copy { padding:24px 26px 26px; }
  .promotion-copy h3 { font-size:34px; min-height:0; }
  .promotions-section .promotion-summary { min-height:0; margin:18px 0 0; }
}
