/* Wedding Content — same editorial system, an explicit service journey. */
.service-header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1.1rem var(--page-gutter); background: var(--paper); }
.service-header nav { display: flex; gap: 2rem; font-size: .85rem; }
.service-header nav a:hover, .service-back:hover { text-decoration: underline; text-underline-offset: .3em; }
.service-hero { display: grid; grid-template-columns: 1.1fr .9fr; background: var(--navy); color: var(--white); }
.service-hero-copy { align-self: center; padding: 3.5rem var(--page-gutter) 4.5rem; }
.service-back { display: inline-block; margin-bottom: 2.5rem; font-size: .8rem; color: var(--blue-bright); }
.service-hero .section-kicker, .service-closing .section-kicker { color: var(--blue-bright); }
.service-hero h1 { max-width: 12ch; font-size: clamp(3.5rem, 5.5vw, 6.3rem); line-height: .95; letter-spacing: -.035em; margin: 1.25rem 0 1.75rem; }
.service-lead { max-width: 48ch; font-size: clamp(1rem, 1.3vw, 1.18rem); color: rgba(255,253,248,.85); margin: 0 0 2rem; }
.service-scope { max-width: 45ch; margin: 1.5rem 0 0; font-size: .8rem; color: rgba(255,253,248,.75); }
.service-hero-photo { margin: 0; position: relative; min-width: 0; }
.service-hero-photo picture { height: 100%; }
.service-hero-photo img { width: 100%; height: 100%; max-height: 920px; object-fit: cover; object-position: center 30%; }
.service-hero-photo figcaption { position: absolute; bottom: 1.5rem; left: 1.5rem; padding: .4rem .8rem; background: var(--navy); font-size: .75rem; }
.service-section, .service-process { padding: clamp(4rem, 7vw, 7rem) var(--page-gutter); }
.service-section-heading { max-width: 48rem; margin-bottom: 3rem; }
.service-section h2, .service-process h2, .service-closing h2 { font-size: clamp(2.7rem, 4.5vw, 4.7rem); line-height: 1; margin: .9rem 0; letter-spacing: -.025em; }
.service-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 4rem); }
.service-columns article { border-top: 1px solid var(--line); padding-top: 1.2rem; }
.service-number { color: var(--blue); font-size: .75rem; letter-spacing: .08em; }
.service-columns h3, .service-process h3, .service-agreement h3 { font-family: var(--font-display); font-size: 2rem; font-weight: 500; line-height: 1.1; margin: 1rem 0; }
.service-columns p, .service-process p, .service-agreement p { color: var(--ink-soft); max-width: 55ch; }
.service-agreement { display: grid; grid-template-columns: 1fr 1.4fr; gap: 2rem; padding: 2rem; background: var(--paper-deep); margin-top: 3rem; }
.service-agreement h3 { margin: 0; }
.service-agreement p { margin: 0; }
.service-process { background: var(--white); }
.service-process ol { list-style: none; margin: 0; padding: 0; }
.service-process li { display: grid; grid-template-columns: 4rem 1fr; padding: 1.5rem 0; border-top: 1px solid var(--line); }
.service-process h3 { margin: 0 0 .8rem; }
.service-process p { margin: 0; max-width: 70ch; }
.service-faq details { padding: 1.25rem 0; border-top: 1px solid var(--line); }
.service-faq summary { cursor: pointer; font-size: 1rem; font-weight: 500; }
.service-faq details p { max-width: 75ch; color: var(--ink-soft); margin: 1rem 0 0; }
.service-closing { background: var(--navy); color: var(--white); padding: 5rem var(--page-gutter); text-align: center; }
.service-closing p:not(.section-kicker) { max-width: 50ch; margin: 1.5rem auto 2rem; }
.service-work-link { display: block; width: fit-content; margin: 1.5rem auto 0; font-size: .85rem; color: var(--blue-bright); }
@media (min-width: 1600px) { .service-hero-copy { padding-left: max(var(--page-gutter), calc((100vw - 1440px) / 2)); } }
@media (max-width: 819px) {
    .service-header { gap: 1rem; flex-wrap: wrap; }
    .service-header nav { order: 3; width: 100%; justify-content: space-between; gap: 1rem; }
    .service-hero { grid-template-columns: 1fr; }
    .service-hero-copy { padding-top: 2rem; padding-bottom: 3rem; }
    .service-hero h1 { max-width: 14ch; font-size: clamp(3rem, 10vw, 5rem); }
    .service-hero-photo img { height: 65vh; max-height: 600px; min-height: 320px; }
    .service-columns { grid-template-columns: 1fr; gap: 2rem; }
    .service-agreement { grid-template-columns: 1fr; gap: 1rem; padding: 1.5rem; }
    .service-process li { grid-template-columns: 2.5rem 1fr; }
}
