.core-page {
    --core-ink: #17221f;
    --core-muted: #5b6b66;
    --core-green: #173f3a;
    --core-green-2: #1e625b;
    --core-gold: #d3aa45;
    --core-line: #dce5e0;
    background: #f5f7f4;
    color: var(--core-ink);
    font-size: 16px;
    line-height: 1.65;
}
.core-page *, .core-page *::before, .core-page *::after { box-sizing: border-box; }
.core-container { width: min(1140px, calc(100% - 40px)); margin-inline: auto; }
.core-section { padding: clamp(64px,8vw,104px) 0; }
.core-section-white { background: #fff; }
.core-section-dark { background: var(--core-green); color: #fff; }
.core-kicker { margin: 0 0 12px; color: #bde4d7; font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.core-kicker-dark { color: #246f66; }
.core-heading { max-width: 760px; margin-bottom: 36px; }
.core-heading h2, .core-intro-grid h2, .core-cta h2, .core-visit-panel h2, .core-funeral-contact h2 { margin: 0 0 14px; color: var(--core-ink); font-size: clamp(32px,4.2vw,50px); line-height: 1.08; letter-spacing: -.038em; }
.core-heading p, .core-cta p, .core-visit-panel p { margin: 0; color: var(--core-muted); font-size: 17px; }
.core-heading-light h2 { color: #fff; }

.core-hero { position: relative; isolation: isolate; overflow: hidden; padding: clamp(72px,9vw,124px) 0; background: var(--core-green); color: #fff; }
.core-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url('/images/parallax12.jpg') center / cover no-repeat; opacity: .12; }
.core-hero-contact::before { background-image: url('/images/parallax14.jpg'); }
.core-hero-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(280px,.55fr); gap: clamp(40px,7vw,90px); align-items: end; }
.core-hero h1 { max-width: 820px; margin: 0; color: #fff; font-size: clamp(42px,6.6vw,76px); line-height: 1; letter-spacing: -.048em; }
.core-hero-copy { max-width: 730px; margin: 24px 0 0; color: #e1eee9; font-size: clamp(18px,2vw,21px); }
.core-hero-card { padding: 28px; border: 1px solid rgba(255,255,255,.2); background: rgba(10,42,37,.66); }
.core-hero-card p { margin: 0; color: #bde4d7; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.core-hero-card strong { display: block; margin: 8px 0 2px; color: #fff; font-size: 22px; }
.core-hero-card address { margin: 0; color: #d4e6e0; font-style: normal; }
.core-hero-card hr { margin: 24px 0; border: 0; border-top: 1px solid rgba(255,255,255,.18); }
.core-hero-card a { display: inline-block; margin-top: 18px; color: #fff; font-weight: 750; }
.core-hero-card hr + p + a { margin-top: 7px; }
.core-hero-card .core-hero-phone { margin: 7px 0 0; font-size: 25px; text-decoration: none; }

.core-intro-grid { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); gap: clamp(42px,8vw,100px); align-items: start; }
.core-intro-grid h2 { max-width: 480px; }
.core-prose { border-top: 1px solid var(--core-line); }
.core-prose p { margin: 0; padding: 22px 0; border-bottom: 1px solid var(--core-line); color: var(--core-muted); font-size: 18px; }

.core-service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--core-line); border-left: 1px solid var(--core-line); }
.core-service-grid article { min-height: 280px; padding: 28px; border-right: 1px solid var(--core-line); border-bottom: 1px solid var(--core-line); background: #fff; }
.core-service-grid article > span { color: var(--core-green-2); font-size: 13px; font-weight: 900; }
.core-service-grid h3 { margin: 48px 0 9px; color: var(--core-ink); font-size: 21px; line-height: 1.25; }
.core-service-grid p { margin: 0; color: var(--core-muted); font-size: 15px; }
.core-service-grid a { display: inline-flex; gap: 10px; margin-top: 18px; color: var(--core-green) !important; font-weight: 800; text-decoration: none !important; }
.core-service-featured { background: #edf4f0 !important; }

.core-values-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid rgba(255,255,255,.18); border-left: 1px solid rgba(255,255,255,.18); }
.core-values-grid article { min-height: 220px; padding: 28px; border-right: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.core-values-grid h3 { margin: 0 0 12px; color: #fff; font-size: 24px; }
.core-values-grid p { margin: 0; color: #cfe1dc; }

.core-cta { display: flex; align-items: center; justify-content: space-between; gap: 50px; padding: clamp(32px,5vw,56px); border: 1px solid var(--core-line); background: #fff; box-shadow: 0 16px 46px rgba(31,58,50,.05); }
.core-cta > div:first-child { max-width: 720px; }
.core-cta-actions { display: grid; flex: 0 0 auto; gap: 12px; text-align: center; }
.core-button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 10px; padding: 12px 20px; border: 1px solid transparent; border-radius: 8px; background: var(--core-green-2); color: #fff !important; font-weight: 800; line-height: 1.25; text-align: center; text-decoration: none !important; transition: background-color .2s ease, transform .2s ease; }
.core-button:hover, .core-button:focus-visible { background: var(--core-green); transform: translateY(-1px); }
.core-button-gold { background: var(--core-gold); color: #14221e !important; }
.core-button-gold:hover, .core-button-gold:focus-visible { background: #e3bd5a; }
.core-text-link { color: var(--core-green) !important; font-weight: 800; text-decoration: none !important; }

.contact-option-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.contact-option-grid article { display: flex; min-height: 310px; flex-direction: column; padding: 28px; border: 1px solid var(--core-line); background: #fff; box-shadow: 0 14px 42px rgba(31,58,50,.045); }
.contact-option-grid article > span { color: var(--core-green-2); font-size: 13px; font-weight: 900; }
.contact-option-grid h3 { margin: 44px 0 10px; color: var(--core-ink); font-size: 25px; }
.contact-option-grid p, .contact-option-grid address { margin: 0 0 24px; color: var(--core-muted); font-style: normal; }
.contact-option-grid a { margin-top: auto; color: var(--core-green) !important; font-size: 18px; font-weight: 800; text-decoration: none !important; }

.core-visit-grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(280px,.8fr); gap: 20px; }
.core-visit-panel, .core-visit-note { padding: clamp(30px,5vw,52px); }
.core-visit-panel { background: #fff; }
.core-visit-panel .core-button { margin-top: 26px; }
.core-visit-note { display: flex; flex-direction: column; justify-content: end; border-top: 3px solid var(--core-gold); background: #fff7e2; }
.core-visit-note h3 { margin: 0 0 10px; color: #4f3b12; font-size: 24px; }
.core-visit-note p { margin: 0; color: #5c4a24; }

.core-funeral-contact { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr); gap: clamp(36px,7vw,90px); align-items: end; }
.core-funeral-contact h2 { color: #fff; }
.core-funeral-contact p:not(.core-kicker) { max-width: 740px; margin: 0; color: #cfe1dc; font-size: 17px; }
.core-funeral-actions { display: grid; gap: 16px; }
.core-funeral-actions > a:last-child { color: #fff; font-weight: 800; text-decoration: none; }

.core-message-guide { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--core-line); background: #fff; }
.core-message-guide div { padding: 26px; }
.core-message-guide div + div { border-left: 1px solid var(--core-line); }
.core-message-guide strong, .core-message-guide span { display: block; }
.core-message-guide strong { margin-bottom: 6px; color: var(--core-green); font-size: 18px; }
.core-message-guide span { color: var(--core-muted); }
.core-message-caption { max-width: 800px; margin: 18px 0 0; color: #687772; font-size: 13px; }

@media (max-width: 900px) {
    .core-hero-layout, .core-intro-grid { grid-template-columns: 1fr; }
    .core-service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .core-values-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .core-funeral-contact { grid-template-columns: 1fr; align-items: start; }
}
@media (max-width: 720px) {
    .core-container { width: min(100% - 28px,1140px); }
    .contact-option-grid, .core-visit-grid, .core-message-guide { grid-template-columns: 1fr; }
    .core-message-guide div + div { border-top: 1px solid var(--core-line); border-left: 0; }
    .core-cta { align-items: flex-start; flex-direction: column; }
    .core-cta-actions { width: 100%; }
    .core-cta .core-button { width: 100%; }
}
@media (max-width: 520px) {
    .core-section { padding: 58px 0; }
    .core-hero { padding: 62px 0; }
    .core-hero h1 { font-size: clamp(39px,12vw,54px); }
    .core-service-grid, .core-values-grid { grid-template-columns: 1fr; }
    .core-service-grid article, .core-values-grid article, .contact-option-grid article { min-height: auto; }
    .core-button { width: 100%; }
    .core-funeral-actions > a:last-child { text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
    .core-button { transition: none; }
}
