/* ===========================================================
   Blackhawk Limo Service — Premium Editorial Site
   Palette: Obsidian + Ivory + Champagne Gold (East Bay luxury)
   Type:    Cormorant Garamond (display) + Inter (body/UI)
   =========================================================== */

:root{
  --ink:        #0a0a0a;
  --ink-soft:   #16161a;
  --ink-mid:    #2a2a2f;
  --ink-line:   rgba(255,255,255,0.10);

  --cream:      #f4efe6;
  --cream-soft: #ebe5d8;
  --paper:      #ffffff;

  --gold:       #c9a961;
  --gold-soft:  #d8bd7a;
  --gold-deep:  #a8893f;

  --txt:        #1a1a1a;
  --txt-mute:   #6a6a6a;
  --txt-invert: #f2efe8;
  --txt-invert-mute: rgba(242,239,232,0.66);

  --serif: 'Cormorant Garamond', 'Times New Roman', serif;
  --sans:  'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;

  --r-sm: 4px;
  --r-md: 8px;
  --r-lg: 14px;

  --shadow-soft: 0 30px 60px -25px rgba(0,0,0,0.30);
  --shadow-card: 0 18px 40px -20px rgba(0,0,0,0.18);

  --w-container: 1240px;
  --pad-x: clamp(20px, 4vw, 48px);

  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  color:var(--txt);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,svg{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; }

.container{
  width:100%;
  max-width:var(--w-container);
  margin:0 auto;
  padding-inline:var(--pad-x);
}

/* ---------- Type ---------- */
.eyebrow{
  font-family:var(--sans);
  font-size:11px;
  font-weight:600;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--txt-mute);
  margin:0 0 18px;
}
.eyebrow--gold{ color:var(--gold); }
.eyebrow--ink{ color:var(--ink); }

.section__title{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(34px, 5.2vw, 64px);
  line-height:1.04;
  letter-spacing:-0.01em;
  color:var(--txt-invert);
  margin:0 0 18px;
}
.section__title em{
  font-style:italic;
  font-weight:400;
  color:var(--gold);
}
.section__lede{
  font-size:17px;
  line-height:1.55;
  color:var(--txt-invert-mute);
  max-width:62ch;
  margin:0;
}

/* default for light sections */
.section:not(.section--dark):not(.section--cta) .section__title{ color:var(--ink); }
.section:not(.section--dark):not(.section--cta) .section__lede{ color:var(--txt-mute); }

.section__title--ink{ color:var(--ink) !important; }
.section__lede--ink{ color:#444 !important; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 26px;
  font-family:var(--sans);
  font-size:13px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  border:1px solid transparent;
  border-radius:999px;
  transition:all .35s var(--ease);
  white-space:nowrap;
}
.btn--small{ padding:10px 20px; font-size:11.5px; }
.btn--block{ width:100%; padding:16px 26px; }
.btn--primary{
  background:var(--gold);
  color:var(--ink);
}
.btn--primary:hover{
  background:var(--gold-soft);
  transform:translateY(-2px);
  box-shadow:0 14px 30px -10px rgba(201,169,97,0.55);
}
.btn--ghost{
  background:transparent;
  color:var(--txt-invert);
  border-color:rgba(255,255,255,0.35);
}
.btn--ghost:hover{
  border-color:var(--gold);
  color:var(--gold);
}
.btn--ink{
  background:var(--ink);
  color:var(--cream);
}
.btn--ink:hover{
  background:#222;
  transform:translateY(-2px);
}

