/* ==========================================================================
   EXECUTIVE PR V2 — luxury-v2.css
   Luxury decorations, interactive widgets, conversion systems.
   ========================================================================== */

/* ---- Ornamental corner frame (page) ---- */
.lux-frame{position:fixed;inset:14px;pointer-events:none;z-index:80;border:1px solid var(--hairline);
  border-radius:4px;mix-blend-mode:normal}
.lux-corner{position:fixed;width:42px;height:42px;z-index:81;pointer-events:none;color:var(--color-accent);opacity:.7}
.lux-corner svg{width:100%;height:100%}
.lux-corner.tl{top:14px;left:14px}
.lux-corner.tr{top:14px;right:14px;transform:scaleX(-1)}
.lux-corner.bl{bottom:14px;left:14px;transform:scaleY(-1)}
.lux-corner.br{bottom:14px;right:14px;transform:scale(-1)}
@media (max-width:860px){.lux-frame,.lux-corner{display:none}}

/* ---- Animated section divider (filigree) ---- */
.filigree{display:flex;align-items:center;justify-content:center;gap:1rem;margin-block:clamp(1.5rem,3vw,2.5rem);color:var(--color-accent)}
.filigree .line{height:1px;width:min(28vw,180px);background:linear-gradient(90deg,transparent,currentColor)}
.filigree .line.r{background:linear-gradient(90deg,currentColor,transparent)}
.filigree .dot{width:7px;height:7px;border:1px solid currentColor;transform:rotate(45deg)}

/* ---- Sticky CTA rail (desktop) ---- */
.cta-rail{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:85;display:flex;
  flex-direction:column;gap:.7rem}
.cta-rail a{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;
  background:var(--card-bg);border:1px solid var(--card-border);color:var(--color-accent);
  box-shadow:var(--card-shadow);transition:transform .25s,background .25s,color .25s;position:relative}
.cta-rail a:hover{transform:scale(1.08);background:var(--color-accent);color:#1a1404}
.cta-rail a svg{width:20px;height:20px}
.cta-rail a .tip{position:absolute;right:60px;white-space:nowrap;background:var(--color-heading);
  color:var(--color-bg);font-family:var(--font-eyebrow);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
  padding:.4rem .7rem;border-radius:4px;opacity:0;pointer-events:none;transition:opacity .2s}
.cta-rail a:hover .tip{opacity:1}
@media (max-width:860px){.cta-rail{display:none}}

/* ---- Mobile bottom CTA bar ---- */
.cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:88;display:none;
  background:var(--mobile-menu-bg);border-top:1px solid var(--header-border);
  padding:.55rem;gap:.45rem;box-shadow:0 -10px 30px rgba(0,0,0,.4)}
.cta-bar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  font-family:var(--font-eyebrow);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--color-text);padding:.4rem 0;border-radius:6px}
.cta-bar a.primary{background:var(--btn-primary-bg);color:var(--btn-primary-text)}
.cta-bar a svg{width:18px;height:18px}
@media (max-width:860px){.cta-bar{display:flex}body{padding-bottom:64px}}

/* ---- LA status widget (weather/time) ---- */
.la-status{display:inline-flex;align-items:center;gap:1.4rem;flex-wrap:wrap;
  border:1px solid var(--hairline);border-radius:100px;padding:.7rem 1.5rem;background:var(--surface-alt)}
.la-status .seg{display:flex;flex-direction:column;line-height:1.2}
.la-status .seg .k{font-family:var(--font-eyebrow);font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--color-text-dim)}
.la-status .seg .v{font-family:var(--font-display);font-size:1.15rem;color:var(--color-heading)}
.la-status .note{font-family:var(--font-eyebrow);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent)}

/* ---- Services directory ---- */
.svc-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:1.6rem}
.svc-search{flex:1;min-width:240px;display:flex;align-items:center;gap:.6rem;border:1px solid var(--hairline);
  border-radius:100px;padding:.7rem 1.2rem;background:var(--surface-alt)}
