/* Approved square satellite/name/point composition, only in instructor catalogue rows. */
.lc-panel .lc-offer.ql-card { grid-template-columns:92px minmax(0,1fr); gap:16px; padding:14px; min-height:158px; background:var(--surface); border-radius:18px; }
.ll-location { position:relative; display:block; width:100%; aspect-ratio:1; overflow:hidden; border-radius:13px; background:#273332; }
.ll-location > img { position:absolute; display:block; max-width:none; object-fit:fill; }
.ll-location.is-satellite > img { width:400%; height:600%; left:var(--ll-x); top:calc(var(--ll-y) + 25px); }
.ll-location.is-local > img { width:calc(100% + 100px); height:calc(100% + 100px); left:-50px; top:-25px; }
.ll-location.is-photo > img { inset:0; width:100%; height:100%; object-fit:cover; }
.ll-shade { position:absolute; inset:0; background:#07151b18; }
.ll-place-group { position:absolute; display:flex; flex-direction:column; align-items:center; gap:10px; left:50%; top:50%; transform:translate(-50%,-50%); width:calc(100% - 12px); }
.ll-place-label { display:flex; align-items:center; justify-content:center; box-sizing:border-box; width:100%; height:40px; padding:3px 4px; color:#fff; background:#006e78; border:1px solid #aaf3ef88; border-radius:7px; font-size:11px; font-weight:650; line-height:15px; letter-spacing:-.15px; text-align:center; word-break:keep-all; overflow-wrap:anywhere; }
.ll-point { position:relative; flex:none; box-sizing:border-box; width:14px; height:14px; border:3px solid #fff; border-radius:50%; background:#00b7c3; box-shadow:0 2px 7px #0008; }
.ll-point::after { content:''; position:absolute; inset:-9px; border-radius:50%; background:#00b7c366; animation:ll-location-pulse 2s ease-out infinite; }
@keyframes ll-location-pulse { from { transform:scale(.55); opacity:.75; } to { transform:scale(1.4); opacity:0; } }
.lc-panel .lc-offer .ql-card-copy { display:grid; grid-template-rows:16px 24px 18px 16px minmax(0,1fr); height:116px; gap:3px; align-self:center; justify-content:stretch; }
.lc-offer .ql-card-top > small { font-size:11px; font-weight:500; line-height:16px; letter-spacing:0; }
.lc-offer .ql-card-top > span { color:var(--muted); opacity:.7; }
.lc-offer .ql-card-top svg { width:13px; height:13px; }
.lc-panel .lc-offer .ql-card-copy > strong { font-size:17px; font-weight:650; line-height:24px; letter-spacing:-.4px; margin:0; }
.lc-offer-meta { display:flex; align-items:center; gap:6px; min-width:0; color:var(--muted); font-size:12px; line-height:18px; letter-spacing:0; }
.lc-offer-meta > i { width:2px; height:2px; flex:none; border-radius:50%; background:currentColor; opacity:.7; }
.lc-offer-meta .lc-duration,.lc-offer-meta .lc-instructor-name { font:inherit; color:inherit; white-space:nowrap; }
.lc-offer .ql-card-bottom { align-self:end; padding:0; margin:0; justify-content:flex-end; }
.lc-panel .lc-offer .ql-card-bottom > b { display:inline-flex; align-items:baseline; font-size:21px; font-weight:700; line-height:25px; letter-spacing:-.45px; text-align:right; }
.lc-price-unit { margin-left:2px; font-size:.72em; font-weight:500; letter-spacing:0; }
.lc-select-date { display:inline-flex; align-items:center; justify-content:flex-end; gap:6px; min-height:44px; padding:8px 10px; border:1px solid var(--line); border-radius:10px; color:var(--accent); background:var(--surface); font:inherit; text-align:right; }
.lc-select-date svg { width:14px; height:14px; }
.lc-booking-date-choices { display:grid; grid-template-columns:1fr; gap:10px; }
.lc-booking-date-choices > button { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:60px; padding:14px 16px; color:var(--text); background:var(--surface); border:1px solid var(--line); border-radius:13px; font-size:14px; }
.lc-booking-date-choices small { color:var(--muted); font-size:12px; }
.lc-booking-date-choices > button > span:first-child { display:grid; gap:5px; text-align:left; }
.lc-availability { padding:5px 8px; border-radius:7px; font-size:12px; font-weight:600; white-space:nowrap; }
.lc-availability.is-available { color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--surface)); }
.lc-availability.is-full { color:var(--muted); background:var(--bg); }
.lc-booking-date-choices > button:disabled { color:var(--muted); cursor:default; }
@media(min-width:600px) { .lc-panel .lc-offer.ql-card { grid-template-columns:100px minmax(0,1fr); gap:20px; padding:16px; min-height:162px; } .lc-panel .lc-offer .ql-card-copy { height:120px; grid-template-rows:16px 26px 18px 16px minmax(0,1fr); } .lc-panel .lc-offer .ql-card-copy > strong { font-size:18px; line-height:26px; } .lc-panel .lc-offer .ql-card-bottom > b { font-size:22px; line-height:26px; } }
@media(max-width:359px) { .lc-panel .lc-offer.ql-card { grid-template-columns:88px minmax(0,1fr); gap:12px; padding:11px; } .lc-panel .lc-offer .ql-card-copy { height:114px; grid-template-rows:16px 22px 18px 16px minmax(0,1fr); } .lc-panel .lc-offer .ql-card-copy > strong { font-size:14px; line-height:22px; letter-spacing:-.25px; } .lc-panel .lc-offer .ql-card-bottom > b { font-size:20px; line-height:24px; } .lc-offer-meta { gap:5px; font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .ll-point::after { animation:none; transform:scale(.75); opacity:.35; } }

.lc-review { display:block; color:var(--muted); font-size:11px; line-height:16px; white-space:nowrap; letter-spacing:0; }
.lc-review > span { color:var(--accent); }
.lc-review b { color:var(--text); font-weight:600; }
.lc-review small { font:inherit; }
.lc-detail-heading > .lc-review { margin:-10px 0 20px; color:var(--muted); font-size:12px; }
