/*
Theme Name: Hello Elementor Child — CS Vertical
Theme URI: https://csvertical.com
Description: Child theme for the CS Vertical Flight Solutions site. Carries the global design tokens and shared component CSS. All layout/content is built with Elementor Pro.
Author: BetaBoxTS
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-child
*/

/* =====================================================================
   CS VERTICAL COLOR SYSTEM — rules and purpose
   These tokens mirror the Elementor Global Colors (Site Settings).
   Rule of use:
   - Brand Blue      #0473AA  primary actions, links, eyebrow labels, icons
   - Blue Deep       #045F8C  hover state of Brand Blue, text links
   - Navy            #2C3E50  headings on light, feature panels, stats band bg
   - Navy Deep       #1F2D3B  hero + page-hero backgrounds, map band bg
   - Sky             #2FA4DB  accents ON DARK backgrounds only (eyebrows, focus ring, stat box top border)
   - Ink             #1A1C27  utility bar, footer, data-plate backgrounds (darkest surface)
   - Body            #3D4A56  body text on light
   - Muted           #5F6E7B  secondary text, captions, meta on light
   - Line            #D6DEE5  borders and dividers on light
   - Wash            #EEF3F7  alternate light section background, aside panels
   - Sky Wash        #E4F1F9  pills / subtle highlights on light
   - On Dark         #D8E2EA  body text on navy/ink surfaces
   - On Dark Muted   #9DB0C0  secondary text on navy/ink surfaces
   Never use Sky as text on light backgrounds (contrast). Buttons are
   always Brand Blue -> Blue Deep on hover, white text.
   ===================================================================== */
:root{
  --csv-blue:#0473AA; --csv-blue-deep:#045F8C; --csv-navy:#2C3E50; --csv-navy-deep:#1F2D3B;
  --csv-sky:#2FA4DB; --csv-ink:#1A1C27; --csv-body:#3D4A56; --csv-muted:#5F6E7B;
  --csv-line:#D6DEE5; --csv-wash:#EEF3F7; --csv-sky-wash:#E4F1F9;
  --csv-on-dark:#D8E2EA; --csv-on-dark-muted:#9DB0C0; --csv-plate-line:#33404C; --csv-plate-cell:#232935;
}

