/* Compor: theme grid -> human editorial -> product comparison. No second carousel. */
.cp-occasions{background:var(--soft,#f8f8f8);border-block:1px solid var(--line,#ccc);padding:52px 0 0;scroll-margin-top:140px}
.cp-occasions-heading{padding:0 var(--edge,24px) 32px;max-width:1000px}
.cp-occasions-heading .cp-eyebrow{color:var(--primary,#005ad2)}
.cp-occasions-heading h2{font:850 clamp(30px,3.2vw,46px)/1.08 var(--display,inherit);letter-spacing:-.045em;text-wrap:balance;max-width:24ch;margin:0 0 18px}
.cp-occasions-heading>p:last-child{font-size:16px;line-height:1.6;max-width:670px;color:var(--muted,#5d5d5d);margin:0}
.cp-occasion-editorial{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:stretch;border-top:1px solid var(--line,#ccc)}
.cp-occasion-feature{display:flex;flex-direction:column;text-decoration:none;background:var(--primary,#005ad2);color:var(--primary-ink,#fff);min-width:0}
.cp-occasion-feature-photo{width:100%;aspect-ratio:3/2;overflow:hidden;background:var(--soft,#f8f8f8)}
.cp-occasion-feature-photo img{width:100%;height:100%;object-fit:contain}
.cp-occasion-feature-copy{padding:clamp(28px,3.6vw,52px) var(--edge,24px);flex:1;display:flex;flex-direction:column;align-items:flex-start}
.cp-occasion-feature-copy h3{font:850 clamp(29px,3.1vw,43px)/1.07 var(--display,inherit);letter-spacing:-.04em;margin:0 0 20px;text-wrap:balance;max-width:20ch}
.cp-occasion-feature-copy>p:not(.cp-eyebrow){font-size:16px;line-height:1.65;max-width:460px;margin:0 0 24px}
.cp-occasion-main-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;background:var(--accent,#ffcf00);color:var(--accent-ink,#000);padding:15px 20px;min-height:52px;font-size:14px;font-weight:850;line-height:1.4;border-radius:4px;max-width:100%;margin-top:auto}
.cp-occasion-other{padding:28px clamp(20px,2.5vw,40px) 12px;min-width:0}
.cp-occasion-other-heading{font-size:10px;letter-spacing:.1em;color:var(--muted,#5d5d5d);margin-bottom:8px}
.cp-occasion-paths{list-style:none;margin:0;padding:0}
.cp-occasion-paths>li+li{border-top:1px solid var(--line,#ccc)}
.cp-occasion-paths a{display:grid;grid-template-columns:minmax(90px,.76fr) minmax(0,1.4fr);gap:22px;text-decoration:none;padding:24px 0;align-items:center}
.cp-occasion-path-photo{min-width:0;aspect-ratio:3/2;background:var(--paper,#fff);overflow:hidden}
.cp-occasion-path-photo img{width:100%;height:100%;object-fit:contain}
.cp-occasion-paths [data-occasion=ensaio] .cp-occasion-path-photo{aspect-ratio:2/3;max-height:180px}
.cp-occasion-label{font-size:12px;font-weight:850;margin:0 0 9px;line-height:1.4;color:var(--primary,#005ad2)}
.cp-occasion-label>span{font-weight:500;margin-right:6px;color:var(--muted,#5d5d5d)}
.cp-occasion-path-copy h3{font:850 clamp(19px,1.9vw,26px)/1.12 var(--display,inherit);letter-spacing:-.035em;margin:0 0 11px;text-wrap:balance}
.cp-occasion-description{font-size:14px;line-height:1.55;color:var(--muted,#5d5d5d);margin:0 0 12px}
.cp-occasion-inline-cta{display:inline-flex;align-items:center;gap:10px;min-height:36px;font-size:12px;line-height:1.45;font-weight:800;border-bottom:1px solid currentColor;padding-bottom:3px}
.cp-occasion-inline-cta svg{width:18px;height:18px}
.cp-occasion-calendar{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:32px;align-items:center;background:var(--accent,#ffcf00);color:var(--accent-ink,#000);padding:30px var(--edge,24px);border-top:1px solid var(--line,#ccc)}
.cp-occasion-calendar .cp-eyebrow{font-size:10px;margin-bottom:10px}
.cp-occasion-calendar h3{font:850 clamp(22px,2.2vw,29px)/1.15 var(--display,inherit);letter-spacing:-.035em;margin:0;max-width:24ch;text-wrap:balance}
.cp-occasion-calendar nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.cp-occasion-calendar a{display:flex;flex-direction:column;justify-content:center;gap:9px;border-top:1px solid currentColor;padding:14px 0 4px;text-decoration:none;min-height:82px}
.cp-occasion-calendar strong{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:18px;line-height:1.2;letter-spacing:-.02em}
.cp-occasion-calendar strong svg{width:18px;height:18px}
.cp-occasion-calendar a>span{font-size:12px;line-height:1.45;max-width:23ch}
.cp-occasion-feature:focus-visible{outline:3px solid var(--ink,#000);outline-offset:-5px}
.cp-occasion-paths a:focus-visible,.cp-occasion-calendar a:focus-visible{outline:3px solid var(--primary,#005ad2);outline-offset:4px}
@media(hover:hover){.cp-occasion-feature:hover .cp-occasion-main-cta,.cp-occasion-paths a:hover .cp-occasion-inline-cta,.cp-occasion-calendar a:hover strong{text-decoration:underline;text-underline-offset:4px}}
@media(max-width:1100px) and (min-width:821px){.cp-occasion-editorial{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.cp-occasion-paths a{gap:15px}.cp-occasion-description{font-size:13px}.cp-occasion-other{padding-inline:22px}.cp-occasion-feature-copy{padding-inline:28px}}
@media(max-width:820px){.cp-occasions{padding-top:34px}.cp-occasions-heading{padding-bottom:26px}.cp-occasions-heading h2{font-size:32px}.cp-occasions-heading>p:last-child{font-size:15px}.cp-occasion-editorial{grid-template-columns:minmax(0,1fr)}.cp-occasion-feature-copy{padding:29px var(--edge,20px) 32px}.cp-occasion-feature-copy h3{font-size:33px}.cp-occasion-main-cta{width:100%;font-size:14px}.cp-occasion-other{padding:24px var(--edge,20px) 8px}.cp-occasion-paths a{grid-template-columns:108px minmax(0,1fr);gap:20px;padding:23px 0}.cp-occasion-path-copy h3{font-size:23px}.cp-occasion-description{font-size:13px}.cp-occasion-paths [data-occasion=ensaio] .cp-occasion-path-photo{max-height:150px}.cp-occasion-calendar{grid-template-columns:1fr;padding-block:26px;gap:20px}.cp-occasion-calendar h3{font-size:27px}.cp-occasion-calendar nav{gap:16px}.cp-occasion-calendar strong{font-size:17px}}
@media(max-width:380px){.cp-occasion-paths a{grid-template-columns:88px minmax(0,1fr);gap:16px}.cp-occasion-path-copy h3{font-size:21px}.cp-occasion-description{font-size:13px}.cp-occasion-calendar nav{grid-template-columns:1fr;gap:0}.cp-occasion-calendar a{min-height:67px;padding-block:14px;flex-direction:row;align-items:center;justify-content:space-between}.cp-occasion-calendar strong{width:38%}.cp-occasion-calendar a>span{width:55%;text-align:right}}
/* Curated catalog adds useful context, not a parallel visual theme. */
.cp-occasion-catalog{padding-inline:var(--edge,24px)}
.cp-occasion-catalog-intro{max-width:810px;padding-bottom:20px}
.cp-occasion-catalog-intro h1{font-size:clamp(32px,4vw,52px);font-weight:850;line-height:1.06;letter-spacing:-.045em;max-width:23ch;text-wrap:balance;margin-bottom:20px}
.cp-occasion-catalog-intro>p:not(.cp-eyebrow){font-size:16px;line-height:1.65;max-width:720px;color:var(--muted,#5d5d5d)}
.cp-occasion-note{border-left:3px solid var(--primary,#005ad2);padding:10px 16px;background:var(--soft,#f8f8f8);font-size:14px!important}
.cp-occasion-selection{display:flex;flex-wrap:wrap;align-items:end;gap:16px;padding:18px 0 24px}
.cp-occasion-selection label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:750;flex:1 1 150px;min-width:0}
.cp-occasion-selection select,.cp-occasion-selection input{font:inherit;font-size:15px;min-height:48px;background:var(--paper,#fff);border:1px solid var(--line,#ccc);border-radius:0;color:var(--ink,#000);padding:10px 12px;width:100%;min-width:0}
.cp-occasion-selection label:first-child{flex-basis:260px}
.cp-occasion-filter-summary{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:0 0 18px}
.cp-occasion-filter-summary button{min-height:42px;padding:8px 12px;border:1px solid var(--line,#ccc);background:var(--soft,#f8f8f8);font-size:13px}
.cp-occasion-filter-summary p{margin:0 auto 0 0;font-size:14px}
.cp-occasion-season-links{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.cp-occasion-season-links a{border-bottom:1px solid currentColor;min-height:44px;padding:10px 0;margin-right:18px;text-decoration:none;font-size:14px;font-weight:750}
.cp-occasion-catalog .cp-catalog-grid{margin-inline:0}
.cp-occasion-catalog .cp-load-more{display:block;margin:30px auto 0}
.cp-occasion-catalog .cp-empty{padding:35px 0;max-width:650px}
@media(max-width:600px){.cp-occasion-selection{gap:12px}.cp-occasion-selection label{flex-basis:calc(50% - 12px)}.cp-occasion-selection label:first-child{flex-basis:100%}.cp-occasion-catalog-intro h1{font-size:34px}.cp-occasion-catalog-intro>p:not(.cp-eyebrow){font-size:15px}}
