/* ============================================================
   _polish.css  —  STYLE-ONLY refinement layer (review mockups)
   Loaded LAST so it wins the cascade. Adds NO content, removes
   NO content, rewords NOTHING. Pure visual polish on top of the
   real pages, using the site's own design tokens.
   Premier tone: refined, trustworthy, calm — not flashy.
   ============================================================ */

:root{
  --r2:12px;          /* refined card radius */
  --r3:18px;          /* large surface radius */
  --ring:rgba(212,168,87,.55);
  --line:rgba(212,168,87,.16);
  --panel:rgba(255,255,255,.025);
  --panel-2:rgba(255,255,255,.04);
  --shadow-1:0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px -12px rgba(0,0,0,.6);
  --shadow-2:0 1px 0 rgba(255,255,255,.05) inset, 0 24px 60px -20px rgba(0,0,0,.7);
}

/* ---- Global ---------------------------------------------- */
html{scroll-behavior:smooth}
body{
  /* layered depth over the flat navy — very subtle */
  background-image:
    radial-gradient(1200px 600px at 78% -8%, rgba(212,168,87,.07), transparent 60%),
    radial-gradient(900px 500px at -10% 12%, rgba(70,100,160,.10), transparent 55%);
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
::selection{background:rgba(212,168,87,.28);color:#fff}

/* Accessible keyboard focus everywhere */
a:focus-visible,button:focus-visible,[tabindex]:focus-visible,
.faq-q:focus-visible,.toc-link:focus-visible{
  outline:2px solid var(--ring);outline-offset:3px;border-radius:4px;
}

/* Serif display headings: tighter, balanced, refined */
h1,h2,.v-title,.ps-title,.hero-content h1{
  letter-spacing:.005em;
}
h1,h2{text-wrap:balance}

/* Custom scrollbar (webkit) */
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:var(--navy)}
::-webkit-scrollbar-thumb{background:rgba(212,168,87,.28);border-radius:8px;border:2px solid var(--navy)}
::-webkit-scrollbar-thumb:hover{background:rgba(212,168,87,.45)}

/* ---- NAV (shared across all pages) ----------------------- */
.nav{
  backdrop-filter:saturate(125%) blur(10px);
  -webkit-backdrop-filter:saturate(125%) blur(10px);
  border-bottom:1px solid var(--line);
  box-shadow:0 10px 30px -18px rgba(0,0,0,.8);
}
.nav-links a:not(.nav-book):not(.nav-cta):hover::before{
  box-shadow:0 0 10px rgba(212,168,87,.4);
}
/* Button-like nav CTAs: refined gradient + sheen + lift */
.nav-book,.nav-cta,.btn-book,.btn-g,.btn-rates,.aside-book-btn,.hero-cta,.book-tip a{
  position:relative;overflow:hidden;
  letter-spacing:.04em;
  transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s ease,filter .22s ease;
}
.nav-book::after,.nav-cta::after,.btn-book::after,.btn-g::after,.aside-book-btn::after{
  content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-18deg);transition:left .55s ease;pointer-events:none;
}
.nav-book:hover::after,.nav-cta:hover::after,.btn-book:hover::after,
.btn-g:hover::after,.aside-book-btn:hover::after{left:160%}
.nav-book:hover,.nav-cta:hover,.btn-book:hover,.btn-g:hover,.aside-book-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px -8px rgba(212,168,87,.5);
}

/* Destinations dropdown: softer panel, refined separators */
.drop-panel{
  border-radius:var(--r2);
  box-shadow:var(--shadow-2);
  background:linear-gradient(180deg,rgba(21,32,58,.98),rgba(15,23,40,.99));
}
.drop-col a{transition:color .15s ease,transform .15s ease,padding-left .15s ease}
.drop-col a:hover{transform:none;padding-left:.35rem}

/* ---- Outline / ghost buttons ----------------------------- */
.btn-o,.btn-rates{
  transition:transform .2s ease,border-color .2s ease,color .2s ease,background .2s ease;
}
.btn-o:hover,.btn-rates:hover{transform:translateY(-2px)}

/* ---- Page headers / heroes ------------------------------- */
.page-hero,.page-header,.hero{position:relative}
.page-hero::after,.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:120px;
  background:linear-gradient(180deg,transparent,rgba(13,20,36,.85));
  pointer-events:none;
}
.ph-tag,.hero-tag,.page-tag{
  backdrop-filter:blur(4px);
}

