/* Business services extend the existing Coastal website. */
.service-hero { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:65px; }
.service-hero h1 { font-size:clamp(43px,4.8vw,66px); }
.service-hero .page-lead { font-size:18px; }
.service-hero figure { margin:0; min-width:0; }
.service-hero figcaption { font-size:11px; line-height:1.7; color:var(--muted); margin-top:12px; }
.service-hero-photo,.service-film { width:100%; height:480px; border-radius:16px 70px 16px 16px; object-fit:cover; overflow:hidden; }
.device-stage { position:relative; height:480px; display:flex; align-items:center; border:1px solid #345a62; border-radius:16px 70px 16px 16px; overflow:hidden; background:radial-gradient(ellipse at 75% 25%,#31575c,transparent 65%),#0c252d; }
.device-stage::before { content:''; position:absolute; inset:0; opacity:.16; background-image:linear-gradient(#7fb7ae55 1px,transparent 1px),linear-gradient(90deg,#7fb7ae55 1px,transparent 1px); background-size:35px 35px; mask-image:linear-gradient(black,transparent); }
.device-stage img { position:relative; width:100%; height:80%; object-fit:contain; padding:28px; filter:drop-shadow(0 25px 20px #0005); }
.device-stage-label,.device-stage-bottom { position:absolute; left:27px; color:#dfece8; font-size:10px; letter-spacing:1.8px; }
.device-stage-label { top:28px; color:#edc67e; }
.device-stage-bottom { bottom:26px; letter-spacing:.4px; font-size:11px; }
.service-film { position:relative; background:#143f47; }
.service-film video { display:block; width:100%; height:100%; object-fit:cover; }
.service-film-control { position:absolute; bottom:18px; right:18px; border:1px solid #ffffff88; border-radius:30px; padding:11px 15px; color:white; background:#103e46e8; font-size:12px; cursor:pointer; }
.service-film-control:focus-visible { outline:3px solid #f2c679; outline-offset:4px; }
.home-services { background:#e8f0eb; }
.service-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin-top:40px; }
.service-card { display:grid; grid-template-columns:.9fr 1.1fr; overflow:hidden; border:1px solid #cadbd3; border-radius:14px; background:#fff; transition:transform .2s,box-shadow .2s; }
.service-card:hover { transform:translateY(-4px); box-shadow:0 14px 28px #173f4612; }
.service-card > img { width:100%; height:100%; min-height:280px; object-fit:cover; }
.service-card .pax-payment-devices-photo { object-fit:contain; padding:15px; background:radial-gradient(ellipse at top,#31575c,#0c252d); }
.service-card > div { padding:28px 24px; display:flex; align-items:flex-start; flex-direction:column; }
.service-number { font-size:10px; letter-spacing:1.2px; font-weight:600; color:#586f69; }
.service-card h3 { font-size:24px; line-height:1.25; letter-spacing:-.6px; margin:17px 0 12px; }
.service-card p,.page-main .service-card p { font-size:14px; line-height:1.75; color:var(--muted); }
.service-card-link { padding-top:25px; margin-top:auto; color:#91402c; font-size:12px; font-weight:600; line-height:1.5; }
.service-card-link span { margin-left:5px; }
.services-overview-link { display:flex; justify-content:space-between; gap:25px; align-items:center; margin-top:32px; }
.services-overview-link p { color:var(--muted); font-size:14px; }
.service-features { padding-bottom:15px; }
.service-faq { display:grid; grid-template-columns:1fr 1.2fr; gap:80px; }
.page-main .service-scope { font-size:14px; color:var(--muted); margin-top:24px; }
.service-faq details { border-top:1px solid var(--line); padding:23px 0; }
.service-faq details:last-child { border-bottom:1px solid var(--line); }
.service-faq summary { cursor:pointer; font-size:17px; line-height:1.6; font-weight:600; padding-right:20px; }
.service-faq details p { margin-top:17px; color:var(--muted); }
.service-final { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:45px 0 65px; }
.service-final h2 { margin-top:18px; }
.service-phone { display:block; text-align:center; margin-top:18px; font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.service-related { font-size:13px; line-height:2.5; padding-bottom:50px; color:var(--muted); }
.service-related a { text-decoration:underline; text-underline-offset:4px; margin:0 6px; }
.footer-top { grid-template-columns:1.1fr repeat(4,1fr); gap:26px; }
@media(max-width:1150px) {
  .service-hero { gap:35px; }
  .service-hero-photo,.service-film,.device-stage { height:400px; }
  .service-card { grid-template-columns:1fr; }
  .service-card > img { min-height:0; height:230px; }
  .service-card > div { min-height:250px; }
}
@media(max-width:800px) {
  .service-hero,.service-faq { grid-template-columns:1fr; gap:35px; }
  .service-hero-photo,.service-film,.device-stage { height:380px; }
  .service-hero h1 { font-size:48px; }
  .service-final,.services-overview-link { align-items:flex-start; flex-direction:column; }
  .footer-top { grid-template-columns:repeat(2,1fr); gap:30px; }
}
@media(max-width:550px) {
  .service-grid { grid-template-columns:1fr; }
  .service-hero h1 { font-size:42px; letter-spacing:-1.5px; }
  .service-hero-photo,.service-film,.device-stage { height:290px; }
  .service-card > div { min-height:0; padding:26px; }
}
@media(prefers-reduced-motion:reduce) { .service-card { transition:none; } .service-card:hover { transform:none; } }