/* ---------- Header ---------- */
.header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:50;
  padding:14px 0;
  transition:background .4s var(--ease), backdrop-filter .4s var(--ease), padding .4s var(--ease);
}
.header--scrolled{
  background:rgba(10,10,10,0.85);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  padding:8px 0;
  border-bottom:1px solid var(--ink-line);
}
.header__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
}
.logo{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--cream);
}
.logo__mark{ width:36px; height:36px; color:var(--gold); flex-shrink:0; }
.logo__wordmark{ display:flex; flex-direction:column; line-height:1; }
.logo__line1{
  font-family:var(--sans);
  font-weight:700;
  letter-spacing:0.18em;
  font-size:14px;
  color:var(--cream);
}
.logo__line2{
  font-family:var(--serif);
  font-style:italic;
  font-size:13px;
  margin-top:3px;
  color:var(--gold);
}
.nav{ display:flex; gap:32px; }
.nav a{
  font-size:13px;
  font-weight:500;
  letter-spacing:0.04em;
  color:var(--cream);
  opacity:0.78;
  transition:opacity .25s var(--ease), color .25s var(--ease);
}
.nav a:hover{ opacity:1; color:var(--gold); }

@media (max-width:980px){
  .nav{ display:none; }
  .header__inner > .btn{ display:inline-flex; }
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  color:var(--cream);
  overflow:hidden;
  isolation:isolate;
}
.hero__media{
  position:absolute; inset:0;
  z-index:-1;
}
.hero__media img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:center 35%;
}
.hero__veil{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(10,10,10,0.55) 0%, rgba(10,10,10,0.30) 35%, rgba(10,10,10,0.75) 100%),
    linear-gradient(90deg, rgba(10,10,10,0.70) 0%, rgba(10,10,10,0.15) 60%, rgba(10,10,10,0) 100%);
}
.hero__content{
  position:relative;
  padding-top:140px;
  padding-bottom:120px;
  max-width:880px;
}
.hero__title{
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(44px, 7vw, 96px);
  line-height:1.02;
  letter-spacing:-0.015em;
  margin:0 0 28px;
  color:var(--cream);
}
.hero__title em{
  font-style:italic;
  font-weight:400;
  color:var(--gold);
}
.hero__lede{
  font-size:clamp(16px, 1.5vw, 19px);
  line-height:1.55;
  max-width:58ch;
  color:rgba(242,239,232,0.85);
  margin:0 0 38px;
}
.hero__cta{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-bottom:56px;
}
.hero__trust{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:22px;
  padding-top:28px;
  border-top:1px solid rgba(255,255,255,0.12);
  max-width:720px;
}
.trust__item{ display:flex; flex-direction:column; gap:2px; }
.trust__item strong{
  font-family:var(--serif);
  font-size:20px;
  font-style:italic;
  color:var(--gold);
  font-weight:500;
}
.trust__item span{
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:rgba(242,239,232,0.7);
}
.trust__divider{
  width:1px; height:30px;
  background:rgba(255,255,255,0.15);
}
.hero__scroll{
  position:absolute;
  bottom:32px;
  left:50%;
  transform:translateX(-50%);
  width:24px; height:40px;
  border:1px solid rgba(242,239,232,0.4);
  border-radius:14px;
  z-index:2;
}
.hero__scroll span{
  display:block;
  width:3px; height:8px;
  background:var(--gold);
  border-radius:2px;
  margin:6px auto 0;
  animation:scroll-pulse 1.8s var(--ease) infinite;
}
@keyframes scroll-pulse{
  0%{ transform:translateY(0); opacity:0.4; }
  50%{ opacity:1; }
  100%{ transform:translateY(16px); opacity:0.4; }
}

/* ---------- Strip ---------- */
.strip{
  padding:80px 0;
  background:var(--cream);
  text-align:center;
  border-bottom:1px solid rgba(0,0,0,0.06);
}
.strip__quote{
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(24px, 3vw, 36px);
  line-height:1.3;
  color:var(--ink);
  margin:0 auto 12px;
  max-width:32ch;
}
.strip__sub{
  font-size:12px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--gold-deep);
  margin:0;
}

