/* Public storefront, decision dialog and support opening. Loaded after legacy base styles. */
.hero-availability { color:#475467; font-size:.8125rem; line-height:1.5; min-height:2.5em; max-width:48ch; margin:0 0 18px; }
.hero-price-link { min-height:142px; }
.journey-intro { margin-block:0 32px; padding-block:0; }
.journey-intro .section-heading { text-align:left; margin-bottom:16px; max-width:none; }
.journey-intro .section-heading-title { font-size:1.4rem; margin:6px 0 0; }
.journey-intro .invite-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0; }
.journey-intro .invite-step { display:flex; align-items:flex-start; gap:12px; padding:18px; border-radius:12px; text-align:left; background:#fff; box-shadow:none; }
.journey-intro .step-label { display:grid; place-items:center; width:30px; height:30px; min-width:30px; margin:0; padding:0; border-radius:8px; background:#eaf0ff; color:#244bff; font-size:.875rem; line-height:1; }
.journey-intro .step-title { margin:0 0 6px; font-size:.875rem; line-height:1.5; }
.journey-intro .step-copy { margin:0; font-size:.8125rem; line-height:1.6; }
.controls-wrapper>.search-box,.controls-wrapper>.category-tabs,.controls-wrapper>.catalog-refinements { min-width:0; }
@media(min-width:1100px) {
 .controls-wrapper { grid-template-columns:minmax(0,1fr) minmax(0,2fr); }
 .controls-wrapper>.catalog-refinements { grid-column:1/-1; }
}
.catalog-heading { margin-bottom:16px; gap:8px; }
.catalog-heading .catalog-availability { padding:0; border:0; border-radius:0; background:transparent; min-height:24px; margin:0; font-size:.75rem; line-height:1.5; }
.catalog-price-context { color:#667085; font-size:.75rem; line-height:1.5; margin:0 0 12px; }
.grid-header { min-height:60px; }
.results-count { min-height:24px; }
.catalog-options { display:flex; flex-wrap:wrap; align-items:end; gap:12px; }
.catalog-options label { display:grid; gap:5px; color:#475467; font-size:.75rem; }
.catalog-options select { width:100%; min-height:44px; padding:8px 26px 8px 12px; border:1px solid var(--border); border-radius:8px; color:#182230; background:#fff; font:inherit; font-size:.8125rem; min-width:0; max-width:none; }
.catalog-cycle { min-width:168px; }
.catalog-refinement-fields #btnFavoritesOnly { width:auto; height:auto; padding:10px 14px; justify-self:start; }
.catalog-refinement-fields #btnFavoritesOnly .favorites-label { position:static; width:auto; height:auto; clip-path:none; overflow:visible; }
.offer-card { padding:20px; gap:0; }
.offer-card .card-top { align-items:flex-start; gap:12px; margin-bottom:12px; min-height:0; }
.offer-card .card-plan-heading { min-width:0; flex:1; }
.offer-card .card-title { min-height:0; font-size:1rem; line-height:1.4; margin:0 0 5px; }
.offer-card .card-category { font-size:.625rem; line-height:1.4; }
.offer-card .card-family-label { margin-top:5px; font-size:.625rem; }
.offer-card .service-mark { width:40px; height:40px; flex:0 0 40px; }
.offer-card .btn-favorite { width:44px; min-width:44px; height:44px; margin:-6px 0 0; }
.card-benefit { margin:0 0 10px; color:#344054; font-size:.875rem; line-height:1.55; overflow-wrap:anywhere; }
.card-access { margin:0 0 14px; color:#475467; font-size:.75rem; line-height:1.5; overflow-wrap:anywhere; }
.card-access>span { color:#182230; font-weight:750; }
.offer-card .price-tag { margin:0; padding:0 0 8px; background:transparent; border-radius:0; border-bottom:1px solid #dce2eb; }
.offer-card .price-tag .val { font-size:2rem; }
.offer-card .price-tag .per { display:inline; flex-basis:auto; margin:0 0 0 5px; font-size:.75rem; line-height:1.5; }
.offer-card .price-current.card-share-unit { margin-top:4px; }
.offer-card .card-bottom { display:grid; grid-template-columns:minmax(0,1fr); margin-top:14px; gap:0; padding-top:0; border:0; }
.offer-card .btn-open-modal { display:flex; justify-content:space-between; width:100%; min-height:46px; margin-bottom:8px; }
.offer-card .card-information { margin:0; padding:0; border:0; border-radius:0; background:transparent; }
.offer-card .card-information>summary { display:block; padding:9px 0; min-height:44px; overflow-wrap:anywhere; }
.offer-card .card-information-label { font-size:.75rem; }
.offer-card .card-rule-preview { display:block; min-width:0; overflow-wrap:anywhere; color:#475467; font-size:.6875rem; line-height:1.5; margin-top:4px; }
.offer-card .card-compare { font-size:.75rem; min-height:44px; margin:0; padding-top:6px; border-top:1px solid #eaecf0; }
#modalDetails .plan-decision-card { display:flex; flex-direction:column; padding:0; overflow:hidden; }
#modalDetails .plan-decision-card>.modal-close { position:absolute; top:12px; right:12px; margin:0; }
#modalDetails .plan-detail-content { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:24px; scroll-padding-block:20px; }
#modalDetails .modal-header { padding-right:36px; margin-bottom:16px; }
#modalDetails .modal-header h3 { font-size:1.375rem; }
#modalDetails .plan-benefit-summary { color:#475467; font-size:.875rem; line-height:1.6; margin:10px 0 0; }
#modalDetails .modal-body { padding:0; }
#modalDetails .price-box { padding:16px; margin-bottom:10px; }
#modalDetails .price-amount { font-size:2.25rem; }
#modalDetails .plan-access-summary { display:grid; gap:3px; padding-block:8px; font-size:.875rem; line-height:1.5; }
#modalDetails .plan-access-summary>span { font-size:.75rem; color:#667085; }
#modalDetails .plan-essential-rule { color:#344054; font-size:.8125rem; line-height:1.6; margin:6px 0 12px; }
#modalDetails .plan-conditions { background:#fff; border:1px solid var(--border); border-radius:10px; margin-top:10px; padding:0 14px; }
#modalDetails .plan-conditions>summary { min-height:48px; padding:13px 0; font-size:.875rem; font-weight:650; cursor:pointer; line-height:1.5; }
#modalDetails :is(.plan-description-details,.plan-renewal-details)>summary { min-height:48px; padding:12px 0; font-size:.875rem; font-weight:650; cursor:pointer; line-height:1.5; }
#modalDetails .plan-conditions .section-help { margin-bottom:14px; }
#modalDetails .plan-conditions p { font-size:.8125rem; margin-top:8px; }
#modalDetails :is(.plan-description-details,.plan-renewal-details,.plan-sources) { margin-top:10px; padding-inline:14px; }
#modalDetails .info-item.full { padding-top:0; border:0; }
#modalDetails #mDesc { font-size:.875rem; line-height:1.65; }
#modalDetails .plan-renewal-note { margin-top:4px; font-size:.8125rem; }
#modalDetails .modal-footer { flex-shrink:0; padding:12px 24px; gap:8px; }
#modalDetails .modal-footer .btn { min-height:46px; font-size:.875rem; }
#modalDetails .plan-secondary-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
#modalDetails .plan-secondary-actions>.btn { flex:1 1 130px; min-height:44px; font-size:.75rem; padding:8px; }
.support-session-info { border-top:1px solid var(--border); color:#667085; font-size:.6875rem; line-height:1.5; }
.support-session-info>summary { min-height:44px; padding-block:12px; cursor:pointer; }
.support-session-info>p { margin:0 0 8px; }
#modalSupport .support-heading { margin-bottom:8px; }
#modalSupport .support-notice { font-size:.6875rem; line-height:1.5; margin-block:6px; }
#modalSupport .support-questions { margin-block:8px; }
@media(max-width:700px) {
 .hero { padding-block:18px 20px; }
 .hero-title { font-size:2rem; line-height:1.1; }
 .hero-subtitle { margin-block:12px; font-size:.9375rem; }
 .hero-availability { font-size:.75rem; min-height:1.5em; margin-bottom:10px; }
 .hero-actions { margin-bottom:0; }
 .hero-collection { display:none; }
 .hero-benefits { margin-top:14px; gap:8px 16px; font-size:.6875rem; }
 .journey-intro { margin-bottom:8px; }
 .journey-intro .section-heading { margin-bottom:8px; }
 .journey-intro .section-heading-title { font-size:1rem; }
 .journey-intro .invite-steps { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border:1px solid var(--border); border-radius:12px; overflow:hidden; }
 .journey-intro .invite-step { flex-direction:column; gap:7px; padding:10px; border:0; border-radius:0; }
 .journey-intro .invite-step+.invite-step { border-left:1px solid #eaecf0; }
 .journey-intro .step-title { margin-bottom:4px; font-size:.75rem; }
 .journey-intro .step-copy { font-size:.6875rem; line-height:1.45; }
 .journey-intro .step-label { width:23px; height:23px; min-width:23px; }
 .catalog-section { padding-top:16px; }
 .catalog-heading { position:relative; padding-right:50px; gap:6px; margin-bottom:12px; }
 .catalog-heading .section-kicker { display:none; }
 .catalog-heading .section-title { font-size:1.375rem; }
 .catalog-heading>div:has(#catalogAvailability) { display:contents; }
 .catalog-heading #btnRefreshGroupCatalog { position:absolute; right:0; top:0; }
 .catalog-heading #catalogAvailability { font-size:.6875rem; }
 .controls-wrapper { gap:10px; margin-bottom:12px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .grid-header { display:flex; flex-direction:column; align-items:stretch; flex-wrap:wrap; gap:12px; margin-bottom:10px; }
 .results-count { min-height:18px; }
 .catalog-options { display:grid; grid-template-columns:1fr 1fr; width:100%; max-width:100%; margin-left:0; gap:10px; }
 .catalog-options label { min-width:0; font-size:.6875rem; gap:3px; }
 .catalog-options select { font-size:.8125rem; padding-left:10px; }
 .catalog-price-context { font-size:.625rem; line-height:1.5; margin-bottom:10px; }
 .offer-card { padding:18px; }
 .offer-card .card-top { margin-bottom:10px; }
 .card-benefit { font-size:.8125rem; line-height:1.5; }
 .card-access { margin-bottom:10px; }
 .offer-card .card-bottom { margin-top:10px; }
 #modalDetails .plan-detail-content { padding:20px; }
 #modalDetails .modal-header h3 { font-size:1.25rem; }
 #modalDetails .modal-footer { padding:12px 20px; }
}

/* Decision hierarchy: one offer in the hero, compact controls, equal attributes. */
.hero-subtitle { max-width:45ch; }
.hero-collection { align-self:center; padding:20px; }
.hero-price-link { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; align-items:center; min-height:0; color:#fff; text-decoration:none; border-radius:8px; }
.hero-price-link:hover #catalogStartingTitle { text-decoration:underline; text-underline-offset:4px; }
.hero-price-link:has(.hero-price.hidden) { display:none; }
.hero-price-arrow { display:grid; place-items:center; width:44px; height:44px; border:1px solid #ffffff80; border-radius:50%; font-size:1.3rem; }
.hero-featured-service { display:flex; align-items:center; gap:10px; font-weight:650; min-width:0; }
#catalogStartingTitle { min-width:0; overflow-wrap:anywhere; }
#catalogStartingIcon:empty { display:none; }
#catalogStartingIcon .service-mark { width:36px; height:36px; margin:0; }
.hero-price .hero-price-rule { font-size:.875rem; line-height:1.45; margin-top:8px; }
#catalogStartingPrice #catalogStartingRule { grid-column:1/-1; grid-row:3; }
.hero-collection .discovery-grid { margin-top:16px; }
@media(min-width:701px) {
 .hero-content { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:32px; }
 .hero-collection .discovery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .hero-collection .collection-item { display:grid; grid-template-columns:30px minmax(0,1fr); align-items:center; gap:8px; min-height:64px; margin:0; padding:10px; border-radius:10px; }
 .hero-collection .collection-icon { display:grid; place-items:center; width:30px; height:30px; border-radius:7px; }
 .hero-collection .collection-item strong { font-size:.875rem; line-height:1.4; }
 .hero-collection .collection-item small { display:block; font-size:.8125rem; line-height:1.4; margin-top:3px; }
 .hero-collection .collection-arrow { display:none; }
}
.hero-benefits { font-size:.875rem; }
.journey-intro .section-heading { margin-bottom:10px; }
.journey-intro .step-copy { font-size:.875rem; line-height:1.45; }
.journey-intro .invite-step { padding:14px; }
.catalog-refinement-fields .catalog-options { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; margin:0; align-items:end; }
.catalog-refinement-fields .catalog-price-context { grid-column:1/-1; font-size:.875rem; padding:0; margin:0; }
.catalog-refinement-fields .catalog-options label { font-size:.875rem; }
.catalog-refinement-fields .catalog-options select { font-size:1rem; }
.catalog-refinement-fields .catalog-cycle { min-width:0; }
.grid-header { min-height:0; margin-block:0 8px; }
.grid-header .catalog-quick-help { margin:0; flex:0 1 400px; }
.results-count { font-size:.875rem; }
.catalog-quick-help { margin:0 0 10px; background:#fff; border:1px solid var(--border); border-radius:8px; padding:0 12px; color:#344054; }
.catalog-quick-help>summary { cursor:pointer; min-height:44px; display:flex; align-items:center; font-size:.875rem; line-height:1.45; padding:10px 0; gap:10px; min-width:0; overflow-wrap:anywhere; }
.catalog-quick-help { min-width:0; }
.catalog-quick-help>summary::after { content:'+'; margin-left:auto; font-weight:700; }
.catalog-quick-help[open]>summary::after { content:'−'; }
.catalog-quick-help>p,.catalog-quick-help>a { font-size:.875rem; line-height:1.55; margin:0 0 12px; }
.catalog-quick-help>a { display:flex; max-width:100%; min-width:0; overflow-wrap:anywhere; min-height:44px; align-items:center; color:#2444b4; }
.catalog-group-status { font-size:.875rem; line-height:1.5; color:#475467; margin:0 0 12px; }
.catalog-heading .catalog-availability { font-size:.875rem; min-height:0; }
.catalog-heading #catalogAvailability { padding:0; border:0; background:transparent; }
.catalog-heading>#catalogAvailability { padding:0; border:0; background:transparent; flex-basis:auto; max-width:none; }
.offer-card { padding:18px; }
.offer-card .card-title { font-size:1.0625rem; line-height:1.35; margin:0 0 3px; }
.card-variant { display:block; color:#475467; font-size:.875rem; line-height:1.4; overflow-wrap:anywhere; }
.card-benefit { font-size:.875rem; line-height:1.5; margin-bottom:8px; }
.card-access { font-size:.875rem; line-height:1.45; margin-bottom:10px; }
.offer-card .price-current,.offer-card .price-tag .per { font-size:.875rem; line-height:1.4; }
.offer-card .price-tag .val { font-size:1.875rem; }
.offer-card .card-rule-preview { font-size:.875rem; line-height:1.45; margin-top:2px; }
.offer-card .card-information-label { font-size:.875rem; }
.offer-card .card-compare { font-size:.875rem; padding-top:0; }
.offer-card .card-bottom { margin-top:10px; }
.offer-card .btn-open-modal { margin-bottom:2px; }
.offer-card .card-information>summary { padding-block:7px; }
.cota-group-stat[hidden] { display:none!important; }
.cota-group-stat,.cota-group-summary,.cota-group-remaining,.cota-group-status,.cota-group-history>summary,.cota-group-history>p { font-size:.875rem; }
.plan-fulfillment-note { margin:0 0 12px; color:#475467; font-size:.875rem; line-height:1.5; }
.apple-inclusions { padding:12px; border:1px solid var(--border); border-radius:8px; margin-bottom:12px; font-size:.875rem; line-height:1.5; }
.apple-inclusions ul { display:flex; flex-wrap:wrap; gap:6px; list-style:none; margin:8px 0; padding:0; }
.apple-inclusions li { padding:3px 7px; border:1px solid #d9e1f4; border-radius:4px; background:#f3f6ff; }
.apple-inclusions p { color:#475467; margin:0; }
#modalDetails .plan-essential-rule { font-size:.875rem; }
#modalDetails .modal-footer { display:grid; grid-template-columns:minmax(0,1fr); }
#modalDetails .modal-footer #btnBackToCatalog { border:0; min-height:44px; padding:8px; background:transparent; }
#modalDetails .is-unavailable .modal-footer { grid-template-columns:minmax(0,1fr) auto; align-items:center; }
#modalDetails .is-unavailable #btnPlanContact { grid-column:auto; }
#modalDetails .is-unavailable .modal-footer #btnBackToCatalog { max-width:90px; font-size:.8125rem; }
#modalDetails .modal-footer #btnPlanContact { font-size:.875rem; white-space:normal; }
.comparison-heading { padding-right:42px; }
.comparison-heading h3 { font-size:1.375rem; line-height:1.3; margin:0 0 8px; }
.comparison-heading .section-help { font-size:.875rem; margin:0; }
.comparison-differences { display:flex; align-items:center; gap:10px; min-height:44px; font-size:.875rem; margin-top:8px; cursor:pointer; }
.comparison-differences input { width:18px; height:18px; flex:0 0 18px; }
.compare-content { display:block; margin-top:12px; min-width:0; }
.comparison-table { border-collapse:collapse; width:100%; table-layout:fixed; font-size:.875rem; color:#344054; line-height:1.5; }
.comparison-count-2 { --comparison-count:2; }
.comparison-count-3 { --comparison-count:3; }
.comparison-table th,.comparison-table td { border-bottom:1px solid var(--border); padding:12px 10px; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.comparison-table thead th { background:#f3f6ff; color:#182230; }
.comparison-table thead th:first-child { width:22%; }
.comparison-table thead .service-mark { display:flex; width:32px; height:32px; margin:0 0 8px; }
.comparison-table thead span,.comparison-table thead small { display:block; line-height:1.4; }
.comparison-table thead small { font-size:.8125rem; color:#475467; margin-top:4px; font-weight:400; }
.comparison-table .compare-price { font-weight:750; color:#2444b4; }
.comparison-table tbody th { color:#182230; font-weight:650; }
.comparison-actions .btn { width:100%; white-space:normal; min-height:44px; padding:8px; font-size:.875rem; }
.show-differences [data-same="true"] { display:none; }
#publicLegalLinks,#publicContact { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; }
#publicLegalLinks>a,#publicContact>a { min-height:44px; display:inline-flex; align-items:center; font-size:.875rem; line-height:1.5; }
#publicContact>p { flex-basis:100%; }
@media(min-width:1100px) {
 .controls-wrapper { grid-template-columns:minmax(240px,1fr) minmax(0,2.25fr); align-items:start; }
 .controls-wrapper>.search-box { grid-column:1; }
 .controls-wrapper>.category-tabs { grid-column:2; max-width:none; width:100%; justify-content:flex-start; }
}
@media(max-width:700px) {
 .hero { padding-block:14px 16px; }
 .hero-title { font-size:1.875rem; }
 .hero-subtitle { margin-block:10px; line-height:1.45; }
 .hero-availability { font-size:.875rem; margin-bottom:8px; min-height:0; }
 .hero-benefits { display:none; }
 .hero-collection { display:block; margin-top:12px; padding:12px; border-radius:12px; }
 .hero-price-link { grid-template-columns:minmax(0,1fr); gap:10px; }
 .hero-price { display:flex; flex-flow:row wrap; align-items:center; gap:5px 10px; min-width:0; margin:0; }
 .hero-price .hero-featured-service { flex:1 1 8rem; font-size:.875rem; line-height:1.4; }
 .hero-price strong { flex:0 1 auto; max-width:100%; font-size:1.75rem; align-self:center; }
 .hero-price>span:nth-of-type(2) { flex-basis:100%; font-size:.875rem; }
 .hero-price .hero-price-rule { flex-basis:100%; margin-top:0; font-size:.875rem; }
 .hero-price-arrow { display:none; }
 #catalogStartingIcon .service-mark { width:28px; height:28px; flex:0 0 28px; }
 .hero-collection .discovery-grid,.hero-price-intro,.hero-collection>h2 { display:none; }
 .journey-intro .section-heading { display:none; }
 .journey-intro .invite-steps { grid-template-columns:1fr; border:0; gap:0; }
 .journey-intro .invite-step { display:flex; flex-direction:row; align-items:baseline; gap:8px; padding:4px 0; background:transparent; }
 .journey-intro .invite-step+.invite-step { border:0; }
 .journey-intro .invite-step>div { display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; }
 .journey-intro .step-title,.journey-intro .step-copy { font-size:.875rem; margin:0; line-height:1.4; }
 .journey-intro .step-label { width:20px; height:20px; min-width:20px; font-size:.8125rem; }
 .catalog-section { padding-top:12px; }
 .catalog-heading #catalogAvailability { font-size:.875rem; }
 .catalog-heading:not(:has(#btnRefreshGroupCatalog)) { padding-right:0; }
 .controls-wrapper { gap:8px; margin-bottom:8px; }
 .grid-header { display:flex; flex-flow:row wrap; gap:10px; align-items:start; margin-bottom:8px; }
 .grid-header .results-count { flex:0 1 auto; min-width:0; min-height:44px; display:flex; align-items:center; }
 .grid-header .catalog-quick-help { flex:1 1 12rem; }
 .grid-header .catalog-quick-help[open] { flex-basis:100%; }
 .catalog-refinement-fields .catalog-options { grid-template-columns:1fr; gap:10px; }
 .catalog-refinement-fields .catalog-options select { max-width:none; }
 .catalog-quick-help { margin-bottom:8px; }
 .catalog-quick-help>summary { font-size:.875rem; }
 .catalog-group-status { margin-bottom:10px; }
 .offer-card { padding:16px; }
 .offer-card .card-top { gap:10px; margin-bottom:8px; }
 .offer-card .service-mark { width:36px; height:36px; flex:0 0 36px; }
 .offer-card .btn-favorite { margin-right:0; }
 .comparison-table thead th:first-child { display:none; }
 .comparison-table tr { display:grid; grid-template-columns:repeat(var(--comparison-count),minmax(0,1fr)); }
 .comparison-table tbody th { grid-column:1/-1; padding:10px 6px 0; border:0; font-size:.875rem; }
 .comparison-table td,.comparison-table thead th { padding:8px 6px; }
 .comparison-table td { font-size:.875rem; }
 .comparison-table thead th { font-size:.875rem; }
 .comparison-table thead small { font-size:.8125rem; }
 #modalCompare .modal-card { padding:20px 12px; }
 #modalCompare .comparison-heading { padding-right:44px; padding-left:4px; }
 #modalCompare .comparison-differences { padding-left:4px; }
 .comparison-table { display:block; }
 .comparison-table :is(thead,tbody) { display:block; }
 .comparison-table .comparison-actions .btn { font-size:.8125rem; padding:8px 4px; }
}
@media(max-height:500px) {
 #modalDetails .modal-footer { padding:6px 12px; gap:4px; }
 #modalDetails .plan-detail-content { padding:16px; }
 #modalDetails .modal-header { margin-bottom:10px; }
 #modalDetails .modal-footer .btn { min-height:44px; padding:6px 8px; }
 #modalDetails .is-unavailable .modal-footer { grid-template-columns:minmax(0,1fr) auto; }
}
