/* Service, About, Contact, Gallery and Terms pages (built 2026-10-22). Loaded after the shared kit and menu-page.css. */

/* Introduction: copy beside a photo */
.sp-intro{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.sp-intro-copy h2{font-size:clamp(2.2rem,3.6vw,3.2rem)}
.sp-intro-copy>p:not(.eyebrow){margin-top:18px;max-width:600px;color:var(--muted);font-size:1.02rem;line-height:1.8}
.sp-intro-copy>p.sp-lead{color:var(--ink);font:400 1.3rem/1.55 var(--serif)}
.sp-intro-image{position:relative;margin:0}
.sp-intro-image img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.sp-intro-image::before{content:"";position:absolute;inset:-14px 14px 14px -14px;border:1px solid var(--gold);z-index:-1}
.sp-intro-image figcaption{margin-top:12px;font:600 .6875rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dark)}

/* Feature cards */
.sp-band{background:var(--pale)}
.sp-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:44px}
.sp-features.sp-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.sp-feature{padding:30px 30px 32px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold)}
.sp-feature h3{font-size:1.45rem;line-height:1.25;color:var(--navy)}
.sp-feature p{margin-top:12px;color:var(--muted);line-height:1.7}
.sp-feature ul{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:8px;color:var(--ink)}
.sp-feature li{position:relative;padding-left:20px}
.sp-feature li::before{content:"";position:absolute;left:0;top:.75em;width:9px;height:1px;background:var(--gold)}
.sp-feature .sp-num{display:block;margin-bottom:12px;font:400 2.4rem/1 var(--serif);color:var(--gold)}

/* Links to related pages (corporate hub) */
.sp-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:44px}
.sp-link{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);transition:transform .25s ease,box-shadow .25s ease}
.sp-link:hover{transform:translateY(-4px);box-shadow:0 18px 34px #0c173c1f}
.sp-link img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.sp-link div{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1}
.sp-link h3{font-size:1.5rem;color:var(--navy)}
.sp-link p{margin-top:10px;color:var(--muted);line-height:1.65}
.sp-link span{margin-top:auto;padding-top:18px;font:600 .75rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dark)}

/* Menus and prices: coming soon */
.sp-soon-section{padding-block:72px}
.sp-soon{position:relative;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;padding:48px 56px;background:linear-gradient(120deg,var(--deep),var(--navy));color:#fff;border-top:3px solid var(--gold-light)}
.sp-soon::after{content:"";position:absolute;inset:10px;border:1px solid #e3c08133;pointer-events:none}
.sp-soon .eyebrow{color:var(--gold-light)}
.sp-soon h2{margin-top:10px;font-size:clamp(1.9rem,3vw,2.6rem);color:#fff}
.sp-soon h2 em{color:var(--gold-light)}
.sp-soon p:not(.eyebrow){margin-top:14px;max-width:620px;color:#c9d2e6;line-height:1.75}
.sp-soon-actions{position:relative;z-index:1;display:grid;gap:12px;min-width:250px}
.sp-soon-actions .button{justify-content:center;text-align:center}
.sp-soon-list{margin:18px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.sp-soon-list li{padding:6px 12px;border:1px solid #e3c08166;color:var(--gold-light);font:600 .6875rem/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase}

/* Photo strip */
.sp-photos{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:14px}
.sp-photos figure{margin:0;overflow:hidden}
.sp-photos img{display:block;width:100%;aspect-ratio:1;object-fit:cover;transition:transform .6s ease}
.sp-photos figure:hover img{transform:scale(1.05)}

/* Gallery page */
.sp-gallery{columns:3 300px;column-gap:14px;margin-top:40px}
.sp-gallery button{display:block;width:100%;margin:0 0 14px;padding:0;border:0;background:none;cursor:zoom-in;break-inside:avoid;overflow:hidden}
.sp-gallery img{display:block;width:100%;height:auto;transition:transform .6s ease}
.sp-gallery button:hover img,.sp-gallery button:focus-visible img{transform:scale(1.04)}
.sp-lightbox{max-width:min(1200px,94vw);max-height:92vh;padding:0;border:0;background:transparent}
.sp-lightbox::backdrop{background:#0c173ceb}
.sp-lightbox img{display:block;max-width:100%;max-height:86vh;margin:auto;object-fit:contain}
.sp-lightbox button{position:fixed;top:18px;right:22px;width:46px;height:46px;border:1px solid var(--gold-light);background:#0c173c;color:#fff;font-size:1.4rem;cursor:pointer}

/* Contact page */
.sp-contact{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:44px}
.sp-contact a,.sp-contact div{display:flex;flex-direction:column;gap:8px;padding:26px 26px 28px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold)}
.sp-contact a:hover{border-top-color:var(--terracotta)}
.sp-contact .eyebrow{margin:0}
.sp-contact strong{font:400 1.35rem/1.3 var(--serif);color:var(--navy);word-break:break-word}
.sp-contact small{color:var(--muted);font-size:.875rem;line-height:1.6}

/* Terms and other legal text */
.sp-legal{max-width:860px}
.sp-legal h2{margin-top:44px;font-size:clamp(1.6rem,2.4vw,2rem)}
.sp-legal h2:first-child{margin-top:0}
.sp-legal h3{margin-top:26px;font-size:1.2rem;color:var(--navy)}
.sp-legal p,.sp-legal li{margin-top:12px;color:var(--ink);line-height:1.8}
.sp-legal ul,.sp-legal ol{padding-left:22px}
.sp-legal-note{margin-bottom:36px;padding:18px 22px;background:var(--pale);border-left:3px solid var(--gold);color:var(--muted)}

@media(max-width:1000px){
  .sp-intro{grid-template-columns:1fr;gap:48px}
  .sp-features,.sp-links{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sp-contact{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sp-soon{grid-template-columns:1fr;padding:40px 36px}
  .sp-photos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sp-photos[style*="--n:3"] figure:last-child{display:none}
}
@media(max-width:640px){
  .sp-features,.sp-features.sp-two,.sp-links,.sp-contact{grid-template-columns:1fr}
  .sp-soon{padding:34px 24px}
  .sp-soon-actions{min-width:0}
  .sp-intro-image::before{inset:-10px 10px 10px -10px}
  .sp-soon-section{padding-block:52px}
}
@media(prefers-reduced-motion:reduce){.sp-photos img,.sp-gallery img,.sp-link{transition:none}}