/* ---------- Sections ---------- */
.section{
  padding:clamp(80px, 11vw, 140px) 0;
  background:var(--paper);
}
.section--dark{
  background:var(--ink);
  color:var(--txt-invert);
}
.section--cream{
  background:var(--cream);
}
.section--cta{
  background:
    radial-gradient(ellipse at top left, rgba(201,169,97,0.10), transparent 50%),
    var(--ink);
}
.section__head{
  max-width:760px;
  margin-bottom:64px;
}
.section__head--center{
  margin-left:auto; margin-right:auto;
  text-align:center;
}

/* ---------- Services Grid ---------- */
.services{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:1px;
  background:rgba(0,0,0,0.08);
  border:1px solid rgba(0,0,0,0.08);
}
.service{
  background:var(--paper);
  padding:44px 36px;
  display:flex;
  flex-direction:column;
  gap:14px;
  transition:background .35s var(--ease), transform .35s var(--ease);
}
.service:hover{
  background:#fafaf7;
}
.service__num{
  font-family:var(--serif);
  font-style:italic;
  color:var(--gold);
  font-size:18px;
  font-weight:500;
}
.service h3{
  font-family:var(--serif);
  font-size:28px;
  font-weight:500;
  margin:0;
  color:var(--ink);
  letter-spacing:-0.005em;
}
.service p{
  margin:0;
  color:var(--txt-mute);
  font-size:15px;
  line-height:1.6;
}
.service ul{
  list-style:none;
  padding:0;
  margin:auto 0 0;
  border-top:1px solid rgba(0,0,0,0.08);
  padding-top:16px;
}
.service li{
  font-size:13px;
  color:var(--ink);
  padding:5px 0;
  position:relative;
  padding-left:18px;
}
.service li::before{
  content:'';
  position:absolute;
  left:0; top:13px;
  width:8px; height:1px;
  background:var(--gold);
}

@media (max-width:900px){
  .services{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:560px){
  .services{ grid-template-columns:1fr; }
}

/* ---------- Destinations Grid ---------- */
.dest-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:24px;
}
.dest{
  position:relative;
  overflow:hidden;
  border-radius:var(--r-lg);
  background:var(--ink-soft);
  isolation:isolate;
}
.dest img{
  position:absolute;
  inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
  transition:transform 1.2s var(--ease);
}
.dest:hover img{ transform:scale(1.06); }
.dest::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,10,0.10) 0%, rgba(10,10,10,0.55) 60%, rgba(10,10,10,0.92) 100%);
  z-index:1;
}
.dest__body{
  position:relative;
  z-index:2;
  padding:28px 28px 30px;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  color:var(--cream);
}
.dest__tag{
  font-size:11px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 8px;
}
.dest h3{
  font-family:var(--serif);
  font-size:30px;
  font-weight:500;
  margin:0 0 10px;
  line-height:1.1;
  letter-spacing:-0.005em;
}
.dest p{
  margin:0 0 12px;
  font-size:14.5px;
  line-height:1.55;
  color:rgba(242,239,232,0.85);
  max-width:46ch;
}
.dest__detail{
  font-size:12px;
  color:rgba(242,239,232,0.7);
  letter-spacing:0.03em;
  margin-top:auto;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,0.14);
}
.dest__detail span{
  color:var(--gold);
  letter-spacing:0.18em;
  text-transform:uppercase;
  font-size:10.5px;
  margin-right:8px;
}

/* feature card spans full width */
.dest{ min-height:380px; }
.dest--feature{
  grid-column:span 2;
  min-height:520px;
}
.dest--feature h3{ font-size:44px; }
.dest--feature p{ font-size:16px; max-width:48ch; }
.dest--feature .dest__body{ padding:48px; max-width:680px; }

