/* Coastal Connections — premium polish layer
   Additive only: same palette (navy / coastal blue / white), same content, same layout.
   Remove this file (and cc-polish.js) to restore the previous look. */

:root {
  --cc-navy: #14213a;
  --cc-navy-deep: #0d1626;
  --cc-ink: #1b2434;
  --cc-blue: #9fd0e2;
  --cc-white: #ffffff;
  --cc-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --cc-shadow-soft: 0 2px 6px rgba(13, 22, 38, 0.06), 0 12px 32px rgba(13, 22, 38, 0.10);
  --cc-shadow-lift: 0 6px 14px rgba(13, 22, 38, 0.10), 0 22px 48px rgba(13, 22, 38, 0.16);
}

/* ---------- Typography discipline ---------- */
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

h1, h2, h3, h4, h5, h6 { color: var(--cc-ink); }

.hero_new_welcome_sec_txt h2,
.approved_sec_txt h2,
.heding_cnt h2 {
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.25;
}

/* Hero slide titles: calm the display type, give it air */
.head_box h1 {
  letter-spacing: 0.02em;
  text-shadow: 0 2px 24px rgba(13, 22, 38, 0.55);
}
.head_box h2 {
  text-shadow: 0 1px 16px rgba(13, 22, 38, 0.5);
}

/* ---------- Buttons: one physical model, brand navy ---------- */
.btn.primary,
.btn.secondary,
.tnp-submit,
input[type="submit"].wpcf7-submit {
  background: var(--cc-navy) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 4px !important;
  letter-spacing: 0.04em;
  box-shadow: 0 1px 2px rgba(13, 22, 38, 0.25), 0 8px 20px rgba(13, 22, 38, 0.22);
  transition: transform 0.35s var(--cc-ease), box-shadow 0.35s var(--cc-ease), background 0.35s var(--cc-ease);
  -webkit-tap-highlight-color: transparent;
}
@media (hover: hover) {
  .btn.primary:hover,
  .btn.secondary:hover,
  .tnp-submit:hover,
  input[type="submit"].wpcf7-submit:hover {
    background: var(--cc-navy-deep) !important;
    transform: translateY(-2px);
    box-shadow: var(--cc-shadow-lift);
  }
}
.btn.primary:active,
.btn.secondary:active,
.tnp-submit:active,
input[type="submit"].wpcf7-submit:active {
  transform: translateY(0) scale(0.985);
  box-shadow: 0 1px 2px rgba(13, 22, 38, 0.3);
  transition-duration: 0.06s;
}
.btn::before, .btn::after { display: none !important; } /* kill theme's busy hover pseudo layers */

/* ---------- Header / nav ---------- */
.header-section {
  transition: box-shadow 0.4s var(--cc-ease), background 0.4s var(--cc-ease);
}
.header-section.sticky {
  background: rgba(255, 255, 255, 0.92) !important;
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
  backdrop-filter: saturate(1.4) blur(14px);
  box-shadow: 0 1px 0 rgba(13, 22, 38, 0.06), 0 10px 30px rgba(13, 22, 38, 0.08);
}
.header-menu .main-menu li a {
  position: relative;
  letter-spacing: 0.02em;
  transition: color 0.3s var(--cc-ease);
}
.header-menu .main-menu li a::after {
  content: "";
  position: absolute;
  left: 50%; right: 50%; bottom: -4px;
  height: 2px;
  background: var(--cc-navy);
  transition: left 0.35s var(--cc-ease), right 0.35s var(--cc-ease);
}
@media (hover: hover) {
  .header-menu .main-menu li a:hover::after { left: 0; right: 0; }
}
.header-menu .main-menu li.current-menu-item > a::after { left: 0; right: 0; }
.header-menu .main-menu li.current-menu-item > a { font-weight: 700; }

/* ---------- Hero swiper ---------- */
.swip_common_arrow {
  background: rgba(255, 255, 255, 0.14) !important;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  transition: background 0.35s var(--cc-ease), transform 0.35s var(--cc-ease);
}
.swip_common_arrow::after { color: #fff !important; }
@media (hover: hover) {
  .swip_common_arrow:hover { background: rgba(255, 255, 255, 0.3) !important; transform: scale(1.06); }
}
.hero_new .swiper-pagination-bullet { background: #fff; opacity: 0.5; transition: opacity 0.3s, transform 0.3s; }
.hero_new .swiper-pagination-bullet-active { opacity: 1; transform: scale(1.25); }

/* Slow, quiet drift on the active slide (kenburns) */
@media (prefers-reduced-motion: no-preference) {
  .hero_new .swiper-slide .hero { transform: scale(1); }
  .hero_new .swiper-slide-active .hero {
    animation: cc-drift 16s var(--cc-ease) forwards;
  }
  @keyframes cc-drift {
    from { transform: scale(1); }
    to   { transform: scale(1.05); }
  }
}

/* ---------- Cards / content boxes ---------- */
.content_box,
.cont_box,
.card {
  box-shadow: var(--cc-shadow-soft);
  transition: transform 0.45s var(--cc-ease), box-shadow 0.45s var(--cc-ease);
  will-change: transform;
}
@media (hover: hover) {
  .content_box:hover,
  .card:hover {
    transform: translateY(-6px);
    box-shadow: var(--cc-shadow-lift);
  }
}
.card { border: none; border-radius: 10px; overflow: hidden; }
.card .img_box img { transition: transform 0.6s var(--cc-ease); }
@media (hover: hover) {
  .card:hover .img_box img { transform: scale(1.04); }
}

/* Stat / data boxes */
.data_box { transition: transform 0.45s var(--cc-ease), box-shadow 0.45s var(--cc-ease); }
@media (hover: hover) {
  .data_box:hover { transform: translateY(-4px); box-shadow: var(--cc-shadow-soft); }
}

/* ---------- Sections: rhythm + reveal ---------- */
/* Reveal FROM visible: elements stay visible without JS; cc-polish.js only
   adds .cc-pre to below-fold targets right before they enter, then .cc-in. */
.cc-pre { transform: translateY(16px); opacity: 0.001; }
.cc-in  {
  transform: translateY(0);
  opacity: 1;
  transition: transform 0.6s var(--cc-ease), opacity 0.6s var(--cc-ease);
}
@media (prefers-reduced-motion: reduce) {
  .cc-pre, .cc-in { transform: none; opacity: 1; transition: none; }
}

/* ---------- Forms ---------- */
.wpcf7 input:not([type="submit"]), .wpcf7 textarea, .wpcf7 select, .tnp-email {
  border: 1px solid rgba(20, 33, 58, 0.22) !important;
  border-radius: 4px !important;
  transition: border-color 0.3s var(--cc-ease), box-shadow 0.3s var(--cc-ease);
}
.wpcf7 input:not([type="submit"]):focus, .wpcf7 textarea:focus, .tnp-email:focus {
  outline: none;
  border-color: var(--cc-navy) !important;
  box-shadow: 0 0 0 3px rgba(20, 33, 58, 0.12);
}

/* ---------- Footer: readable, composed ---------- */
.footer_new {
  position: relative;
}
.footer_new::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(13, 22, 38, 0.72), rgba(13, 22, 38, 0.86));
  pointer-events: none;
}
.footer_new .links, .footer_new .copyright { position: relative; z-index: 1; }
.footer_new .footer_box h6 {
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 13px;
  color: var(--cc-blue);
}
.footer_new a { transition: color 0.3s var(--cc-ease), opacity 0.3s var(--cc-ease); }
@media (hover: hover) {
  .footer_new a:hover { opacity: 0.85; }
}
.footer_new .copyright { border-top: 1px solid rgba(255, 255, 255, 0.14); }

