/* One full-width photograph, with a quiet gradient behind the text. */
.festas-page .bridal-hero{min-height:clamp(520px,43vw,660px);background:#29251f;padding-block:76px}
.festas-page .bridal-hero-bg{inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 10%}
.festas-page .bridal-hero::before{background:linear-gradient(90deg,#211e1bf2 0%,#211e1bd6 30%,#211e1b73 57%,#211e1b12 100%)}
.festas-page .bridal-hero h1{max-width:660px}
.festas-page .bridal-hero p:not(.eyebrow){max-width:540px}
.festas-page .bridal-hero .button{max-width:100%}

/* Two editorial introductions before the filterable projects. */
.festas-exclusive{background:var(--paper)}
.festas-exclusive-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(40px,7vw,108px);align-items:center}
.festas-editorial-copy{min-width:0}
.festas-editorial-copy h2{margin-bottom:30px;line-height:1.08}
.festas-editorial-copy p{font-size:15px;line-height:1.95;max-width:460px;color:var(--muted)}
.festas-editorial-copy p+p{margin-top:20px}
.festas-editorial-copy .text-link{margin-top:30px;font-size:14px}
.festas-exclusive-images{position:relative;min-width:0;max-width:560px;width:100%;padding:0 0 38px 62px;justify-self:end}
.festas-exclusive-images figure,.festas-craft-images figure{margin:0}
.festas-exclusive-main{overflow:hidden;border-radius:48% 48% 4px 4px;background:var(--greige)}
.festas-exclusive-main img{width:100%;height:auto}
.festas-exclusive-inset{position:absolute;left:0;bottom:0;width:40%;padding:9px;background:var(--paper);box-shadow:0 12px 36px #29251f24;transform:rotate(-5deg)}
.festas-exclusive-inset img{width:100%;height:auto}
.festas-craft{background:#362d29;color:var(--paper)}
.festas-craft-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,7vw,108px);align-items:center}
.festas-craft .festas-editorial-copy p{color:#e1d8cd}
.festas-craft-images{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:start;min-width:0}
.festas-craft-detail{padding:12px;border:1px solid #b7a99680;transform:rotate(-3deg)}
.festas-craft-structure{padding-top:72px}
.festas-craft-images img{width:100%;height:auto;border-radius:2px}
@media(max-width:1100px){.festas-exclusive-images{padding-left:40px}.festas-craft-images{gap:18px}.festas-craft-detail{padding:8px}.festas-craft-structure{padding-top:48px}}
@media(max-width:820px){.festas-page .bridal-hero{min-height:480px;padding-block:62px}.festas-page .bridal-hero h1{max-width:600px}.festas-page .bridal-hero p:not(.eyebrow){max-width:470px}.festas-exclusive-grid,.festas-craft-grid{grid-template-columns:1fr;gap:42px}.festas-exclusive-images{max-width:500px;justify-self:center}.festas-craft-images{max-width:530px;width:100%;justify-self:center}.festas-craft .festas-editorial-copy{grid-row:1}.festas-editorial-copy p{max-width:600px}}
@media(max-width:600px){.festas-page .bridal-hero{min-height:490px;padding-block:52px}.festas-page .bridal-hero-bg{object-position:57% 8%}.festas-page .bridal-hero::before{background:linear-gradient(90deg,#211e1bea,#211e1bab 65%,#211e1b66)}.festas-editorial-copy h2{margin-bottom:24px}.festas-editorial-copy p{font-size:14px;line-height:1.9}.festas-exclusive-images{padding-left:38px;padding-bottom:30px;max-width:380px}.festas-exclusive-inset{padding:6px;width:42%}.festas-craft-images{gap:16px}.festas-craft-structure{padding-top:46px}.festas-craft-detail{padding:7px}}

/* Project photographs remain visible without JavaScript. */
.festas-project-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:30px}
.festas-project-heading h2{margin:0}
.festas-project-count{font-size:12px;color:var(--muted);white-space:nowrap}
.festas-project-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}
.festas-project-filters button{min-height:44px;padding:10px 22px;border:1px solid var(--line);border-radius:30px;background:transparent;color:var(--muted);font-size:13px;transition:background .2s,color .2s,border-color .2s}
.festas-project-filters button[aria-pressed="true"]{background:var(--mocha);border-color:var(--mocha);color:var(--paper)}
.festas-project-grid{columns:3;column-gap:24px}
.festas-project-card{break-inside:avoid;margin:0 0 24px}
.festas-project-card a{position:relative;display:block;overflow:hidden;background:#eee8df;border:1px solid var(--line);border-radius:8px;transition:border-color .2s,box-shadow .2s}
.festas-project-card img{width:100%;height:auto}
.festas-project-card[data-project-category="croquis"] a{padding:16px;background:var(--paper)}
.festas-project-expand{position:absolute;right:14px;bottom:14px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--paper);color:var(--mocha);box-shadow:0 2px 16px #29251f20}
.festas-project-more{display:flex;justify-content:center;margin-top:24px}
.festas-project-more .button{min-height:48px}
.festas-project-dialog{width:min(1080px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:18px 24px;border:1px solid #796b5b;border-radius:12px;background:#24211e;color:var(--paper)}
.festas-project-dialog::backdrop{background:#171411e8;backdrop-filter:blur(6px)}
.festas-dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}
.festas-dialog-toolbar h2{font-family:var(--serif);font-size:26px;line-height:1.2;margin:0;font-weight:400}
.festas-dialog-button{display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid #a99b8a80;border-radius:50%;background:transparent;color:var(--paper)}
.festas-dialog-button:focus-visible{outline-color:var(--paper)}
.festas-dialog-close{font-size:28px;line-height:1}
.festas-dialog-photo{display:block;width:100%;height:min(68dvh,760px);object-fit:contain;background:#1c1a18}
.festas-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:16px}
.festas-dialog-caption{margin:0;max-width:650px;font-size:13px;line-height:1.6;color:#e1d8cd}
.festas-dialog-navigation{display:flex;align-items:center;gap:14px;flex-shrink:0}
.festas-dialog-position{min-width:70px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums}
.festas-dialog-previous .icon{transform:rotate(180deg)}
.festas-dialog-button:disabled{opacity:.35;cursor:default}
.festas-project-card[hidden],.festas-project-filters[hidden],.festas-project-more[hidden]{display:none}
@media(hover:hover){.festas-project-card a:hover{border-color:var(--walnut);box-shadow:0 8px 24px #4f403414}.festas-project-filters button:hover{border-color:var(--walnut)}.festas-dialog-button:hover{background:#4f4034}}
@media(max-width:820px){.festas-project-grid{columns:2;column-gap:20px}.festas-project-card{margin-bottom:20px}}
@media(max-width:600px){.festas-project-heading{align-items:start;flex-direction:column;gap:10px;margin-bottom:24px}.festas-project-filters{gap:8px;margin-bottom:24px}.festas-project-filters button{padding:9px 15px;font-size:12px}.festas-project-grid{column-gap:12px}.festas-project-card{margin-bottom:12px}.festas-project-card[data-project-category="croquis"] a{padding:8px}.festas-project-expand{width:32px;height:32px;right:8px;bottom:8px}.festas-project-expand .icon{width:18px;height:18px}.festas-project-dialog{padding:14px;width:calc(100% - 20px);max-height:calc(100dvh - 20px)}.festas-dialog-footer{flex-direction:column;gap:14px}.festas-dialog-caption{font-size:12px;text-align:center}.festas-dialog-photo{height:60dvh}.festas-dialog-navigation{justify-content:center}.festas-dialog-toolbar{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){.festas-project-card a,.festas-project-filters button{transition:none}}