.svc-search input{flex:1;background:transparent;border:0;color:var(--color-heading);font-family:var(--font-body);font-size:.95rem}
.svc-search input:focus{outline:none}
.svc-search svg{width:18px;height:18px;color:var(--color-accent)}
.svc-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.6rem}
.svc-tab{font-family:var(--font-eyebrow);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.5rem 1rem;border:1px solid var(--hairline);border-radius:100px;background:transparent;
  color:var(--color-text);cursor:pointer;transition:.25s}
.svc-tab:hover{border-color:var(--hairline-strong);color:var(--color-heading)}
.svc-tab.active{background:var(--color-accent);color:#1a1404;border-color:var(--color-accent)}
.svc-count{font-family:var(--font-eyebrow);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-dim)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.svc-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;padding:1.3rem;
  display:flex;flex-direction:column;gap:.6rem;transition:transform .3s,border-color .3s}
.svc-card:hover{transform:translateY(-4px);border-color:var(--hairline-strong)}
.svc-card .cat{font-family:var(--font-eyebrow);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--color-accent)}
.svc-card h3{font-size:1.18rem;margin:0}
.svc-card p{font-size:.88rem;margin:0;color:var(--color-text)}
.svc-card .svc-cta{margin-top:auto;font-family:var(--font-eyebrow);font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--color-accent);display:inline-flex;align-items:center;gap:.4rem}
.svc-empty{padding:3rem;text-align:center;color:var(--color-text-dim);grid-column:1/-1}
.svc-more{display:block;margin:2rem auto 0}
@media (max-width:1024px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.svc-grid{grid-template-columns:1fr}}

/* ---- Gallery ---- */
.gallery-filters{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:2rem}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
.gallery-item{position:relative;overflow:hidden;border-radius:6px;aspect-ratio:1;border:1px solid var(--card-border)}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.gallery-item:hover img{transform:scale(1.08)}
.gallery-item .cap{position:absolute;inset:auto 0 0 0;padding:.8rem;font-family:var(--font-eyebrow);
  font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;
  background:linear-gradient(0deg,rgba(0,0,0,.75),transparent);opacity:0;transition:opacity .3s}
.gallery-item:hover .cap{opacity:1}
.gallery-item.hide{display:none}
@media (max-width:860px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}

/* ---- Countdown ---- */
.countdown{display:flex;gap:1.2rem;justify-content:center;flex-wrap:wrap}
.cd-unit{text-align:center;min-width:78px}
.cd-unit .num{font-family:var(--font-display);font-size:clamp(2.4rem,5vw,3.6rem);color:var(--color-accent);line-height:1;
  display:block;border:1px solid var(--hairline);border-radius:6px;padding:.6rem .4rem;background:var(--surface-alt)}
.cd-unit .lbl{font-family:var(--font-eyebrow);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--color-text-dim);margin-top:.5rem;display:block}

/* ---- FAQ accordion ---- */
.faq{border-top:1px solid var(--hairline)}
.faq-item{border-bottom:1px solid var(--hairline)}
.faq-q{width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:1.2rem 0;
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  font-family:var(--font-display);font-size:1.18rem;color:var(--color-heading)}
.faq-q .ic{flex:0 0 auto;width:22px;height:22px;position:relative}
.faq-q .ic::before,.faq-q .ic::after{content:"";position:absolute;background:var(--color-accent);transition:transform .3s}
.faq-q .ic::before{top:10px;left:0;width:22px;height:1.5px}
.faq-q .ic::after{left:10px;top:0;width:1.5px;height:22px}
.faq-q[aria-expanded="true"] .ic::after{transform:scaleY(0)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-a p{padding-bottom:1.2rem;margin:0;color:var(--color-text);max-width:70ch}

/* ---- Chatbot ---- */
.chat-launch{position:fixed;right:18px;bottom:18px;z-index:140;display:flex;align-items:center;gap:.6rem;
  background:var(--btn-primary-bg);color:var(--btn-primary-text);border:0;border-radius:100px;
  padding:.8rem 1.3rem;font-family:var(--font-eyebrow);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  cursor:pointer;box-shadow:0 14px 36px rgba(0,0,0,.4);font-weight:600}
.chat-launch svg{width:18px;height:18px}
@media (max-width:860px){.chat-launch{bottom:74px}}
.chat-panel{position:fixed;right:18px;bottom:18px;z-index:150;width:min(94vw,380px);max-height:min(78vh,620px);
  display:none;flex-direction:column;background:var(--card-bg);border:1px solid var(--card-border);
  border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.5);overflow:hidden}
