/* Group listings only. Shared navigation and approved detailed-page styles stay intact. */
.groups-preview.section-shell { padding:76px var(--gutter); background:#f6f2e9; }
.groups-preview .groups-editorial-heading { display:grid; grid-template-columns:minmax(0,1fr) clamp(220px,25vw,360px); gap:clamp(24px,4vw,68px); align-items:center; margin-bottom:36px; }
.groups-editorial-heading h2 { max-width:none; margin:0; }
.groups-preview .groups-editorial-heading .section-heading-art { display:block; position:static; z-index:auto; width:100%; max-width:340px; height:auto; aspect-ratio:1; margin:0; object-fit:contain; justify-self:center; opacity:1; }
.groups-editorial-heading .section-description { max-width:70ch; }
.groups-section-footer { margin-top:32px; }
.groups-section-footer .button { gap:12px; }
.group-enrollment-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
.group-enrollment-list .group-enrollment-card { display:flex; flex-direction:column; align-items:stretch; gap:0; width:100%; max-width:none; min-width:0; height:100%; padding:0; border:1px solid #ddd7c9; border-radius:24px; background:#fffdf8; overflow:hidden; }
.group-enrollment-card .group-enrollment-photo { display:block; position:relative; flex:none; align-self:stretch; width:calc(100% - 24px); height:auto; min-height:0; margin:12px 12px 0; aspect-ratio:4/3; border:1px solid #e5dfd3; border-radius:16px; overflow:hidden; background:#ebe5d9; }
.group-enrollment-card .group-enrollment-photo img { display:block; position:absolute; inset:0; width:100%; height:100%; max-height:none; object-fit:cover; object-position:50% 37%; }
.group-enrollment-card-event .group-enrollment-photo img { object-position:50% 50%; }
.group-enrollment-copy { display:flex; flex:1; flex-direction:column; gap:16px; min-width:0; padding:24px; }
.group-enrollment-copy .group-enrollment-title > p { margin:0 0 9px; color:#596270; font-size:.8rem; line-height:1.45; }
.group-enrollment-copy .group-enrollment-title h3 { font-size:clamp(1.5rem,1.9vw,1.85rem); line-height:1.2; letter-spacing:-.035em; }
.group-enrollment-copy .group-enrollment-summary { margin:0; max-width:none; font-size:.95rem; line-height:1.65; }
.group-enrollment-copy .group-enrollment-facts { display:grid; gap:10px; margin:0; padding-top:16px; border-top:1px solid #e4dfd5; }
.group-enrollment-copy .group-enrollment-facts > div { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:baseline; gap:12px; }
.group-enrollment-copy .group-enrollment-facts dt { font-size:.8rem; line-height:1.5; }
.group-enrollment-copy .group-enrollment-facts dd { font-size:.86rem; line-height:1.5; text-align:right; }
.group-enrollment-copy .group-enrollment-facts time { white-space:normal; }
.group-enrollment-copy .group-enrollment-price { margin:0; font-size:.85rem; line-height:1.6; }
.group-enrollment-bottom { display:flex; flex-direction:column; align-items:flex-start; gap:18px; margin-top:auto; padding-top:6px; }
.group-enrollment-bottom .group-enrollment-host { margin:0; font-size:.82rem; line-height:1.6; }
.group-enrollment-bottom .group-enrollment-cta { display:inline-flex; min-height:46px; padding:12px 20px; align-items:center; justify-content:center; gap:12px; align-self:flex-start; white-space:normal; line-height:1.3; }
/* The directory has its own spacious copy/art composition. */
.groups-page main > .breadcrumbs,.groups-page .groups-opening { background:#f6f2e9; }
.smysly-page main > .breadcrumbs { background:#fffdf8; }
.groups-opening { padding:44px var(--gutter) 54px; }
.groups-opening .groups-opening-top { display:grid; grid-template-columns:minmax(0,1fr) clamp(240px,27vw,380px); gap:clamp(48px,7vw,120px); align-items:center; }
.groups-opening .groups-opening-copy { min-width:0; }
.groups-opening .groups-opening-top > img { display:block; width:100%; height:auto; max-width:380px; aspect-ratio:1; object-fit:contain; justify-self:end; }
.groups-opening .groups-opening-copy > p:not(.section-index) { max-width:58ch; margin-top:24px; }
.groups-directory { padding-bottom:76px; }
@media(min-width:768px) and (max-width:1199px) {
 .group-enrollment-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .groups-preview .groups-editorial-heading { grid-template-columns:minmax(0,1fr) 200px; gap:28px; }
 .groups-opening .groups-opening-top { grid-template-columns:minmax(0,1fr) 240px; gap:40px; }
}
@media(max-width:767px) {
 .groups-preview.section-shell { padding:48px var(--gutter); }
 .groups-preview .groups-editorial-heading { display:grid; position:static; grid-template-columns:minmax(0,1fr) 112px; gap:14px 18px; margin-bottom:28px; }
 .groups-editorial-heading .groups-heading-copy { display:contents; }
 .groups-editorial-heading .section-index { grid-column:1 / -1; margin:0; }
 .groups-editorial-heading h2 { grid-column:1; grid-row:2; font-size:clamp(1.9rem,7.8vw,2.5rem); }
 .groups-preview .groups-editorial-heading .section-heading-art { grid-column:2; grid-row:2; position:static; width:112px; height:112px; max-width:none; margin:0; opacity:1; }
 .groups-editorial-heading .section-description { grid-column:1 / -1; margin:0; font-size:1rem; }
 .group-enrollment-list { grid-template-columns:minmax(0,1fr); gap:24px; }
 .group-enrollment-list .group-enrollment-card { border-radius:22px; }
 .group-enrollment-copy { padding:22px; gap:16px; }
 .group-enrollment-copy .group-enrollment-title h3 { font-size:1.7rem; }
 .group-enrollment-copy .group-enrollment-facts dd { font-size:.87rem; }
 .groups-opening { padding:28px var(--gutter) 38px; }
 .groups-opening .groups-opening-top { display:grid; grid-template-columns:minmax(0,1fr) 112px; gap:18px; }
 .groups-opening .groups-opening-copy { display:contents; }
 .groups-opening .section-index { grid-column:1 / -1; margin:0; }
 .groups-opening h1 { grid-column:1; grid-row:2; margin:0; font-size:clamp(2rem,8.7vw,2.5rem); }
 .groups-opening .groups-opening-top > img { grid-column:2; grid-row:2; width:112px; height:112px; margin:0; }
 .groups-opening .groups-opening-copy > p:not(.section-index) { grid-column:1 / -1; margin:0; font-size:1rem; line-height:1.65; }
 .groups-directory { padding-bottom:48px; }
}
