/* ============================================================
   pages.css: shared page components for the generated pages.
   Lifted from the inline <style> blocks of index.html, quote.html
   and about.html so a generated page looks like the live ones.
   Loaded after site.css. New components for the preview (the
   banner, the estimate cards, the compare table, the gate, the
   hub) use the same tokens.
   ============================================================ */

/* ---------- preview banner ---------- */
.preview-banner{background:var(--sand);color:var(--ink);height:36px;font-size:0.78rem;font-weight:500;}
.preview-banner .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;height:36px;}
.preview-banner .wrap > span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.preview-dismiss{flex:0 0 auto;}
.preview-banner a{color:var(--sky-deep);font-weight:600;}
.preview-dismiss{background:none;border:1px solid #DACFBE;border-radius:3px;font-family:'Inter',sans-serif;font-size:0.72rem;font-weight:600;padding:3px 9px;color:var(--dim);cursor:pointer;}
.preview-dismiss:hover{color:var(--ink);border-color:var(--sky-deep);}
.preview-banner[hidden]{display:none;}

/* ---------- page head (quote.html) ---------- */
.page-head{padding:72px 0 56px;}
.page-head h1{font-size:clamp(2rem,4.2vw,3rem);line-height:1.14;margin:16px 0 16px;max-width:22ch;color:var(--ink);}
.page-head .lede{color:var(--dim);max-width:56ch;font-size:1.02rem;}
.page-meta{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:0.8rem;letter-spacing:0.04em;text-transform:none;color:var(--sky-deep);margin:-6px 0 14px;}

/* ---------- section rhythm (index.html) ---------- */
section{padding:0 0 88px;}
.sec-head{max-width:640px;margin-bottom:48px;}
.sec-head h2{font-size:clamp(1.7rem,3vw,2.3rem);margin:14px 0 12px;color:var(--ink);}
.sec-head p{color:var(--dim);}
.sec-row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;}
.more-link{font-weight:600;font-size:0.88rem;color:var(--blue);text-decoration:none;border-bottom:1px solid transparent;}
.more-link:hover{border-bottom-color:var(--blue);color:var(--blue);}
.sub-h{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.2rem;color:var(--ink);margin:28px 0 14px;}
.r4x3{aspect-ratio:4/3;}
.r1x1{aspect-ratio:1/1;}
.r4x5{aspect-ratio:4/5;}
.r16x10{aspect-ratio:16/10;}
.prose{max-width:64ch;color:var(--dim);}
.prose p{margin-bottom:16px;font-size:1rem;}
.prose p:last-child{margin-bottom:0;}
.prose h2{font-size:clamp(1.4rem,2.6vw,1.9rem);color:var(--ink);margin:36px 0 12px;}
.prose h2:first-child{margin-top:0;}
.prose strong{color:var(--ink);}
.prose ul,.prose ol{margin:0 0 16px 22px;}
.prose li{margin-bottom:6px;}
.prose pre{background:var(--tint);border-radius:4px;padding:14px 16px;font-family:'JetBrains Mono',monospace;font-size:0.82rem;color:var(--ink);margin-bottom:16px;overflow-x:auto;}
.prose code{font-family:'JetBrains Mono',monospace;font-size:0.84em;color:var(--ink);}
.lede-prose p{font-size:1.06rem;}
.plain-list{list-style:none;display:flex;flex-direction:column;gap:8px;}
.plain-list.two-col{display:block;columns:2;column-gap:32px;}
.plain-list.two-col li{margin-bottom:8px;break-inside:avoid;}
.intro-sec .prose{margin-bottom:40px;}