/* ============================================================
   FLEET  (our-fleet.html)
   ============================================================ */
.vehicle-section{padding-top:clamp(3.2rem,6vw,5.5rem);padding-bottom:clamp(3.2rem,6vw,5.5rem)}
.v-grid{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r3);
  padding:clamp(1.4rem,3vw,2.6rem);
  box-shadow:var(--shadow-1);
}
.v-hero-cutout,.v-hero-suv,.cutout{
  filter:drop-shadow(0 30px 40px rgba(0,0,0,.55));
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
}
.vehicle-section:hover .v-hero-cutout,
.vehicle-section:hover .v-hero-suv{transform:translateY(-6px) scale(1.01)}
.v-gallery img{
  border-radius:10px;
  border:1px solid var(--line);
  box-shadow:0 12px 28px -16px rgba(0,0,0,.7);
  transition:transform .3s ease,box-shadow .3s ease;
}
.v-gallery img:hover{transform:translateY(-3px);box-shadow:0 18px 36px -16px rgba(0,0,0,.8)}
.v-specs{gap:.55rem}
.v-spec{
  display:flex;align-items:center;gap:.5rem;
  background:var(--panel-2);
  border:1px solid var(--line);
  border-radius:999px;
  padding:.4rem .85rem;
  font-size:.86rem;
}
.spec-icon{font-size:1rem;line-height:1;filter:saturate(.85)}
.v-premium-badge{
  background:linear-gradient(135deg,rgba(212,168,87,.18),rgba(240,210,145,.08));
  border:1px solid var(--line);
  border-radius:999px;padding:.35rem .9rem;letter-spacing:.1em;
}
.v-eyebrow{letter-spacing:.18em}
.v-title{background:linear-gradient(180deg,var(--cream),#bcc6d6);-webkit-background-clip:text;background-clip:text}

/* ============================================================
   FAQ  (faq.html)
   ============================================================ */
.faq-item{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r2);
  margin-bottom:.7rem;
  transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease;
  overflow:hidden;
}
.faq-item:hover{border-color:rgba(212,168,87,.32);box-shadow:var(--shadow-1)}
.faq-item.open{
  border-color:rgba(212,168,87,.4);
  box-shadow:0 0 0 1px rgba(212,168,87,.12),var(--shadow-1);
}
.faq-q{padding:1.05rem 1.2rem}
.faq-chevron{transition:transform .28s cubic-bezier(.2,.7,.2,1)}
.faq-cat-icon{
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(212,168,87,.16),rgba(240,210,145,.05));
  border:1px solid var(--line);border-radius:12px;
}
.faq-nav-item{border-radius:8px;transition:all .2s ease}
.faq-nav-item:hover{background:var(--panel-2);color:var(--cream)}
.faq-nav-item.active{
  background:linear-gradient(90deg,rgba(212,168,87,.14),transparent);
  border-left-color:var(--gold);color:var(--gl);
}
.trust,.trust-in{backdrop-filter:blur(4px)}
.ti{transition:transform .2s ease}
.ti:hover{transform:translateY(-2px)}

/* ============================================================
   POLICIES  (policies.html)
   ============================================================ */
.policy-section{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r2);
  padding:clamp(1.3rem,3vw,2rem);
  margin-bottom:1.1rem;
  box-shadow:var(--shadow-1);
  transition:border-color .22s ease;
}
.policy-section:hover{border-color:rgba(212,168,87,.28)}
.ps-icon{
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(212,168,87,.16),rgba(240,210,145,.05));
  border:1px solid var(--line);border-radius:12px;
}
.toc-bar{
  border-radius:var(--r2);
  border:1px solid var(--line);
  background:var(--panel);
  backdrop-filter:blur(6px);
}
.toc-link{border-radius:8px;transition:all .18s ease}
.toc-link:hover{background:var(--panel-2);color:var(--cream)}
.toc-link.active{background:linear-gradient(90deg,rgba(212,168,87,.16),transparent);color:var(--gl)}
.warn-box,.hl-box,.note-box,.info-box{
  border-radius:var(--r2);
  border:1px solid var(--line);
  box-shadow:var(--shadow-1);
}
.warn-box{border-left:3px solid var(--gold)}
.cancel-table,.cancel-table td,.cancel-table th{border-color:var(--line)!important}
.cancel-table{border-radius:var(--r2);overflow:hidden;box-shadow:var(--shadow-1)}
.aside-contact{
  border-radius:var(--r2);border:1px solid var(--line);
}
.step-num{box-shadow:0 0 0 4px rgba(212,168,87,.1)}
/* Aside trust badges: align the gold dot to the FIRST line of a
   wrapped item instead of the vertical centre of both lines.
   (Fixes "Online Booking — No Phone Required" floating its dot.) */
