/* IMPORTANT: COLOR AUTHORITY = css/zoey-theme.css.
   Do not define/replace the Zoey brand palette in this file. Use --zoey-* tokens. */
:root{
  --z-bg:#0b0d10;--z-bg-soft:#101318;--z-panel:#15191e;--z-panel-2:#1b2026;
  --z-panel-3:#222831;--z-border:rgba(255,255,255,.09);--z-border-gold:rgba(240,207,112,.28);
  --z-text:#f6f3ea;--z-muted:#9fa6af;--z-gold:#f0cf70;--z-gold-2:#d9b455;
  --z-success:#89dca9;--z-danger:#ff8f8f;--z-radius:18px;--z-radius-sm:12px;
  --z-shadow:0 18px 45px rgba(0,0,0,.18);--z-max:1440px;
}
html{scroll-behavior:smooth}
body{
  background:radial-gradient(circle at 85% 8%,rgba(240,207,112,.07),transparent 26rem),
  linear-gradient(180deg,#0b0d10 0%,#0d1014 100%);
  color:var(--z-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-rendering:optimizeLegibility;
}
img{max-width:100%}
a{transition:color .16s ease,opacity .16s ease,transform .16s ease}
main,.site-main,.page-shell{
  width:100%;
  max-width:none;
  margin:0;
}
.container{
  width:min(1440px,calc(100% - 64px));
  margin-inline:auto;
}
header,.site-header,.topbar,.navbar{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.site-header,header.site-header{position:sticky;top:0;z-index:50;background:rgba(11,13,16,.84);border-bottom:1px solid var(--z-border)}
.site-header .inner,.site-header .container,header .nav-wrap{min-height:70px}
nav a,.nav-link{color:#d7dbe0;font-weight:700}
nav a:hover,.nav-link:hover{color:#F6F3EA}
.hero,.page-hero,section.hero{
  border:1px solid var(--z-border);border-radius:26px;
  background:linear-gradient(135deg,rgba(240,207,112,.08),transparent 45%),var(--z-panel);
  box-shadow:var(--z-shadow);
}
.hero h1,.page-hero h1,h1{letter-spacing:-.04em}
h2,h3{letter-spacing:-.025em}
p,.muted,.fine-print,small{color:var(--z-muted)}
.card,.panel,.feature-card,.info-card,.pricing-card,.trailer-card,.transport-card,.booking-card,.auth-card,.form-card,.contact-card,.faq-item{
  background:linear-gradient(180deg,var(--z-panel-2),var(--z-panel));
  border:1px solid var(--z-border);border-radius:var(--z-radius);box-shadow:0 12px 30px rgba(0,0,0,.12)
}
.card:hover,.feature-card:hover,.trailer-card:hover{border-color:var(--z-border-gold)}
button,.button,.btn,.primary-button,.secondary-button,input[type="submit"]{
  min-height:44px;border-radius:12px;font-weight:800;
  transition:transform .15s ease,box-shadow .15s ease,filter .15s ease,border-color .15s ease
}
button:hover,.button:hover,.btn:hover,.primary-button:hover,.secondary-button:hover,input[type="submit"]:hover{transform:translateY(-1px)}
.primary-button,.btn-primary,.button.primary,button.primary,input[type="submit"]{
  color:#15120a;background:linear-gradient(135deg,var(--z-gold),var(--z-gold-2));
  border:1px solid transparent;box-shadow:0 8px 18px rgba(209,168,68,.16)
}
.secondary-button,.btn-secondary,.button.secondary,button.secondary{
  color:var(--z-text);background:var(--z-panel-2);border:1px solid var(--z-border)
}
input,select,textarea{
  min-height:46px;border-radius:12px;color:var(--z-text);background:#0e1115;
  border:1px solid var(--z-border);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease
}
textarea{min-height:110px}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:rgba(240,207,112,.58);box-shadow:0 0 0 3px rgba(240,207,112,.08);background:#101419
}
label{font-weight:700;color:#e8e9ea}
table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--z-border);border-radius:14px;background:var(--z-panel)}
th{color:#F6F3EA;background:var(--z-panel-2)}
th,td{padding:12px 14px;border-bottom:1px solid var(--z-border)}
tr:last-child td{border-bottom:0}
.badge,.status,.pill,.chip{border-radius:999px;padding:5px 9px;font-weight:800;border:1px solid var(--z-border);background:var(--z-panel-2)}
.notice,.alert,.message,.portal-message{border-radius:12px}
details{border:1px solid var(--z-border);border-radius:14px;background:var(--z-panel)}
summary{cursor:pointer;font-weight:800}
footer,.site-footer{margin-top:54px;border-top:1px solid var(--z-border);background:#0a0c0f}
.booking-action-flow{border-color:var(--z-border-gold)!important;background:linear-gradient(180deg,var(--z-panel-2),var(--z-panel))!important}
.sms-consent-block{background:#11151a!important;border-color:var(--z-border-gold)!important}
.sms-consent-label span,.sms-consent-note{color:var(--z-text)!important}
.sms-consent-links a{color:var(--z-gold)!important}
.booking-primary-action{
  background:linear-gradient(135deg,var(--z-gold),var(--z-gold-2))!important;
  color:#15120a!important;border-radius:14px!important
}
.auth-shell,.login-shell,.reset-shell{min-height:calc(100vh - 70px);display:grid;place-items:center;padding:36px 16px}
.auth-card,.login-card{width:min(480px,100%);padding:28px;border-radius:22px}
.faq-item{overflow:hidden}.faq-item summary{padding:16px 18px}
/* Tablet: keep the desktop composition, only tighten gutters. */
@media(max-width:1000px){
  .container{
    width:min(100% - 36px,1440px);
  }

  .hero-grid,
  .booking-page-grid,
  .two-column,
  .contact-grid,
  .about-grid,
  .clean-partnership-grid,
  .partnership-growth-grid{
    gap:28px;
  }
}

/* Actual mobile breakpoint. */
@media(max-width:640px){
  .container{
    width:min(100% - 22px,1440px);
  }

  .hero,.page-hero{
    border-radius:18px;
  }

  .grid,
  .cards-grid,
  .feature-grid,
  .pricing-grid,
  .premium-fleet-grid,
  .standard-grid,
  .company-details-grid,
  .partnership-paths,
  .booking-page-grid,
  .two-column,
  .contact-grid,
  .about-grid,
  .clean-partnership-grid,
  .partnership-growth-grid{
    grid-template-columns:1fr!important;
  }

  body{
    font-size:15px;
  }

  button,.button,.btn,input[type="submit"]{
    width:100%;
  }

  .hero,.page-hero,.card,.panel{
    border-radius:16px;
  }
}

/* V3.9.6.6 — Desktop-first compatibility overrides
   Legacy v3.2/v3.3 CSS switches to mobile at 900px. The public site now keeps
   its desktop/tablet composition until 640px. */
@media (min-width:641px){
  body:not(.portal-body) .site-header{
    min-height:84px;
    height:auto;
    padding:0 clamp(24px,4vw,72px);
  }

  body:not(.portal-body) .menu-button{
    display:none!important;
  }

  body:not(.portal-body) .main-nav{
    position:static!important;
    inset:auto!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:clamp(14px,1.8vw,28px)!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
  }

  body:not(.portal-body) .main-nav a{
    width:auto!important;
  }

  body:not(.portal-body) .hero-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr)!important;
    gap:clamp(32px,4vw,72px)!important;
  }

  body:not(.portal-body) .booking-page-grid{
    display:grid!important;
    grid-template-columns:minmax(300px,.72fr) minmax(520px,1.28fr)!important;
    gap:clamp(28px,3vw,50px)!important;
  }

  body:not(.portal-body) .two-column{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  body:not(.portal-body) .premium-fleet-grid,
  body:not(.portal-body) .standard-grid,
  body:not(.portal-body) .company-details-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  body:not(.portal-body) .partnership-paths{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  body:not(.portal-body) .clean-partnership-grid,
  body:not(.portal-body) .partnership-growth-grid{
    grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr)!important;
  }

  body:not(.portal-body) .hero-actions,
  body:not(.portal-body) .action-row{
    display:flex!important;
  }

  body:not(.portal-body) .hero-actions .button,
  body:not(.portal-body) .action-row .button,
  body:not(.portal-body) button,
  body:not(.portal-body) .button,
  body:not(.portal-body) .btn{
    width:auto;
  }
}

/* Large desktop / ultrawide scaling */
@media (min-width:1280px){
  .container{
    width:min(1440px,calc(100% - 96px));
  }

  .section,
  .inner-section{
    padding-block:clamp(76px,6vw,110px);
  }

  .content-card{
    padding:clamp(34px,3vw,52px);
  }
}

@media (min-width:1600px){
  .container{
    width:min(1480px,calc(100% - 120px));
  }

  .site-header{
    padding-inline:max(4vw,64px);
  }
}
