/* L3 service info template — namespaced; reuses the site's navy/teal/gold vocabulary. */
.si-page { --si-navy: var(--navy, #0a1f44); --si-teal: var(--teal-dark, #0f766e); --si-gold: var(--gold, #ffd60a); --si-soft: var(--text-soft, #4a5568); --si-border: var(--border, #e2e8f0); display: block; }
.si-page *, .si-page *::before, .si-page *::after { box-sizing: border-box; }
.si-page img, .si-page video, .si-page iframe { max-width: 100%; }
.si-sec { display: block; }
.si-sec[data-info-section]:not(.si-hero-wrap) > .si-intro { padding-top: 64px; padding-bottom: 40px; }
.si-sec[data-info-section]:nth-of-type(even):not(.si-hero-wrap):not(.si-contact) { background: var(--bg-2, #f5f7fa); }
.si-hero-in { max-width: 940px; margin: 0 auto; padding: 0 24px; }
.si-hero-extract { padding: 40px 0 !important; }
.si-hero-extract .hero-content { text-align: inherit; }
.si-hero-extract .hero-visual { max-width: 560px; margin: 24px auto 0; }
.si-form-extract { padding: 48px 0 !important; }
.si-form-extract .book-card { max-width: 640px; margin: 0 auto; }
.si-intro { max-width: 1100px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.si-eyebrow { display: inline-block; color: var(--si-teal); font-size: 13px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 10px; }
.si-intro h2 { font-size: clamp(26px, 3.2vw, 38px); font-weight: 800; line-height: 1.2; color: var(--si-navy); margin: 0 0 18px; }
.si-intro p { color: var(--si-soft); font-size: 16.5px; line-height: 1.65; margin: 0 0 14px; max-width: 820px; }
.si-intro .si-lead { color: var(--text, #1a2332); font-size: 18px; }
.si-list { list-style: none; padding: 0; margin: 0 0 18px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 10px 28px; }
.si-list li { position: relative; padding: 6px 0 6px 26px; font-size: 15.5px; line-height: 1.55; color: var(--text, #1a2332); }
.si-list li::before { content: "✓"; position: absolute; left: 0; color: var(--teal, #0d9488); font-weight: 800; }

/* Hero additions (inside existing hero designs) */
.si-benefit { font-size: clamp(16px, 1.6vw, 19px); line-height: 1.55; opacity: .92; max-width: 760px; margin: 0 auto 22px; }
.si-hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 22px; }
.hero .si-hero-ctas, .si-hero .si-hero-ctas { justify-content: inherit; }
.hero-content .si-hero-ctas, [class*="hero"][style*="center"] .si-hero-ctas { justify-content: center; }
.si-btn { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; padding: 14px 26px; border-radius: 999px; font-weight: 700; font-size: 15.5px; line-height: 1.2; transition: transform .15s, box-shadow .15s; }
.si-btn:hover { transform: translateY(-2px); }
.si-btn-primary { background: var(--si-gold, #ffd60a); color: var(--si-navy, #0a1f44) !important; box-shadow: 0 10px 24px -8px rgba(255,214,10,.5); }
.si-btn-ghost { background: rgba(255,255,255,.1); color: inherit !important; border: 2px solid currentColor; }
.service-explainer { max-width: 880px; margin: 8px auto 0; border-radius: 18px; overflow: hidden; background: #061533; box-shadow: 0 24px 60px -22px rgba(0,0,0,.6); }
.service-explainer[hidden] { display: none; }
.service-explainer video { display: block; width: 100%; height: auto; }
.si-hero { background: linear-gradient(135deg, #0a1f44 0%, #061533 100%); color: #fff; padding: 72px 0 64px; text-align: center; }
.si-hero h1 { font-size: clamp(32px, 4.8vw, 52px); font-weight: 800; line-height: 1.12; margin: 0 0 18px; color: #fff; }
.si-hero .si-hero-ctas { justify-content: center; }
.si-hero-tag { display: inline-block; background: rgba(255,214,10,.15); border: 1px solid rgba(255,214,10,.4); color: #ffe066; padding: 7px 16px; border-radius: 999px; font-size: 13px; font-weight: 600; margin-bottom: 20px; }

/* Steps */
.si-steps { list-style: none; padding: 0; margin: 8px 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; counter-reset: none; }
.si-steps li { background: #fff; border: 1px solid var(--si-border); border-radius: 16px; padding: 24px 20px; }
.si-step-num { width: 46px; height: 46px; border-radius: 50%; background: var(--si-gold); color: var(--si-navy); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 19px; margin-bottom: 14px; }
.si-steps h3 { font-size: 17px; font-weight: 800; color: var(--si-navy); margin: 0 0 6px; }
.si-steps p { font-size: 14.5px; margin: 0; }

/* Fees */
.si-fees { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; min-width: 0; }
.si-fees > .si-fee { min-width: 0; }
.si-fee { background: #fff; border: 1px solid var(--si-border); border-left: 4px solid var(--si-teal); border-radius: 12px; padding: 18px 22px; }
.si-fee h3 { font-size: 16px; font-weight: 800; color: var(--si-navy); margin: 0 0 6px; }
.si-fee p { margin: 0; font-size: 15.5px; }
.si-moved { margin: 6px 0; }
.si-intro + .si-moved { margin-top: 0; }
.si-rpl-booking { max-width: 1120px; margin: 0 auto; padding: 0 28px 36px; box-sizing: border-box; }
.si-rpl-booking .book-widget { width: 100%; max-width: none; box-sizing: border-box; }
.si-rpl-booking .prod-cta-row { margin: 0 0 24px; }
.si-rpl-booking .prod-cta { background: var(--si-gold); color: var(--si-navy) !important; }
/* Extracted legacy summaries have no second media column to fill. */
.si-page .si-hero-extract { display: block; }
.si-page .si-hero-extract .hero-content { display: block; width: 100%; max-width: 1120px; margin-inline: auto; }

/* FAQ */
.si-faq { display: grid; gap: 10px; max-width: 880px; }
.si-faq details { background: #fff; border: 1px solid var(--si-border); border-radius: 12px; padding: 0 20px; }
.si-faq summary { cursor: pointer; font-weight: 700; color: var(--si-navy); padding: 16px 0; font-size: 16px; }
.si-faq details p { padding-bottom: 16px; margin: 0; }
.si-supp-h { font-size: 18px; color: var(--si-navy); margin: 0 0 8px; }

/* Contact */
.si-contact-box { text-align: center; }
.si-contact-box p { margin-left: auto; margin-right: auto; }
.si-contact-box .si-hero-ctas { justify-content: center; }
.si-contact-box .si-btn-ghost { color: var(--si-navy) !important; }
.si-small { font-size: 13.5px !important; }

/* Responsive constraints for moved original sections */
.si-page > .si-sec { overflow-x: clip; }
@media (max-width: 920px) { .si-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px) {
  .si-page .req-grid { grid-template-columns: minmax(0, 1fr); }
  .si-page .req-card { min-width: 0; max-width: 100%; }
  .si-page .photo-slot.hero-photo { width: 100%; min-width: 0; max-width: 100%; }
  .si-steps { grid-template-columns: 1fr; }
  .si-sec[data-info-section]:not(.si-hero-wrap) > .si-intro { padding-top: 44px; padding-bottom: 28px; }
  .si-hero-ctas { flex-direction: column; align-items: stretch; }
  .si-hero { padding: 52px 0 44px; }
}
