/* Cornelia Brides — photo gallery (home section + /cornelia-brides/ page). */

.cb-preview-note{margin:0;background:#fff7e0;color:#7b5b1d;text-align:center;font-size:.78rem;letter-spacing:.04em;padding:.8rem 1.2rem;border-bottom:1px dashed #8e6b22}

/* ---------- shared: intro block ---------- */
.cb-intro{max-width:640px;margin:0 auto 3rem;padding:0 2rem;text-align:center}
.cb-eyebrow{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cs-accent);margin-bottom:.6em}
.cb-intro .section-title{margin-bottom:.4em}
.cb-intro p{color:var(--cs-text-soft);margin:0}

/* ---------- shared: filters (page only) ---------- */
.cb-filters{max-width:var(--container);margin:0 auto;padding:0 2rem 2.5rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}
.cb-chip{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cs-text);border:1px solid var(--cs-border);padding:.7em 1.3em;background:#fff;transition:background-color .25s,color .25s,border-color .25s}
.cb-chip:hover{border-color:var(--cs-accent);color:var(--cs-accent)}
.cb-chip.is-on{background:var(--cs-accent);border-color:var(--cs-accent);color:#fff}

/* ---------- gallery grid ---------- */
.cb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;max-width:var(--container);margin:0 auto;padding:0 2rem;list-style:none}
.cb-grid--page{padding-bottom:4rem}
.cb-card{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;background:var(--cs-bg-cream-deep);cursor:pointer;text-align:left;width:100%}
.cb-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.cb-card:hover img{transform:scale(1.06)}
.cb-card__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,15,12,0) 55%,rgba(20,15,12,.6) 100%);pointer-events:none}
.cb-card__play{position:absolute;top:.8rem;right:.8rem;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.28);backdrop-filter:blur(4px);color:#fff}
.cb-card__name{position:absolute;left:1rem;right:1rem;bottom:.9rem;color:#fff;font-family:var(--font-display);font-size:1.25rem;line-height:1.15;text-shadow:0 1px 10px rgba(0,0,0,.35)}

/* ---------- home: CTA + mobile slider ---------- */
.cb-home{margin-top:4rem;padding:6rem 0}
.cb-home__all{display:block;width:max-content;margin:3rem auto 0}

/* ---------- page: hero + load-more + end band ---------- */
.cb-hero{padding:7rem 2rem 1rem;text-align:center}
.cb-hero h1{font-size:clamp(2.6rem,6vw,4.5rem);margin-bottom:.2em}
.cb-hero__body{max-width:640px;margin:0 auto;color:var(--cs-text-soft)}
.cb-more{text-align:center;padding:3rem 2rem 5rem}
.cb-empty{text-align:center;color:var(--cs-text-soft);padding:4rem 2rem;grid-column:1/-1}
.cb-end{position:relative;padding:7rem 2rem;text-align:center;background-color:var(--cs-text);color:#fff}
.cb-end::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(20,15,12,.72) 0%,rgba(20,15,12,.5) 100%)}
.cb-end>*{position:relative;z-index:1}
.cb-end .cb-eyebrow{color:#d9b877}
.cb-end h2{color:#fff;font-size:clamp(2rem,4vw,3rem);margin-bottom:.5em}
.cb-end p{color:rgba(255,255,255,.85);max-width:32em;margin:0 auto 1.6rem}
.cb-end .cs-btn{margin-top:.4rem}
.cb-end__note{margin-top:1.6rem !important;font-size:.9rem}
.cb-end__note a{color:#fff;border-bottom:1px solid rgba(255,255,255,.5);margin-left:.3em}

/* ---------- lightbox ---------- */
body.has-cb-lightbox{overflow:hidden}
.cb-lb{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:rgba(15,11,9,.92);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}
.cb-lb.is-open{opacity:1;visibility:visible}
.cb-lb__stage{display:flex;align-items:center;gap:3rem;max-width:min(1000px,100%);max-height:100%;color:#fff}
.cb-lb__media{flex:none;height:min(86vh,880px);max-width:100%;aspect-ratio:3/4;background:#000;overflow:hidden}
.cb-lb__media img,.cb-lb__media video{width:100%;height:100%;object-fit:cover;display:block}
.cb-lb__text{max-width:300px}
.cb-lb__name{font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.4rem);margin-bottom:.15em;color:#fff}
.cb-lb__place{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.75;margin-bottom:1.2em}
.cb-lb__quote{margin:0 0 1.4em;padding:0;font-family:var(--font-display);font-style:italic;font-size:1.2rem;line-height:1.4;color:rgba(255,255,255,.92)}
.cb-lb__quote::before{content:"\201C"}.cb-lb__quote::after{content:"\201D"}
.cb-lb__dress{display:inline-block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#d9b877;border-bottom:1px solid rgba(217,184,119,.5);padding-bottom:.2em}
.cb-lb__close,.cb-lb__nav{position:absolute;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(255,255,255,.12);transition:background-color .25s,color .25s}
.cb-lb__close:hover,.cb-lb__nav:hover{background:#fff;color:var(--cs-text)}
.cb-lb__close{top:1.2rem;right:1.2rem}
.cb-lb__nav{top:50%;margin-top:-22px}
.cb-lb__nav--prev{left:1.2rem}
.cb-lb__nav--next{right:1.2rem}
.cb-lb__nav[hidden]{display:none}

@media(max-width:1100px){
	.cb-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:720px){
	.cb-home{padding:4rem 0}
	.cb-intro{margin-bottom:2rem;padding:0 1.4rem}
	.cb-hero{padding:5rem 1.4rem .5rem}
	.cb-filters{padding:0 1.2rem 1.6rem;gap:.5rem}

	/* home gallery becomes a horizontally scrolling row of cards */
	.cb-grid--home{display:flex;gap:.9rem;overflow-x:auto;padding-left:1.2rem;padding-right:1.2rem;scroll-snap-type:x proximity;scrollbar-width:none}
	.cb-grid--home::-webkit-scrollbar{display:none}
	.cb-grid--home .cb-card{flex:0 0 62vw;scroll-snap-align:start}

	/* page gallery stays a real grid, just narrower */
	.cb-grid--page{grid-template-columns:repeat(2,1fr);gap:.9rem;padding:0 1.2rem 3rem}
	.cb-card__name{font-size:1.05rem}
	.cb-more{padding:2rem 1.2rem 3.5rem}
	.cb-end{padding:5rem 1.4rem}

	.cb-lb{padding:.8rem;align-items:flex-start;overflow-y:auto}
	.cb-lb__stage{flex-direction:column;gap:1.2rem;align-items:center;padding:3rem 0 1.5rem}
	.cb-lb__media{height:min(60vh,600px)}
	.cb-lb__text{max-width:none;text-align:center}
	.cb-lb__nav{display:none}
	.cb-lb__close{top:.8rem;right:.8rem}
}
@media(prefers-reduced-motion:reduce){
	.cb-card img{transition:none}
	.cb-card:hover img{transform:none}
}
