/* ---------- HERO ---------- */
.hero{position:relative;overflow:hidden;min-height:clamp(620px,calc(100vh - var(--header-h)),880px);display:flex;align-items:center}
.hero__media{position:absolute;inset:0 0 0 auto;width:min(50%,720px);margin:0;background:var(--color-surface);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 34%);mask-image:linear-gradient(90deg,transparent 0,#000 34%)}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:50% 16%}
.hero__grid{display:grid;grid-template-columns:minmax(0,38rem);grid-template-areas:"intro" "actions" "craft";padding-block:var(--space-lg)}
.hero__intro,.hero__actions,.hero__craft{position:relative;z-index:1}
.hero__intro{grid-area:intro;display:flex;flex-direction:column;gap:var(--space-sm)}
.hero__title{font-size:var(--fs-h1);white-space:nowrap;text-transform:uppercase;line-height:.98;margin-top:.3rem}
.hero__tag{font-size:clamp(1.5rem,2.1vw,2.2rem);color:var(--color-text);line-height:1.2}
.hero__body{max-width:28rem;color:var(--color-muted);font-size:1rem;line-height:1.75}
.hero__actions{grid-area:actions;display:flex;flex-wrap:wrap;gap:var(--space-xs);padding-top:var(--space-md)}
.hero__craft{grid-area:craft;display:flex;flex-wrap:wrap;gap:var(--space-md) 2.25rem;margin-top:var(--space-lg)}
.hero__craft li{display:flex;align-items:center;gap:.8rem}
.icon--lg{width:1.75rem;height:1.75rem;flex:none;color:var(--color-gold-text);stroke-width:1}
.craft__title{font-family:var(--font-sans);font-size:.625rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.hero__craft p{font-size:.75rem;color:var(--color-muted);line-height:1.4}

/* ---------- COLLECTIONS ---------- */
.collections{padding-inline:clamp(.75rem,2.6vw,2.5rem)}
.collections__strip{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}
.col-card{position:relative;display:block;color:var(--color-on-dark);overflow:hidden}
.col-card__img{display:block;aspect-ratio:1/1.08;overflow:hidden;background:var(--color-surface)}
.col-card__img img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform 1.4s var(--ease)}
.col-card::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 0,transparent 64%,rgb(38 32 22 / .5) 100%);pointer-events:none}
.col-card__text{position:absolute;left:clamp(1rem,1.8vw,1.75rem);bottom:clamp(3.4rem,4.4vw,4.6rem);z-index:2;display:flex;flex-direction:column;gap:.2rem;transition:transform .5s var(--ease)}
.col-card__name{font-size:clamp(1.5rem,2vw,2.1rem);text-transform:uppercase;letter-spacing:.05em;line-height:1}
.col-card__line{font-size:.8125rem;opacity:.95}
.col-card__text{text-shadow:0 1px 14px rgb(30 24 16 / .45)}
.col-card__go{position:absolute;left:clamp(1rem,1.8vw,1.75rem);bottom:clamp(1rem,1.8vw,1.5rem);z-index:2;display:grid;place-items:center;width:2rem;height:2rem;border:1px solid rgb(250 249 246 / .75);border-radius:50%;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}
.col-card__go .icon{width:.9rem;height:.5rem}
/* Per-photograph framing: each crop is chosen by hand */
.col-card--royal .col-card__img img{object-position:50% 20%}
.col-card--deluxe .col-card__img img{object-position:50% 45%}
.col-card--exclusive .col-card__img img{object-position:50% 46%}
.col-card--exclusive .col-card__text{bottom:clamp(2.9rem,3.9vw,4.1rem)}
.col-card:hover .col-card__img img,.col-card:focus-visible .col-card__img img{transform:scale(1.04)}
.col-card:hover .col-card__text{transform:translateY(-4px)}
.col-card:hover .col-card__go,.col-card:focus-visible .col-card__go{background:var(--color-bg);border-color:var(--color-bg);color:var(--color-olive)}


/* ---------- CREATE YOUR CAKE ---------- */
.create{padding-block:var(--space-xl)}
.create__grid{display:grid;grid-template-columns:minmax(0,clamp(20rem,38.5vw,34.5rem)) minmax(0,1fr);gap:clamp(1.5rem,3vw,3.5rem);align-items:center}
.create__copy{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm)}
.create__copy .btn{margin-top:var(--space-sm)}