/* ---------- lined card grids (index.html) ---------- */
.card-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.cg-3{grid-template-columns:1fr;}
@media(min-width:552px){
  .cg-3{grid-template-columns:repeat(2,1fr);}
  .cg-3 .cell:last-child{grid-column:1/-1;}
}
@media(min-width:800px){
  .cg-3{grid-template-columns:repeat(3,1fr);}
  .cg-3 .cell:last-child{grid-column:auto;}
}
.cg-2{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));}
.cell{background:var(--card);padding:34px 28px;}
.cell .kicker{font-family:'Inter',sans-serif;font-weight:600;font-size:0.78rem;letter-spacing:0.01em;color:var(--sky-deep);display:block;margin-bottom:14px;}
.cell h3{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.25rem;line-height:1.3;margin-bottom:10px;color:var(--ink);}
.cell p{color:var(--dim);font-size:0.93rem;}
.cell p + p{margin-top:8px;}
.cell p strong{color:var(--ink);}
a.cell-link{display:block;text-decoration:none;color:inherit;transition:background 0.15s ease;}
a.cell-link:hover{background:var(--tint);color:inherit;}
.cell-cta{color:var(--sky-deep);font-weight:600;font-size:0.88rem;margin-top:12px;}
.cell-note{font-family:'JetBrains Mono',monospace;font-size:0.72rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--dim);}
@media(min-width:552px){ .how .cell h3{min-height:2.6em;} }

/* ---------- trust strip (index.html) ---------- */
.trust{border-bottom:1px solid var(--line);background:var(--card);}
.trust-grid{display:grid;grid-template-columns:1fr;}
@media(min-width:560px){ .trust-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:900px){ .trust-grid{grid-template-columns:repeat(4,1fr);} }
@media(max-width:559px){ .trust{padding:8px 0;} .trust-item{padding:20px 0;} }
.trust-item{padding:30px 24px 30px 0;}
.trust-item .inner{border-left:2px solid var(--steel);padding-left:16px;}
.trust-item .kicker{font-family:'Inter',sans-serif;font-weight:600;font-size:0.78rem;letter-spacing:0.01em;color:var(--sky-deep);display:block;margin-bottom:6px;}
.trust-item p{color:var(--dim);font-size:0.88rem;line-height:1.5;}