/* ---------- Back to top: quiet, brand ---------- */
.progress-wrap { box-shadow: 0 6px 18px rgba(13, 22, 38, 0.25); }
.progress-wrap svg.progress-circle path { stroke: var(--cc-navy); }

/* ---------- Small refinements ---------- */
::selection { background: var(--cc-navy); color: #fff; }
img { image-rendering: auto; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Footer refinements v1.0.1 */
.footer.footer_new .logo_box img {
  filter: none !important; /* LOGO.png is already white; theme's invert made it black */
  opacity: 0.3; /* watermark — keep links readable */
}
.footer_new .f_col { padding-right: 20px; }
.footer_new .footer_box h6 { margin-bottom: 10px; }

/* ===================== v1.1 — elite pass, all pages ===================== */

/* Splash loader text: elegant, on-brand (was cyan glow) */
.loader-text h6 {
  text-shadow: 0 2px 30px rgba(0, 0, 0, 0.6) !important;
  text-transform: uppercase;
  letter-spacing: 0.28em !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  opacity: 0;
  animation: cc-fadeup 1.6s var(--cc-ease) 0.6s forwards;
}
@keyframes cc-fadeup {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .loader-text h6 { opacity: 1; animation: none; }
}

/* Page banners (all inner pages) */
.page-banner-section .page-banner h1.title {
  letter-spacing: 0.03em;
  text-shadow: 0 2px 28px rgba(13, 22, 38, 0.6);
}

/* Spec tables (fleet page + any content tables): from Word-gray to elite */
.table_sec table,
.aircraft table,
.aircraft_spec table {
  width: 100%;
  border-collapse: separate !important;
  border-spacing: 0;
  border: 1px solid rgba(20, 33, 58, 0.12) !important;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--cc-shadow-soft);
  background: #fff;
}
.table_sec table td, .table_sec table th,
.aircraft table td, .aircraft table th,
.aircraft_spec table td, .aircraft_spec table th {
  border: none !important;
  border-bottom: 1px solid rgba(20, 33, 58, 0.08) !important;
  padding: 12px 16px !important;
  font-variant-numeric: tabular-nums;
}
.table_sec table tr:last-child td, .aircraft table tr:last-child td, .aircraft_spec table tr:last-child td {
  border-bottom: none !important;
}
.table_sec table td:first-child,
.aircraft table td:first-child,
.aircraft_spec table td:first-child,
.table_sec table th,
.aircraft table th {
  background: var(--cc-navy) !important;
  color: #fff !important;
  font-weight: 600;
  letter-spacing: 0.04em;
  font-size: 0.85em;
  text-transform: uppercase;
  width: 34%;
}
.table_sec table tr:nth-child(even) td:not(:first-child),
.aircraft table tr:nth-child(even) td:not(:first-child),
.aircraft_spec table tr:nth-child(even) td:not(:first-child) {
  background: rgba(159, 208, 226, 0.10);
}

/* Fleet gallery */
.gallery-image { border-radius: 12px; overflow: hidden; box-shadow: var(--cc-shadow-soft); }
.gallery-image img { transition: transform 0.6s var(--cc-ease); display: block; }
@media (hover: hover) {
  .gallery-image:hover img { transform: scale(1.04); }
}
.gal_txt h3, .gal_txt h4 { letter-spacing: 0.02em; }

/* Content imagery: quiet radius + depth, sky vibe untouched */
.ltr_img img,
.welcome_charter img,
.card_box img,
.service img,
.career_bdy img,
.faq_bdy img,
.map_img img {
  border-radius: 12px;
  box-shadow: var(--cc-shadow-soft);
}

/* Cards used across charters/management */
.card_nw, .card_box {
  border-radius: 12px;
  box-shadow: var(--cc-shadow-soft);
  transition: transform 0.45s var(--cc-ease), box-shadow 0.45s var(--cc-ease);
}
@media (hover: hover) {
  .card_nw:hover, .card_box:hover { transform: translateY(-6px); box-shadow: var(--cc-shadow-lift); }
}

/* Counters (management page) */
.conter_box h2, .conter_box h3, .conter_box .counter {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}
.conter_box { transition: transform 0.45s var(--cc-ease); }
@media (hover: hover) { .conter_box:hover { transform: translateY(-4px); } }

/* FAQ accordion: composed cards */
.accordion-item {
  background: #fff;
  border: 1px solid rgba(20, 33, 58, 0.10) !important;
  border-radius: 10px !important;
  margin-bottom: 14px;
  overflow: hidden;
  box-shadow: var(--cc-shadow-soft);
  transition: box-shadow 0.35s var(--cc-ease);
}
@media (hover: hover) { .accordion-item:hover { box-shadow: var(--cc-shadow-lift); } }
.accordion-item button,
.accordion-item .accordion-header {
  letter-spacing: 0.01em;
  font-weight: 600;
}
.accordion-content { line-height: 1.7; }

/* Empty legs list (when repopulated) */
.trip-date {
  background: var(--cc-navy);
  color: #fff;
  border-radius: 999px;
  padding: 4px 14px;
  letter-spacing: 0.06em;
  font-variant-numeric: tabular-nums;
}

/* Newsletter row */
.tnp-email { padding: 10px 14px !important; }
.tnp-submit { letter-spacing: 0.06em; }

/* Section headings on inner pages */
.welcome_charter h2, .service h2, .career_bdy h2, .faq_bdy h2, .aircraft h2 {
  letter-spacing: 0.01em;
  line-height: 1.25;
}

/* FAQ accordion v1.1.1: replace electric blue with brand navy */
.faq_bdy .accordion-item,
.accordion-item {
  background: var(--cc-navy) !important;
}
.faq_bdy .accordion-item .accordion-header,
.accordion-item .accordion-header {
  background: var(--cc-navy) !important;
  color: #fff;
  transition: background 0.3s var(--cc-ease);
}
@media (hover: hover) {
  .accordion-item .accordion-header:hover { background: var(--cc-navy-deep) !important; }
}
.accordion-item .accordion-content {
  background: #fff;
  color: var(--cc-ink);
}

/* Splash handoff v1.2: zoom-through fade instead of hard cut */
.video-bg {
  transition: opacity 1.25s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 1.25s cubic-bezier(0.22, 0.61, 0.36, 1) !important;
  will-change: opacity, transform;
  object-fit: cover;
}
.video-bg.hidden {
  opacity: 0;
  transform: translate(-50%, -50%) scale(1.12) !important; /* fly through the frame */
}
.loader-container { transition: opacity 0.9s cubic-bezier(0.22, 0.61, 0.36, 1) !important; }
@media (prefers-reduced-motion: reduce) {
  .video-bg, .video-bg.hidden { transition: opacity 0.4s ease !important; transform: translate(-50%, -50%) !important; }
}

/* Empty states + footer heading scale v1.3 */
.cc-empty-state {
  background: #fff;
  border: 1px solid rgba(20, 33, 58, 0.10);
  border-radius: 12px;
  box-shadow: var(--cc-shadow-soft);
  padding: 44px 36px;
  text-align: center;
  max-width: 640px;
  margin: 8px auto 24px;
}
.cc-empty-state h4 { margin-bottom: 10px; letter-spacing: 0.01em; }
.cc-empty-state p { color: #5a6a7d; margin: 0; line-height: 1.7; }
.cc-empty-state a { color: var(--cc-navy); font-weight: 600; }

.footer.footer_new .footer_box h6 {
  font-size: 14px !important;
  letter-spacing: 0.12em;
}

/* ===================== v1.4 — organization & minimalist rhythm ===================== */

/* One consistent vertical rhythm across content sections */
.hero_new_welcome_sec, .approved_sec, .course_sec,
.welcome_charter, .ltr_img, .contct_btm,
.service, .counter_sec, .faq_bdy, .career_bdy,
.blog, .table_sec, .aircraft, .contact {
  padding-top: clamp(52px, 7vw, 88px) !important;
  padding-bottom: clamp(52px, 7vw, 88px) !important;
}

/* Intro/heading blocks: centered, measured, breathing */
.hero_new_welcome_sec_txt,
.approved_sec_txt,
.heding_cnt {
  max-width: 900px;
  margin-left: auto !important;
  margin-right: auto !important;
}
.hero_new_welcome_sec_txt h2 { font-size: clamp(26px, 3.2vw, 40px); }
.hero_new_welcome_sec_txt p,
.welcome_charter p,
.service p,
.career_bdy p,
.faq_bdy p {
  line-height: 1.75;
}

/* Fleet page: keep the two spec columns aligned and evenly gapped */
.table_sec .row { align-items: flex-start; }
.table_sec h2 { text-align: center; margin: 26px 0 16px; font-size: clamp(22px, 2.4vw, 30px); }
.table_sec .col-md-6, .table_sec [class*="col-lg-6"] { margin-bottom: 28px; }

/* Home welcome heading: composed, not shouting */
.hero_new_welcome_sec_txt h2 { font-weight: 700; }

/* Quiet the decorative dashed outlines on wave clips */
[class*="clip_"]::before, [class*="clip_"]::after { opacity: 0.35; }

/* Blog cards: consistent height rhythm */
.blog .card { height: 100%; }
.blog .card-body { display: flex; flex-direction: column; gap: 8px; }

/* Contact page: form + details cards aligned */
.contact .cont_box, .contact .company-details { border-radius: 12px; }
.company-details { background: #fff; box-shadow: var(--cc-shadow-soft); }

/* Counters row breathing */
.counter_sec .conter_box { padding: 18px 10px; }

/* Card grid gaps: consistent */
.course_sec .row, .service .row { row-gap: 24px; }

/* Nav: never wrap a label mid-word; step down gently on laptops */
.header-menu .main-menu li a { white-space: nowrap; }
@media (max-width: 1440px) {
  .header-menu .main-menu li a { font-size: 14px; }
}

/* ===================== v1.5 — service cards + one button system ===================== */

/* Management page pillars (Crew / Maintenance / Hangar / Invoicing / Tailored) */
.conter_box.single-counter-02 {
  background: #fff;
  border: 1px solid rgba(20, 33, 58, 0.08);
  border-top: 3px solid var(--cc-navy);
  border-radius: 12px;
  box-shadow: var(--cc-shadow-soft);
  padding: 30px 26px !important;
  height: 100%;
  text-align: left;
}
.conter_box.single-counter-02 h4 {
  color: var(--cc-navy);
  font-size: 19px;
  letter-spacing: 0.02em;
  margin-bottom: 10px;
}
.conter_box.single-counter-02 p { color: #4c5b6e; line-height: 1.7; margin: 0; }
.counter_sec .row { row-gap: 24px; align-items: stretch; }

/* One button system, sitewide: primary = navy fill, secondary = navy outline */
.btn-outline-primary,
a.btn.secondary,
.header_top .btn {
  background: transparent !important;
  color: var(--cc-navy) !important;
  border: 1.5px solid var(--cc-navy) !important;
  border-radius: 4px !important;
  letter-spacing: 0.04em;
  transition: background 0.3s var(--cc-ease), color 0.3s var(--cc-ease),
              transform 0.35s var(--cc-ease), box-shadow 0.35s var(--cc-ease);
  -webkit-tap-highlight-color: transparent;
}
@media (hover: hover) {
  .btn-outline-primary:hover,
  a.btn.secondary:hover,
  .header_top .btn:hover {
    background: var(--cc-navy) !important;
    color: #fff !important;
    transform: translateY(-2px);
    box-shadow: var(--cc-shadow-soft);
  }
}
.btn-outline-primary:active, a.btn.secondary:active, .header_top .btn:active {
  transform: scale(0.985);
  transition-duration: 0.06s;
}
/* Hero slide buttons over imagery: glass secondary */
.hero_new .btn.secondary, .head_box .btn.secondary {
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.75) !important;
  background: rgba(255, 255, 255, 0.08) !important;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
@media (hover: hover) {
  .hero_new .btn.secondary:hover, .head_box .btn.secondary:hover {
    background: #fff !important;
    color: var(--cc-navy) !important;
  }
}

/* Contact page final touches */
.contact .cont_box { box-shadow: var(--cc-shadow-lift); }
.contact .cont_box .title { letter-spacing: 0.01em; margin-bottom: 14px; }
.company-details { padding: 34px 32px !important; }
.company-details .company-title { color: var(--cc-navy); letter-spacing: 0.01em; margin-bottom: 14px; }
.company-info li { padding: 7px 0; border-bottom: 1px solid rgba(20, 33, 58, 0.06); }
.company-info li:last-child { border-bottom: none; }
.contact-map-wrap iframe, .map_img img { border-radius: 12px; box-shadow: var(--cc-shadow-soft); }

/* ===================== v1.6 — clickability, seams, burger, quieter hero ===================== */

/* Decorative layers must never eat taps */
[class*="clip_"]::before, [class*="clip_"]::after { pointer-events: none; opacity: 0.12; }
.overlay { pointer-events: none !important; }

/* Back-to-top: tucked and small so it never sits on a button (esp. phones) */
.progress-wrap { right: 18px !important; bottom: 18px !important; transform: scale(0.85); }
@media (max-width: 768px) {
  .progress-wrap { right: 10px !important; bottom: 10px !important; transform: scale(0.7); }
}

/* Trip rows stay on top of any ambient layer; room for thumbs on phones */
.trip-card { position: relative; z-index: 2; }
@media (max-width: 768px) {
  .trip-card { padding-bottom: 14px; }
  .trip-action { margin-right: 44px; }
}

/* Soften the dark seam where light sections meet the footer */
.footer.footer_new::before {
  background: linear-gradient(180deg,
    rgba(13, 22, 38, 0.30) 0%,
    rgba(13, 22, 38, 0.76) 22%,
    rgba(13, 22, 38, 0.88) 100%) !important;
}

/* Burger: frosted chip — visible on photos AND on the white sticky bar */
.header-toggle button {
  background: rgba(255, 255, 255, 0.88) !important;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(20, 33, 58, 0.16) !important;
  border-radius: 8px;
  padding: 10px 11px !important;
}
.header-toggle button span { background: var(--cc-navy) !important; opacity: 1 !important; }

/* Hero: one message, one action — hide the script tagline on home slides */
.hero_new .head_box h2 { display: none; }
.hero_new .head_box h1 { font-size: clamp(30px, 4.6vw, 52px); margin-bottom: 28px; }

/* ===================== v1.7 — mobile hardening (Apple-standard) + 404 brand ===================== */

/* Nothing may overflow a phone screen */
html, body { overflow-x: clip; }
img, video { max-width: 100%; height: auto; }
iframe { max-width: 100%; }

@media (max-width: 768px) {
  /* Spec tables scroll inside themselves instead of breaking the page */
  .table_sec table, .aircraft table, .aircraft_spec table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table_sec table td:first-child,
  .aircraft table td:first-child,
  .aircraft_spec table td:first-child { min-width: 130px; }

  /* Hero: calm scale, safe padding, arrows out of the text's way */
  .hero_new .head_box h1 { font-size: 27px; padding: 0 40px; }
  .swip_common_arrow { transform: scale(0.72); }
  .head_box .btn { margin-top: 4px; }

  /* Section headings never touch screen edges */
  .hero_new_welcome_sec_txt, .approved_sec_txt, .heding_cnt { padding-left: 8px; padding-right: 8px; }
  .hero_new_welcome_sec_txt h2 { font-size: 23px; }

  /* Cards, forms, details: comfortable phone padding */
  .cont_box { padding: 22px 16px !important; }
  .company-details { padding: 24px 18px !important; }
  .conter_box.single-counter-02 { padding: 22px 18px !important; }
  .cc-empty-state { padding: 30px 20px; }

  /* Trip rows: stack cleanly, full-width tap targets */
  .trip-card { flex-direction: column !important; align-items: flex-start !important; }
  .trip-action { margin-right: 0; width: 100%; }
  .trip-action a { display: block; text-align: center; }

  /* Quote form iframe: taller to avoid inner double-scroll */
  .booking_frm iframe { height: 900px; }

  /* Footer: stacked, airy */
  .footer_new .f_col { padding-right: 0; margin-bottom: 18px; }
  .footer_new .copyright_box h6 { font-size: 13px; line-height: 1.6; }

  /* Gallery + content images breathe */
  .gallery-image { margin-bottom: 16px; }
}

/* 404 page: on-brand, cartoon retired */
.error-404 .rgt_sec img { display: none; }
.error-404 { padding: 90px 0; text-align: center; }
.error-404 .lft_sec { margin: 0 auto; float: none; width: 100%; max-width: 560px; text-align: center; }
.error-404 h1, .error-404 h2 { color: var(--cc-navy); letter-spacing: 0.02em; }
.error-404 .btn.primary { margin-top: 18px; }

/* ===================== v1.8 — THE mobile click/veil fix =====================
   Theme pulls .footer_new up -336px on small screens (wave tuck) with z-index:5,
   overlapping the last ~300px of content on every page: blocked taps + dark veil.
   Fix: the footer's empty tuck zone passes clicks through, and our gradient
   starts below it. */
@media (max-width: 991px) {
  .footer.footer_new { pointer-events: none; }
  .footer.footer_new .links,
  .footer.footer_new .copyright { pointer-events: auto; }
  .footer.footer_new::before { top: 330px !important; }
}

/* Splash on portrait phones: letterbox the full aircraft instead of cropping nose/tail */
@media (orientation: portrait), (max-width: 768px) {
  .video-bg {
    object-fit: contain !important;
    background: #000;
  }
}

/* Phone heroes: shorter boxes so landscape aircraft photos keep their width (less side-crop) */
@media (max-width: 768px) {
  .hero_new .head_box { padding-block: 175px 70px !important; }
  .section.page-banner-section.hero { min-height: 280px !important; }
  .hero .head_box { padding-top: 190px !important; padding-bottom: 55px !important; }
}

/* Phone heroes: kill forced heights so padding rules define a compact hero */
@media (max-width: 768px) {
  .hero_new .head_box, .hero .head_box { height: auto !important; min-height: 0 !important; }
  .hero_new .swiper-slide .hero, section.hero { min-height: 0 !important; }
}

/* Portrait phones: swap hero slides to portrait renditions (full aircraft, blur-extended sky) */
@media (max-width: 768px) and (orientation: portrait) {
  .hero_new .swiper-slide .head_box[style*="ban_nw_home"] {
    background-image: url("https://www.flycoastal.com/wp-content/uploads/2026/08/m-slide-sunrise.jpg") !important;
    background-size: cover;
    background-position: center;
  }
  .hero_new .swiper-slide .head_box[style*="takeoff-still"] {
    background-image: url("https://www.flycoastal.com/wp-content/uploads/2026/08/m-slide-takeoff.jpg") !important;
    background-size: cover;
    background-position: center;
  }
  /* slide 3 was a 1920x550 ultra-wide: portrait crop was cutting ~79% of the frame */
  .hero_new .swiper-slide .head_box[style*="hero_ban"] {
    background-image: url("https://www.flycoastal.com/wp-content/uploads/2026/08/m-slide-coastline.jpg") !important;
    background-size: cover;
    background-position: center;
  }
}

/* ===================== v2.4 — Aircraft Fleet page organization ===================== */
/* Each aircraft reads as its own chapter */
.aircraft h4 { display: none; } /* duplicate label above each block */
.aircraft h3, .gal_txt h3 {
  text-align: center;
  font-size: clamp(24px, 2.6vw, 32px);
  letter-spacing: 0.01em;
  margin: 10px auto 22px;
}
.aircraft .gal_txt h3::after,
.aircraft > .container > .row h3:first-of-type::after {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  background: var(--cc-navy);
  margin: 14px auto 0;
  border-radius: 2px;
}
/* Clear separation between aircraft spec chapters */
section.table_sec + section.table_sec,
section.table_sec {
  border-top: 1px solid rgba(20, 33, 58, 0.10);
}
section.table_sec:first-of-type { border-top: none; }
/* Gallery hero image per aircraft: framed, consistent */
.aircraft .gallery-image img, .gallery-image img {
  width: 100%;
  object-fit: cover;
  aspect-ratio: 16/9;
}
/* Sub-headings inside spec chapters */
.table_sec h3 { font-size: clamp(19px, 2vw, 24px); }
.aircraft p, .table_sec p { line-height: 1.75; }

/* ===================== v2.5 — Fleet chapters + spec card grid ===================== */
/* Each aircraft = full-width chapter instead of two cramped columns */
.aircraft > .container > .row > .col-md-6 {
  flex: 0 0 100%;
  max-width: 100%;
  margin-bottom: 26px;
  padding-top: 34px;
}
.aircraft > .container > .row > .col-md-6 + .col-md-6 {
  border-top: 1px solid rgba(20, 33, 58, 0.12);
}
.aircraft .gallery-image { max-width: 980px; margin: 0 auto; }
.aircraft .gal_txt {
  max-width: 860px;
  margin: 22px auto 6px;
  text-align: center;
}
.aircraft .gal_txt p { text-align: left; }

/* Spec tables become an aligned card grid */
.table_sec { border-top: none !important; padding-top: 10px !important; padding-bottom: 26px !important; }
.table_sec .aircraft_spec .container { padding: 0; }
.table_sec .aircraft_spec .row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  gap: 22px;
  align-items: start;
}
.table_sec .aircraft_spec .row > .col-md-12 { width: auto; max-width: none; padding: 0; }
.table_sec .aircraft_spec h3 {
  text-align: left;
  font-size: 18px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--cc-navy);
  margin: 0 0 10px;
}
.table_sec .aircraft_spec h3::after { display: none; }
.table_sec table { margin: 0; }

/* Single-column tables (e.g. avionics list): plain elegant rows, not navy label cells */
.table_sec table td:only-child,
.aircraft table td:only-child,
.aircraft_spec table td:only-child {
  background: #fff !important;
  color: var(--cc-ink) !important;
  text-transform: none;
  letter-spacing: 0.01em;
  font-weight: 500;
  font-size: 1em;
  width: auto;
}
.table_sec table tr:nth-child(even) td:only-child {
  background: rgba(159, 208, 226, 0.12) !important;
}

/* ===================== v2.6 — booking page + blog posts (portfolio pass) ===================== */
.booking_frm .cont_box {
  max-width: 880px;
  margin: 0 auto;
  border-radius: 14px;
  box-shadow: var(--cc-shadow-lift);
  padding: 34px 30px !important;
  background: #fff;
}
.booking_frm h2 { text-align: center; margin-bottom: 6px; }
.booking_frm iframe { border-radius: 10px; }

/* Single blog posts: readable measure and typographic care */
.single-post .container p, article p {
  max-width: 68ch;
  line-height: 1.8;
}
.single-post h1, .single-post h2 { letter-spacing: 0.01em; }
.single-post img { border-radius: 12px; box-shadow: var(--cc-shadow-soft); }

/* ===================== v2.7 — social icons: real vector logos, composed chips ===================== */
.social li a,
.header_top a:has(img) {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.10);
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #fff;
  transition: background 0.3s var(--cc-ease), color 0.3s var(--cc-ease), transform 0.3s var(--cc-ease);
}
@media (hover: hover) {
  .social li a:hover,
  .header_top a:has(img):hover {
    background: #fff;
    color: var(--cc-navy);
    transform: translateY(-2px);
  }
}
.social li a img,
.header_top a img { display: none !important; }

.social li a::before,
.header_top a:has(img)::before {
  content: "";
  width: 15px;
  height: 15px;
  background: currentColor;
  -webkit-mask: var(--icn) center / contain no-repeat;
  mask: var(--icn) center / contain no-repeat;
}
a:has(img[src*="facebook"]) { --icn: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg>'); }
a:has(img[src*="insta"]) { --icn: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324zm0 10.162a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881z"/></svg>'); }
a:has(img[src*="twitter"]) { --icn: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z"/></svg>'); }
a:has(img[src*="yt"]), a:has(img[src*="youtube"]) { --icn: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814z M9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>'); }
a:has(img[src*="google"]) { --icn: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z"/></svg>'); }

/* Positioning: header strip right-aligned with air; footer row spaced */
.header_top { padding: 8px 0; }
.header_top .social, .header_top ul { display: flex; gap: 10px; justify-content: flex-end; align-items: center; }
.footer_new ul.social { display: flex; gap: 10px; margin-top: 14px; }
@media (max-width: 768px) {
  .header_top .social, .header_top ul { justify-content: center; }
  .footer_new ul.social { justify-content: flex-start; }
}

/* v2.7.1 — chip geometry + mobile top strip */
.social li a, .header_top a:has(img) {
  flex: 0 0 34px;
  min-width: 34px;
  max-height: 34px;
  line-height: 0;
  padding: 0 !important;
}
.social li { line-height: 0; }
@media (max-width: 991px) {
  .header_top { display: none !important; }
}

/* ============ v3.0 — header CTA + sticky fixes + mobile action bar ============ */

/* Sticky header: logo was inverted to white on a white bar — keep it dark */
.header-section.sticky .header-logo a img { filter: none !important; }

/* Restored theme main_top (phone + Request A Quote), desktop only via theme wrapper */
.header-menu .main_top { margin-bottom: 4px; }
.header-menu .main_top li a { font-weight: 700; letter-spacing: 0.01em; font-size: 16px; }
.header-menu .main_top li a span img { width: 18px; height: 18px; object-fit: contain; vertical-align: -3px; }
.header-menu .main_top li a.btn.primary {
  font-size: 14px;
  padding: 9px 22px;
  letter-spacing: 0.04em;
}
/* Keep phone + CTA visible when the header goes sticky; recolor for white bar */
.header-section.sticky .main_top { display: flex !important; }
.header-section.sticky .main_top li a { color: #14213A; }
.header-section.sticky .main_top li a span img { filter: invert(0.85) sepia(0.2) saturate(4) hue-rotate(190deg) brightness(0.35); }

/* Washed-out safety statement: solid ink, readable over the sky photo */
.approved_sec_txt h2, .approved_sec_txt h3 {
  color: #14213A !important;
  text-shadow: 0 1px 18px rgba(255, 255, 255, 0.85);
}

/* Inner-page banner titles: stop cramming at the banner top on phones */
@media (max-width: 991px) {
  /* grid, not flex: a flex child won't shrink below max-content and overflowed to 490px */
  .page-banner-section { display: grid; align-content: center; }
  .page-banner-section > .container { width: 100%; min-width: 0; }
  .page-banner-section .page-banner-wrap { width: 100%; min-width: 0; padding-top: 56px; }
  .page-banner-section .page-banner h1.title { line-height: 1.15; }
}

/* Hero type: bigger, tighter, premium on phones */
@media (max-width: 991px) {
  .head_box h1 { font-size: clamp(34px, 8.5vw, 44px); line-height: 1.12; }
  .head_box h2 { font-size: clamp(16px, 4.4vw, 20px); }
}

/* Mobile action bar — Call + Request a Quote (no comp site has this) */
.cc-actionbar { display: none; }
@media (max-width: 991px) {
  .cc-actionbar {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    z-index: 99999;
    display: flex;
    gap: 10px;
    background: rgba(20, 33, 58, 0.97);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    box-shadow: 0 -8px 28px rgba(13, 22, 38, 0.30);
  }
  .cc-actionbar a {
    flex: 1;
    text-align: center;
    font-weight: 700;
    font-size: 15px;
    letter-spacing: 0.01em;
    padding: 12px 8px;
    border-radius: 10px;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }
  .cc-actionbar a:active { transform: scale(0.97); }
  .cc-ab-call { color: #ffffff; border: 1px solid rgba(255, 255, 255, 0.4); }
  .cc-ab-quote { background: #ffffff; color: #14213A !important; }
  body { padding-bottom: 72px; }
}

/* v3.0.1 — chips readable on light AND dark grounds */
.social li a, .header_top a:has(img) {
  background: rgba(20, 33, 58, 0.55) !important;
  border-color: rgba(255, 255, 255, 0.25);
}
.social li a:hover, .header_top a:has(img):hover {
  background: #14213A !important;
}

/* v3.0.2 — inner-page mobile header is white; the logo file (LOGO.png) is a
   LIGHT mark (white emblem + cyan wordmark, built for the dark home splash and
   the navy footer). filter:none therefore left it near-invisible on the white
   bar. Recolour it to brand navy so it reads on white. Rendered-and-picked
   against the real asset, not guessed. 2026-08-20 [[rms-is-not-a-substitute-for-looking]] */
@media (max-width: 991px) {
  body:not(.home) .header-section:not(.sticky) .header-logo img {
    filter: brightness(0) saturate(100%) invert(11%) sepia(34%) saturate(1800%) hue-rotate(190deg) brightness(95%) contrast(92%) !important;
  }
}

/* v3.6 2026-08-20 — DESKTOP hero-header legibility. Over bright-sky hero
   banners (Fleet, FAQ) the white logo + white nav wash out; a close crop of
   the FAQ hero showed the wordmark subtext barely readable. A soft shadow
   guarantees legibility on ANY hero and is invisible on the dark home splash
   and the dusk heroes. Desktop only (992+) — mobile inner header is the navy
   rule above; sticky bar is dark-on-white and needs none. The logo rule keeps
   the theme's white render (brightness(0) invert(1)) and only APPENDS the
   shadow, so it can't turn the mark back to its native colours. */
@media (min-width: 992px) {
  /* All desktop non-sticky headers. VERIFIED against the live site: the theme
     renders this logo WHITE (brightness(0) invert(1)) on every page including
     home — the coral seen in the portfolio poster is a capture-pipeline
     artifact, not the live state. So the wash on bright-sky heroes (Fleet,
     FAQ, and the bright home slide) hits every page. We restate the theme's
     white render and only APPEND the shadow — no colour change, just legibility
     on any hero; invisible on the dark/dusk slides. Sticky bar is dark-on-white
     and excluded; mobile inner header is the navy rule above. */
  .header-section:not(.sticky) .header-logo img {
    filter: brightness(0) invert(1) drop-shadow(0 2px 9px rgba(13, 22, 38, 0.5)) !important;
  }
  .header-section:not(.sticky) .main-menu li a,
  .header-section:not(.sticky) .main_top li a {
    text-shadow: 0 1px 10px rgba(13, 22, 38, 0.55);
  }
}

/* ============ v3.1 — splash: full-bleed, brand-true, cinematic handoff ============ */

/* No black ground anywhere behind the video */
.load_video_outer, .video-bg { background: #0d1626 !important; }
.video-bg { object-fit: cover !important; }

/* Cinematic vignette so the frame edges melt into the page instead of ending hard */
.load_video_outer::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 10000;
  pointer-events: none;
  background:
    radial-gradient(120% 85% at 50% 45%, rgba(13, 22, 38, 0) 42%, rgba(13, 22, 38, 0.55) 100%),
    linear-gradient(to bottom, rgba(13, 22, 38, 0.45) 0%, rgba(13, 22, 38, 0) 22%, rgba(13, 22, 38, 0) 68%, rgba(13, 22, 38, 0.7) 100%);
  transition: opacity 1.1s ease;
}
.video-bg.hidden ~ .overlay,
.load_video_outer:has(.video-bg.hidden)::after { opacity: 0; }

/* Loader line: brand-true, no electric-blue glow, properly placed on every screen */
.loader-text { margin-top: 0 !important; }
.loader-container {
  justify-content: flex-end !important;
  padding-bottom: clamp(64px, 14vh, 150px);
  gap: 0 !important;
}
.loader-text h6 {
  font-size: clamp(15px, 3.6vw, 21px) !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  text-shadow: 0 2px 26px rgba(13, 22, 38, 0.85) !important;
  opacity: 0;
  animation: ccLoaderIn 1.5s cubic-bezier(0.22, 1, 0.36, 1) 0.5s forwards;
}
/* Hairline under the loader line — the only ornament, and it draws itself */
.loader-text h6::after {
  content: "";
  display: block;
  width: 0;
  height: 1px;
  margin: 18px auto 0;
  background: rgba(255, 255, 255, 0.55);
  animation: ccRule 1.7s cubic-bezier(0.22, 1, 0.36, 1) 1.1s forwards;
}
@keyframes ccLoaderIn { to { opacity: 1; } }
@keyframes ccRule { to { width: 108px; } }

@media (prefers-reduced-motion: reduce) {
  .loader-text h6 { opacity: 1; animation: none; }
  .loader-text h6::after { width: 108px; animation: none; }
}

/* ============ v3.2 — mobile image discipline (nothing crops, nothing overflows) ============ */
@media (max-width: 991px) {
  /* Universal guard: no image may exceed its column */
  img { max-width: 100%; height: auto; }

  /* Bootstrap rows/containers can't push past the viewport */
  .container, .container-fluid, .row, [class^="col-"], [class*=" col-"] { min-width: 0; max-width: 100%; }

  /* Photos in fixed-ratio frames fill without distortion */
  .content_box .img_box img,
  .cont_box img,
  .sec3_image img,
  .company-details img { object-fit: cover; width: 100%; }
}

/* ============ v3.3 — fleet cards: modern frame, full column, honest crops ============ */
.aircraft .gallery-image {
  border-width: 8px !important;
  border-radius: 16px;
  box-shadow: 0 14px 38px rgba(13, 22, 38, 0.16) !important;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.45s ease;
}
.aircraft .gallery-image img { border-radius: 9px; }
@media (hover: hover) {
  .aircraft .gallery-image:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 54px rgba(13, 22, 38, 0.24) !important;
  }
}
/* Theme's inline 30px title is oversized on phones */
.aircraft .gal_txt h3 {
  font-size: clamp(20px, 4.6vw, 30px) !important;
  line-height: 1.24;
  margin-top: 14px;
}
@media (max-width: 991px) {
  .aircraft .gallery-image {
    border-width: 6px !important;
    border-radius: 14px;
    aspect-ratio: 16 / 10;
  }
  .aircraft .col-md-6 { margin-bottom: 30px !important; }
}

/* ============ v3.4 — UI/UX system: touch, focus, forms, rhythm, a11y ============ */

/* --- Keyboard accessibility: nothing was focus-visible before --- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid #14213A;
  outline-offset: 3px;
  border-radius: 4px;
}
.hero a:focus-visible,
.footer a:focus-visible,
.header-section a:focus-visible,
.page-banner-section a:focus-visible { outline-color: #ffffff; }

/* Skip link for keyboard + screen-reader users */
.cc-skip {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100000;
  background: #14213A;
  color: #fff;
  padding: 12px 20px;
  border-radius: 0 0 10px 0;
  font-weight: 700;
  text-decoration: none;
}
.cc-skip:focus { left: 0; }

/* --- Touch targets: WCAG asks 44px; theme links were ~20px --- */
@media (max-width: 991px) {
  .offcanvas-menu a,
  .footer .links a,
  .footer_new .links a,
  .accordion-button,
  .faq_sec .accordion-button {
    min-height: 44px;
    display: flex;
    align-items: center;
  }
  .social li a, .header_top a:has(img) { min-height: 38px; }
}

/* --- Forms: stop iOS zoom-on-focus (needs >=16px), give real focus feedback --- */
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  font-size: 16px;
  border-radius: 10px;
  transition: border-color 0.22s ease, box-shadow 0.22s ease, background-color 0.22s ease;
}
input:not([type="checkbox"]):not([type="radio"]):focus,
select:focus,
textarea:focus {
  border-color: #14213A !important;
  box-shadow: 0 0 0 3px rgba(20, 33, 58, 0.14);
  outline: none;
}
input::placeholder, textarea::placeholder { color: #8a93a3; opacity: 1; }
@media (max-width: 991px) {
  input:not([type="checkbox"]):not([type="radio"]), select, textarea { min-height: 46px; }
  button, .btn, input[type="submit"] { min-height: 46px; }
}

/* --- Reading measure: long paragraphs were running edge to edge --- */
.hero_new_welcome_sec_txt p,
.approved_sec_txt p,
.cont_box p,
.heding_cnt p {
  max-width: 68ch;
  margin-left: auto;
  margin-right: auto;
}

/* --- Vertical rhythm on phones: sections were inconsistent (140px vs 30px) --- */
@media (max-width: 991px) {
  .hero_new_welcome_sec { padding-block: 54px 40px !important; }
  .service_new_sec { padding-top: 60px !important; padding-bottom: 44px !important; }
  .approved_sec { padding-top: 44px !important; min-height: 0 !important; }
  .aircraft { padding-block: 48px !important; }
  .contct_btm, .faq_sec { padding-block: 48px !important; }
}

/* --- Motion honesty --- */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

/* --- Selection + tap feedback in brand --- */
::selection { background: rgba(20, 33, 58, 0.92); color: #fff; }
a, button, .btn { -webkit-tap-highlight-color: rgba(20, 33, 58, 0.12); }

/* ============ v3.5 — mobile hero composition ============ */
@media (max-width: 991px) {
  /* Arrows collided with the CTA; touch users swipe. Keep them for keyboard/desktop only. */
  .hero_new .swiper-button-next,
  .hero_new .swiper-button-prev { display: none !important; }

  .hero_new .ban_slogan { padding-inline: 22px; }
  .hero_new .ban_slogan h1 { text-wrap: balance; }
  .hero_new .ban_slogan .btn.secondary {
    margin-top: 18px;
    padding: 13px 30px;
  }
  /* Slide sits taller so the aircraft reads before the copy starts */
  .hero_new .head_box { padding-block: 190px 58px !important; }
}

/* v3.7 — action bar must not sit on top of the splash; it rises in after the handoff */
.cc-actionbar {
  transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.cc-actionbar.cc-hold {
  opacity: 0;
  transform: translateY(110%);
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .cc-actionbar { transition: opacity 0.2s ease; }
  .cc-actionbar.cc-hold { transform: none; }
}




/* v4.1 — stop guessing at splash timing. On the home page the bar is revealed by
   an explicit .cc-show class (first scroll, or once the splash is genuinely done).
   The page cannot scroll while the splash is up, so it can never overlap. */
@media (max-width: 991px) {
  body.home .cc-actionbar {
    animation: none !important;
    opacity: 0;
    transform: translateY(110%);
    pointer-events: none;
  }
  body.home .cc-actionbar.cc-show {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
}

/* ============ v4.2 — location landing pages (Stuart flagship, city pages to come) ============ */
.cc-location {
  padding-block: 68px 78px;
  background: #ffffff;
}
.cc-location .cc-lede {
  font-size: clamp(18px, 2.2vw, 21px);
  line-height: 1.6;
  color: #26324a;
  margin-bottom: 26px;
}
.cc-location h2 {
  font-size: clamp(24px, 3.2vw, 32px);
  line-height: 1.22;
  margin: 46px 0 14px;
  color: #14213A;
}
.cc-location h3 {
  font-size: clamp(17px, 2.1vw, 19px);
  margin: 26px 0 6px;
  color: #14213A;
}
.cc-location p { line-height: 1.72; margin-bottom: 16px; max-width: 68ch; }
.cc-location ul { margin: 0 0 20px; padding-left: 22px; max-width: 68ch; }
.cc-location li { line-height: 1.7; margin-bottom: 9px; }
.cc-location a { color: #14213A; text-decoration: underline; text-underline-offset: 3px; }
.cc-location a:hover { text-decoration-thickness: 2px; }

/* Airport list reads as a reference block, not prose */
.cc-location .cc-airports {
  list-style: none;
  padding: 0;
  display: grid;
  gap: 10px;
}
.cc-location .cc-airports li {
  background: #f4f7fb;
  border-left: 3px solid #14213A;
  padding: 12px 16px;
  border-radius: 0 10px 10px 0;
  margin: 0;
}

/* FAQ block */
.cc-location .cc-faq {
  background: #f4f7fb;
  border-radius: 16px;
  padding: 26px 28px 8px;
  margin-top: 18px;
}
.cc-location .cc-faq h3:first-child { margin-top: 0; }

/* Call-to-action rows */
.cc-location .cc-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 26px 0 8px;
}
.cc-location .cc-cta-row a { text-decoration: none; }
.cc-location .btn.primary {
  background: #14213A;
  color: #fff;
  padding: 13px 30px;
  border-radius: 10px;
  font-weight: 700;
  display: inline-block;
}
.cc-location .btn.ghost {
  border: 1.5px solid #14213A;
  color: #14213A;
  padding: 13px 30px;
  border-radius: 10px;
  font-weight: 700;
  display: inline-block;
}
.cc-location .btn.primary:hover { background: #1d2f52; }
.cc-location .btn.ghost:hover { background: #14213A; color: #fff; }

.cc-location .cc-closing {
  margin-top: 52px;
  padding-top: 34px;
  border-top: 1px solid #e3e9f2;
}
@media (max-width: 991px) {
  .cc-location { padding-block: 44px 54px; }
  .cc-location .cc-cta-row a { flex: 1 1 100%; text-align: center; }
  .cc-location .cc-faq { padding: 20px 18px 4px; }
}

/* v4.2.1 — the 68ch measure inside a col-lg-10 left the text hugging the left edge
   on wide screens. Narrow the column so the measure fills it and reads centred. */
.cc-location .col-lg-10 {
  max-width: 840px;
  margin-inline: auto;
}

/* ============ v4.3 (2026-08-23) — one measure, one edge ============
   v4.2.1 narrowed the column to 840px so the 68ch measure would fill it, but
   68ch is computed against the element's own font-size: at the theme's 14px
   body that is 552px, so paragraphs and lists stopped ~290px short of the
   headings, the FAQ card and the lede. Three different right edges in one
   column, measured on the live page. The column itself is now the measure,
   and body copy moves to 16px — the 14px inherited from the theme is small
   for long-form reading on a page whose whole job is to be read. */
.cc-location .col-lg-10 { max-width: 760px; }
.cc-location p,
.cc-location ul { max-width: none; }
.cc-location p:not(.cc-lede):not(.cc-cta-row),
.cc-location li { font-size: 16px; }

/* A CTA row followed by body copy (destination pages) needs the breathing room
   an <h2> would have supplied on the Stuart flagship. */
.cc-location .cc-cta-row + p { margin-top: 24px; }