.aside-badge .badge-item{align-items:flex-start}
.aside-badge .badge-item .dot{margin-top:.5rem}

/* ============================================================
   DESTINATION PAGES (peggys-cove / lunenburg / shared template)
   ============================================================ */
.stat-box,.stat-row .stat-box{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r2);
  box-shadow:var(--shadow-1);
  transition:transform .25s ease,border-color .25s ease;
}
.stat-box:hover{transform:translateY(-3px);border-color:rgba(212,168,87,.3)}
.stat-num{background:linear-gradient(180deg,var(--gl),var(--gold));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.card,.near-card,.info-item,.text-block{
  border-radius:var(--r2);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.card{border:1px solid var(--line);box-shadow:var(--shadow-1)}
.card:hover,.near-card:hover{transform:translateY(-4px);border-color:rgba(212,168,87,.3);box-shadow:var(--shadow-2)}
.card-icon,.ic,.ii-ic{
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(212,168,87,.16),rgba(240,210,145,.05));
  border:1px solid var(--line);border-radius:12px;
}
.veh-card{
  border-radius:var(--r3);
  border:1px solid var(--line);
  overflow:hidden;
  box-shadow:var(--shadow-1);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.veh-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);border-color:rgba(212,168,87,.3)}
.veh-img,.veh-img-wrap img{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.veh-card:hover .veh-img,.veh-card:hover .veh-img-wrap img{transform:scale(1.04)}
.route-step,.step-body{transition:transform .2s ease}
.step-dot,.step-dot-inner{box-shadow:0 0 0 4px rgba(212,168,87,.12)}
.rev,.rev-g{
  border-radius:var(--r3);
  border:1px solid var(--line);
  box-shadow:var(--shadow-1);
  background:var(--panel);
}
.rev-stars{filter:drop-shadow(0 1px 4px rgba(212,168,87,.4))}
.cta-band{position:relative;overflow:hidden}
.cta-band::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(600px 300px at 80% 0%,rgba(212,168,87,.12),transparent 60%);
  pointer-events:none;
}
.back-link{transition:transform .2s ease,color .2s ease}
.back-link:hover{transform:translateX(-3px)}

/* ============================================================
   FOOTERS (all variants)
   ============================================================ */
.foot,.footer{border-top:1px solid var(--line)}
.foot-links a,.footer-col a,.foot-copy a{transition:color .18s ease,padding-left .18s ease}
.foot-links a:hover,.footer-col a:hover{padding-left:.2rem}

/* ============================================================
   FRONT PAGE  (premier-car-service.html / index.html)
   The service / stat / pricing blocks are deliberate hairline
   grids (1px gaps on a gold rule). So we round + lift the whole
   BLOCK, never the individual cells — that would sever the rules.
   ============================================================ */
.svc-g,.stats,.price-g{
  border-radius:var(--r3);
  overflow:hidden;
  box-shadow:var(--shadow-1);
}
.stat-n{
  background:linear-gradient(180deg,var(--gold-l,#f0d291),var(--gold,#d4a857));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.svc-i{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.svc:hover .svc-i{transform:translateY(-3px) scale(1.04)}
.proc-n{box-shadow:0 0 0 4px rgba(212,168,87,.1)}
/* primary gold CTA: same premium sheen as the nav Book button */
.btn-p{position:relative;overflow:hidden}
.btn-p::after{
  content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);
  transform:skewX(-18deg);transition:left .55s ease;pointer-events:none;
}
.btn-p:hover::after{left:160%}
.btn-s{transition:border-color .2s ease,color .2s ease,transform .2s ease}
.btn-s:hover{transform:translateY(-2px)}

/* ============================================================
   Reduced-motion: neutralise everything this layer adds
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
  }
  .vehicle-section:hover .v-hero-cutout,
  .vehicle-section:hover .v-hero-suv,
  .stat-box:hover,.card:hover,.near-card:hover,.veh-card:hover,
  .veh-card:hover .veh-img,.svc:hover .svc-i,.btn-s:hover{transform:none!important}
}
