/* =============================================================
   Naples Spine & Joint — Homepage + page-hero sections
   ============================================================= */

/* ---------- HERO (WebGL flow-field) ---------- */
.hero{position:relative;min-height:clamp(620px,92vh,920px);display:flex;align-items:center;overflow:hidden;background:var(--petrol)}
/* base gradient so there is never a blank flash before the poster paints */
.hero::before{content:"";position:absolute;inset:0;z-index:0;background:
  radial-gradient(120% 90% at 78% 18%,rgba(43,184,230,.45),transparent 55%),
  radial-gradient(100% 80% at 12% 90%,rgba(0,153,204,.3),transparent 60%),
  linear-gradient(160deg,#06384a,#0a2f3d 60%,#05222d)}
.hero-poster-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%;z-index:0}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%;z-index:0;opacity:0;transition:opacity 1.2s ease}
.hero-video.ready{opacity:1}
.hero::after{content:"";position:absolute;inset:0;z-index:1;background:
  linear-gradient(90deg,rgba(4,28,37,.9) 0%,rgba(4,28,37,.62) 42%,rgba(4,28,37,.2) 78%,rgba(4,28,37,.34) 100%),
  linear-gradient(0deg,rgba(4,28,37,.55),transparent 30%);}
.hero-noise{position:absolute;inset:0;z-index:1;opacity:.5;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E")}
.hero-inner{position:relative;z-index:3;width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);padding-block:7rem 4rem}
.hero-badge{display:inline-flex;align-items:center;gap:.55rem;padding:.45rem .9rem;border-radius:var(--r-pill);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#dff1f7;font-weight:600;font-size:.85rem;backdrop-filter:blur(6px);margin-bottom:1.4rem}
.hero-badge .dot{width:8px;height:8px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 4px rgba(255,106,77,.25)}
.hero h1{color:#fff;max-width:16ch;text-wrap:balance}
.hero h1 .hl{color:var(--brand-bright);font-style:italic}
.hero .lead{color:#bcdde8;max-width:46ch;margin-top:1.3rem;font-size:clamp(1.1rem,2vw,1.4rem)}
.hero .btn-row{margin-top:2rem}
.hero-trust{margin-top:2.4rem;display:flex;flex-wrap:wrap;gap:1.4rem 2rem;align-items:center;color:#9cc6d4;font-size:.92rem}
.hero-trust .ht{display:flex;align-items:center;gap:.5rem}
.hero-trust svg{width:18px;height:18px;color:var(--brand-bright)}
.hero-scroll{position:absolute;left:50%;bottom:1.4rem;transform:translateX(-50%);z-index:3;color:#9cc6d4;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.hero-scroll .mouse{width:24px;height:38px;border:2px solid rgba(255,255,255,.4);border-radius:14px;position:relative}
.hero-scroll .mouse::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;background:#fff;border-radius:2px;transform:translateX(-50%);animation:scrolldot 1.7s ease-in-out infinite}
@keyframes scrolldot{0%{opacity:0;top:7px}40%{opacity:1}80%{opacity:0;top:18px}}

/* ---------- Accident-type strip ---------- */
.acc-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:-3.5rem;position:relative;z-index:5}
@media(max-width:820px){.acc-strip{grid-template-columns:repeat(2,1fr);margin-top:2rem}}
.acc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.3rem;box-shadow:var(--sh-2);display:flex;flex-direction:column;gap:.5rem;transition:transform .3s var(--ease),box-shadow .3s}
.acc:hover{transform:translateY(-4px);box-shadow:var(--sh-3)}
.acc .acc-ic{width:46px;height:46px;border-radius:12px;background:rgba(0,153,204,.1);display:grid;place-items:center;color:var(--brand-deep)}
.acc .acc-ic svg{width:26px;height:26px}
.acc h4{font-size:1.05rem}
.acc p{font-size:.88rem;margin:0}

/* ---------- Split feature (about teaser) ---------- */
.split{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:center}
.split.flip{grid-template-columns:1fr 1.05fr}
.split.flip .split-media{order:-1}
@media(max-width:880px){.split,.split.flip{grid-template-columns:1fr}.split.flip .split-media{order:0}}
.split-media{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-3);aspect-ratio:4/3.2;background:var(--surface-2)}
.split-media img{width:100%;height:100%;object-fit:cover}
.split-media .float-card{position:absolute;left:1rem;bottom:1rem;background:rgba(255,255,255,.95);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1.1rem;box-shadow:var(--sh-2);display:flex;gap:.7rem;align-items:center;max-width:80%}
.float-card .fc-ic{width:40px;height:40px;border-radius:10px;background:rgba(26,158,95,.14);color:var(--ok);display:grid;place-items:center;flex:none}
.float-card .fc-ic svg{width:22px;height:22px}
.float-card strong{display:block;font-size:.98rem}
.float-card span{font-size:.82rem;color:var(--muted)}
.check-list{display:grid;gap:.7rem;margin-top:1.3rem}
.check-list li{display:flex;gap:.7rem;align-items:flex-start;color:var(--ink-soft)}
.check-list svg{width:22px;height:22px;color:var(--brand-deep);flex:none;margin-top:1px}

/* ---------- Process / recovery path ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;counter-reset:step}
@media(max-width:880px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.steps{grid-template-columns:1fr}}
.step{position:relative;padding:1.6rem 1.3rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);font-family:var(--f-display);font-size:1.5rem;color:var(--brand);font-weight:600;display:block;margin-bottom:.6rem}
.step h4{margin-bottom:.35rem}
.step p{font-size:.92rem;margin:0}

/* ---------- CTA band ---------- */
.cta-band{position:relative;overflow:hidden;border-radius:var(--r-lg);color:#fff;
  background:
    radial-gradient(85% 150% at 100% 0%,rgba(43,184,230,.30),transparent 55%),
    radial-gradient(70% 130% at 0% 100%,rgba(0,153,204,.24),transparent 55%),
    linear-gradient(135deg,#06384a,#0a4257 55%,#0e7fa6)}
.cta-band .wrap{padding-block:clamp(2.8rem,6vw,4.4rem);position:relative;z-index:2}
.cta-band h2{color:#fff;max-width:20ch}
.cta-band p{color:#cfe9f2;max-width:48ch}
.cta-band::after{content:"";position:absolute;right:-12%;top:-50%;width:58%;aspect-ratio:1;background:radial-gradient(circle,rgba(43,184,230,.38),transparent 60%);z-index:1;pointer-events:none;animation:auroraDrift 21s ease-in-out infinite alternate}

/* ---------- Contact mini (home) ---------- */
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
@media(max-width:760px){.contact-cards{grid-template-columns:1fr}}
.contact-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.6rem;text-align:center}
.contact-card .cc-ic{width:54px;height:54px;border-radius:14px;background:rgba(0,153,204,.1);display:grid;place-items:center;margin:0 auto 1rem}
.contact-card .cc-ic svg{width:28px;height:28px;color:var(--brand-deep)}
.contact-card a{font-weight:680;color:var(--brand-deep);font-size:1.05rem;word-break:break-word}

/* ---------- News cards ---------- */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
@media(max-width:880px){.news-grid{grid-template-columns:1fr}}
.news-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1);transition:transform .3s var(--ease),box-shadow .3s}
.news-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.news-card .nc-img{aspect-ratio:16/10;overflow:hidden;background:var(--surface-2)}
.news-card .nc-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.news-card:hover .nc-img img{transform:scale(1.05)}
.news-card .nc-body{padding:1.3rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.news-card .nc-tags{display:flex;gap:.5rem;flex-wrap:wrap}
.news-card h3{font-size:1.2rem;line-height:1.2}
.news-card .nc-meta{margin-top:auto;font-size:.85rem;color:var(--muted)}

/* ---------- PAGE HERO (inner pages) ---------- */
.page-hero{position:relative;overflow:hidden;color:#fff;padding-block:clamp(3.4rem,8vw,6rem) clamp(2.6rem,5vw,4rem);
  background:
    radial-gradient(60% 120% at 88% 0%,rgba(43,184,230,.18),transparent 60%),
    radial-gradient(50% 100% at 5% 100%,rgba(0,153,204,.16),transparent 60%),
    linear-gradient(160deg,#073d4f,#0a2f3d)}
.page-hero::after{content:"";position:absolute;right:-6%;top:-46%;width:58%;aspect-ratio:1;background:radial-gradient(circle,rgba(43,184,230,.3),transparent 62%);pointer-events:none;z-index:0;animation:auroraDrift 19s ease-in-out infinite alternate}
.page-hero .wrap{position:relative;z-index:2}
.page-hero h1{color:#fff;max-width:18ch}
.page-hero .lead{color:#bcdde8;max-width:54ch;margin-top:1rem}
.breadcrumb{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.85rem;color:#9cc6d4;margin-bottom:1.2rem}
.breadcrumb a{color:#9cc6d4}.breadcrumb a:hover{color:#fff}
.breadcrumb span{color:#6fa6b8}

/* article body */
.article{max-width:760px;margin-inline:auto}
.article-hero-img{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-3);margin-bottom:2rem;aspect-ratio:16/8;background:var(--surface-2)}
.article-hero-img img{width:100%;height:100%;object-fit:cover}
.article h2{margin-top:2.2rem;margin-bottom:.7rem;font-size:clamp(1.5rem,3vw,2rem)}
.article h3{margin-top:1.8rem;margin-bottom:.5rem}
.article p{margin-bottom:1.05rem}
.article ul{margin:0 0 1.2rem;padding-left:0;display:grid;gap:.55rem}
.article ul li{display:flex;gap:.6rem;align-items:flex-start;color:var(--ink-soft)}
.article ul li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brand);margin-top:.6rem;flex:none}
.article .meta{display:flex;gap:1rem;align-items:center;color:var(--muted);font-size:.9rem;margin-bottom:1.5rem}

/* service detail */
.svc-layout{display:grid;grid-template-columns:1fr 320px;gap:clamp(1.6rem,4vw,3rem);align-items:start}
@media(max-width:920px){.svc-layout{grid-template-columns:1fr}}
.svc-aside{position:sticky;top:calc(var(--header-h) + 1.2rem);display:grid;gap:1.2rem}
.svc-aside .card{padding:1.4rem}
.svc-aside .other-svc a{display:flex;align-items:center;gap:.7rem;padding:.6rem 0;border-bottom:1px solid var(--line);color:var(--ink-soft);font-weight:560}
.svc-aside .other-svc a:last-child{border-bottom:0}
.svc-aside .other-svc a:hover{color:var(--brand-deep)}
.svc-aside .other-svc img{width:26px;height:26px}
.svc-body h2{margin-top:1.8rem;margin-bottom:.6rem}
.svc-body ul{display:grid;gap:.55rem;margin:0 0 1.4rem}
.svc-body ul li{display:flex;gap:.6rem;align-items:flex-start;color:var(--ink-soft)}
.svc-body ul li svg{width:20px;height:20px;color:var(--brand-deep);flex:none;margin-top:2px}

/* faq accordion */
.faq{max-width:820px;margin-inline:auto;display:grid;gap:.8rem}
.faq-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.faq-q{width:100%;text-align:left;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.15rem 1.3rem;font-weight:650;font-size:1.05rem;cursor:pointer;background:none;border:0;color:var(--ink)}
.faq-q .pm{width:22px;height:22px;flex:none;position:relative;transition:transform .3s}
.faq-q .pm::before,.faq-q .pm::after{content:"";position:absolute;background:var(--brand-deep);border-radius:2px}
.faq-q .pm::before{top:10px;left:2px;right:2px;height:2px}
.faq-q .pm::after{left:10px;top:2px;bottom:2px;width:2px;transition:transform .3s}
.faq-item.open .faq-q .pm::after{transform:scaleY(0)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
.faq-a-inner{padding:0 1.3rem 1.2rem;color:var(--ink-soft)}

/* map */
.map-embed{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh-1);min-height:340px}
.map-embed iframe{width:100%;height:100%;min-height:340px;border:0;display:block}

/* location quick grid */
.loc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media(max-width:760px){.loc-grid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.loc-grid{grid-template-columns:1fr}}
.loc-card{display:flex;align-items:center;gap:.7rem;padding:1.1rem 1.2rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);font-weight:600;transition:border-color .2s,transform .2s}
.loc-card:hover{border-color:var(--brand);transform:translateY(-2px)}
.loc-card svg{width:20px;height:20px;color:var(--brand-deep);flex:none}

/* ============================================================
   Premium dark-panel effects — replaces the plain flat-blue
   backgrounds (stats band, CTA bands, page heroes, footer)
   with layered depth: gradient + masked dot-grid + drifting aurora.
   ============================================================ */
.bg-petrol{
  position:relative; overflow:hidden; isolation:isolate;
  background:
    radial-gradient(68% 120% at 14% 6%,rgba(0,153,204,.22),transparent 60%),
    radial-gradient(60% 110% at 92% 100%,rgba(43,184,230,.16),transparent 60%),
    linear-gradient(160deg,#083f51,#06384a 55%,#052b39);
}
.bg-petrol > .wrap{position:relative; z-index:2}

/* shared masked dot-grid texture */
.bg-petrol::before,.cta-band::before,.page-hero::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.5px);
  background-size:24px 24px;
  -webkit-mask-image:radial-gradient(130% 125% at 50% -12%,#000 30%,transparent 78%);
  mask-image:radial-gradient(130% 125% at 50% -12%,#000 30%,transparent 78%);
}

/* drifting aurora blob on the stats band */
.bg-petrol::after{
  content:""; position:absolute; z-index:0; pointer-events:none;
  width:58%; aspect-ratio:1; left:58%; top:-34%;
  background:radial-gradient(circle,rgba(43,184,230,.30),transparent 62%);
  animation:auroraDrift 17s ease-in-out infinite alternate;
}
@keyframes auroraDrift{
  from{transform:translate(0,0) scale(1)}
  to{transform:translate(-14%,12%) scale(1.2)}
}

/* enrich the footer + add a luminous top seam */
.site-footer{
  background:
    radial-gradient(55% 120% at 85% 0%,rgba(0,153,204,.16),transparent 60%),
    linear-gradient(180deg,#06384a,#052b39);
}
.site-footer::before{
  content:""; position:absolute; left:0; right:0; top:0; height:1px; z-index:1; pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(43,184,230,.55),transparent);
}

@media(prefers-reduced-motion:reduce){
  .bg-petrol::after,.cta-band::after,.page-hero::after{animation:none}
}
