/* Shared functional sections. Each family supplies its own composition and artwork. */
.celebration-template{background:var(--design-paper);color:var(--design-ink);font-family:Inter,'Noto Sans Tamil',sans-serif}
.celebration-template *{box-sizing:border-box}.celebration-template [hidden]{display:none!important}.celebration-template img{max-width:100%}.celebration-template h1,.celebration-template h2,.celebration-template h3,.celebration-template p{overflow-wrap:anywhere}
.celebration-template h1,.celebration-template h2,.celebration-template h3{font-family:'Cormorant Garamond','Noto Sans Tamil',serif;font-weight:500;line-height:1.08}.celebration-template h1{font-size:clamp(3.6rem,9vw,9rem)}.celebration-template h2{font-size:clamp(2.5rem,5vw,5rem)}.celebration-template h3{font-size:clamp(1.7rem,2.5vw,2.5rem)}.celebration-template p{line-height:1.8}
.celebration-template .cl-section{padding:clamp(64px,9vw,130px) 24px}.cl-inner{width:min(1120px,100%);margin-inline:auto}.cl-section-heading{text-align:center;max-width:760px;margin:0 auto 48px}.cl-section-heading>p:first-child,.cl-kicker{text-transform:uppercase;letter-spacing:.17em;font-size:.75rem}.cl-section-heading h2{margin:16px 0 24px}.cl-section-heading p:last-child:not(:first-child){max-width:600px;margin-inline:auto}
.cl-events{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.cl-event{border-block:1px solid color-mix(in srgb,var(--design-ink) 22%,transparent);padding:30px 8px;min-width:0}.cl-event-number{display:block;color:var(--design-accent);font-size:.8rem;letter-spacing:.15em;margin-bottom:28px}.cl-event h3{margin:0 0 24px}.cl-event-time{font-weight:600}.cl-event-copy>p{font-size:.95rem}.cl-event-venue{border-top:1px solid color-mix(in srgb,var(--design-ink) 16%,transparent);padding-top:18px}
.cl-venue{background:color-mix(in srgb,var(--design-accent) 8%,var(--design-paper))}.cl-venue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:center;gap:60px}.cl-venue figure{margin:0}.cl-venue img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:150px 150px 8px 8px}.cl-venue-copy{max-width:680px;margin:auto;text-align:center}.cl-venue-copy h2{margin:20px 0 30px}.cl-venue-date{font-size:1.12rem}.cl-notes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:40px}.cl-notes-grid article{border-left:1px solid color-mix(in srgb,var(--design-accent) 60%,transparent);padding-left:26px}.cl-notes-grid h3{margin:0 0 16px}.cl-gift{text-align:center}.cl-gift p{max-width:640px;margin:22px auto 0}.cl-countdown .countdown-values{justify-content:center;gap:clamp(22px,5vw,70px)}.cl-countdown .countdown-values strong{font-size:clamp(2.5rem,6vw,5rem);color:var(--design-accent)}.cl-countdown .countdown-values span{font-size:.7rem;letter-spacing:.1em}
.cl-rsvp{background:color-mix(in srgb,var(--design-accent) 10%,var(--design-paper))}.celebration-template .wedding-rsvp{max-width:760px;margin:0 auto;text-align:left}.celebration-template .rsvp-grid{gap:24px}.celebration-template .rsvp-grid label{font-size:.85rem;color:var(--design-ink)}.celebration-template .rsvp-grid input,.celebration-template .rsvp-grid select,.celebration-template .rsvp-grid textarea{background:var(--design-paper);color:var(--design-ink);border-color:color-mix(in srgb,var(--design-ink) 30%,transparent);width:100%;min-width:0;font-family:inherit;font-size:16px;line-height:1.4;min-height:48px}.celebration-template .wedding-button{background:var(--design-accent);color:var(--design-button-ink);border:1px solid var(--design-accent);font-family:inherit;font-size:.9rem;border-radius:2px;text-align:center;line-height:1.4;min-height:48px;padding:16px 24px}.celebration-template .wedding-button.secondary{background:transparent;color:var(--design-ink);border-color:color-mix(in srgb,var(--design-ink) 40%,transparent)}.celebration-template .wedding-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.celebration-template .call-rsvp{display:block;text-align:center;color:inherit;margin-top:24px}.celebration-template .rsvp-message{text-align:center}.celebration-template .made-by{display:block;margin-top:40px;font-size:.75rem;color:inherit;opacity:.75}
.celebration-template .cl-gallery{padding:80px 24px}.cl-gallery-grid{max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.cl-gallery-grid a{display:block;overflow:hidden}.cl-gallery-grid img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .7s}.cl-gallery-grid a:hover img{transform:scale(1.04)}
.celebration-template .date-experience{background:var(--design-paper);color:var(--design-ink);padding:80px 24px}.celebration-template .date-experience h2{color:inherit}.celebration-template .date-keepsake{max-width:560px}.celebration-template .date-keepsake-content{background:color-mix(in srgb,var(--design-accent) 12%,var(--design-paper));color:var(--design-ink)}
.celebration-template .custom-event-section{background:var(--design-paper);color:var(--design-ink)}.celebration-template :is(a,button,input,select,textarea,[tabindex="0"]):focus-visible{outline:3px solid var(--design-accent);outline-offset:5px}.celebration-template .photo-dialog{padding:0}.celebration-template .photo-dialog::backdrop{background:#090a0ce8}.celebration-template .cl-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.cl-motion [data-cl-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.cl-motion [data-cl-reveal].cl-in{opacity:1;transform:none}
@media(max-width:760px){.cl-events{grid-template-columns:1fr;gap:16px}.cl-event{display:grid;grid-template-columns:34px 1fr;gap:16px;padding:26px 0}.cl-event-number{margin-top:8px}.cl-venue-grid{gap:36px}.cl-section-heading{margin-bottom:32px}.celebration-template .cl-section{padding-inline:20px}.cl-gallery-grid{grid-template-columns:1fr 1fr;gap:12px}.cl-gallery-grid a:last-child:nth-child(odd){grid-column:1/-1}.celebration-template .rsvp-grid{grid-template-columns:1fr}.celebration-template .date-experience{padding-inline:20px}.celebration-template h1{font-size:clamp(3rem,13vw,5rem)}.cl-notes-grid{gap:28px}.celebration-template .wedding-actions{align-items:stretch}.celebration-template .wedding-actions a{flex:1 1 200px}}
@media(prefers-reduced-motion:reduce){.cl-motion [data-cl-reveal]{opacity:1;transform:none;transition:none}.cl-gallery-grid img{transition:none}.celebration-template .cl-video{display:none}}

.celebration-template h1[tabindex="-1"]:focus{outline:none}
