/* Final mobile layout: vertical cards, readable text and comfortable touch targets. */
body{padding-bottom:calc(102px + env(safe-area-inset-bottom,0px))}
.catalog{scroll-margin-top:16px}.cards,.card,.cardtext,.sim-copy,.sim-visual,.cart-row .info{min-width:0}
.cardtext p,.cardtext h3,.cardtext strong,.cart-row h3,.pair-note{overflow-wrap:anywhere}
.card .service-details{color:inherit;text-align:left}.card .add-service{justify-content:center;text-align:center}
.cart-bar{bottom:calc(12px + env(safe-area-inset-bottom,0px));min-height:64px}.cart-bar strong{white-space:nowrap}
.cart-dialog{max-height:calc(100dvh - 12px);padding:20px 18px calc(18px + env(safe-area-inset-bottom,0px));overflow:hidden}
.cart-dialog[open]{display:flex;flex-direction:column;gap:14px}.cart-head{flex-shrink:0}.cart-head h2{font-size:28px}
#cart-items{min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.cart-row{padding:14px 0}.cart-row small{display:block;font-size:12px;line-height:1.5;margin-top:6px}.cart-row button{flex-shrink:0}
.cart-total{flex-shrink:0;margin:0;gap:12px;font-size:18px}.checkout{flex-shrink:0;min-height:48px;padding:14px}
.cart-help{flex-shrink:0;font-size:12px;line-height:1.5;margin:0}
.message-preview{flex-shrink:0;font-size:13px}.message-preview summary{cursor:pointer;min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:3px}
.message-preview pre{font:12px/1.6 Lato,Arial,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;max-height:120px;overflow:auto;margin:0;background:#e0c6ba;padding:12px;border-radius:10px}
.close,.admin-close{min-width:44px;min-height:44px}.modalbox{overscroll-behavior:contain}.modalcopy .detail-add{min-height:48px}
#modal{width:100%;height:100dvh;border-radius:0}
.duration{display:block;line-height:1.5}.empty{padding:35px 12px}
.toast{pointer-events:none}
button,a,input,select,summary{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #996515;outline-offset:3px}
@media(max-width:720px){
 .catalog{padding:32px 16px}.cards{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .cardimage,.card:nth-child(3n+2) .cardimage,.card:nth-child(3n) .cardimage{aspect-ratio:1/1.08}
 .cardtext{padding:12px}.card h3{font-size:18px;line-height:1.25;letter-spacing:-.025em}
 .cardtext>p{font-size:14px;line-height:1.5;margin:10px 0 12px}.cardtext strong{font-size:18px}
 .card .add-service{font-size:14px;min-height:46px;margin:0 10px 12px;width:calc(100% - 20px)}
 .category{font-size:10px;line-height:1.3;padding:6px 8px}.filters{min-width:0}.search{min-width:0;height:48px}.search input{font-size:16px;min-width:0}
 .chips{gap:6px}.chips button{min-height:44px;font-size:13px;padding:9px 12px}
 .catalog h2{font-size:32px}.result{align-items:center;gap:10px;line-height:1.5}
 .sim-feature{flex-direction:row;min-height:0;border-radius:15px}.sim-visual{width:34%;flex-shrink:0}
 .sim-copy{width:66%;padding:18px 12px}.sim-copy h3{font-size:24px;line-height:1.12;margin-bottom:12px}
 .sim-copy .eyebrow{font-size:9px;line-height:1.5;letter-spacing:.08em}.sim-copy>p:not(.eyebrow){font-size:13px;line-height:1.5}
 .sim-copy label{font-size:12px;line-height:1.4;margin:12px 0 5px}.sim-copy select{min-height:46px;font-size:16px;padding:8px 6px;min-width:0;max-width:100%}
 .sim-copy button{min-height:48px;font-size:13px;padding:10px 8px}#sim-feedback{font-size:12px;line-height:1.5;min-height:0;margin:10px 0}
 .sim-visual span{font-size:10px;line-height:1.4;left:7px;right:7px;bottom:10px;padding:8px 5px}
 .cart-bar{padding:12px 16px;gap:10px}.cart-bar span{font-size:12px}.cart-bar strong{font-size:14px}
 #modal{padding:12px}.modalbox{border-radius:16px;max-height:calc(100dvh - 24px)}.modalbox>img{height:auto;min-height:0;aspect-ratio:1/1;max-height:40svh;object-fit:contain;background:#e0c6ba}
 .modalcopy{padding:24px 20px}.modalcopy h2{font-size:29px}.price{flex-wrap:wrap;gap:12px}
 .admin-form input,.admin-form textarea,.admin-search input{font-size:16px}
 footer a,footer .admin-entry{min-height:44px;display:flex;align-items:center;justify-content:center}
}
@media(max-width:359px){
 .cards{grid-template-columns:1fr}.cardimage,.card:nth-child(3n+2) .cardimage,.card:nth-child(3n) .cardimage{aspect-ratio:1/1;max-height:300px}
 .card h3{font-size:21px}.cardtext{padding:15px}.sim-visual{width:27%}.sim-copy{width:73%;padding:16px 12px}
 .cart-bar{padding:12px}.cart-bar span{font-size:11px}.cart-bar strong{font-size:13px}
 .cart-head h2{font-size:25px}.cart-dialog{padding:18px 14px calc(14px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:reduce){.cardimage img,.hero .button{transition:none}.card button:hover .cardimage img{transform:none}}

/* Groups follow a vertical flow; the current group stays visible during scrolling. */
.cards{display:flex;flex-direction:column;gap:40px;overflow:visible;scroll-snap-type:none;padding:0}
.service-group{min-width:0;scroll-margin-top:82px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.group-heading{display:flex;align-items:center;gap:14px;margin:0 0 20px;padding-top:10px}.group-heading>div{flex:1;min-width:0}.group-heading h3{font-size:30px;line-height:1.2;letter-spacing:-.025em;margin:0 0 7px}.group-heading p{font-size:14px;line-height:1.5;margin:0;max-width:600px}.group-heading>small{font-size:12px;white-space:nowrap}.group-number{font-size:13px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#e0c6ba;flex-shrink:0}
.catalog-wayfinder{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:12px;background:#e6dcd0f5;backdrop-filter:blur(12px);border-top:1px solid #66302d25;border-bottom:1px solid #66302d25;padding:12px 0;margin:0 0 26px;min-height:68px}.catalog-wayfinder[hidden]{display:none}.catalog-wayfinder>div{flex:1;min-width:0}.catalog-wayfinder small{display:block;font-size:10px;line-height:1.3}.catalog-wayfinder strong{display:block;font-size:18px;line-height:1.35;overflow-wrap:anywhere}.wayfinder-number{font-size:11px;letter-spacing:.02em;white-space:nowrap}.catalog-wayfinder>a{font-size:12px;min-height:44px;display:flex;align-items:center;text-underline-offset:4px;padding-left:8px}#catalog-filters{scroll-margin-top:82px}
.card h4{font-size:24px;line-height:1.15;letter-spacing:-.025em;font-weight:700;margin:0;overflow-wrap:anywhere}.club-note{display:block;color:#66302d;font-size:11px;line-height:1.4;border-radius:6px;background:#e0c6ba;padding:6px 8px;margin:0 0 10px}.sim-feature{width:100%;margin-top:10px;min-width:0}.cardtext>p{min-height:0}.card .category{display:none}
@media(max-width:999px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.cards{gap:34px}.service-grid{gap:12px}.group-heading{gap:10px;margin-bottom:16px;align-items:flex-start}.group-heading h3{font-size:24px;line-height:1.2}.group-heading p{font-size:13px}.group-heading>small{display:none}.group-number{width:30px;height:30px;font-size:11px}.card h4{font-size:18px;line-height:1.25}.catalog-wayfinder{margin:0 -16px 22px;padding:10px 16px;gap:10px;min-height:66px}.catalog-wayfinder strong{font-size:16px}.catalog-wayfinder>a{font-size:11px}.wayfinder-number{font-size:10px}.catalog-wayfinder small{font-size:10px}.cardtext strong{font-size:17px}.club-note{font-size:10px;padding:5px 6px}}
@media(max-width:359px){.service-grid{grid-template-columns:1fr}.card h4{font-size:21px}.catalog-wayfinder strong{font-size:15px}}

/* Preserve the complete description in details while keeping the mobile menu scannable. */
.cardtext>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}

.cardtext strong .price-prefix{display:block;font-size:12px;line-height:1.4;font-weight:400;margin-bottom:2px}

/* The details layer stays above the sticky group legend; closing remains reachable while scrolling. */
#modal{z-index:1000}
#modal>.close{position:fixed;top:calc(16px + env(safe-area-inset-top,0px));right:16px;z-index:2;width:44px;height:44px;border-radius:50%;background:#e6dcd0;color:#66302d;border:1px solid #66302d33;box-shadow:0 2px 12px #66302d26}
