/* Homepage Design Lock 2A composition overrides on the shared V2 foundation. */
:root{--shadow-md:0 28px 80px rgba(76,51,43,.14)}
body{background:linear-gradient(180deg,#fbf7f0 0%,var(--canvas) 46%,#f2e6db 100%)}
.site-header{position:sticky;top:0;border-bottom-color:rgba(223,211,202,.74);transition:background-color .22s ease,box-shadow .22s ease,border-color .22s ease}
.section{padding-top:106px}
.section-heading h2{font-size:52px}
.site-footer{margin-top:106px}
.article-card a svg,.garden-scene a svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;transition:transform .18s ease}
.carousel-arrow:focus-visible,.carousel-dot:focus-visible{outline:3px solid rgba(185,101,73,.32);outline-offset:4px}
.carousel-arrow:active{transform:translateY(1px)}
.mobile-section-action{display:none}
.hero{position:relative;min-height:710px;margin-top:28px;border:1px solid rgba(205,187,176,.9);border-radius:32px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow-md)}
.hero__image{position:absolute;inset:0}
.hero__image img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;filter:saturate(.98) contrast(.98)}
.hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(248,242,234,.99) 0%,rgba(248,242,234,.97) 35%,rgba(248,242,234,.7) 49%,rgba(248,242,234,.14) 72%,transparent 100%)}
.hero__copy{position:relative;z-index:2;width:min(560px,48%);display:flex;flex-direction:column;justify-content:center;min-height:710px;padding:60px 0 60px 58px}
.hero__copy h1{max-width:570px;margin:12px 0 18px;font-family:var(--font-display);font-size:72px;font-weight:500;letter-spacing:-.04em;line-height:.93}
.hero__copy p{max-width:500px;margin:0;color:var(--muted);font-size:17px;line-height:1.68}
.hero__actions{display:flex;gap:11px;margin-top:28px}
.hero__proof{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.hero__proof span{min-height:34px;display:inline-flex;align-items:center;padding:7px 11px;border:1px solid rgba(205,187,176,.72);border-radius:999px;background:rgba(255,253,252,.72);color:var(--muted);font-size:11px;font-weight:750}
.hero__sprig{position:absolute;z-index:2;fill:none;stroke:var(--terra-dark);stroke-width:1.5;opacity:.16}
.hero__sprig path:not(:first-child){fill:var(--terra-dark);stroke:none}
.hero__sprig--one{left:24px;bottom:18px;width:120px;height:150px;transform:rotate(-20deg)}
.hero__sprig--two{left:48%;top:20px;width:88px;height:112px;transform:rotate(24deg);opacity:.1}
.process__intro h2,.gardens__copy h2,.closing h2{margin:8px 0 0;font-family:var(--font-display);font-size:52px;font-weight:500;letter-spacing:-.035em;line-height:1.02}
.carousel-arrows{display:flex;gap:8px}
.carousel-arrow{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface);color:var(--terra-dark);cursor:pointer}
.carousel-arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9}
.carousel-arrow--previous svg{transform:rotate(180deg)}
.carousel-arrow:disabled{cursor:not-allowed;opacity:.38;box-shadow:none}
.carousel-footer{display:flex;justify-content:center;gap:8px;margin-top:24px}
.carousel-footer[hidden],.carousel-arrow[hidden]{display:none}
.carousel-dot{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:var(--line-strong);cursor:pointer;transition:width .22s ease,background-color .22s ease,transform .18s ease}
.carousel-dot.is-active{width:28px;background:var(--terra)}
.memorials:focus{outline:none}
[data-carousel-panel]:not([hidden]){display:contents}
.memorial-ledger{display:grid;grid-template-columns:1.07fr .93fr;gap:18px;align-items:stretch;transition:opacity .56s ease,transform .56s cubic-bezier(.22,.61,.36,1)}
.memorials.is-switching .memorial-ledger,.memorials.is-entering .memorial-ledger{opacity:.18;transform:translateY(12px)}
.featured-memorial{position:relative;display:block;min-height:560px;overflow:hidden;border-radius:var(--radius-lg);background:var(--ink);box-shadow:var(--shadow-md)}
.featured-memorial img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .32s ease}
.featured-memorial:after{content:"";position:absolute;inset:16% 0 0;background:linear-gradient(transparent,rgba(45,29,24,.9))}
.featured-memorial__content{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:36px;color:white}
.featured-memorial span,.garden-scene__content>span,.article-card span{color:#f1c3ae;font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}
.featured-memorial h3{margin:3px 0 8px;font-family:var(--font-display);font-size:62px;font-weight:600;line-height:.96;letter-spacing:-.04em}
.featured-memorial p{max-width:540px;margin:0 0 22px;color:rgba(255,255,255,.78);font-size:15px}
.featured-memorial .text-link{color:#ffd8c7}.featured-memorial:focus-visible{outline:3px solid rgba(185,101,73,.46);outline-offset:5px}.featured-memorial:focus-visible .text-link svg{transform:translateX(3px)}
.memorial-stack{display:grid;gap:14px}
.memorial-stack .memorial-card{position:relative;display:grid;grid-template-columns:128px 1fr auto;align-items:center;gap:18px;min-height:170px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,253,252,.9);box-shadow:var(--shadow-sm);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.memorial-stack .memorial-card img{width:128px;height:132px;object-fit:cover;border-radius:16px;transition:transform .32s ease}
.memorial-stack .memorial-card h3{margin:0 0 6px;font-family:var(--font-display);font-size:31px;font-weight:600;line-height:1}
.memorial-stack .memorial-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.memorial-stack .memorial-card b{align-self:start;display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border-radius:999px;background:var(--terra-soft);color:var(--terra-dark);font-size:11px}
.memorial-stack .memorial-card b svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7}
.memorial-stack:empty{display:none}
.memorial-ledger:has(> [data-carousel-panel]:not([hidden]) .memorial-stack:empty),.memorial-ledger[data-carousel-visible-count="1"]{grid-template-columns:1fr}
.memorial-ledger[data-carousel-visible-count="1"] .memorial-stack{display:none}
@media(min-width:901px){
.memorial-ledger[data-carousel-visible-count="2"]{grid-template-columns:1.12fr .88fr;grid-auto-rows:560px}
.memorial-ledger[data-carousel-visible-count="2"] .memorial-stack{grid-template-rows:minmax(0,1fr)}
.memorial-ledger[data-carousel-visible-count="2"] .memorial-card{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;align-content:stretch;height:100%;min-height:0;overflow:hidden}
.memorial-ledger[data-carousel-visible-count="2"] .memorial-card img{grid-column:1;grid-row:1;width:100%;height:100%;min-height:0;border-radius:16px}
.memorial-ledger[data-carousel-visible-count="2"] .memorial-card>div{grid-column:1;grid-row:2;padding:6px 2px 2px}
.memorial-ledger[data-carousel-visible-count="2"] .memorial-card b{position:absolute;top:24px;right:24px}
.memorial-ledger[data-carousel-visible-count="3"] .memorial-stack{grid-template-rows:repeat(2,minmax(0,1fr))}
.memorial-ledger[data-carousel-visible-count="3"] .memorial-card{min-height:0}
}
.process{position:relative;display:grid;grid-template-columns:.74fr 1.26fr;gap:48px;align-items:start}
.process:before{content:"";position:absolute;left:0;right:0;top:56%;height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent)}
.process__intro{position:sticky;top:28px;padding:36px 0}
.gardens__copy p{max-width:470px;margin:17px 0 0;color:var(--muted);font-size:15px;line-height:1.7}
.process__steps{position:relative;display:grid;gap:12px;margin:0;padding:0;list-style:none}
.process__steps li{display:grid;grid-template-columns:74px 1fr;gap:18px;padding:28px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(135deg,rgba(255,253,252,.95),rgba(251,245,239,.82));box-shadow:var(--shadow-sm)}
.process__steps span{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--terra-soft);color:var(--terra-dark);font-family:var(--font-display);font-size:26px;line-height:1}
.process__steps h3{margin:1px 0 7px;font-family:var(--font-display);font-size:32px;font-weight:600;line-height:1.05}
.process__steps h3,.process__steps p{grid-column:2}
.process__steps p{margin:0;color:var(--muted);font-size:14px}
.gardens{display:grid;grid-template-columns:.76fr 1.08fr .62fr;gap:18px;align-items:stretch}
.gardens__copy{align-self:center;padding-right:34px}
.gardens__copy .button{margin-top:26px}
.garden-scene{position:relative;min-height:570px;overflow:hidden;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:var(--ink);transition:transform .22s ease,box-shadow .22s ease}
.garden-scene img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .32s ease}
.garden-scene:after{content:"";position:absolute;inset:24% 0 0;background:linear-gradient(transparent,rgba(42,31,28,.88))}
.garden-scene__content{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:32px;color:white}
.garden-scene h3{margin:5px 0 8px;font-family:var(--font-display);font-size:50px;font-weight:600;line-height:1;letter-spacing:-.03em}
.garden-scene p{max-width:430px;margin:0;color:rgba(255,255,255,.78);font-size:14px}
.garden-scene__content>div{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px;padding-top:16px;border-top:1px solid rgba(255,255,255,.25);font-size:12px}
.garden-scene a{display:inline-flex;align-items:center;gap:7px;font-weight:750}
.garden-list{display:grid;gap:18px}
.garden-list article{position:relative;min-height:276px;overflow:hidden;border-radius:var(--radius-md);background:var(--ink);box-shadow:var(--shadow-sm);transition:transform .22s ease,box-shadow .22s ease}
.garden-list img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .32s ease}
.garden-list article:after{content:"";position:absolute;inset:28% 0 0;background:linear-gradient(transparent,rgba(42,31,28,.78))}
.garden-list div{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:22px;color:white}
.garden-list span,.garden-list b{display:block}
.garden-list span{font-family:var(--font-display);font-size:27px;font-weight:600;line-height:1}
.garden-list b{margin-top:6px;color:rgba(255,255,255,.75);font-size:11px}
.support .section-heading{align-items:flex-start}
.support .section-heading h2{max-width:720px}
.article-grid{display:grid;grid-template-columns:1.25fr .75fr .75fr;gap:18px}
.article-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,253,252,.9);box-shadow:var(--shadow-sm);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.article-card img{width:100%;aspect-ratio:4/3;display:block;object-fit:cover;transition:transform .32s ease}
.article-card--large{display:grid;grid-template-columns:1fr .85fr}
.article-card--large img{height:100%;aspect-ratio:auto}
.article-card div{padding:22px}
.article-card span{color:var(--terra-dark)}
.article-card h3{margin:8px 0 12px;font-family:var(--font-display);font-size:28px;font-weight:600;line-height:1.08;letter-spacing:-.02em}
.article-card--large h3{font-size:36px}
.article-card p{margin:0 0 22px;color:var(--muted);font-size:13px}
.article-card a{display:inline-flex;align-items:center;gap:7px;color:var(--terra-dark);font-size:13px;font-weight:750}
.closing{position:relative;display:flex;align-items:center;justify-content:space-between;gap:44px;margin-top:106px;padding:56px 60px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#9f5842,#6f3f34);box-shadow:var(--shadow-md);color:white;overflow:hidden}
.closing h2{max-width:760px;color:white}
.closing__sprig{position:absolute;right:170px;bottom:-34px;width:120px;height:150px;fill:none;stroke:white;stroke-width:1.5;opacity:.14}
.closing__sprig path:not(:first-child){fill:white;stroke:none}
.js .reveal-item{opacity:0;transform:translateY(16px);transition:opacity .52s ease,transform .52s cubic-bezier(.22,.61,.36,1)}
.js .reveal-item.is-visible{opacity:1;transform:translateY(0)}
@media(hover:hover) and (pointer:fine){
.carousel-arrow:not(:disabled):hover{border-color:var(--terra);box-shadow:0 10px 22px rgba(76,51,43,.1)}
.carousel-dot:hover{transform:translateY(-1px)}
.article-card a:hover svg,.garden-scene a:hover svg{transform:translateX(3px)}
.article-card:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(76,51,43,.12);border-color:rgba(205,187,176,.95)}
.garden-scene:hover,.garden-list article:hover,.featured-memorial:hover{transform:translateY(-3px);box-shadow:0 30px 82px rgba(76,51,43,.16)}
.featured-memorial:hover img,.garden-scene:hover img,.garden-list article:hover img,.article-card:hover img{transform:scale(1.02)}
}
@media(prefers-reduced-motion:reduce){
.js .reveal-item{opacity:1;transform:none}
.memorial-ledger{transition:none}
.memorials.is-switching .memorial-ledger,.memorials.is-entering .memorial-ledger{opacity:1;transform:none}
}
@media(max-width:1180px){
.section-heading h2{font-size:45px}
.hero{min-height:660px}
.hero__copy{width:52%;min-height:660px;padding-left:46px}
.hero__copy h1{font-size:64px}
.process__intro h2,.gardens__copy h2,.closing h2{font-size:45px}
.memorial-ledger{grid-template-columns:1fr .9fr}
.memorial-stack .memorial-card{grid-template-columns:104px 1fr auto;gap:14px}
.memorial-stack .memorial-card img{width:104px;height:120px}
.gardens{grid-template-columns:.78fr 1.03fr .64fr}
.garden-scene{min-height:530px}
.garden-list article{min-height:256px}
.article-grid{grid-template-columns:1.1fr .9fr}
.article-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:.48fr 1fr}
.article-card:last-child img{height:100%;aspect-ratio:auto}
}
@media(max-width:900px){
.section{padding-top:82px}
.hero{min-height:720px}
.hero__shade{background:linear-gradient(180deg,rgba(248,242,234,.98) 0%,rgba(248,242,234,.94) 44%,rgba(248,242,234,.22) 72%,rgba(248,242,234,.04) 100%)}
.hero__image img{object-position:62% center}
.hero__copy{width:100%;min-height:720px;padding:58px 52px}
.hero__copy h1{max-width:640px;font-size:66px}
.memorial-ledger{grid-template-columns:1fr}
.featured-memorial{min-height:470px}
.memorial-stack{grid-template-columns:1fr 1fr 1fr}
.memorial-ledger[data-carousel-visible-count="2"] .memorial-stack{grid-template-columns:1fr}
.memorial-ledger[data-carousel-visible-count="3"] .memorial-stack{grid-template-columns:repeat(2,1fr)}
.memorial-stack .memorial-card{display:block;min-height:0}
.memorial-stack .memorial-card img{width:100%;height:auto;aspect-ratio:4/3}
.memorial-stack .memorial-card b{margin-top:14px}
.process{grid-template-columns:1fr;gap:18px}
.process:before{display:none}
.process__intro{position:static;padding:0}
.process__steps li{grid-template-columns:58px 1fr}
.gardens{grid-template-columns:1fr 1fr}
.gardens__copy{grid-column:1/-1;padding:0 80px 10px 0}
.garden-scene{grid-column:1/-1;min-height:440px}
.garden-list{grid-column:1/-1;grid-template-columns:1fr 1fr}
.garden-list article{min-height:230px}
.article-grid{grid-template-columns:1fr 1fr}
.article-card--large{grid-column:1/-1}
.article-card:last-child{grid-column:auto;display:block}
.article-card:last-child img{height:auto;aspect-ratio:4/3}
.closing{align-items:flex-start;flex-direction:column}
}
@media(min-width:521px) and (max-width:900px){
.memorial-ledger[data-carousel-visible-count="2"] .memorial-card{display:grid;grid-template-columns:minmax(220px,.48fr) 1fr auto;align-items:center;min-height:220px}
.memorial-ledger[data-carousel-visible-count="2"] .memorial-card img{width:100%;height:220px;aspect-ratio:auto}
.memorial-ledger[data-carousel-visible-count="2"] .memorial-card b{margin-top:0}
}
@media(max-width:520px){
.section{padding-top:70px}
.section-heading h2{font-size:39px}
.section-heading__side p{font-size:13px}
.site-footer{margin-top:72px}
.hero{width:auto;margin-top:0;border-width:0 0 1px;border-radius:0;min-height:0}
.hero__image img{object-position:66% center}
.hero__shade{background:linear-gradient(180deg,rgba(248,242,234,.99) 0%,rgba(248,242,234,.96) 49%,rgba(248,242,234,.22) 76%,rgba(248,242,234,.02) 100%)}
.hero__copy{min-height:0;padding:46px 15px}
.hero__copy h1{font-size:47px;line-height:.98;margin-top:10px}
.hero__copy p{font-size:15px;line-height:1.62}
.hero__actions{align-items:stretch;flex-direction:column;margin-top:25px}
.hero__actions .button{width:100%}
.hero__proof{gap:6px}
.hero__proof span{font-size:10px}
.hero__sprig--one{width:84px;height:104px}
.hero__sprig--two{display:none}
.process__intro h2,.gardens__copy h2,.closing h2{font-size:39px}
.carousel-arrows{margin-top:15px}
.featured-memorial{min-height:420px;border-radius:22px}
.featured-memorial__content{padding:25px}
.featured-memorial h3{font-size:45px}
.memorial-stack{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.memorial-stack::-webkit-scrollbar{display:none}
.memorial-stack .memorial-card{width:286px;flex:0 0 286px;scroll-snap-align:start}
.mobile-section-action{display:block;margin-top:20px}
.mobile-section-action .button{width:100%}
.process__steps li{grid-template-columns:1fr;gap:10px;padding:22px}
.process__steps span{width:42px;height:42px;font-size:23px}
.process__steps h3{font-size:27px}
.process__steps h3,.process__steps p{grid-column:auto}
.gardens{display:flex;flex-direction:column;gap:14px}
.gardens__copy{padding:0}
.gardens__copy p{font-size:14px}
.gardens__copy .button{width:100%}
.garden-scene{min-height:420px;border-radius:22px}
.garden-scene__content{padding:24px;text-shadow:0 2px 4px rgba(20,12,10,.92),0 0 14px rgba(20,12,10,.4)}
.garden-list{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.garden-list::-webkit-scrollbar{display:none}
.garden-list article{width:286px;min-height:210px;flex:0 0 286px;scroll-snap-align:start}
.support .section-heading .text-link{display:none}
.article-grid{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.article-grid::-webkit-scrollbar{display:none}
.article-card,.article-card--large{width:315px;flex:0 0 315px;display:block;scroll-snap-align:start}
.article-card--large img{height:auto;aspect-ratio:4/3}
.article-card--large h3,.article-card h3{font-size:27px}
.closing{margin-top:72px;padding:38px 24px;border-radius:22px}
.closing .button{width:100%}
.closing__sprig{right:18px;width:82px;height:104px}
}

/* Runtime-only stretched link for dynamic supporting garden cards. */
.garden-card-link{position:absolute;inset:0;z-index:2;border-radius:inherit}
.garden-card-link:focus-visible{outline:3px solid rgba(255,255,255,.72);outline-offset:-6px}

/* Data-count adaptations preserve the locked composition for partial runtime payloads. */
@media(min-width:1181px){
.gardens[data-garden-count="1"]{grid-template-columns:.76fr 1.7fr}
.article-grid[data-article-count="1"]{grid-template-columns:1fr}
.article-grid[data-article-count="2"]{grid-template-columns:1.25fr .75fr}
}
@media(min-width:901px) and (max-width:1180px){
.gardens[data-garden-count="1"]{grid-template-columns:.78fr 1.67fr}
.article-grid[data-article-count="1"]{grid-template-columns:1fr}
.article-grid[data-article-count="2"]{grid-template-columns:1.1fr .9fr}
}
