/* Product detail tab behaviour */
.detail-tabs { scroll-margin-top: 110px; }
.detail-tabs button:first-child { background: var(--aqua); color: #4b6380; }
.detail-tabs button.active { background: #fff; color: var(--teal-dark); box-shadow: inset 0 3px 0 #ff6b1a; }
.detail-tab-content > section { display: none; }
.detail-tab-content > section.active { display: block; }
.detail-tab-content > .structured-section.active { display: grid; }
.as-low-as { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); color: #ff641c; }
.as-low-as b, .as-low-as small { display: block; }
.as-low-as b { font-size: 19px; }
.as-low-as small { margin-top: 3px; text-transform: uppercase; letter-spacing: .07em; font-size: 10px; font-weight: 800; }
.time-grid button[hidden], .date-grid button[hidden] { display: none; }
.time-grid button span, .time-grid button small { display: block; }
.time-grid button small { margin-top: 3px; color: #ff641c; font-size: 9px; }
.time-grid button.active small { color: inherit; }
.selected-session-price { margin: 12px 0 0; padding: 10px 12px; border-radius: 8px; background: #fff4ec; color: #d95717; font-size: 11px; font-weight: 800; }
.booking-step-prompt{margin:7px 0 0;color:#81919c;font-size:10px;line-height:1.45}
.gallery-caption{margin:8px 0 0;color:#758691;font-size:11px;line-height:1.45}
.detail-summary-copy{margin:18px 0 0;color:#5f707c;font-size:14px;line-height:1.65}.detail-main-description{margin-top:20px;padding-top:22px;border-top:1px solid var(--line);color:#526e8c;font-size:16px;line-height:1.7}.detail-main-description h2{margin:0 0 .55rem;color:#079bb8;font-size:28px;line-height:1.25}.detail-main-description h3{margin:1.7rem 0 .45rem;color:#526e8c;font-size:21px;font-weight:500}.detail-main-description h4{margin:1.2rem 0 .4rem;color:#079bb8;font-size:18px}.detail-main-description p{margin:.55rem 0}.detail-main-description ul,.detail-main-description ol{margin:.55rem 0;padding-left:1.55rem}.detail-main-description li{margin:.3rem 0}.detail-main-description .medical-callout{margin:1.6rem 0 .35rem;color:#079bb8;font-size:20px;font-weight:750;line-height:1.45}.detail-main-description .medical-warning{margin:.45rem 0;color:#f01818;font-size:19px;font-weight:750;line-height:1.45}.detail-main-description .medical-teal{color:#079bb8;font-weight:750}@media(max-width:700px){.detail-main-description{font-size:15px}.detail-main-description h2{font-size:23px}.detail-main-description h3{font-size:19px}.detail-main-description .medical-callout,.detail-main-description .medical-warning{font-size:17px}}

/* Add-on catalogue */
.addon-group .package-items{grid-template-columns:repeat(2,minmax(0,1fr))}.addon-group .addon-catalog-item{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto 1fr;gap:0 14px;align-items:start;min-height:218px;padding:18px 22px;border-top:1px solid #dcebef}.addon-group .addon-catalog-item:nth-child(-n+2){border-top:0}.addon-group .addon-catalog-item:nth-child(even){border-left:1px solid #dcebef}.addon-item-number{grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#dff3f6;color:#3999ad;font-size:23px;font-weight:500}.addon-copy{min-width:0}.addon-copy strong{display:block;color:#333;font-size:15px}.addon-copy p{margin:5px 0 0;color:#6f7478;font-size:13px;line-height:1.5}.addon-group .addon-price{grid-column:2;align-self:end;text-align:left}.addon-group .addon-price>em{display:table;margin:12px 0 7px;padding:4px 10px;border-radius:6px;background:#ff481f;color:#fff;font-size:12px;font-style:normal;font-weight:800}.addon-group .addon-price>span{display:flex;align-items:baseline;gap:11px}.addon-group .addon-price b,.addon-group .addon-price del{display:inline}.addon-group .addon-price b{color:#ff641c;font-size:17px;font-weight:600}.addon-group .addon-price del{color:#999;font-size:11px}

/* Premium gifts */
.premium-section>h2{margin:0 0 26px;color:#159eb5;font-size:28px;font-weight:500}.premium-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px;align-items:stretch}.premium-card{position:relative;display:flex;min-width:0;flex-direction:column;gap:14px;padding:0;border:0;background:transparent;color:#555;text-align:left;cursor:pointer}.premium-card>span:first-child{min-height:2.8em;font-size:17px;line-height:1.4}.premium-card-image{display:grid;place-items:center;aspect-ratio:1.45/1;overflow:hidden;border:1px solid #dbe8ec;background:#f0f7f8}.premium-card-image img{width:100%;height:100%;object-fit:contain;background:#fff;transition:transform .25s ease}.premium-card-image i{font-size:54px;color:#159eb5}.premium-card:hover .premium-card-image img{transform:scale(1.025)}.premium-card:focus-visible{outline:3px solid rgba(21,158,181,.3);outline-offset:6px}.premium-card small{color:#168ca2;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.premium-card-grid>.premium-or{display:none}.premium-card-grid .premium-or+.premium-card:before{position:absolute;top:52%;left:-21px;content:'OR';color:#333;font-size:14px;transform:translate(-50%,-50%)}.premium-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:28px;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.premium-modal.open{opacity:1;visibility:visible}.premium-modal-backdrop{position:absolute;inset:0;border:0;background:rgba(5,21,34,.76);cursor:pointer}.premium-modal-dialog{position:relative;z-index:1;width:min(680px,100%);max-height:calc(100vh - 56px);overflow:auto;background:#fff;box-shadow:0 25px 80px rgba(0,0,0,.3)}.premium-modal-close{position:absolute;top:14px;right:14px;z-index:2;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:#173c51;color:#fff;font-size:20px;cursor:pointer}.premium-modal-summary{display:grid;grid-template-columns:1.7fr .8fr;gap:32px;align-items:center;padding:36px 58px 32px 36px;background:linear-gradient(135deg,#fff,#f7fbfc)}.premium-modal-summary h3{margin:0 0 13px;color:#555;font-size:23px;font-weight:500}.premium-modal-summary p{margin:0;white-space:pre-line;color:#6a747c;font-size:15px;line-height:1.6}.premium-modal-summary aside{text-align:center;color:#686f75}.premium-modal-summary aside i{display:block;margin-bottom:10px;color:#68808c;font-size:42px}.premium-modal-summary aside strong{white-space:pre-line;font-size:16px;line-height:1.35}.premium-modal-image{padding:24px;background:#f8fafb}.premium-modal-image img{display:block;width:100%;max-height:650px;object-fit:contain;background:#fff}

/* Checkup category → group → bullet hierarchy */
.checkup-category-list { display: grid; gap: 24px; }
.public-checkup-category { border: 1px solid var(--line); background: #fff; }
.public-checkup-category > header { display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: #159eb5; color: #fff; }
.public-checkup-category > header span { display: grid; place-items: center; width: 32px; height: 32px; flex: 0 0 32px; background: #fff; color: #159eb5; font-size: 19px; font-weight: 800; }
.public-checkup-category > header h3 { margin: 0; color: #fff; font-size: 18px; }
.public-checkup-category > header > em { margin-left: auto; padding: 5px 9px; border-radius: 999px; background: rgba(255,255,255,.18); color: #fff; font-size: 12px; font-style: normal; font-weight: 800; white-space: nowrap; }
.public-checkup-group { display: grid; grid-template-columns: minmax(190px, 28%) 1fr; gap: 28px; align-items: start; padding: 24px 26px; border-top: 1px solid #dcebef; }
.public-checkup-group:first-child { border-top: 0; }
.public-checkup-group > div strong { color: #148fa5; font-size: 15px; }
.public-checkup-group > div em { display: inline-block; margin-left: 7px; padding: 4px 6px; background: #48aad1; color: #fff; font-size: 9px; font-style: normal; font-weight: 800; }
.public-checkup-group > div p { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.public-checkup-group .group-choice { display: inline-block; margin-top: 9px; padding: 4px 7px; border-radius: 4px; background: #e3f4f7; color: #148fa5; font-size: 10px; font-weight: 800; }

/* Package configuration */
.package-config-modal { position: fixed; inset: 0; z-index: 520; display: grid; place-items: center; padding: 24px; opacity: 0; pointer-events: none; transition: opacity .2s ease; }
.package-config-modal.open { opacity: 1; pointer-events: auto; }
.package-config-backdrop { position: absolute; inset: 0; border: 0; background: rgba(4,27,48,.72); backdrop-filter: blur(4px); }
.package-config-dialog { position: relative; display: flex; flex-direction: column; width: min(900px,100%); max-height: min(880px,calc(100vh - 48px)); overflow: hidden; border-radius: 20px; background: #fff; box-shadow: 0 28px 80px rgba(3,27,50,.28); }
.package-config-dialog>header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 24px 28px; border-bottom: 1px solid #dcebef; }
.package-config-dialog>header span,.config-section-head span { display: block; color: #148fa5; font-size: 10px; font-weight: 850; letter-spacing: .1em; }
.package-config-dialog>header h2 { margin: 4px 0 5px; color: #183b57; font-size: 27px; }
.package-config-dialog>header p { margin: 0; color: #718596; font-size: 12px; }
.package-config-dialog>header>button { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 auto; border: 0; border-radius: 50%; background: #eef7f9; color: #31536c; cursor: pointer; }
.package-config-body { display: grid; gap: 18px; padding: 24px 28px; overflow-y: auto; background: #f7fafb; }
.config-choice-group,.config-addon-section { padding: 20px; border: 1px solid #d9e6eb; border-radius: 14px; background: #fff; }
.config-choice-group.invalid { border-color: #e05252; box-shadow: 0 0 0 3px rgba(224,82,82,.08); }
.config-choice-group.complete { border-color: #65bca7; }
.config-section-head { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 14px; }
.config-section-head h3 { margin: 3px 0 0; color: #183b57; font-size: 17px; }
.config-section-head>strong { color: #148fa5; font-size: 11px; }
.config-option-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.config-option,.config-addon { cursor: pointer; }
.config-option input,.config-addon input { position: absolute; opacity: 0; pointer-events: none; }
.config-option>span { display: flex; align-items: center; gap: 10px; min-height: 50px; padding: 11px 13px; border: 1px solid #d8e4e9; border-radius: 10px; color: #405c72; }
.config-option>span>i,.config-addon>span>i { display: grid; place-items: center; width: 23px; height: 23px; flex: 0 0 auto; border: 1px solid #b9cbd3; border-radius: 6px; color: transparent; }
.config-option input:checked+span { border-color: #1597ad; background: #eaf7f9; color: #173e58; }
.config-option input:checked+span>i { border-color: #1597ad; background: #1597ad; color: #fff; }
.config-option input:disabled+span { opacity: .45; cursor: not-allowed; }
.config-option b { font-size: 12px; }
.config-premium-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.config-premium { min-width: 0; cursor: pointer; }
.config-premium input { position: absolute; opacity: 0; pointer-events: none; }
.config-premium>span { position: relative; display: flex; height: 100%; min-height: 205px; overflow: hidden; flex-direction: column; border: 1px solid #d8e4e9; border-radius: 12px; background: #fff; transition: border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.config-premium:hover>span { border-color: #8ec8d2; transform: translateY(-1px); }
.config-premium input:checked+span { border-color: #1597ad; box-shadow: 0 0 0 3px rgba(21,151,173,.11); background: #f4fbfc; }
.config-premium-image { display: grid; place-items: center; width: 100%; aspect-ratio: 16/8; overflow: hidden; border-bottom: 1px solid #e3edf1; background: #f3f8fa; color: #1597ad; }
.config-premium-image img { width: 100%; height: 100%; object-fit: contain; }
.config-premium-image.empty i { font-size: 28px; }
.config-premium-copy { display: flex; flex: 1; flex-direction: column; padding: 12px; }
.config-premium-copy b,.config-premium-copy small,.config-premium-copy em { display: block; }
.config-premium-copy b { color: #244b65; font-size: 12px; line-height: 1.35; }
.config-premium-copy small { margin-top: 4px; color: #738998; font-size: 10px; line-height: 1.4; }
.config-premium-copy em { display: flex; align-items: flex-start; gap: 5px; margin-top: auto; padding-top: 9px; color: #5e7889; font-size: 9px; font-style: normal; line-height: 1.4; }
.config-premium-copy em i { color: #1597ad; }
.config-premium-check { position: absolute; top: 8px; right: 8px; display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: #1597ad; box-shadow: 0 2px 7px rgba(5,54,74,.22); color: #fff; opacity: 0; transform: scale(.75); transition: .16s ease; }
.config-premium input:checked+span>.config-premium-check { opacity: 1; transform: scale(1); }
.config-group-error { display: none; margin: 10px 0 0; color: #c74747; font-size: 11px; font-weight: 750; }
.config-choice-group.invalid .config-group-error { display: block; }
.config-addon-list { display: grid; gap: 8px; }
.config-addon>span { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 12px 13px; border: 1px solid #d8e4e9; border-radius: 10px; }
.config-addon input:checked+span { border-color: #1597ad; background: #eaf7f9; }
.config-addon input:checked+span>i { border-color: #1597ad; background: #1597ad; color: #fff; transform: rotate(45deg); }
.config-addon span span b,.config-addon span span small { display: block; }
.config-addon span span b { color: #284c65; font-size: 12px; }
.config-addon span span small { margin-top: 3px; color: #788c9b; font-size: 10px; }
.config-addon>span>strong { color: #ff6b1a; font-size: 13px; white-space: nowrap; }
.package-config-dialog>footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 19px 28px; border-top: 1px solid #dcebef; background: #fff; }
.config-total span,.config-total strong,.config-total small { display: block; }
.config-total span { color: #788c9b; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.config-total strong { margin-top: 2px; color: #183b57; font-size: 25px; }
.config-total small { margin-top: 2px; color: #788c9b; font-size: 10px; }
.package-config-dialog>footer .button { min-height: 48px; border: 0; border-radius: 9px; padding: 0 20px; }
.package-config-dialog>footer .button:disabled { opacity: .45; cursor: not-allowed; }
.cart-configuration { display: grid; gap: 3px; margin-top: 7px; padding-left: 9px; border-left: 2px solid #8bcbd3; }
.cart-configuration small { display: block; color: #617989; font-size: 9px; line-height: 1.45; }
@media(max-width:800px){.config-premium-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.package-config-modal{padding:0}.package-config-dialog{width:100%;max-height:100vh;height:100%;border-radius:0}.package-config-dialog>header,.package-config-body,.package-config-dialog>footer{padding-left:18px;padding-right:18px}.config-option-grid,.config-premium-grid{grid-template-columns:1fr}.config-premium>span{min-height:0}.package-config-dialog>footer{align-items:stretch;flex-direction:column}.package-config-dialog>footer .button{width:100%}}
.public-checkup-group ul { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px 26px; margin: 0; padding-left: 18px; columns: auto; }
.public-checkup-group li { padding-left: 2px; color: #4b6380; font-size: 13px; line-height: 1.5; }

@media (max-width: 820px) {
  .addon-group .addon-catalog-item{min-height:200px;padding:16px}.addon-group .addon-catalog-item{grid-template-columns:36px minmax(0,1fr)}.addon-item-number{width:31px;height:31px;font-size:19px}
  .premium-card-grid{grid-template-columns:1fr 1fr;gap:34px}.premium-card-grid .premium-or+.premium-card:before{display:none}.premium-modal-summary{grid-template-columns:1fr;padding:30px 64px 25px 28px}.premium-modal-summary aside{text-align:left}.premium-modal-summary aside i{display:none}
  .review-metrics { grid-template-columns: repeat(2, 1fr); }
  .review-summary-grid, .customer-review-list { grid-template-columns: 1fr; }
  .review-summary-grid > div { border-right: 0; border-bottom: 1px solid var(--line); padding-bottom: 16px; }
  .package-group > header { align-items: flex-start; flex-wrap: wrap; }
  .package-item { align-items: flex-start; }
  .content-choice { margin-left: 46px; }
  .public-checkup-group { grid-template-columns: 1fr; gap: 14px; }
  .public-checkup-group ul { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 560px) {
  .addon-group .package-items{grid-template-columns:1fr}.addon-group .addon-catalog-item:nth-child(2){border-top:1px solid #dcebef}.addon-group .addon-catalog-item:nth-child(even){border-left:0}.addon-group .addon-catalog-item{min-height:175px}
  .premium-card-grid{grid-template-columns:1fr}.premium-modal{padding:12px}.premium-modal-dialog{max-height:calc(100vh - 24px)}.premium-modal-summary{padding:24px 60px 22px 22px}.premium-modal-image{padding:12px}
  .review-metrics { grid-template-columns: 1fr 1fr; }
  .package-item { padding: 16px; }
  .public-checkup-group { padding: 18px 16px; }
  .public-checkup-group ul { grid-template-columns: 1fr; }
}
/* Match the storefront's restrained rounding while retaining circular selectors and close controls. */
:where(
  .selected-session-price,.addon-group .addon-price>em,.public-checkup-group .group-choice,
  .package-config-dialog,.config-choice-group,.config-addon-section,.config-option>span,
  .config-option>span>i,.config-addon>span>i,.config-premium>span,
  .config-addon>span,.package-config-dialog>footer .button
){border-radius:8px!important}
