/* v4.3.0 Lovable layout components (Funeral Services pages). Tokens from funeral.css (body.sib-funeral). */
body.sib-funeral{--lv-pad:24px}
@media(min-width:1024px){body.sib-funeral{--lv-pad:40px}}
.sib-funeral .lv-wrap{max-width:1280px;margin-left:auto;margin-right:auto;padding-left:var(--lv-pad);padding-right:var(--lv-pad)}
.sib-funeral .lv-sec{padding-top:128px;padding-bottom:128px}
.sib-funeral .lv-sec--nob{padding-top:0}
@media(max-width:767px){.sib-funeral .lv-sec{padding-top:96px;padding-bottom:96px}}
.sib-funeral .lv-eyebrow{font-family:var(--f-sans);font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:var(--f-taupe);margin:0;font-weight:400}
.sib-funeral .lv-eyebrow--light{color:oklch(99% .006 85/.6)}
.sib-funeral [class*="lv-"] h1,.sib-funeral [class*="lv-"] h2,.sib-funeral [class*="lv-"] h3,.sib-funeral .lv-hero h1{font-family:var(--f-serif);font-weight:500;color:var(--f-head);letter-spacing:0;margin:0}
.sib-funeral [class*="lv-"] em,.sib-funeral .lv-hero h1 em{font-style:italic;color:var(--f-prim)}
.sib-funeral .lv-sec h2{font-size:3rem;line-height:1.25;margin-top:24px}
@media(min-width:1024px){.sib-funeral .lv-sec h2{font-size:3.75rem}}
.sib-funeral .lv-muted{color:var(--f-taupe)}
/* ---------- hero ---------- */
.sib-funeral .lv-hero{position:relative;overflow:hidden;background:var(--f-ivory);min-height:560px}
.sib-funeral .lv-hero--full{min-height:calc(100svh - 72px)}
.sib-funeral .lv-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease-in-out}
.sib-funeral .lv-slide.on{opacity:1}
.sib-funeral .lv-slide img{width:100%;height:100%;object-fit:cover;border-radius:0!important}
.sib-funeral .lv-slide.on img{animation:lvKen 9s ease-out both}
@keyframes lvKen{0%{transform:scale(1.04)}to{transform:scale(1.12)}}
.sib-funeral .lv-scrim{position:absolute;inset:0;background:linear-gradient(90deg,oklch(98.5% .008 85/.96) 0%,oklch(98.5% .008 85/.85) 38%,oklch(98.5% .008 85/.1) 75%)}
@media(max-width:767px){.sib-funeral .lv-scrim{background:linear-gradient(90deg,oklch(98.5% .008 85/.96) 0%,oklch(98.5% .008 85/.85) 60%,oklch(98.5% .008 85/.55) 100%)}}
.sib-funeral .lv-hero-mark{pointer-events:none;position:absolute;left:-96px;top:50%;width:46rem;max-width:none;transform:translateY(-50%);opacity:.06;filter:blur(1px)}
.sib-funeral .lv-hero-in{position:relative;display:flex;align-items:center;min-height:inherit;padding-top:96px;padding-bottom:96px}
.sib-funeral .lv-hero--full .lv-hero-in{min-height:calc(100svh - 72px)}
.sib-funeral .lv-hero-copy{max-width:672px}
.sib-funeral .lv-hero .lv-eyebrow{display:flex;align-items:center;gap:16px}
.sib-funeral .lv-rule{display:inline-block;height:1px;width:40px;background:var(--f-prim)}
.sib-funeral .lv-hero h1{margin-top:32px;font-size:3rem;line-height:1.02}
@media(min-width:640px){.sib-funeral .lv-hero h1{font-size:3.75rem}}
@media(min-width:1024px){.sib-funeral .lv-hero h1{font-size:4.5rem}}
.sib-funeral .lv-hero-sub{margin-top:32px;max-width:512px;font-size:1.125rem;line-height:1.625;color:oklch(22% 0 0/.8)}
.sib-funeral .lv-btns{margin-top:40px;display:flex;flex-wrap:wrap;gap:16px}
.sib-funeral .lv-btn{display:inline-block;border-radius:2px;padding:16px 32px;font-family:var(--f-sans);font-size:.875rem;letter-spacing:.025em;text-decoration:none;transition:all .15s;border:1px solid transparent;line-height:1.4}
.sib-funeral .lv-btn-primary{background:var(--f-prim);color:var(--f-primfg)!important}
.sib-funeral .lv-btn-primary:hover{box-shadow:var(--f-shl)}
.sib-funeral .lv-btn-outline{border-color:var(--f-head);color:var(--f-head)!important}
.sib-funeral .lv-btn-outline:hover{background:var(--f-head);color:var(--f-ivory)!important}
.sib-funeral .lv-hero-note{margin-top:20px;font-size:.875rem;color:var(--f-taupe)}
.sib-funeral .lv-hero-note a{color:var(--f-prim)}
.sib-funeral .lv-crumbs{font-size:.8rem;color:var(--f-taupe);margin-bottom:24px}.sib-funeral .lv-crumbs a{color:var(--f-taupe)}
.sib-funeral .lv-dots{position:absolute;bottom:40px;right:var(--lv-pad);display:flex;gap:8px}
.sib-funeral .lv-dots button{height:1px;width:24px;padding:0;border:0;background:oklch(34% .04 250/.3);transition:all .7s;cursor:pointer}
.sib-funeral .lv-dots button.on{width:48px;background:var(--f-prim)}
.sib-funeral .lv-rise{animation:lvRise 1.1s cubic-bezier(.2,.7,.2,1) both}
@keyframes lvRise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
/* ---------- package cards ---------- */
.sib-funeral .lv-pk-head{display:grid;gap:40px}
@media(min-width:1024px){.sib-funeral .lv-pk-head{grid-template-columns:repeat(12,1fr)}.sib-funeral .lv-pk-head>div{grid-column:span 5}.sib-funeral .lv-pk-intro{grid-column:8 / span 5}}
.sib-funeral .lv-pk-intro{align-self:end;font-size:1.125rem;line-height:1.625;color:var(--f-taupe);margin:0}
.sib-funeral .lv-pk-grid{margin-top:80px;display:grid;gap:24px}
@media(min-width:768px){.sib-funeral .lv-pk-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.sib-funeral .lv-pk-grid{grid-template-columns:repeat(4,1fr);align-items:start}.sib-funeral .lv-pk--drop{margin-top:48px}.sib-funeral .lv-pk-grid--2{grid-template-columns:repeat(2,minmax(0,420px));justify-content:center}}
.sib-funeral .lv-pk{position:relative;background:var(--f-card);border:1px solid var(--f-line);border-radius:2px;padding:32px;box-shadow:var(--f-shc);transition:transform .5s,box-shadow .5s}
.sib-funeral .lv-pk:hover{transform:translateY(-8px);box-shadow:var(--f-shl)}
.sib-funeral .lv-pk--top{border-color:var(--f-prim);box-shadow:var(--f-shl)}
.sib-funeral .lv-pk-badge{position:absolute;top:-12px;left:32px;background:var(--f-prim);color:var(--f-primfg);padding:4px 12px;font-size:.7rem;letter-spacing:.32em;text-transform:uppercase}
.sib-funeral .lv-pk-name{font-family:var(--f-serif);font-style:italic;font-size:1.25rem;color:var(--f-taupe)}
.sib-funeral .lv-pk-price{margin-top:24px;display:flex;align-items:baseline;gap:6px}
.sib-funeral .lv-pk-price span{font-family:var(--f-serif);font-size:3.75rem;line-height:1;color:var(--f-head)}
.sib-funeral .lv-pk-price small{font-size:.875rem;color:var(--f-taupe)}
.sib-funeral .lv-pk-casket{margin:16px 0 0;border-top:1px solid var(--f-line);border-bottom:1px solid var(--f-line);padding:16px 0;font-family:var(--f-serif);font-size:1.5rem;color:var(--f-prim)}
.sib-funeral .lv-pk ul{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:12px}
.sib-funeral .lv-pk li{display:flex;gap:12px;font-size:.875rem;line-height:1.375;padding:0;color:var(--f-fg)}
.sib-funeral .lv-pk li:before{display:none}
.sib-funeral .lv-tick{margin-top:2px;flex:none;display:flex;width:16px;height:16px;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--f-prim);color:var(--f-prim)}
.sib-funeral .lv-tick svg{width:10px;height:10px}
.sib-funeral .lv-pk-cta{margin-top:32px;display:block;border-radius:2px;padding:12px;text-align:center;font-size:.875rem;letter-spacing:.025em;border:1px solid var(--f-prim);color:var(--f-prim)!important;text-decoration:none;transition:all .15s}
.sib-funeral .lv-pk-cta:hover,.sib-funeral .lv-pk--top .lv-pk-cta{background:var(--f-prim);color:var(--f-primfg)!important}
.sib-funeral .lv-pk-img{margin-top:24px;width:100%;border-radius:2px}
.sib-funeral .lv-fine{margin-top:40px;font-size:.75rem;color:var(--f-taupe)}
.sib-funeral .lv-more{margin-top:16px}.sib-funeral .lv-link{color:var(--f-prim);font-size:.875rem;letter-spacing:.025em;text-decoration:underline;text-underline-offset:4px}
/* ---------- Isiphekiso band ---------- */
.sib-funeral .lv-iso-wrap{padding-left:var(--lv-pad);padding-right:var(--lv-pad)}
.sib-funeral .lv-iso{max-width:1280px;margin:0 auto;display:grid;overflow:hidden;border-radius:2px;background:var(--f-head)}
@media(min-width:1024px){.sib-funeral .lv-iso{grid-template-columns:1fr 1fr}}
.sib-funeral .lv-iso>img{width:100%;height:320px;object-fit:cover;border-radius:0!important}
@media(min-width:1024px){.sib-funeral .lv-iso>img{height:100%}}
.sib-funeral .lv-iso-copy{padding:40px}
@media(min-width:1024px){.sib-funeral .lv-iso-copy{padding:80px}}
.sib-funeral .lv-iso h2{margin-top:24px;font-size:3rem;line-height:1.1;color:var(--f-ivory)}
.sib-funeral .lv-iso-rule{margin:32px 0;height:1px;width:64px;background:oklch(99% .006 85/.4)}
.sib-funeral .lv-iso-text{font-size:1.125rem;line-height:1.625;color:oklch(99% .006 85/.85);margin:0}
.sib-funeral .lv-iso-stats{margin-top:40px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border-top:1px solid oklch(99% .006 85/.2);padding-top:32px;color:var(--f-ivory)}
.sib-funeral .lv-num{font-family:var(--f-serif);font-size:1.875rem;margin:0 0 4px}
/* ---------- services gallery ---------- */
.sib-funeral .lv-svc-h{max-width:672px}
.sib-funeral .lv-gal{margin-top:64px;display:grid;gap:40px}
@media(min-width:768px){.sib-funeral .lv-gal{grid-template-columns:repeat(3,1fr)}.sib-funeral .lv-gal--drop{margin-top:80px!important}}
.sib-funeral .lv-gal figure{margin:0}
.sib-funeral .lv-gal-img{overflow:hidden;border-radius:2px}
.sib-funeral .lv-gal-img img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.2s}
.sib-funeral .lv-gal figure:hover img{transform:scale(1.05)}
.sib-funeral .lv-gal .lv-eyebrow{margin-top:24px}
.sib-funeral .lv-gal h3{margin-top:8px;font-size:1.875rem}
.sib-funeral .lv-gal figure>p:last-child{margin-top:12px;color:var(--f-taupe)}
.sib-funeral .lv-svc-list{margin-top:96px;border-top:1px solid var(--f-line);padding-top:48px}
.sib-funeral .lv-svc-list .grid{margin-top:32px}
.sib-funeral .lv-svc-list .card{background:transparent;box-shadow:none;border:0;border-top:1px solid var(--f-line);padding:24px 0 0}
.sib-funeral .lv-svc-list .card:hover{transform:none;box-shadow:none}
.sib-funeral .lv-svc-list .card h3{font-family:var(--f-serif);font-weight:500;color:var(--f-head);font-size:1.5rem;margin:12px 0 8px}
.sib-funeral .lv-svc-list .card p{color:var(--f-taupe);font-size:.95rem}
/* ---------- FSP ---------- */
.sib-funeral .lv-fsp{display:grid;gap:48px;border-top:1px solid var(--f-line);border-bottom:1px solid var(--f-line);padding:80px 0}
@media(min-width:1024px){.sib-funeral .lv-fsp{grid-template-columns:repeat(12,1fr)}.sib-funeral .lv-fsp-copy{grid-column:span 7}.sib-funeral .lv-fsp-card{grid-column:9 / span 4}}
.sib-funeral .lv-fsp h2{font-size:2.25rem;line-height:1.25}
@media(min-width:1024px){.sib-funeral .lv-fsp h2{font-size:3rem}}
.sib-funeral .lv-fsp-copy .lv-muted{margin-top:24px;max-width:576px}
.sib-funeral .lv-fsp-card{border:1px solid oklch(38% .15 265/.3);background:var(--f-card);border-radius:2px;padding:40px;box-shadow:var(--f-shc)}
.sib-funeral .lv-shield{width:32px;height:32px;color:var(--f-prim)}
.sib-funeral .lv-fsp-card dl{margin:32px 0 0;display:grid;gap:24px}
.sib-funeral .lv-fsp-card dd{margin:4px 0 0}
.sib-funeral .lv-dd-serif{font-family:var(--f-serif);font-size:1.25rem;color:var(--f-head)}
.sib-funeral .lv-dd-big{font-family:var(--f-serif);font-size:2.25rem;letter-spacing:.025em;color:var(--f-prim)}
.sib-funeral .lv-dd-sm{font-size:.875rem}
.sib-funeral .lv-hr{height:1px;background:var(--f-line)}
/* ---------- sg sections restyled into the same rhythm ---------- */
.sib-funeral .section.lv-sg{padding-top:112px;padding-bottom:112px}
@media(max-width:767px){.sib-funeral .section.lv-sg{padding-top:80px;padding-bottom:80px}}
.sib-funeral .section.lv-sg .container{max-width:1280px;padding-left:var(--lv-pad);padding-right:var(--lv-pad)}
.sib-funeral .section.lv-sg .eyebrow:before{background:var(--f-prim)}
.sib-funeral .section.lv-sg .card{padding:32px}
.sib-funeral .section.lv-sg .vsteps h3{font-size:1.6rem}
.sib-funeral .section.lv-sg.dark{background:var(--f-head)}
.sib-funeral .lv-sg .faq details{border-color:var(--f-line);border-radius:2px;background:var(--f-card)}
.sib-funeral .lv-sg .faq summary{font-family:var(--f-serif);font-size:1.35rem;font-weight:500;color:var(--f-head)}
.sib-funeral .lv-sg .form input,.sib-funeral .lv-sg .form select,.sib-funeral .lv-sg .form textarea{border-radius:2px;border-color:var(--f-line);background:var(--f-card);font-family:var(--f-sans)}
.sib-funeral .lv-sg .form{border-radius:2px;box-shadow:var(--f-shc);border:1px solid var(--f-line)}
/* ---------- reveal safety: never stuck invisible ---------- */
.sib-funeral .rv{transition-duration:.8s}
@media(prefers-reduced-motion:reduce){.sib-funeral .lv-rise,.sib-funeral .lv-slide.on img{animation:none}}
