/* ============================================================
   GOODALL AVIATION — additional page styles
   New pages: Aircraft, Safety & Vetting, How It Works,
   Corporate, Case Studies. Uses the core palette + tokens
   from style.css. Kept in a separate file so the original
   stylesheet is never modified.
   ============================================================ */

/* section header block on interior pages */
.page-head .eyebrow{ margin-bottom:1rem; }
.page-head .lede{ max-width:56ch; }

/* media split (text + image) */
.media-split{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(36px,6vw,80px);
  align-items:center;
}
.media-split.rev .m-txt{ order:2; }
.media-split .m-img{ border:1px solid var(--line); background:var(--paper-2); }
.media-split .m-img img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.media-split.tall .m-img img{ aspect-ratio:4/5; }
@media (max-width:860px){
  .media-split{ grid-template-columns:1fr; gap:30px; }
  .media-split.rev .m-txt{ order:0; }
}

/* fleet cards with imagery */
.fleet{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(26px,3vw,38px); }
.fleet-card{ border:1px solid var(--line); background:#fff; display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:border-color .25s ease, transform .25s ease; }
.fleet-card:hover{ border-color:var(--brass); transform:translateY(-3px); }
.fleet-card .ph{ position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--paper-2); border-bottom:1px solid var(--line); }
.fleet-card .ph img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.fleet-card:hover .ph img{ transform:scale(1.04); }
.fleet-card .tag{
  position:absolute; top:14px; left:14px;
  background:rgba(13,22,32,.78); color:#fff;
  font-family:var(--sans); font-size:.6rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  padding:6px 12px; backdrop-filter:blur(3px);
}
.fleet-card .body{ padding:26px 26px 30px; flex:1; display:flex; flex-direction:column; }
.fleet-card h3{ font-size:1.5rem; margin-bottom:.35em; }
.fleet-card .spec{ display:flex; gap:26px; margin:2px 0 16px; }
.fleet-card .spec span{ font-family:var(--sans); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.fleet-card .spec b{ display:block; font-weight:500; font-size:1rem; color:var(--ink); letter-spacing:0; text-transform:none; margin-top:3px; }
.fleet-card p{ font-size:.92rem; line-height:1.7; color:var(--body); margin:0; }
@media (max-width:960px){ .fleet{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .fleet{ grid-template-columns:1fr; } }

/* numbered steps */
.steps{ counter-reset:step; max-width:900px; }
.step{ display:grid; grid-template-columns:64px 1fr; gap:clamp(20px,3vw,34px); padding:32px 0; border-top:1px solid var(--line); align-items:start; }
.step:last-child{ border-bottom:1px solid var(--line); }
.step .n{ counter-increment:step; font-family:var(--serif); font-size:2.4rem; color:var(--brass); line-height:1; }
.step .n::before{ content:"0" counter(step); }
.step h3{ font-size:1.4rem; margin-bottom:.3em; }
.step p{ font-size:1rem; margin:0; }
.step .when{ display:block; margin-top:.7em; font-family:var(--sans); font-size:.68rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
@media (max-width:640px){ .step{ grid-template-columns:1fr; gap:8px; } }

/* case-study cards */
.cases{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(28px,3vw,40px); }
.case{ border:1px solid var(--line); background:#fff; padding:clamp(30px,3vw,44px); }
.case .cat{ font-family:var(--sans); font-size:.66rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--brass-text); }
.case h3{ font-size:1.6rem; margin:.5em 0 .4em; }
.case p{ font-size:.98rem; line-height:1.72; color:var(--body); }
.case .result{ margin-top:20px; padding-top:18px; border-top:1px solid var(--line); font-size:.92rem; color:var(--ink); }
.case .result b{ color:var(--brass-text); font-weight:500; }
@media (max-width:760px){ .cases{ grid-template-columns:1fr; } }

/* dark feature band with image */
.feature-dark{ background:var(--ink); color:rgba(255,255,255,.72); }
.feature-dark h2{ color:#fff; font-weight:300; }
.feature-dark .eyebrow{ color:rgba(255,255,255,.55); }
.feature-dark .m-img{ border-color:rgba(255,255,255,.14); background:#101c28; }
.feature-dark .list-clean li{ border-color:rgba(255,255,255,.14); color:rgba(255,255,255,.78); }
.feature-dark .list-clean li:first-child{ border-top-color:rgba(255,255,255,.14); }
.feature-dark .list-clean strong{ color:#fff; }

/* compact interior hero (no bg image) */
.hero-slim{ background:var(--ink); color:#fff; padding:clamp(84px,11vw,150px) 0 clamp(56px,7vw,92px); position:relative; }
.hero-slim .eyebrow{ color:rgba(255,255,255,.6); }
.hero-slim h1{ color:#fff; font-weight:300; max-width:20ch; }
.hero-slim .lede{ color:rgba(255,255,255,.74); margin-top:1.6rem; }

/* wide image strip */
.strip{ width:100%; border-top:1px solid var(--line); }
.strip img{ width:100%; height:clamp(260px,38vw,480px); object-fit:cover; display:block; }

/* trimmed nav — a touch tighter than default so the added pages sit comfortably */
.main-nav{ gap:26px; }
.main-nav a{ white-space:nowrap; }
@media (max-width:1180px){ .main-nav{ gap:18px; } }

/* small brass line-icons replacing the four-element numbers (homepage) */
.cell .ico{ display:block; color:var(--brass); margin-bottom:16px; }
.cell .ico svg{ width:32px; height:32px; }

/* step icons on How It Works (replace the 01/02 numbers) */
.step .ico{ color:var(--brass); display:flex; align-items:flex-start; }
.step .ico svg{ width:38px; height:38px; }

/* animated brass underline on the top menu — slides in on hover (desktop) */
@media (min-width:721px){
  .main-nav a{ position:relative; }
  .main-nav a:hover,
  .main-nav a.active{ border-bottom-color:transparent; }
  .main-nav a::after{
    content:""; position:absolute; left:0; bottom:-1px;
    height:1px; width:0; background:var(--brass);
    transition:width .3s ease;
  }
  .main-nav a:hover::after,
  .main-nav a.active::after{ width:100%; }
}

/* back-to-top button — appears once you scroll down */
.to-top{
  position:fixed; left:24px; bottom:24px; z-index:80;
  width:46px; height:46px; display:flex; align-items:center; justify-content:center;
  background:var(--ink); color:#fff; border:1px solid var(--ink);
  cursor:pointer; opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .3s ease, transform .3s ease, background .25s ease, color .25s ease, border-color .25s ease;
}
.to-top.show{ opacity:1; visibility:visible; transform:translateY(0); }
.to-top:hover{ background:#fff; color:var(--brass); border-color:var(--brass); }
.to-top svg{ width:20px; height:20px; }
@media (max-width:720px){ .to-top{ left:16px; bottom:16px; width:42px; height:42px; } }

/* office contacts on the home page and the contact page */
.office .office-person{ margin:-.1em 0 .9em; font-family:var(--sans); font-size:.72rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ink); }
.office .office-link{ display:inline-block; margin-top:1.1em; padding-bottom:4px; font-family:var(--sans); font-size:.66rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--brass-text); text-decoration:none; border-bottom:1px solid var(--line); transition:border-color .25s ease; }
.office .office-link:hover{ border-bottom-color:var(--brass); }
.contact-aside .aside-person{ margin:0 0 .3em; font-family:var(--serif); font-size:1.35rem; line-height:1.2; color:var(--ink); }
.form-for{ margin:0 0 1.4rem; padding:12px 16px; border-left:2px solid var(--brass); background:var(--paper-2); font-size:.92rem; color:var(--ink); }

/* photographs on the How It Works steps, replacing the line icons */
.step.has-photo{ grid-template-columns:minmax(0,280px) minmax(0,1fr); align-items:center; }
.step .step-photo{ margin:0; border:1px solid var(--line); background:var(--paper-2); overflow:hidden; }
.step .step-photo img{ display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
@media (max-width:640px){ .step.has-photo{ grid-template-columns:1fr; gap:18px; } }

/* photographs on the home page four-elements cards, replacing the line icons */
.grid-4 .cell.has-photo{ padding:0; display:flex; flex-direction:column; overflow:hidden; }
.cell .cell-photo{ margin:0; aspect-ratio:4/3; overflow:hidden; background:var(--paper-2); }
.cell .cell-photo img{ display:block; width:100%; height:100%; object-fit:cover; }
.cell .cell-body{ padding:26px 30px 38px; }

/* home page newsroom strip (cards written by news/home_news.py) */
#newsroom .news-grid{ padding-bottom:clamp(24px,3vw,36px); }
.newsroom-more{ margin:0; }
.newsroom-more a{
  font-family:var(--sans); font-size:.66rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--brass-text); text-decoration:none;
  border-bottom:1px solid var(--line); padding-bottom:4px;
  transition:border-color .25s ease;
}
.newsroom-more a:hover{ border-bottom-color:var(--brass); }