/* ---------- quote layout and fields (quote.html) ---------- */
.quote-sec{padding:0 0 88px;}
.quote-grid{display:flex;flex-wrap:wrap;gap:36px;align-items:flex-start;}
.form-panel{
  flex:1.15;min-width:min(340px,100%);
  background:var(--card);border:1px solid var(--line);border-radius:6px;
  padding:42px;
  box-shadow:0 18px 50px rgba(14,27,46,0.10);
}
@media(max-width:899px){
  .quote-grid{flex-direction:column;align-items:stretch;gap:28px;}
  .form-panel,.recap-col,.gate-col,.legs-col{min-width:0;flex:none;}
  .recap-col{position:static;}
}
@media(max-width:640px){ .form-panel{padding:28px 20px;} }
.promise{
  display:inline-block;background:var(--tint);color:var(--blue);
  font-family:'Inter',sans-serif;font-weight:600;font-size:0.74rem;letter-spacing:0.01em;
  padding:7px 12px;border-radius:3px;margin-bottom:26px;
}
.seg{display:flex;gap:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:28px;}
.seg button,.seg a{
  flex:1;padding:12px 8px;
  font-family:'Inter',sans-serif;font-weight:600;font-size:0.85rem;
  background:var(--card);color:var(--dim);
  border:none;cursor:pointer;text-align:center;text-decoration:none;
  transition:background 0.15s ease,color 0.15s ease;
}
.seg button + button,.seg a + a{border-left:1px solid var(--line);}
.seg button[data-on="true"],.seg a[data-on="true"]{background:var(--sky);color:var(--ink);border-color:var(--sky);}
.city-switch{max-width:720px;}
.field label,.lab-heading{display:block;font-family:'Inter',sans-serif;font-weight:500;font-size:0.8rem;letter-spacing:0.01em;color:var(--dim);margin-bottom:8px;}
.field input,.field textarea,.field select{
  width:100%;
  background:#fff;
  border:1px solid var(--line);
  border-radius:3px;
  color:var(--ink);
  font-family:'Inter',sans-serif;font-size:0.93rem;
  padding:13px 14px;
}
.field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--dim) 50%),linear-gradient(135deg,var(--dim) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:36px;}
.field input[type="date"],.field input[type="time"]{padding:12px 14px;}
.field textarea{resize:vertical;}
.field{margin-bottom:20px;}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:0 20px;}
.form-note{color:var(--dim);font-size:0.82rem;margin-top:16px;}
.form-note + .form-note{margin-top:8px;}
.form-note a{color:var(--blue);}
.field input.invalid,.field textarea.invalid,.field select.invalid{border-color:#B3261E;background:#FFF8F7;}
.field-problem{color:#B3261E;font-size:0.8rem;margin-top:7px;line-height:1.45;}
.field-problem.soft{color:var(--dim);}
.form-sent{padding:10px 0 4px;}
.form-sent .sent-head{font-family:'Fraunces',serif;font-size:1.7rem;color:var(--ink);margin:14px 0 10px;}
.form-sent .sent-body{color:var(--dim);font-size:0.95rem;line-height:1.65;max-width:52ch;}
.form-sent a{color:var(--blue);font-weight:600;}
.ac-field{position:relative;}
@media(pointer:coarse){ .field input,.field textarea,.field select{font-size:16px;} }
.qw-lead-in{color:var(--dim);font-size:0.9rem;margin-bottom:18px;}
.link-btn{background:none;border:none;padding:0;color:var(--sky-deep);font-family:'Inter',sans-serif;font-weight:600;font-size:inherit;cursor:pointer;text-decoration:underline;}
.link-btn:hover{color:var(--ink);}

/* ---------- recap ticket (quote.html) ---------- */
.recap-col{flex:0.85;min-width:min(300px,100%);position:sticky;top:88px;}
.ticket{
  background:var(--card);
  border:1px solid var(--line-cool);
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 24px 60px rgba(28,42,61,0.10);
  color:var(--ink);
}
.ticket-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 18px;border-bottom:1px solid var(--line-cool);
  background:var(--tint);
}
.ticket-head .mono{color:var(--sky-deep);}
.ticket-head .trip-label{font-size:0.68rem;}
.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--sky-mid);margin-right:8px;animation:blink 1.6s infinite;}
.pulse-steel{background:var(--steel);}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.25}}
.ticket-row{
  display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:baseline;
  padding:15px 18px;border-bottom:1px solid var(--line-cool);
  font-family:'JetBrains Mono',monospace;font-size:0.86rem;letter-spacing:0.04em;
}
.ticket-row .arr{color:var(--sky-deep);padding:0 6px;}
.ticket-row .sub{color:var(--dim);font-size:0.72rem;text-transform:uppercase;letter-spacing:0.12em;justify-self:start;}
.ticket-row .date{color:var(--sky-deep);font-size:0.76rem;}
.route-ticket .ticket-row{grid-template-columns:minmax(0,1fr) auto;}
.route-ticket .ticket-row .date{white-space:nowrap;text-align:right;}
.ticket-pax{
  display:flex;justify-content:space-between;gap:14px;
  padding:15px 18px;border-bottom:1px solid var(--line-cool);
  font-family:'JetBrains Mono',monospace;font-size:0.78rem;letter-spacing:0.06em;color:var(--dim);
}
.ticket-pax .val{color:var(--ink);}
.ticket-empty{
  padding:26px 18px;
  font-family:'JetBrains Mono',monospace;font-size:0.78rem;letter-spacing:0.06em;
  color:var(--dim);line-height:1.7;
}
.ticket-foot{
  padding:13px 18px;background:var(--tint);border-top:1px solid var(--line-cool);
  font-family:'JetBrains Mono',monospace;font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--dim);
}
.recap-aside{color:var(--dim);font-size:0.85rem;margin-top:18px;}
.spec-row{grid-template-columns:minmax(0,11rem) 1fr;}
.spec-row .val{color:var(--ink);font-size:0.8rem;letter-spacing:0.02em;}
.spec-col{position:static;flex:1;}
.spec-side{flex:1;min-width:min(280px,100%);padding-top:6px;}