/* wide info card */
.dest--wide{
  grid-column:span 1;
  background:var(--ink-soft);
  min-height:380px;
}
.dest--wide::after{ display:none; }
.dest__body--wide{
  padding:36px;
  justify-content:flex-start;
}
.dest__body--wide h3{ font-size:32px; margin-bottom:18px; color:var(--cream); }
.dest__pills{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:8px 24px;
}
.dest__pills li{
  font-size:13.5px;
  color:rgba(242,239,232,0.82);
  padding-left:14px;
  position:relative;
}
.dest__pills li::before{
  content:'';
  position:absolute;
  left:0; top:11px;
  width:6px; height:1px;
  background:var(--gold);
}

@media (max-width:760px){
  .dest-grid{ grid-template-columns:1fr; }
  .dest--feature, .dest--wide{ grid-column:span 1; min-height:420px; }
  .dest--feature h3{ font-size:34px; }
  .dest--feature .dest__body{ padding:28px; }
  .dest__pills{ grid-template-columns:1fr; }
}

/* ---------- Fleet ---------- */
.fleet{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:80px;
  align-items:center;
}
.fleet__copy{ max-width:540px; }
.fleet__list{
  list-style:none;
  padding:0;
  margin:36px 0 36px;
  border-top:1px solid rgba(0,0,0,0.1);
}
.fleet__list li{
  padding:20px 0;
  border-bottom:1px solid rgba(0,0,0,0.1);
  display:flex;
  flex-direction:column;
  gap:4px;
}
.fleet__list strong{
  font-family:var(--serif);
  font-size:22px;
  font-weight:500;
  color:var(--ink);
}
.fleet__list span{
  font-size:13.5px;
  color:var(--txt-mute);
}
.fleet__media{
  position:relative;
  border-radius:var(--r-lg);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.fleet__media img{
  width:100%;
  aspect-ratio:4/3.4;
  object-fit:cover;
}
@media (max-width:900px){
  .fleet{ grid-template-columns:1fr; gap:50px; }
}

/* ---------- Executives ---------- */
.execs__head{
  max-width:720px;
  margin-bottom:56px;
}
.execs__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:24px;
  margin-bottom:48px;
}
.exec-card{
  background:var(--paper);
  border:1px solid rgba(0,0,0,0.06);
  padding:32px 28px;
  border-radius:var(--r-md);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.exec-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-card);
}
.exec-card__num{
  font-family:var(--serif);
  font-style:italic;
  color:var(--gold);
  font-size:18px;
  margin-bottom:12px;
}
.exec-card h3{
  font-family:var(--serif);
  font-size:22px;
  font-weight:500;
  color:var(--ink);
  margin:0 0 10px;
  line-height:1.2;
}
.exec-card p{
  margin:0;
  font-size:14.5px;
  color:var(--txt-mute);
  line-height:1.55;
}
@media (max-width:980px){
  .execs__grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:560px){
  .execs__grid{ grid-template-columns:1fr; }
}

/* ---------- Reviews ---------- */
.reviews{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:32px;
  margin-top:48px;
}
.review{
  padding:36px 32px;
  background:#fafaf7;
  border:1px solid rgba(0,0,0,0.06);
  border-radius:var(--r-md);
  margin:0;
}
.review__stars{
  color:var(--gold);
  font-size:18px;
  letter-spacing:3px;
  margin-bottom:18px;
}
.review blockquote{
  font-family:var(--serif);
  font-style:italic;
  font-size:19px;
  line-height:1.45;
  color:var(--ink);
  margin:0 0 18px;
}
.review figcaption{
  font-size:12.5px;
  letter-spacing:0.06em;
  color:var(--txt-mute);
}
@media (max-width:900px){
  .reviews{ grid-template-columns:1fr; }
}

/* ---------- CTA / Quote ---------- */
.cta{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:start;
}
.cta__copy{ max-width:460px; }
.cta__direct{
  margin-top:36px;
  padding-top:28px;
  border-top:1px solid rgba(255,255,255,0.14);
  display:flex;
  flex-direction:column;
  gap:14px;
}
.cta__phone{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--serif);
  font-size:30px;
  font-weight:500;
  color:var(--gold);
}
.cta__email{
  font-size:14.5px;
  color:rgba(242,239,232,0.78);
  letter-spacing:0.03em;
}
.cta__email:hover{ color:var(--gold); }