/* Creative board: one dominant cake, three inspiration pieces, a note and a palette */
.board{position:relative;aspect-ratio:1/1;margin-right:calc(var(--gutter) * -.4)}
.board__piece{position:absolute;margin:0;overflow:hidden;background:var(--color-surface)}
.board__piece img{width:100%;height:100%;object-fit:cover}
.board__cake{z-index:1;left:12%;top:0;bottom:0;width:66%}
.board__cake img{object-position:50% 45%}
.board__venue{z-index:2;right:0;top:4%;width:30%;aspect-ratio:3/2}
.board__floral{z-index:2;right:4%;top:50%;width:20%;aspect-ratio:4/5}
.board__fabric{z-index:2;left:0;bottom:6%;width:22%;aspect-ratio:4/3}
.board__note{position:absolute;z-index:3;left:0;bottom:27%;width:clamp(8.75rem,21%,10.25rem);margin:0;padding:.75rem .9rem .8rem;background:var(--color-bg);font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:clamp(.78rem,.98vw,.9rem);line-height:1.38;color:var(--color-text)}
.board__note::before{content:"";display:block;width:1.5rem;height:1px;background:var(--color-gold);margin-bottom:.5rem}
.board__palette{position:absolute;z-index:2;right:6%;top:79%;margin:0}
.board__star{position:absolute;z-index:3;left:3%;bottom:41.5%;display:grid;place-items:center;line-height:0}
.board__star:empty{display:none}
.board__star svg{fill:var(--color-gold)}
.swatches{display:flex;gap:.4rem}
.swatches i{width:clamp(1rem,1.7vw,1.5rem);aspect-ratio:1;border-radius:50%;background:var(--c);border:1px solid var(--color-border)}

/* ---------- ATELIER ---------- */
.atelier{--panel:#F3F1EC}
.atelier__grid{display:grid;grid-template-columns:minmax(0,5.05fr) minmax(0,4.2fr) minmax(0,4.2fr);min-height:clamp(440px,42vw,640px)}
.atelier__img{position:relative;overflow:hidden;margin:0;background:var(--color-surface)}
.atelier__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.atelier__img--left img{object-position:50% 28%}
.atelier__img--right img{object-position:50% 40%}
.atelier__copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--space-sm);padding:clamp(2rem,4vw,4.5rem);background:var(--panel)}
.atelier__copy .h2{font-size:clamp(1.9rem,2.6vw,3.1rem);text-transform:uppercase;letter-spacing:.02em}
.atelier__copy .h2 em{text-transform:none}
.atelier__copy>p:not(.eyebrow){color:var(--color-muted);max-width:26rem}
.atelier__copy .link-arrow{margin-top:var(--space-xs)}

/* ---------- BRAND MOMENT ---------- */
.moment{background:var(--color-olive);color:var(--color-on-dark);padding-block:clamp(4rem,7vw,7rem);text-align:center}
.moment__title{font-size:clamp(1.9rem,3.5vw,3.5rem);line-height:1.14;letter-spacing:.05em;text-transform:uppercase;text-wrap:balance}
.moment__sub{margin-top:clamp(1rem,1.6vw,1.5rem);font-size:clamp(1.1rem,1.55vw,1.45rem);line-height:1.4;color:var(--color-gold)}
.br-m{display:none}
/* ---------- FINAL CTA ---------- */
.closing{background:var(--color-surface);padding-block:var(--space-xl);text-align:center}
.closing__inner{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}
.closing__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-xs);margin-top:var(--space-sm)}

/* ---------- FOOTER ---------- */
.site-footer{background:var(--color-olive);color:var(--color-on-dark);padding-top:var(--space-lg)}
.footer__grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,4fr) minmax(0,4fr);gap:var(--space-md);padding-bottom:var(--space-lg)}
.footer__logo{width:clamp(130px,11vw,165px);height:auto;margin-bottom:var(--space-sm)}
.footer__brand p{font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:1.25rem;line-height:1.4;opacity:.85}
.footer__nav{display:grid;grid-template-columns:repeat(2,auto);justify-content:start;column-gap:clamp(2rem,5vw,4.5rem)}
.footer__nav a,.footer__contact a{display:inline-block;padding:.3rem 0;font-size:.875rem;opacity:.85;transition:opacity var(--dur-fast),color var(--dur-fast)}
.footer__nav a:hover,.footer__contact a:hover{opacity:1;color:var(--color-gold)}
.footer__contact{font-style:normal;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;font-size:.875rem}
.footer__contact>span{padding:.3rem 0;opacity:.85}
.footer__social{display:flex;gap:1.25rem;margin-top:.75rem}
.footer__social a{font-size:var(--fs-ui);letter-spacing:var(--track-ui);text-transform:uppercase}
.footer__legal{border-top:1px solid rgb(250 249 246 / .16);padding-block:1.25rem;font-size:.75rem;opacity:.7}