.chat-panel.open{display:flex}
@media (max-width:860px){.chat-panel{bottom:74px}}
.chat-head{display:flex;align-items:center;gap:.7rem;padding:1rem 1.2rem;border-bottom:1px solid var(--hairline);
  background:var(--surface-alt)}
.chat-head .av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--color-accent);
  color:var(--color-accent);font-family:var(--font-display);font-size:1.1rem}
.chat-head .t{font-family:var(--font-display);font-size:1.1rem;color:var(--color-heading);line-height:1.1}
.chat-head .s{font-family:var(--font-eyebrow);font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent)}
.chat-head .close{margin-left:auto;background:none;border:0;color:var(--color-text);cursor:pointer;font-size:1.4rem;line-height:1}
.chat-log{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.7rem}
.bubble{max-width:85%;padding:.7rem .95rem;border-radius:14px;font-size:.9rem;line-height:1.5}
.bubble.bot{align-self:flex-start;background:var(--surface-alt);color:var(--color-text);border-bottom-left-radius:4px}
.bubble.user{align-self:flex-end;background:var(--color-accent);color:#1a1404;border-bottom-right-radius:4px}
.chat-opts{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1rem .6rem}
.chat-opt{font-family:var(--font-eyebrow);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.45rem .8rem;border:1px solid var(--hairline);border-radius:100px;background:transparent;
  color:var(--color-text);cursor:pointer;transition:.2s}
.chat-opt:hover{background:var(--color-accent);color:#1a1404;border-color:var(--color-accent)}
.chat-input{display:flex;gap:.5rem;padding:.8rem;border-top:1px solid var(--hairline)}
.chat-input input{flex:1;background:var(--surface-alt);border:1px solid var(--hairline);border-radius:100px;
  padding:.6rem 1rem;color:var(--color-heading);font-family:var(--font-body);font-size:.9rem}
.chat-input input:focus{outline:none;border-color:var(--color-accent)}
.chat-input button{background:var(--color-accent);color:#1a1404;border:0;border-radius:50%;width:40px;height:40px;cursor:pointer}

/* ---- Audio player ---- */
.audio-player{position:fixed;left:18px;bottom:18px;z-index:130;display:flex;align-items:center;gap:.7rem;
  background:var(--card-bg);border:1px solid var(--card-border);border-radius:100px;padding:.5rem .7rem;
  box-shadow:var(--card-shadow);transition:transform .3s}
.audio-player.min{padding:.5rem}
.audio-player.min .ap-meta,.audio-player.min .ap-vol{display:none}
@media (max-width:860px){.audio-player{bottom:74px;left:10px}}
.ap-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--hairline);background:transparent;
  color:var(--color-accent);cursor:pointer;display:grid;place-items:center}
.ap-btn svg{width:16px;height:16px}
.ap-meta{display:flex;flex-direction:column;line-height:1.1;max-width:140px}
.ap-meta .t{font-family:var(--font-display);font-size:.95rem;color:var(--color-heading)}
.ap-meta .s{font-family:var(--font-eyebrow);font-size:.52rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent)}
.ap-vol{width:70px;accent-color:var(--color-accent)}

/* ---- Local area chips ---- */
.area-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
.area-grid a{border:1px solid var(--hairline);border-radius:6px;padding:.9rem 1rem;text-align:center;
  font-family:var(--font-eyebrow);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text);transition:.25s}
.area-grid a:hover{background:var(--surface-alt);color:var(--color-heading);border-color:var(--hairline-strong)}
@media (max-width:860px){.area-grid{grid-template-columns:repeat(2,1fr)}}

/* ---- Fleet rows ---- */
.fleet-card .card-media{aspect-ratio:16/10}
.fleet-meta{font-family:var(--font-eyebrow);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent)}

/* reduced motion */
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms !important;transition-duration:.12s !important}}
