/* Public service pages: preserve Fenris's black and gold identity. */
.service-page .header { background: rgba(11,11,13,.96); }
.service-skip { position: fixed; top: -100px; left: 20px; z-index: 10000; padding: 12px 20px; background: var(--gold); color: var(--black); }
.service-skip:focus { top: 12px; }
.service-hero { padding: 140px 0 64px; background: radial-gradient(ellipse at 80% 30%,rgba(201,162,75,.1),transparent 55%); }
.service-hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(28px,5vw,72px); align-items: center; }
.service-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; color: #b2b2b8; font-size: .8rem; }
.service-breadcrumb a:hover { color: var(--gold-light); }
.service-hero h1 { max-width: 720px; font: 600 clamp(2.4rem,4.5vw,4.4rem)/1.08 var(--font-display); text-transform: uppercase; letter-spacing: .02em; }
.service-intro { margin: 24px 0; max-width: 620px; font-size: 1.06rem; color: #c3c3ca; }
.contact-page .service-hero h1,
.contact-page .service-hero .service-intro { max-width: none; }
.service-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.service-visual { position: relative; margin: 0; border: 1px solid rgba(201,162,75,.3); overflow: hidden; }
.service-visual img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.booking-service-page .service-hero-grid { align-items: stretch; }
.booking-service-page .service-visual { min-height: 0; }
.booking-service-page .service-visual img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }
@media (max-width: 850px) {
  .booking-service-page .service-visual img { position: static; height: auto; aspect-ratio: 16/9; display: block; }
}
.service-visual figcaption { position: absolute; inset: auto 0 0; padding: 50px 24px 24px; background: linear-gradient(transparent,rgba(0,0,0,.9)); color: var(--gold-light); font-family: var(--font-display); font-size: 1.25rem; }
.service-editorial { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(240px,.8fr); gap: clamp(32px,6vw,90px); align-items: start; padding-top: 48px; padding-bottom: 64px; border-top: 1px solid #2d2d32; }
.service-page h2 { font-family: var(--font-display); font-weight: 500; line-height: 1.2; }
.service-copy h2 { margin-bottom: 20px; font-size: clamp(1.65rem,3vw,2.2rem); }
.service-copy p { color: #bfbfc6; margin-bottom: 18px; }
.service-topic { margin-top: 40px; }
.service-copy ul { list-style: disc; padding-left: 22px; color: #bfbfc6; }
.service-copy li { padding: 4px 0; }
.service-process { padding: 28px; border-top: 2px solid var(--gold); background: var(--black-soft); }
.service-process h2 { font-size: 1.7rem; }
.service-process ol { margin: 24px 0; padding-left: 22px; color: #c3c3ca; }
.service-process li { padding: 0 0 20px 8px; }
.service-process li::marker { color: var(--gold-light); font-weight: 600; }
.service-faq { padding-top: 48px; padding-bottom: 64px; border-top: 1px solid #2d2d32; }
.service-faq details { border-bottom: 1px solid #34343a; }
.service-faq summary { padding: 20px 0; font-weight: 500; cursor: pointer; color: #efeff2; }
.service-faq details p { max-width: 850px; padding: 0 0 24px; color: #bfbfc6; }
.service-faq details[open] summary { color: var(--gold-light); }
.service-request { scroll-margin-top: 100px; padding: clamp(28px,5vw,56px); border: 1px solid rgba(201,162,75,.4); background: linear-gradient(120deg,rgba(201,162,75,.1),var(--black-soft)); }
.service-request h2 { font-size: clamp(1.8rem,3vw,2.7rem); margin-bottom: 20px; }
.service-request > p:not(.eyebrow) { max-width: 800px; color: #c3c3ca; margin-bottom: 24px; }
.service-request .service-email { margin-top: 20px; margin-bottom: 0; font-size: .88rem; }
.service-email a { color: var(--gold-light); overflow-wrap: anywhere; }
.service-related { padding-top: 56px; padding-bottom: 72px; }
.service-related h2 { font-size: 1.7rem; margin-bottom: 20px; }
.service-related > div { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.service-related a { display: flex; justify-content: space-between; gap: 16px; padding: 20px; border: 1px solid #34343a; }
.service-related a:hover { border-color: var(--gold); color: var(--gold-light); }
.service-page :is(a,button,summary):focus-visible { outline: 2px solid var(--gold-light); outline-offset: 5px; }
.service-skip + .header + main { scroll-margin-top: 100px; }
.service-page .btn { white-space: normal; text-align: center; }
@media (max-width: 850px) {
  .service-hero { padding-top: 110px; }
  .service-hero-grid,.service-editorial { grid-template-columns: 1fr; }
  .service-visual img { aspect-ratio: 16/9; }
  .service-process { max-width: none; }
}
@media (max-width: 540px) {
  .service-hero { padding-bottom: 40px; }
  .service-actions { flex-direction: column; align-items: stretch; }
  .service-related > div { grid-template-columns: 1fr; }
  .service-request .btn { width: 100%; }
  .service-breadcrumb { font-size: .75rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Contact: direct contact and preparation share the same row. */
.contact-page .service-editorial { grid-template-columns: minmax(0,1fr); }
.contact-direct-grid { display: grid; grid-template-columns: minmax(0,2fr) minmax(300px,1fr); gap: 28px; align-items: stretch; }
.contact-direct-grid > * { min-width: 0; }
.contact-direct-grid .service-request { padding: clamp(28px,3.5vw,48px); }
@media (max-width: 850px) {
  .contact-direct-grid { grid-template-columns: minmax(0,1fr); }
}