body{ -webkit-font-smoothing:antialiased; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible{ outline:3px solid var(--csv-sky); outline-offset:3px; }

/* ---- interactive cards (apply class csv-card in Elementor > Advanced > CSS Classes) ---- */
.csv-card{ transition:border-color .15s ease, transform .15s ease; }
.csv-card:hover{ border-color:var(--csv-blue) !important; transform:translateY(-2px); }
.csv-card-flat{ transition:border-color .15s ease; }
.csv-card-flat:hover{ border-color:var(--csv-blue) !important; }

/* ---- credentials rail: hairline separators between cells ---- */
.csv-rail > .e-con{ border-right:1px solid var(--csv-line); }
.csv-rail > .e-con:last-child{ border-right:0; }
@media (max-width:767px){ .csv-rail > .e-con{ border-right:0; border-bottom:1px solid var(--csv-line); } .csv-rail > .e-con:last-child{ border-bottom:0; } }

/* ---- workflow arrows between .csv-flow steps ---- */
.csv-flow > .e-con{ position:relative; }
.csv-flow > .e-con:not(:last-child)::after{
  content:""; position:absolute; top:50%; right:-48px; width:48px; height:28px; transform:translateY(-50%);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 28'%3E%3Cpath d='M2 14h42' stroke='%230473AA' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M36 4l12 10-12 10' fill='none' stroke='%230473AA' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
@media (max-width:900px){
  .csv-flow > .e-con:not(:last-child)::after{ top:auto; right:auto; bottom:-42px; left:22px; width:44px; height:28px; transform:rotate(90deg); }
}

/* ---- WPForms: match the mockup form design (apply csv-form on the widget container) ---- */
.csv-form .wpforms-container .wpforms-field-label{ font-weight:600; font-size:14.5px; color:var(--csv-navy); margin-bottom:6px; }
.csv-form .wpforms-container .wpforms-field-label .wpforms-required-label{ color:var(--csv-blue-deep); }
.csv-form .wpforms-container input[type=text],
.csv-form .wpforms-container input[type=email],
.csv-form .wpforms-container input[type=tel],
.csv-form .wpforms-container select,
.csv-form .wpforms-container textarea{
  width:100%; font:inherit; font-size:16px; padding:12px 14px; border:1px solid #9DB0C0; border-radius:4px; background:#fff; color:var(--csv-ink); max-width:none;
}
.csv-form .wpforms-container input:focus,
.csv-form .wpforms-container select:focus,
.csv-form .wpforms-container textarea:focus{ outline:3px solid var(--csv-sky); outline-offset:1px; border-color:var(--csv-blue); }
.csv-form .wpforms-container .wpforms-field{ padding:8px 0; }
.csv-form .wpforms-container .wpforms-field-description{ font-size:13.5px; color:var(--csv-muted); margin-top:6px; }
.csv-form .wpforms-container button[type=submit]{
  display:inline-flex; align-items:center; gap:10px; font-weight:600; font-size:15.5px; padding:14px 22px;
  border-radius:4px; border:2px solid var(--csv-blue); background:var(--csv-blue); color:#fff; cursor:pointer; line-height:1; font-family:inherit;
}
.csv-form .wpforms-container button[type=submit]:hover{ background:var(--csv-blue-deep); border-color:var(--csv-blue-deep); }
.csv-form .wpforms-confirmation-container-full{ background:var(--csv-sky-wash); border:1px solid var(--csv-blue); border-radius:4px; color:var(--csv-navy); }

/* ---- text links inside Elementor text editors ---- */
.csv-prose a{ color:var(--csv-blue-deep); }
.csv-prose-dark a{ color:#fff; }

/* ---- footer link lists ---- */
.csv-footer-menu a:hover{ color:var(--csv-sky) !important; }

/* ---- job row cards keep title + pill on one row ---- */
.csv-job:hover{ border-color:var(--csv-blue) !important; }
/* ---- header/footer refinements (appended by setup-05) ---- */
.csv-logo img{ height:48px; width:auto; }
.csv-logo-w img{ height:64px; width:auto; }
.csv-util-links a:hover{ color:#fff; }
.csv-footer-legal a{ color:#E7EDF2; text-decoration:none; }
.csv-footer-legal a:hover{ color:var(--csv-sky); }
.csv-footer-menu .elementor-nav-menu--main .elementor-item{ padding-left:0; }

/* flow number circle */
.csv-flow-num .elementor-heading-title{
  display:flex; width:40px; height:40px; align-items:center; justify-content:center;
  background:var(--csv-blue); color:#fff; border-radius:50%; font-weight:700; font-size:18px;
}

/* stat box top accent */
.csv-stat-box{ border-top:4px solid var(--csv-sky) !important; }

/* map band: card overlays map on wide screens */
.csv-mapband{ position:relative; }
.csv-mapband .elementor-widget-google_maps{ width:100%; }
.csv-mapband .elementor-custom-embed iframe{ height:460px !important; }
.csv-mapband .csv-mapcard{
  position:absolute; right:max(28px, calc((100% - 1180px)/2 + 28px)); top:50%;
  transform:translateY(-50%); width:320px; z-index:2;
}
@media (max-width:767px){
  .csv-mapband .csv-mapcard{ position:static; transform:none; width:auto; margin:20px; }
  .csv-mapband .elementor-custom-embed iframe{ height:320px !important; }
}
/* ---- home page helpers (appended by setup-06) ---- */
.csv-hero{ position:relative; }
.csv-hero .csv-hero-base{ position:absolute; right:28px; bottom:22px; margin:0; }
.csv-span2{ grid-column:1 / -1; }
.csv-figcap{ position:relative; }
.csv-figcap .widget-image-caption{
  position:absolute; left:0; bottom:0; margin:0; background:var(--csv-navy); color:#fff;
  font-size:12px; letter-spacing:.08em; text-transform:uppercase; padding:8px 12px;
  border-radius:0 4px 0 6px; text-align:left;
}
/* ---- pages-connect helpers (appended by pages-connect) ---- */
.csv-flow-num .elementor-heading-title{width:40px;height:40px;border-radius:50%;background:#0473AA;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;line-height:1;}
.csv-flow > div{position:relative;}
.csv-flow > div:not(:last-child)::after{content:"";position:absolute;top:50%;right:-56px;width:56px;height:28px;transform:translateY(-50%);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 28'%3E%3Cpath d='M2 14h42' stroke='%230473AA' stroke-width='3' stroke-linecap='round'/%3E%3Cpath d='M36 4l12 10-12 10' fill='none' stroke='%230473AA' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;}
@media (max-width:900px){.csv-flow > div:not(:last-child)::after{display:none}}
.csv-cap-photo .widget-image-caption{font-size:12px;letter-spacing:.04em;color:#5F6E7B;margin-top:8px;text-transform:none;}
/* ---- capabilities pages helpers (appended by pages-caps) ---- */
.csv-figcap{ position:relative; }
.csv-figcap .widget-image-caption{
  position:absolute; left:0; bottom:0; margin:0; background:var(--csv-navy); color:#fff;
  font-size:12px; letter-spacing:.08em; text-transform:uppercase; padding:8px 12px;
  border-radius:0 4px 0 6px; text-align:left;
}
.csv-cap-photo{ margin-bottom:0; }
/* ---- interior pages (appended by pages-company) ---- */
.csv-qs-tile{ background:#FFFFFF; border:1px solid #D6DEE5; border-top:4px solid #0473AA; }
.csv-cs-list ul{ list-style:none; margin:0; padding:0; }
.csv-cs-list ul li{ position:relative; padding-left:18px; margin:8px 0; }
.csv-cs-list ul li::before{ content:""; position:absolute; left:0; top:8px; width:6px; height:6px; background:#0473AA; border-radius:1px; }
/* ---- people pages helpers (appended by pages-people) ---- */
.csv-span2{ grid-column:1 / -1; }
.csv-vt{ width:100%; border-collapse:collapse; border:1px solid #D6DEE5; border-radius:6px; overflow:hidden; }
.csv-vt th,.csv-vt td{ text-align:left; padding:14px 18px; border-bottom:1px solid #D6DEE5; font-size:15.5px; }
.csv-vt thead th{ background:#EEF3F7; font-family:"Poppins",system-ui,-apple-system,"Segoe UI",sans-serif; font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:#5F6E7B; font-weight:500; }
.csv-vt tbody th{ color:#2C3E50; font-weight:600; white-space:nowrap; }
.csv-vt tbody tr:last-child th,.csv-vt tbody tr:last-child td{ border-bottom:0; }