/* ---------- estimate ---------- */
.est .form-grid{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));}
.est-flex .check{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:0.9rem;font-weight:500;padding:12px 0;}
.est-flex .check input{width:auto;padding:0;margin:0;}
.est-status{min-height:1.2em;margin-top:12px;}
.est-status.is-problem{color:#B3261E;}
.est-results{margin-top:26px;}
/* Round 2 tablet check. The estimate cards sit inside the form panel,
   which is a flex column of the quote grid, not the whole page: it
   measures about 482px at a 1024 viewport and 546px at 1280. The shared
   .cg-3 rule counts the viewport, so it put three cards in that column
   and left each card about 15 characters to a line, which pushed the
   flight time line onto five rows. The cards now size to their own
   container instead. Measured after the change: 26 characters a line at
   1024, 30 at 1280, 33 at 1024 on a category page where the panel is
   wider. A browser without container queries keeps the old rule. */
.est-results{container-type:inline-size;}
@container (min-width:460px){
  .est-cards.cg-3{grid-template-columns:repeat(2,1fr);}
  .est-cards.cg-3 .cell:last-child{grid-column:1/-1;}
}
@container (min-width:760px){
  .est-cards.cg-3{grid-template-columns:repeat(3,1fr);}
  .est-cards.cg-3 .cell:last-child{grid-column:auto;}
}
.est-cards{margin-bottom:14px;}
.est-cards .cell{padding:22px;cursor:pointer;}
.est-cards .cell[hidden]{display:none;}
.est-card .r16x10{margin-bottom:14px;}
.est-card .kicker{margin-bottom:8px;}
.est-card h3{margin-bottom:6px;}
.est-card[aria-pressed="true"]{background:var(--tint);box-shadow:inset 0 0 0 2px var(--sky-mid);}
.est-card:focus-visible{outline:2px solid var(--sky-deep);outline-offset:-2px;}
.est-pick{color:var(--sky-deep);font-weight:600;font-size:0.82rem;margin-top:8px;}
.est-card[aria-pressed="true"] .est-pick{color:var(--ink);}
.est-more{margin-top:0;}
.est-peak{color:var(--ink);font-weight:600;}
.est-contact{margin-top:32px;padding-top:28px;border-top:1px solid var(--line);}

/* ---------- estimate strip (brief band) ---------- */
.est-strip-sec{padding:0 0 88px;}
.brief-form form.est-strip-form{display:grid;grid-template-columns:repeat(2,1fr);gap:0 12px;}
.est-strip-form .field{margin-bottom:14px;}
.est-strip-form .btn{grid-column:1/-1;text-align:center;}
@media(max-width:480px){ .brief-form form.est-strip-form{grid-template-columns:1fr;} }
.jc-sec,.standards-sec,.cta-sec,.reverse-sec,.quote-note-sec{padding:0 0 88px;}
.brief-form .btn{white-space:nowrap;}

/* ---------- standard block and timeline (about.html) ---------- */
.standard-block{
  background:var(--tint);border-left:3px solid var(--sky);
  border-radius:0 6px 6px 0;padding:34px 36px;
}
@media(max-width:640px){ .standard-block{padding:26px 22px;} }
.standard-block h2{font-size:clamp(1.4rem,2.6vw,1.9rem);color:var(--ink);margin:10px 0 8px;}
.standard-block .intro{color:var(--dim);margin-bottom:20px;font-size:0.97rem;}
.standard-list{list-style:none;display:flex;flex-direction:column;gap:13px;margin-top:14px;}
.standard-list li{
  position:relative;padding-left:26px;
  color:var(--ink);font-size:1rem;line-height:1.55;
}
.standard-list li::before{
  content:"";position:absolute;left:0;top:0.6em;
  width:8px;height:8px;border-radius:50%;background:var(--sky-deep);
}
.standard-link{margin-top:18px;}
.about-hero{padding:64px 0 12px;}
.about-hero-grid{display:flex;flex-wrap:wrap;gap:52px;align-items:center;}
.about-hero-copy{flex:1.15;min-width:min(320px,100%);}
.about-hero-copy h1{font-size:clamp(2rem,4.4vw,3.1rem);line-height:1.08;margin:14px 0 18px;color:var(--ink);text-wrap:balance;}
.about-hero-copy .lede{color:var(--dim);font-size:1.06rem;max-width:46ch;}
.about-hero-photo{flex:0.85;min-width:min(270px,100%);}
.about-sec{padding:64px 0 0;}
.about-sec:last-of-type{padding-bottom:88px;}
.about-sec .sec-head{margin-bottom:36px;}
.timeline-grid{display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start;}
.timeline-copy{flex:1.25;min-width:min(320px,100%);}
.timeline-copy .prose{margin-bottom:28px;}
.timeline{list-style:none;display:flex;flex-direction:column;}
.timeline li{position:relative;padding:0 0 30px 34px;border-left:1px solid var(--line);}
.timeline li:last-child{padding-bottom:0;border-left-color:transparent;}
.timeline li::before{
  content:"";position:absolute;left:-6px;top:5px;
  width:11px;height:11px;border-radius:50%;
  background:var(--sky);border:2px solid var(--card);
}
.timeline .step{display:block;font-family:'Inter',sans-serif;font-weight:600;font-size:0.78rem;letter-spacing:0.01em;color:var(--sky-deep);margin-bottom:5px;}
.timeline h3{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.16rem;color:var(--ink);margin-bottom:7px;}
.timeline p{color:var(--dim);font-size:0.95rem;max-width:52ch;}
.timeline-shots{flex:0.75;min-width:min(260px,100%);display:grid;gap:16px;}
.based-grid{display:flex;flex-wrap:wrap;gap:40px;align-items:center;}
.based-copy{flex:1.1;min-width:min(300px,100%);}
.based-copy h2{font-size:clamp(1.5rem,2.8vw,2rem);margin:12px 0 14px;color:var(--ink);}
.based-copy p{color:var(--dim);font-size:1rem;margin-bottom:14px;max-width:50ch;}
.based-copy p strong{color:var(--ink);font-weight:600;}
.based-shot{flex:0.9;min-width:min(280px,100%);}
.about-cta{
  background:var(--card);border:1px solid var(--line);border-radius:6px;
  padding:36px;display:flex;justify-content:space-between;align-items:center;
  gap:22px;flex-wrap:wrap;
  box-shadow:0 14px 40px rgba(28,42,61,0.06);
}
@media(max-width:640px){ .about-cta{padding:26px 22px;} }
.about-cta h2{font-size:clamp(1.3rem,2.4vw,1.7rem);color:var(--ink);margin-bottom:6px;}
.about-cta p{color:var(--dim);font-size:0.94rem;max-width:44ch;}
.about-cta .cta-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;}
.about-cta .call{font-family:'JetBrains Mono',monospace;font-size:0.86rem;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--sky);}
.about-cta .call:hover{color:var(--sky-deep);}

