/* Specialty pages (weddings, graduation, baptisms): two layout options, A = editorial, B = split story. */
.sp{--sp-ink:#30243d;--sp-muted:#6e5b7a;--sp-accent:#5b3a85;--sp-accent-2:#7146a1;--sp-soft:#eee7f4;--sp-line:#ded1ec;color:var(--sp-ink)}
.sp h1,.sp h2,.sp h3{font-family:Manrope,sans-serif;color:var(--sp-ink);letter-spacing:-.02em;margin:0}
.sp p{color:var(--sp-muted);line-height:1.75;margin:0}
.sp img{display:block;width:100%;height:100%;object-fit:cover}
.sp-wrap{width:86%;max-width:1240px;margin:0 auto}
.sp-eyebrow{display:block;font-size:11px;letter-spacing:.2em;font-weight:700;color:var(--sp-accent-2);margin-bottom:16px;text-transform:uppercase}
.sp-btn{display:inline-flex;align-items:center;gap:14px;background:var(--sp-accent);color:#fff!important;padding:15px 22px;border-radius:6px;font-size:14px;font-weight:600;text-decoration:none}
.sp-btn:hover{background:#4a2e6e}
.sp-link{color:var(--sp-accent)!important;font-size:14px;text-decoration:underline;text-underline-offset:5px}
.sp-section{padding:70px 0}
.sp-section h2{font-size:clamp(30px,3.4vw,46px);line-height:1.12}

/* ===== Option A: editorial ===== */
.spa-hero{margin:0 6%}
.spa-hero-img{height:min(68vh,640px);min-height:380px;border-radius:10px;overflow:hidden}
.spa-hero-img img{object-position:center 35%}
.spa-hero-copy{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:end;padding:44px 0 10px}
.spa-hero h1{font-size:clamp(40px,5vw,70px);line-height:1.05}
.spa-hero-side p{font-size:17px;margin:0 0 24px}
.spa-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:end}
.spa-intro p{font-size:16px}
.spa-mosaic{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:440px;gap:14px;margin-top:46px}
.spa-mosaic figure{margin:0;border-radius:8px;overflow:hidden}

.spa-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:40px}
.spa-list article{border-top:2px solid var(--sp-accent-2);padding-top:18px}
.spa-list strong{display:block;font-size:13px;color:var(--sp-accent-2);margin-bottom:12px}
.spa-list h3{font-size:20px;line-height:1.3;margin-bottom:10px}
.spa-list p{font-size:14px}
.spa-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 6%}
.spa-strip figure{margin:0;aspect-ratio:3/4;border-radius:6px;overflow:hidden}
.spa-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:36px;border-top:1px solid var(--sp-line)}
.spa-steps article{padding:26px 24px 0 0}
.spa-steps strong{font-family:Manrope,sans-serif;font-size:34px;color:var(--sp-accent-2)}
.spa-steps h3{font-size:20px;margin:14px 0 10px}
.spa-steps p{font-size:14px}
.spa-cta{background:#201c25;border-radius:10px;padding:56px;display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center}
.spa-cta h2{color:#fff}
.spa-cta p{color:#cec4d5;margin-top:14px}
.spa-cta .sp-eyebrow{color:#b89dd0}
.spa-cta-actions{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.spa-cta .sp-link{color:#e2d4ed!important}

/* ===== Option B: split story ===== */
.spb-hero{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:50px 0 30px}
.spb-hero h1{font-size:clamp(40px,4.8vw,66px);line-height:1.06}
.spb-hero p{font-size:17px;margin:20px 0 28px;max-width:520px}
.spb-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.spb-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px}
.spb-chips span{font-size:12px;padding:7px 12px;border:1px solid var(--sp-line);border-radius:20px;color:var(--sp-accent);background:#fff}
.spb-visual{position:relative}
.spb-visual .main{aspect-ratio:4/5;border-radius:10px;overflow:hidden}
.spb-visual .inset{position:absolute;left:0;bottom:0;width:42%;aspect-ratio:1;border-radius:8px;overflow:hidden;border:6px solid var(--paper,#f7f5f1)}
.spb-rows{display:flex;flex-direction:column;gap:60px;margin-top:44px}
.spb-row{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.spb-row:nth-child(even) .spb-row-img{order:2}
.spb-row-img{aspect-ratio:3/2;border-radius:8px;overflow:hidden}
.spb-row strong{display:block;font-size:12px;letter-spacing:.18em;color:var(--sp-accent-2);margin-bottom:14px}
.spb-row h3{font-size:clamp(24px,2.4vw,32px);line-height:1.2;margin-bottom:14px}
.spb-row ul{margin:18px 0 0;padding:0;list-style:none}
.spb-row li{padding:10px 0;border-top:1px solid var(--sp-line);font-size:14px;color:var(--sp-ink)}
.spb-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:36px}
.spb-gallery figure{margin:0;aspect-ratio:1;border-radius:6px;overflow:hidden}
.spb-faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px}
.spb-faq details{border-top:1px solid var(--sp-line);padding:18px 0}
.spb-faq details:last-child{border-bottom:1px solid var(--sp-line)}
.spb-faq summary{cursor:pointer;font-family:Manrope,sans-serif;font-size:18px;color:var(--sp-ink);list-style:none;display:flex;justify-content:space-between;gap:16px}
.spb-faq summary::-webkit-details-marker{display:none}
.spb-faq summary::after{content:"+";color:var(--sp-accent-2);font-size:22px;line-height:1}
.spb-faq details[open] summary::after{content:"−"}
.spb-faq details p{margin-top:12px;font-size:15px}
.spb-cta{background:var(--sp-soft);border-radius:10px;padding:52px;text-align:center}
.spb-cta p{max-width:560px;margin:14px auto 26px}

.sp-preview-tag{position:fixed;left:16px;bottom:16px;z-index:1100;background:#30243d;color:#fff;font-size:12px;padding:9px 14px;border-radius:20px}

@media(max-width:900px){
.spa-intro,.spa-cta,.spb-hero,.spb-row,.spb-faq{grid-template-columns:1fr;gap:28px}
.spa-list{grid-template-columns:1fr 1fr}
.spa-steps{grid-template-columns:1fr}
.spb-row:nth-child(even) .spb-row-img{order:0}
}
@media(max-width:600px){
.sp-section{padding:48px 0}
.spa-hero{margin:0 4%}
.spa-hero-img{min-height:300px;height:52vh}
.spa-hero-copy{grid-template-columns:1fr;gap:18px;padding-top:28px}
.spa-mosaic{grid-template-columns:1fr;grid-template-rows:260px 220px}
.spa-list{grid-template-columns:1fr}
.spa-strip{grid-template-columns:1fr 1fr;margin:0 4%}
.spa-cta,.spb-cta{padding:30px 22px}

.spb-gallery{grid-template-columns:1fr 1fr}
}
