.service-v2-page { overflow-x: hidden; background: var(--makki-white); }
.service-v2-page main { overflow: clip; }
.service-v2-page :where(main a, main summary):focus-visible { outline: 3px solid var(--makki-gold); outline-offset: 3px; }
.service-v2-hero { position: relative; padding-block: clamp(2.75rem, 5vw, 4.5rem); overflow: hidden; background: linear-gradient(115deg, rgba(255,255,255,.58), transparent 62%), var(--makki-ivory); border-bottom: var(--makki-border); }
.service-v2-hero::after { position: absolute; right: -5rem; bottom: -9rem; width: 21rem; height: 21rem; border: 1px solid rgba(198,161,91,.22); border-radius: 50%; content: ""; }
.service-v2-hero__inner { position: relative; z-index: 1; display: grid; align-items: center; grid-template-columns: minmax(0,1fr) 150px; gap: clamp(2rem,5vw,5rem); }
.service-v2-breadcrumb { display: flex; align-items: center; gap: .6rem; margin-bottom: 1.15rem; color: var(--makki-sage); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.service-v2-breadcrumb a { color: var(--makki-navy); text-decoration: none; }
.service-v2-breadcrumb a:hover { color: var(--makki-wood); }
.service-v2-hero h1 { margin: 0; font-size: clamp(2.7rem,5.5vw,4.75rem); letter-spacing: -.035em; }
.service-v2-hero__copy > p { max-width: 690px; margin: .9rem 0 0; color: var(--makki-sage); font-size: clamp(1rem,1.5vw,1.1rem); }
.service-v2-hero__arch { position: relative; width: 132px; height: 155px; justify-self: end; border: 1px solid rgba(23,59,87,.2); border-radius: 74px 74px 7px 7px; }
.service-v2-hero__arch::before { position: absolute; inset: 12px; border: 1px solid rgba(198,161,91,.52); border-radius: 62px 62px 4px 4px; content: ""; }
.service-v2-hero__arch::after { position: absolute; bottom: 28px; left: 50%; width: 36px; height: 36px; border: 1px solid rgba(23,59,87,.2); content: ""; transform: translateX(-50%) rotate(45deg); }
.service-v2-section-heading { max-width: 760px; margin-bottom: clamp(1.75rem,4vw,3rem); }
.service-v2-section-heading--center { margin-inline: auto; text-align: center; }
.service-v2-section-heading--center .v2-eyebrow { justify-content: center; }
.service-v2-section-heading h2, .service-v2-copy h2, .service-v2-action h2 { margin: 0; font-size: clamp(2.1rem,4vw,3rem); letter-spacing: -.025em; }
.service-v2-section-heading p, .service-v2-copy p { margin: .85rem 0 0; color: var(--makki-sage); }
.service-v2-intro__grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(2.25rem,7vw,6.5rem); }
.service-v2-copy { padding-left: clamp(1.2rem,3vw,2.4rem); border-left: 1px solid rgba(198,161,91,.65); }
.service-v2-copy p:first-child { margin-top: 0; }
.service-v2-copy p + p { margin-top: 1.1rem; }
.service-v2-action-section { background: var(--makki-ivory); }
.service-v2-action { position: relative; display: grid; align-items: center; padding: clamp(2rem,5vw,4rem); overflow: hidden; background: var(--makki-navy-deep); border-radius: var(--makki-radius-lg); box-shadow: var(--makki-shadow-md); color: rgba(255,255,255,.77); grid-template-columns: minmax(0,1fr) auto; gap: clamp(2rem,5vw,5rem); }
.service-v2-action::after { position: absolute; top: -115px; right: 12%; width: 230px; height: 270px; border: 1px solid rgba(198,161,91,.25); border-radius: 130px 130px 8px 8px; content: ""; transform: rotate(8deg); }
.service-v2-action > * { position: relative; z-index: 1; }
.service-v2-action h2 { color: var(--makki-white); }
.service-v2-action p { max-width: 760px; margin: .75rem 0 0; }
.service-v2-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.service-v2-action .v2-btn--secondary { border-color: rgba(255,255,255,.52); color: var(--makki-white); }
.service-v2-page main .v2-btn--primary:link,
.service-v2-page main .v2-btn--primary:visited {
    background-color: var(--makki-navy);
    border-color: var(--makki-navy);
    color: var(--makki-white);
}
.service-v2-page main .v2-btn--primary:focus-visible {
    background-color: var(--makki-gold);
    border-color: var(--makki-gold);
    color: var(--makki-navy-deep);
    box-shadow: 0 8px 22px rgba(16,42,63,.2);
}
.service-v2-page main .v2-btn--primary:active {
    background-color: var(--makki-wood);
    border-color: var(--makki-wood);
    color: var(--makki-white);
    transform: translateY(0);
}
.service-v2-page main .v2-btn--secondary:link,
.service-v2-page main .v2-btn--secondary:visited {
    background-color: transparent;
    border-color: rgba(255,255,255,.58);
    color: var(--makki-white);
}
.service-v2-page main .v2-btn--secondary:focus-visible {
    background-color: var(--makki-navy);
    border-color: var(--makki-gold);
    color: var(--makki-white);
    box-shadow: 0 8px 22px rgba(16,42,63,.2);
}
.service-v2-page main .v2-btn--secondary:active {
    background-color: var(--makki-navy-deep);
    border-color: var(--makki-gold);
    color: var(--makki-white);
    transform: translateY(0);
}
@media (hover: hover) {
    .service-v2-page main .v2-btn--primary:hover {
        background-color: var(--makki-gold);
        border-color: var(--makki-gold);
        color: var(--makki-navy-deep);
        box-shadow: 0 8px 22px rgba(16,42,63,.2);
        transform: translateY(-1px);
    }
    .service-v2-page main .v2-btn--secondary:hover {
        background-color: var(--makki-navy);
        border-color: var(--makki-gold);
        color: var(--makki-white);
        box-shadow: 0 8px 22px rgba(16,42,63,.2);
        transform: translateY(-1px);
    }
}
.service-v2-page .v2-site-header .v2-header-actions .v2-btn--secondary:link,
.service-v2-page .v2-site-header .v2-header-actions .v2-btn--secondary:visited {
    background: var(--makki-ivory);
    border-color: var(--makki-navy);
    color: var(--makki-navy);
}
.service-v2-page .v2-site-header .v2-header-actions .v2-btn--secondary:hover,
.service-v2-page .v2-site-header .v2-header-actions .v2-btn--secondary:focus-visible {
    background: var(--makki-navy);
    border-color: var(--makki-navy);
    color: var(--makki-white);
}
.service-v2-page .v2-site-header .v2-header-actions .v2-btn--secondary:active {
    background: var(--makki-navy-deep);
    border-color: var(--makki-navy-deep);
    color: var(--makki-white);
}
.service-v2-info-grid, .service-v2-contact-grid, .service-v2-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(1rem,2.5vw,1.75rem); }
.service-v2-page--visit .service-v2-contact-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.service-v2-page--visit .service-v2-contact-card { padding: clamp(1.25rem,2.2vw,1.75rem); }
.service-v2-page--visit .service-v2-contact-card h3 { font-size: clamp(1.3rem,2vw,1.6rem); }
.service-v2-info-card, .service-v2-contact-card { position: relative; min-width: 0; padding: clamp(1.4rem,3vw,2rem); overflow: hidden; background: var(--makki-white); border: var(--makki-border); border-top: 3px solid var(--makki-gold); border-radius: var(--makki-radius-md); box-shadow: var(--makki-shadow-sm); }
.service-v2-info-card h3, .service-v2-contact-card h3 { margin: 0 0 .7rem; font-size: clamp(1.4rem,2.5vw,1.75rem); }
.service-v2-list { margin: 0; padding: 0; list-style: none; }
.service-v2-list li { position: relative; padding-left: 1.4rem; }
.service-v2-list li + li { margin-top: .8rem; }
.service-v2-list li::before { position: absolute; top: .68em; left: 0; width: 6px; height: 6px; background: var(--makki-gold); content: ""; transform: rotate(45deg); }
.service-v2-contact-card a:not(.v2-btn) { display: inline-block; margin: .1rem 0 1rem; color: var(--makki-navy); font-size: clamp(1.15rem,3vw,1.45rem); font-weight: 800; overflow-wrap: anywhere; text-decoration: none; }
.service-v2-contact-card a:not(.v2-btn):visited { color: var(--makki-navy); }
.service-v2-contact-card a:not(.v2-btn):hover,.service-v2-contact-card a:not(.v2-btn):focus-visible { color: var(--makki-wood); }
.service-v2-contact-card a:not(.v2-btn):active { color: var(--makki-navy-deep); }
.service-v2-contact-card .v2-btn { margin-top: .3rem; }
.service-v2-faq { max-width: 900px; margin-inline: auto; }
.service-v2-faq details { background: var(--makki-white); border-top: var(--makki-border); }
.service-v2-faq details:last-child { border-bottom: var(--makki-border); }
.service-v2-faq summary { position: relative; padding: 1.25rem 3.5rem 1.25rem 0; color: var(--makki-navy-deep); cursor: pointer; font-weight: 750; list-style: none; }
.service-v2-faq summary::-webkit-details-marker { display: none; }
.service-v2-faq summary::after { position: absolute; top: 50%; right: .5rem; color: var(--makki-gold); content: "+"; font-size: 1.45rem; font-weight: 400; transform: translateY(-50%); }
.service-v2-faq details[open] summary::after { content: "\2212"; }
.service-v2-faq__answer { max-width: 790px; padding: 0 3.5rem 1.3rem 0; color: var(--makki-sage); }
.service-v2-gallery figure { margin: 0; overflow: hidden; background: var(--makki-white); border: var(--makki-border); border-radius: var(--makki-radius-md); box-shadow: var(--makki-shadow-sm); }
.service-v2-gallery img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.service-v2-gallery figcaption { padding: 1rem 1.2rem; color: var(--makki-navy-deep); font-weight: 700; }
.service-v2-page--funerals .service-v2-hero, .service-v2-page--funerals .service-v2-action-section { background-color: #f4f1e9; }
.service-v2-page--funerals .service-v2-action { align-items: start; grid-template-columns: minmax(0,1.2fr) minmax(280px,.8fr); gap: clamp(2rem,5vw,4rem); }
.service-v2-funeral-contacts { display: grid; width: min(100%,380px); min-width: 0; gap: 1rem; }
.service-v2-funeral-primary { display: grid; gap: .45rem; }
.service-v2-funeral-primary > span,.service-v2-funeral-support span { color: var(--makki-gold); font-size: .7rem; font-weight: 800; letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; }
.service-v2-funeral-number,.service-v2-funeral-number:visited { color: var(--makki-white); font-size: 1.15rem; font-weight: 800; line-height: 1.4; text-decoration: none; }
.service-v2-funeral-number:hover,.service-v2-funeral-number:focus-visible { color: var(--makki-gold); }
.service-v2-funeral-number:active { color: var(--makki-sand); }
.service-v2-funeral-support { display: grid; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.18); gap: .75rem; }
.service-v2-funeral-support > div { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 1rem; }
.service-v2-funeral-support a,.service-v2-funeral-support a:visited { color: var(--makki-white); font-size: .9rem; font-weight: 750; white-space: nowrap; text-decoration: none; }
.service-v2-funeral-support a:hover,.service-v2-funeral-support a:focus-visible { color: var(--makki-gold); }
.service-v2-funeral-support a:active { color: var(--makki-sand); }
.service-v2-page--visit .service-v2-hero { background: linear-gradient(115deg,rgba(255,255,255,.68),transparent 62%),#f4f3eb; }
.service-v2-coming-soon { min-height: clamp(380px,52vh,570px); display: grid; place-items: center; }
.service-v2-coming-soon__panel { position: relative; width: min(100%,760px); padding: clamp(2.5rem,7vw,5rem) clamp(1.4rem,6vw,4.5rem); overflow: hidden; background: var(--makki-white); border: var(--makki-border); border-top: 3px solid var(--makki-gold); border-radius: var(--makki-radius-lg); box-shadow: var(--makki-shadow-sm); text-align: center; }
.service-v2-coming-soon__panel::after { position: absolute; right: -35px; bottom: -75px; width: 155px; height: 180px; border: 1px solid rgba(198,161,91,.26); border-radius: 90px 90px 6px 6px; content: ""; }
.service-v2-coming-soon h2 { margin: 0; font-size: clamp(2.1rem,4vw,3rem); }
.service-v2-coming-soon p { max-width: 600px; margin: .9rem auto 0; color: var(--makki-sage); }
@media (max-width: 1023px) { .service-v2-page--visit .service-v2-contact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 900px) { .service-v2-intro__grid, .service-v2-action,.service-v2-page--funerals .service-v2-action { grid-template-columns: 1fr; } .service-v2-actions,.service-v2-funeral-contacts { width: 100%; justify-self: start; } }
@media (max-width: 767px) { .service-v2-hero__inner { grid-template-columns: minmax(0,1fr) 80px; gap: 1rem; } .service-v2-hero__arch { width: 75px; height: 100px; } .service-v2-info-grid, .service-v2-contact-grid, .service-v2-gallery,.service-v2-page--visit .service-v2-contact-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .service-v2-hero__inner { grid-template-columns: 1fr; } .service-v2-hero__arch { display: none; } .service-v2-copy { padding-left: 1rem; } .service-v2-action { padding: 1.75rem 1.2rem; } .service-v2-actions, .service-v2-actions .v2-btn, .service-v2-contact-card .v2-btn,.service-v2-funeral-contacts,.service-v2-funeral-primary .v2-btn { width: 100%; } .service-v2-actions { display: grid; } .service-v2-faq summary { padding-right: 2.5rem; } .service-v2-faq__answer { padding-right: 1rem; } .service-v2-funeral-support > div { align-items: flex-start; flex-direction: column; gap: .15rem; } }
@media (prefers-reduced-motion: reduce) { .service-v2-page main * { scroll-behavior: auto; transition: none !important; } }