/* ---------- empty legs board (index.html) ---------- */
.board-col{flex:1;min-width:min(340px,100%);}
.legs-col{flex:1.15;}
.gate-col{flex:0.85;min-width:min(320px,100%);}
.board{
  background:var(--card);border:1px solid var(--line-cool);border-radius:6px;
  overflow:hidden;box-shadow:0 24px 60px rgba(28,42,61,0.10);color:var(--ink);
}
.board-head{
  display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
  padding:14px 18px;border-bottom:1px solid var(--line-cool);
  background:var(--tint);
}
.board-head .mono{color:var(--sky-deep);}
.board-head .note{font-size:0.68rem;color:var(--dim);}
.board-row{
  display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:baseline;
  padding:15px 18px;border-bottom:1px solid var(--line-cool);
  font-family:'JetBrains Mono',monospace;font-size:0.86rem;letter-spacing:0.04em;
  text-decoration:none;color:var(--ink);
  transition:background 0.15s ease;
}
.board-row:hover{background:var(--tint);color:var(--ink);}
.board-row:last-of-type{border-bottom:none;}
.board-row .arr{color:var(--sky-deep);padding:0 6px;}
.board-row .sub{color:var(--dim);font-size:0.72rem;text-transform:uppercase;letter-spacing:0.12em;justify-self:start;}
.board-row .sub .nb{white-space:nowrap;}
@media(max-width:899px){ .board-row .sub{font-size:0.66rem;letter-spacing:0.07em;} }
@media(max-width:480px){ .board-row .sub .seats-word{display:none;} }
.board-row .when{color:var(--sky-deep);}
.board-foot{
  padding:13px 18px;background:var(--tint);border-top:1px solid var(--line-cool);
  font-family:'JetBrains Mono',monospace;font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--dim);
}
.board-empty{padding:26px 18px;font-family:'JetBrains Mono',monospace;font-size:0.78rem;letter-spacing:0.06em;color:var(--dim);line-height:1.7;}
.leg-detail{
  grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;
  padding-top:10px;font-family:'Inter',sans-serif;letter-spacing:0;font-size:0.86rem;color:var(--dim);
}
.leg-type{color:var(--ink);font-weight:600;}
.leg-range{color:var(--sky-deep);font-family:'JetBrains Mono',monospace;font-size:0.8rem;letter-spacing:0.04em;}
.leg-note{flex:1 1 100%;}
.leg-detail .btn{padding:8px 14px;font-size:0.78rem;margin-left:auto;}
.legs-disclaimer{margin-top:14px;}
.gate-h,.fit-h{font-size:clamp(1.4rem,2.6vw,1.9rem);color:var(--ink);margin:0 0 8px;}
.gate-status{min-height:1.2em;}
.gate-status.is-problem{color:#B3261E;}

/* ---------- compare table (jet card) ---------- */
/* Round 2, section 3 item 4: the compare table keeps its 560px minimum
   so the three columns stay readable, so on a 360 or 390 phone it
   scrolls inside this box. The page itself never scrolls sideways.
   The shadow below is the visible hint: it sits on whichever edge has
   more table behind it and disappears when that edge is reached, so a
   reader can see there is more to the right. */
.compare-wrap{
  overflow-x:auto;margin-top:28px;border:1px solid var(--line);border-radius:6px;background:var(--card);
  background-image:
    linear-gradient(to right, var(--card) 40%, rgba(255,255,255,0)),
    linear-gradient(to left, var(--card) 40%, rgba(255,255,255,0)),
    linear-gradient(to right, rgba(28,42,61,0.16), rgba(28,42,61,0)),
    linear-gradient(to left, rgba(28,42,61,0.16), rgba(28,42,61,0));
  background-position:0 0, 100% 0, 0 0, 100% 0;
  background-repeat:no-repeat;
  background-size:34px 100%, 34px 100%, 16px 100%, 16px 100%;
  background-attachment:local, local, scroll, scroll;
}
.compare{width:100%;border-collapse:collapse;font-size:0.92rem;min-width:560px;}
.compare th,.compare td{padding:16px 18px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left;color:var(--dim);}
.compare thead th{background:var(--tint);color:var(--sky-deep);font-family:'Inter',sans-serif;font-weight:600;font-size:0.78rem;letter-spacing:0.01em;}
.compare tbody th{color:var(--ink);font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.02rem;white-space:nowrap;}
.compare tbody tr:last-child th,.compare tbody tr:last-child td{border-bottom:none;}
.fit-panel{margin-top:0;}
.pdf-gate{margin-top:0;}
.guide-sec{padding:0 0 88px;}
.guide-body{flex:1.15;min-width:min(340px,100%);}

/* ---------- FAQ (quote.html) ---------- */
.faq-sec{padding:0 0 88px;}
.faq-sec .sec-head{margin-bottom:40px;}
.faq-sec .sec-head h2{margin:14px 0 0;}
.faq{
  max-width:760px;display:flex;flex-direction:column;gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;
}
.faq details{background:var(--card);padding:22px 26px;}
.faq summary{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:1.08rem;color:var(--ink);cursor:pointer;}
.faq p{color:var(--dim);font-size:0.93rem;margin-top:12px;max-width:64ch;}

/* ---------- review hub ---------- */
.hub-list{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:28px;}
.hub-row{background:var(--card);padding:16px 22px;display:grid;grid-template-columns:1fr;gap:4px;}
.hub-row.is-fixture{background:#FFF8EC;}
.hub-link{font-family:'Fraunces',Georgia,serif;font-size:1.08rem;color:var(--ink);text-decoration:none;}
.hub-link:hover{color:var(--sky-deep);}
.hub-path{font-size:0.72rem;color:var(--sky-deep);text-transform:none;letter-spacing:0.04em;}
.hub-what,.hub-check{font-size:0.88rem;color:var(--dim);}
.hub-check strong{color:var(--ink);}
.hub-links{line-height:1.9;}
.hub-missing{font-size:0.78rem;color:var(--dim);}
@media(min-width:800px){
  .hub-row{grid-template-columns:minmax(0,18rem) minmax(0,1fr);gap:4px 24px;}
  .hub-row .hub-link{grid-column:1;}
  .hub-row .hub-path{grid-column:1;}
  .hub-row .hub-what{grid-column:2;grid-row:1;}
  .hub-row .hub-check{grid-column:2;grid-row:2;}
}

/* ---------- phone rhythm ---------- */
@media(max-width:640px){
  section{padding:0 0 64px;}
  .page-head{padding:44px 0 32px;}
  .quote-sec,.faq-sec,.est-strip-sec,.jc-sec,.standards-sec,.cta-sec,.guide-sec{padding-bottom:64px;}
  .sec-head{margin-bottom:30px;}
  .cell{padding:26px 22px;}
  .faq details{padding:18px 20px;}
  .seg button,.seg a{padding:11px 4px;font-size:0.8rem;}
  .est .btn.est-go,.contact-form > .btn,.fit-form > .btn,.pdf-form > .btn,.gate-form > .btn{width:100%;text-align:center;}
  .about-hero{padding:40px 0 8px;}
  .about-hero-grid{gap:32px;}
  .about-sec{padding:52px 0 0;}
  .about-sec:last-of-type{padding-bottom:64px;}
  .timeline-grid,.based-grid{gap:32px;}
  .about-cta .cta-actions{width:100%;}
  .about-cta .cta-actions .btn{flex:1 1 auto;text-align:center;}
  .plain-list.two-col{columns:1;}
  .spec-row{grid-template-columns:1fr;gap:4px;}
  .spec-row .val{justify-self:start;}
}

/* Model-specific volume planning, with separate alternative bag loads. */
.baggage-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0;}
.baggage-count{min-width:0;padding:14px 10px;border:1px solid var(--line-cool);border-radius:5px;background:var(--card);display:flex;align-items:center;flex-direction:column;text-align:center;gap:8px;}
.baggage-planning .baggage-count svg{display:block;width:48px;height:64px;margin:0;}
.baggage-quantity{display:block;font:500 25px/1.2 Fraunces,Georgia,serif;color:var(--ink);white-space:nowrap;}
.baggage-count span{display:block;font-size:12px;line-height:1.4;margin-top:5px;color:var(--dim);}
.baggage-load-label{font-size:13px;color:var(--sky-deep);margin-top:16px!important;}
.baggage-assumptions{font-size:13px;margin:12px 0;}
.baggage-assumptions summary{cursor:pointer;color:var(--sky-deep);}
.baggage-assumptions p{margin-top:10px;}
@media(max-width:380px){.baggage-counts{gap:6px;}.baggage-count{padding:12px 6px;}.baggage-quantity{font-size:22px;}}


/* Approved city-photo cards on the charter landing page. */
.page-charter-hub .page-head { padding-top: 36px; padding-bottom: 26px; }
.page-charter-hub .page-head .lede { max-width: 720px; margin-bottom: 0; }
.page-charter-hub .charter-cities { padding-top: 0; padding-bottom: 16px; }
.charter-city-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.charter-city-card { position: relative; display: block; overflow: hidden; isolation: isolate; aspect-ratio: 1.08; min-height: 300px; border-radius: 6px; background: #10283d; color: #fff; text-decoration: none; }
.charter-city-card .charter-city-photo, .charter-city-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.charter-city-card .charter-city-photo { object-fit: cover; object-position: center 45%; transition: transform .35s ease; }
.charter-city-card:nth-child(2) .charter-city-photo { object-position: 50% 35%; }
.charter-city-card:nth-child(3) .charter-city-photo { object-position: 60% 40%; }
.charter-city-shade { background: linear-gradient(180deg,rgba(10,29,47,.03) 10%,rgba(10,29,47,.13) 35%,rgba(10,29,47,.77) 65%,rgba(10,29,47,.96) 100%); }
.charter-city-copy { position: absolute; inset: auto 25px 22px; }
.charter-city-codes { display: block; color: #e5f1fa; font-size: 12px; font-weight: 500; letter-spacing: .075em; margin-bottom: 7px; }
.charter-city-card h2 { color: #fff; font-family: Fraunces,Georgia,serif; font-weight: 400; font-size: 32px; line-height: 1.2; margin: 0 0 20px; }
.charter-city-card h2 span { font-size: 25px; }
.charter-city-link { border-top: 1px solid #ffffff42; padding-top: 13px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #fff; font-size: 13px; font-weight: 500; }
.charter-city-arrow { font-size: 23px; line-height: 1; }
.charter-city-card:hover { color: #fff; }
.charter-city-card:hover .charter-city-photo { transform: scale(1.035); }
.charter-city-card:hover .charter-city-link { color: #b5dcfa; }
.charter-city-card:focus-visible { outline: 3px solid #336a97; outline-offset: 5px; }
.charter-photo-credits { margin-top: 14px; color: var(--dim,#5c6a78); font-size: 12px; }
.charter-photo-credits p { max-width: 780px; font-size: 12px; }
@media (max-width:1020px) {
  .charter-city-card { aspect-ratio: auto; min-height: 300px; }
  .charter-city-copy { left: 20px; right: 20px; }
  .charter-city-card h2 { font-size: 28px; }
  .charter-city-card h2 span { font-size: 22px; }
}
@media (max-width:760px) {
  .charter-city-grid { grid-template-columns: 1fr; gap: 16px; }
  .charter-city-card { height: 237px; min-height: 0; }
  .charter-city-copy { left: 24px; right: 24px; bottom: 21px; }
  .charter-city-card h2 { font-size: 32px; margin-bottom: 15px; }
  .charter-city-card .charter-city-photo { object-position: center 40%; }
  .charter-city-card:nth-child(2) .charter-city-photo { object-position: center 40%; }
  .charter-city-card:nth-child(3) .charter-city-photo { object-position: center 32%; }
  .charter-city-shade { background: linear-gradient(180deg,rgba(10,29,47,.02) 0%,rgba(10,29,47,.15) 24%,rgba(10,29,47,.77) 62%,rgba(10,29,47,.96) 100%); }
  .charter-city-link { padding-top: 11px; }
  .page-charter-hub .page-head { padding-top: 28px; padding-bottom: 23px; }
}
@media (prefers-reduced-motion:reduce) { .charter-city-card .charter-city-photo { transition: none; } }

.page-markets-hub .page-head { padding-top: 36px; padding-bottom: 28px; }
.page-markets-hub .page-head .lede { max-width: 760px; margin-bottom: 0; }
.page-markets-hub .market-cards-section { padding-top: 0; }
.market-photo-state { display: block; margin-bottom: 7px; color: #e5f1fa; font-size: 12px; font-weight: 500; letter-spacing: .075em; }
.market-photo-grid .charter-city-card .charter-city-photo { object-position: center 40%; }
.market-photo-grid .charter-city-card h2 { font-size: clamp(25px,2.4vw,32px); }
.market-photo-grid .charter-city-card h2 { margin-bottom: 16px; }
.charter-photo-credits li { margin-bottom: 12px; overflow-wrap: anywhere; }
@media (min-width:761px) and (max-width:1000px) {
 .market-photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .market-photo-grid .charter-city-card { min-height: 300px; }
}
@media (max-width:760px) {
 .page-markets-hub .page-head { padding-top: 28px; padding-bottom: 23px; }
 .market-photo-grid .charter-city-card h2 { font-size: 32px; }
}