.quote-form{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.10);
  border-radius:var(--r-lg);
  padding:36px;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.field{ display:flex; flex-direction:column; gap:6px; }
.field-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.field label{
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:rgba(242,239,232,0.7);
}
.field input,
.field select,
.field textarea{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:var(--r-sm);
  padding:12px 14px;
  color:var(--cream);
  font-family:var(--sans);
  font-size:14.5px;
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--gold);
  background:rgba(255,255,255,0.07);
}
.field textarea{ resize:vertical; }
.field select{
  appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1.5 6 6.5 11 1.5' stroke='%23c9a961' stroke-width='1.5'/></svg>");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:36px;
}
.field select option{ background:var(--ink); color:var(--cream); }
.form__legal{
  font-size:11.5px;
  color:rgba(242,239,232,0.5);
  margin:0;
  line-height:1.5;
}
@media (max-width:980px){
  .cta{ grid-template-columns:1fr; gap:48px; }
  .field-row{ grid-template-columns:1fr; }
}

/* ---------- Footer ---------- */
.footer{
  background:var(--ink);
  color:var(--cream);
  padding-top:80px;
}
.footer__inner{
  display:grid;
  grid-template-columns:1.2fr 2fr;
  gap:60px;
  padding-bottom:60px;
  border-bottom:1px solid var(--ink-line);
}
.footer__brand p{
  font-size:14.5px;
  color:rgba(242,239,232,0.7);
  line-height:1.6;
  margin:24px 0 24px;
  max-width:42ch;
}
.logo--footer{ color:var(--cream); }
.badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.badges span{
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  padding:6px 12px;
  border:1px solid rgba(255,255,255,0.18);
  border-radius:999px;
  color:var(--gold-soft);
}
.footer__cols{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:32px;
}
.footer__cols h4{
  font-family:var(--sans);
  font-size:11px;
  font-weight:600;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 18px;
}
.footer__cols a{
  display:block;
  font-size:14px;
  color:rgba(242,239,232,0.75);
  padding:5px 0;
  transition:color .25s var(--ease);
}
.footer__cols a:hover{ color:var(--gold); }
.footer__addr{
  font-size:14px;
  color:rgba(242,239,232,0.6);
  line-height:1.6;
  margin:12px 0 0;
}
.footer__base{
  padding:24px 0;
  border-top:1px solid var(--ink-line);
}
.footer__base-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
}
.footer__base p{
  margin:0;
  font-size:12.5px;
  color:rgba(242,239,232,0.5);
}
.footer__base a:hover{ color:var(--gold); }

@media (max-width:900px){
  .footer__inner{ grid-template-columns:1fr; gap:48px; }
  .footer__cols{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:560px){
  .footer__cols{ grid-template-columns:1fr; }
}

/* ---------- Reveal anim (JS adds .js-reveal once supported) ---------- */
.js-reveal{ opacity:0; transform:translateY(24px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.js-reveal.is-visible{ opacity:1; transform:translateY(0); }

/* ===========================================================
   v2: Booking redirect + 24/7 contact + Floating Book Now
   =========================================================== */

/* CTA section restructured */
.cta__buttons{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:34px;
}
.btn--large{
  padding:18px 32px;
  font-size:14px;
  letter-spacing:0.16em;
  align-self:flex-start;
}
.cta__assure{
  font-size:12px;
  color:rgba(242,239,232,0.55);
  letter-spacing:0.08em;
  margin:0;
}

/* Contact card */
.contact-card{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.10);
  border-radius:var(--r-lg);
  padding:32px 28px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.contact-card__head{
  font-size:11px;
  font-weight:600;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 18px;
}
.contact-card__foot{
  margin:18px 0 0;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,0.10);
  font-size:12.5px;
  color:rgba(242,239,232,0.55);
  letter-spacing:0.03em;
}
.contact-row{
  display:flex;
  align-items:center;
  gap:16px;
  padding:14px 12px;
  border-radius:var(--r-md);
  transition:background .25s var(--ease), transform .25s var(--ease);
  margin:0 -12px;
}
.contact-row:hover{
  background:rgba(201,169,97,0.07);
}
.contact-row__icon{
  width:44px; height:44px;
  flex-shrink:0;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,0.05);
  color:var(--gold);
  border:1px solid rgba(255,255,255,0.08);
  transition:background .25s var(--ease), color .25s var(--ease);
}
.contact-row__icon--whatsapp{ color:#25D366; }
.contact-row__icon--sms{ color:#5cc8ff; }
.contact-row__icon--email{ color:#e9d5a8; }
.contact-row__icon--phone{ color:var(--gold); }

.contact-row:hover .contact-row__icon{
  background:rgba(201,169,97,0.18);
}
.contact-row__body{
  display:flex;
  flex-direction:column;
  gap:2px;
  flex:1;
  min-width:0;
}
.contact-row__label{
  font-size:11px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:rgba(242,239,232,0.6);
}
.contact-row__value{
  font-family:var(--serif);
  font-size:19px;
  font-weight:500;
  color:var(--cream);
  letter-spacing:0.01em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.contact-row__cta{
  font-size:12px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gold);
  flex-shrink:0;
  opacity:0;
  transform:translateX(-6px);
  transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.contact-row:hover .contact-row__cta{
  opacity:1;
  transform:translateX(0);
}
@media (max-width:560px){
  .contact-row__value{ font-size:16px; }
  .contact-row__cta{ display:none; }
}

/* ---------- Floating Action Button (FAB) ---------- */
.fab{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:90;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:14px;
}
.fab__main{
  display:flex;
  align-items:center;
  gap:10px;
  background:var(--gold);
  color:var(--ink);
  padding:14px 22px 14px 18px;
  border-radius:999px;
  font-family:var(--sans);
  font-size:13px;
  font-weight:700;
  letter-spacing:0.16em;
  text-transform:uppercase;
  box-shadow:0 18px 40px -10px rgba(201,169,97,0.55), 0 6px 14px -4px rgba(0,0,0,0.35);
  position:relative;
  isolation:isolate;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.fab__main:hover{
  transform:translateY(-3px);
  box-shadow:0 22px 50px -10px rgba(201,169,97,0.7), 0 8px 18px -4px rgba(0,0,0,0.4);
}
.fab__icon{
  display:flex;
  width:30px; height:30px;
  border-radius:50%;
  background:var(--ink);
  color:var(--gold);
  align-items:center;
  justify-content:center;
}
.fab__pulse{
  position:absolute;
  inset:0;
  border-radius:999px;
  z-index:-1;
  background:var(--gold);
  opacity:0.6;
  animation:fab-pulse 2.4s var(--ease) infinite;
}
@keyframes fab-pulse{
  0%{ transform:scale(1); opacity:0.55; }
  70%{ transform:scale(1.18); opacity:0; }
  100%{ transform:scale(1.18); opacity:0; }
}

/* secondary toggle (mini "+") for quick contact menu */
.fab__toggle{
  position:absolute;
  top:-8px;
  right:-8px;
  width:28px; height:28px;
  border-radius:50%;
  background:var(--ink);
  color:var(--gold);
  border:1.5px solid var(--gold);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:transform .35s var(--ease), background .25s var(--ease);
  box-shadow:0 4px 10px -2px rgba(0,0,0,0.4);
}
.fab__toggle:hover{ background:#1a1a1a; }
.fab.fab--open .fab__toggle{ transform:rotate(135deg); background:var(--gold); color:var(--ink); }
.fab__toggle--nudge{ animation:fab-nudge 1.4s var(--ease); }
@keyframes fab-nudge{
  0%,100%{ transform:scale(1); box-shadow:0 4px 10px -2px rgba(0,0,0,0.4); }
  25%{ transform:scale(1.18); box-shadow:0 0 0 8px rgba(212,175,84,0.22); }
  50%{ transform:scale(1); box-shadow:0 0 0 14px rgba(212,175,84,0); }
  75%{ transform:scale(1.12); box-shadow:0 0 0 6px rgba(212,175,84,0.18); }
}

/* menu items */
.fab__menu{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:10px;
  pointer-events:none;
  opacity:0;
  transform:translateY(12px);
  transition:opacity .35s var(--ease), transform .35s var(--ease);
}
.fab.fab--open .fab__menu{
  pointer-events:auto;
  opacity:1;
  transform:translateY(0);
}
.fab__item{
  display:flex;
  align-items:center;
  gap:10px;
  width:46px; height:46px;
  border-radius:50%;
  background:#ffffff;
  color:var(--ink);
  border:1px solid rgba(255,255,255,0.5);
  justify-content:center;
  box-shadow:0 10px 22px -6px rgba(0,0,0,0.55);
  transition:width .35s var(--ease), background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease);
  overflow:hidden;
  position:relative;
  text-decoration:none;
}
.fab__item svg{ flex:0 0 auto; }
.fab__item:hover{
  transform:translateY(-2px);
}
.fab__item--call{ color:#8a6a1b; }
.fab__item--wa{ color:#1da851; background:#eafbf1; border-color:rgba(37,211,102,0.5); }
.fab__item--sms{ color:#1d6fa5; background:#e7f4ff; border-color:rgba(92,200,255,0.5); }
.fab__item--call{ background:#fff6dd; border-color:rgba(212,175,84,0.55); }

.fab__tip{
  font-size:12px;
  font-weight:500;
  letter-spacing:0.05em;
  white-space:nowrap;
  opacity:0;
  transition:opacity .25s var(--ease);
  padding-right:6px;
}
.fab__item:hover{
  width:auto;
  padding:0 18px 0 14px;
  border-radius:24px;
}
.fab__item:hover .fab__tip{
  opacity:1;
}

@media (max-width:560px){
  .fab{ right:16px; bottom:16px; gap:10px; }
  .fab__main{ padding:13px 18px 13px 14px; font-size:12px; }
  .fab__label{ display:none; }
  .fab__main{ padding:14px; }
  .fab__pulse{ display:block; }
}

/* ===========================================================
   v3: Responsive polish — hamburger drawer, mobile overflow fixes
   =========================================================== */

/* Prevent horizontal scrolling on any device */
html, body { overflow-x:hidden; }

/* Header actions (Reserve Now button + hamburger) wrapper */
.header__actions{
  display:flex;
  align-items:center;
  gap:10px;
}

/* Hamburger button — hidden on desktop */
.nav__toggle{
  display:none;
  width:44px;
  height:44px;
  border-radius:50%;
  background:transparent;
  border:1px solid rgba(255,255,255,0.18);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:4px;
  padding:0;
  transition:background .25s var(--ease);
}
.nav__toggle:hover{ background:rgba(255,255,255,0.06); }
.nav__toggle span{
  display:block;
  width:18px;
  height:1.5px;
  background:var(--cream);
  border-radius:1px;
  transition:transform .3s var(--ease), opacity .25s var(--ease);
}
.nav__toggle.is-open span:nth-child(1){ transform:translateY(5.5px) rotate(45deg); }
.nav__toggle.is-open span:nth-child(2){ opacity:0; }
.nav__toggle.is-open span:nth-child(3){ transform:translateY(-5.5px) rotate(-45deg); }

/* Mobile drawer */
.nav-drawer{
  position:fixed;
  top:0; right:0;
  width:min(86vw, 360px);
  height:100vh;
  height:100dvh;
  background:#0a0a0a;
  border-left:1px solid var(--ink-line);
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:90px 28px 32px;
  transform:translateX(100%);
  transition:transform .42s var(--ease);
  z-index:48;
  overflow-y:auto;
}
.nav-drawer.is-open{ transform:translateX(0); }
.nav-drawer a{
  font-family:var(--sans);
  font-size:15px;
  font-weight:500;
  letter-spacing:0.04em;
  color:var(--cream);
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,0.07);
  transition:color .2s var(--ease);
}
.nav-drawer a:hover{ color:var(--gold); }
.nav-drawer__cta{
  margin-top:18px;
  padding:16px 22px !important;
  background:var(--gold);
  color:var(--ink) !important;
  border-radius:999px;
  text-align:center;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  font-size:13px;
  border:none !important;
}
.nav-drawer__cta:hover{ color:var(--ink) !important; background:#e0c578; }
.nav-drawer__contact{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,0.1);
  display:flex;
  flex-direction:column;
  gap:2px;
}
.nav-drawer__contact a{
  font-family:var(--serif);
  font-size:14px;
  letter-spacing:0.02em;
  color:rgba(242,239,232,0.78);
  border-bottom:none;
  padding:8px 0;
}
.nav-drawer__contact a:hover{ color:var(--gold); }

/* Backdrop */
.nav-backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.5);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  z-index:47;
  opacity:0;
  pointer-events:none;
  transition:opacity .35s var(--ease);
}
.nav-backdrop.is-open{ opacity:1; pointer-events:auto; }

/* Show hamburger on tablet/mobile */
@media (max-width:980px){
  .nav__toggle{ display:flex; }
}

/* On small mobiles, hide the header Reserve button (drawer has its own) to save space */
@media (max-width:520px){
  .header__inner > .header__actions > .btn{ display:none; }
}

/* ---------- Mobile CTA/contact overflow fixes ---------- */
@media (max-width:560px){
  /* Allow large headline to wrap and not overflow */
  .section__title{ font-size:clamp(28px, 8.5vw, 44px); }
  .cta__copy{ max-width:100%; }

  /* Reserve Now button: relax letter-spacing & wrap if needed */
  .btn--large{
    padding:16px 22px;
    font-size:13px;
    letter-spacing:0.1em;
    width:100%;
    text-align:center;
    justify-content:center;
    align-self:stretch;
    white-space:normal;
    line-height:1.2;
  }
  .cta__buttons{ width:100%; }
  .cta__assure{ font-size:11px; }

  /* Contact rows: tighten so email + numbers don't get cropped */
  .contact-row{ gap:12px; padding:12px 8px; margin:0 -8px; }
  .contact-row__icon{ width:38px; height:38px; }
  .contact-row__icon svg{ width:18px; height:18px; }
  .contact-row__value{ font-size:15px; }
  .contact-row__label{ font-size:10px; letter-spacing:0.14em; }
  .contact-card{ padding:24px 18px; }
  .contact-card__head{ font-size:10.5px; letter-spacing:0.18em; }

  /* Allow long email to wrap to a second line instead of being clipped */
  .contact-row[href^="mailto"] .contact-row__value{
    white-space:normal;
    word-break:break-all;
    line-height:1.25;
    font-size:14px;
  }
}

/* Footer 24/7 contact column long email — same wrap fix */
.footer a[href^="mailto"]{
  word-break:break-word;
}

/* Hero CTA buttons fit on narrow screens */
@media (max-width:520px){
  .cta__buttons,
  .hero__cta-row,
  .hero .btn,
  .hero a.btn{ max-width:100%; }
  /* Hero CTA pills: shrink slightly */
  .hero .btn{ font-size:12.5px; letter-spacing:0.12em; }
}

/* Eyebrow strip can crowd at 375px ("A GLOBAL LUXURY RIDE BRAND...") — let it wrap */
.hero__eyebrow{ white-space:normal; }

