/* ==========================================================================
   gen6-tools.css -- Job 3 tool pages (director 2026-10-12)
   Loaded by page-waterway-map.php, page-cape-coral-flood-map.php,
   page-cape-coral-bridge-clearances.php, page-mortgage-calculator.php and
   page-neighborhood-quiz.php at wp_enqueue_scripts priority 100.

   Composition only. Nothing here renames, removes or reorders a control the
   instrument engines bind to (js/milner-canal-map.js, js/gen6-waterway.js,
   js/gen6-neighborhood-quiz.js, the inline calculator model, /listings/*).

   One shape per page:
     1. .g6-tool-open        240px owned aerial strip: kicker, H1, one sentence
     2. .g6-tool-instrument  the tool, full width, immediately under the strip
     3. ruled control panel  + result card with hairlines
     4. .g6-tool-rule        explanatory copy below, one artifact each
   House tokens only: --g6-paper / --g6-mist / --g6-ink / --g6-channel /
   --g6-slate / --g6-line / --g6-display / --g6-ui.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Opening strip
   -------------------------------------------------------------------------- */
main .g6-tool-open {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 240px;
  padding: 0;
  margin: 0;
  overflow: hidden;
  isolation: isolate;
  background: #095e93;
}
.g6-tool-open__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 60%;
  z-index: 0;
}
.g6-tool-open::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(9, 24, 40, 0.30) 0%, rgba(9, 24, 40, 0.54) 54%, rgba(8, 20, 34, 0.84) 100%);
  pointer-events: none;
}
.g6-tool-open__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1248px;
  margin: 0 auto;
  padding: 38px 24px 22px;
}
main .g6-tool-open .g6-tool-open__kicker,
.g6-toolpage main .g6-tool-open .g6-tool-open__kicker {
  display: block;
  margin: 0;
  font-family: var(--g6-ui, var(--font-body));
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  /* the shared --dark eyebrow colour is a light-page ink; on the aerial strip this
     kicker sits on photography, so the id-free scope plus !important is required. */
  color: #eaf4fc !important;
}
main .g6-tool-open h1,
main .g6-tool-open .hero-ed-h1,
main .g6-tool-open .h-editorial,
main .g6-tool-open .g6-waterway-title {
  font-family: var(--g6-display, var(--font-heading));
  font-weight: 500;
  font-size: clamp(1.6rem, 2.9vw, 2.6rem);
  line-height: 1.06;
  letter-spacing: -0.015em;
  color: #fff !important;
  margin: 0.4rem 0 0;
  max-width: 30ch;
  text-wrap: pretty;
}
main .g6-tool-open h1 em {
  font-style: italic;
  font-weight: 400;
  color: #e2eef8;
}
.g6-tool-open__lede {
  font-family: var(--g6-ui, var(--font-body));
  font-size: clamp(0.94rem, 1.05vw, 1.06rem);
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.93);
  margin: 0.6rem 0 0;
  max-width: 70ch;
}
@media (min-width: 861px) {
  main .g6-tool-open { height: 240px; }
}
@media (max-width: 700px) {
  .g6-tool-open__inner { padding: 28px 18px 18px; }
  main .g6-tool-open h1,
  main .g6-tool-open .hero-ed-h1,
  main .g6-tool-open .h-editorial,
  main .g6-tool-open .g6-waterway-title { font-size: clamp(1.5rem, 7vw, 2rem); max-width: none; }
  .g6-tool-open__lede { font-size: 0.94rem; }
}

/* One italic phrase per page: the H1 em. Anything else in a heading on a tool
   page (including shared partials such as the contact band) is read, not
   emphasised. */
.g6-toolpage main h1 em,
.g6-toolpage main h2 em,
.g6-toolpage main h3 em,
.g6-toolpage main h4 em { font-style: normal !important; color: inherit !important; }
.g6-toolpage main .g6-tool-open h1 em { font-style: italic !important; color: #e2eef8 !important; }
.g6-toolpage :is(.mc-section-title, .mc-dti__title, .quiz-report__title) em { font-style: normal !important; color: inherit !important; }
.g6-toolpage .mc-section-title { font-style: normal; text-align: left; }
.g6-toolpage .mc-section-title::before { left: 0; transform: none; }

/* One kicker per page: the strip kicker. The ruled panels keep their labels as
   plain UI text, not small-caps eyebrows. */
.g6-toolpage .canal-panel-kicker,
.g6-toolpage .mc-summary__kicker,
.g6-toolpage .mc-dti__kicker,
.g6-toolpage .quiz-question__kicker {
  display: none !important;
}

/* --------------------------------------------------------------------------
   2. Instrument band -- full width, immediately under the strip
   -------------------------------------------------------------------------- */
main .g6-tool-instrument {
  padding: 0;
  margin: 0;
  background: var(--g6-paper, #FAFBFC);
  display: flow-root; /* stop the first child's top margin collapsing a gap above the tool */
}
main .g6-tool-instrument > .g6-city-wrap,
main .g6-tool-instrument > .container {
  width: 100%;
  max-width: none;
  padding: 0;
}

/* --------------------------------------------------------------------------
   3. Ruled control panel / white hairline card / ruled explainer sections
   -------------------------------------------------------------------------- */
.g6-tool-panel {
  border: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12));
  border-radius: 14px;
  background: var(--g6-paper, #FAFBFC);
  padding: 1.15rem 1.25rem;
  box-shadow: none;
}
.g6-tool-card {
  border: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12));
  border-radius: 14px;
  background: #fff;
  padding: 1.25rem;
  box-shadow: none;
}
.g6-tool-rule {
  border-top: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12));
  padding: 44px 0;
}
.g6-tool-rule > .g6-city-wrap,
.g6-tool-rule > .container {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(1.5rem, 3.5vw, 3rem);
  align-items: start;
}
.g6-tool-rule__head > h2:first-child { margin-top: 0; }
.g6-tool-rule__art {
  border: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12));
  border-radius: 14px;
  background: #fff;
  padding: 1.25rem;
}
.g6-tool-rule__art > :first-child { margin-top: 0; }
/* Artifacts the theme built as multi-up card grids (3 bridge notes, the canal
   network cards) read as one ruled list inside a rule, not as squeezed cards. */
.g6-toolpage .g6-tool-rule__art .lux-block { max-width: none; }
.g6-toolpage .g6-tool-rule__art .service-band-grid { display: block; max-width: none; gap: 0; }
.g6-toolpage .g6-tool-rule__art .service-band-card {
  display: block;
  max-width: none;
  padding: 1rem 0;
  border: 0;
  border-top: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12));
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.g6-toolpage .g6-tool-rule__art .service-band-card:first-child { border-top: 0; padding-top: 0; }
.g6-toolpage .g6-tool-rule__art .service-band-card:last-child { padding-bottom: 0; }
/* a rule that is only a note keeps a readable measure */
.g6-toolpage .g6-tool-rule--single .g6-tool-rule__art > p,
.g6-toolpage .g6-tool-rule--single .g6-tool-rule__head > p,
.g6-toolpage .g6-tool-rule__head:only-child > p { max-width: 68ch; }
.g6-tool-rule--single > .g6-city-wrap,
.g6-tool-rule--single > .container { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 860px) {
  .g6-tool-rule { padding: 32px 0; }
  .g6-tool-rule > .g6-city-wrap,
  .g6-tool-rule > .container { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
}

/* --------------------------------------------------------------------------
   4. Waterway map (/waterway-map/)
   DOM order is untouched: .canal-hud, .canal-workspace, disclaimer, notes.
   Desktop flex order puts the map (the instrument) first, the controls
   (.canal-hud) second as one ruled panel, and the notes third.
   -------------------------------------------------------------------------- */
main .g6-waterway-tool { padding: 0 0 44px; }
/* The theme caps .g6-city-wrap with max-width !important; the instrument must span
   the full band, so the id is needed to outrank it. */
#main-content .g6-waterway-tool > .g6-city-wrap { width: 100%; max-width: none !important; padding: 0; }
#main-content .g6-waterway-tool .container { width: 100%; max-width: none; padding: 0; }
@media (min-width: 861px) {
  main .g6-waterway-tool .container {
    display: flex;
    flex-direction: column;
  }
  main .g6-waterway-tool .canal-workspace { order: 1; }
  main .g6-waterway-tool .canal-hud { order: 2; }
  main .g6-waterway-tool .waterway-disclaimer,
  main .g6-waterway-tool .waterway-data-notes { order: 3; }
}
main .g6-waterway-tool .canal-workspace {
  border-radius: 0;
  border-left: 0;
  border-right: 0;
  box-shadow: none;
  background: #fff;
  margin: 0;
}
main .g6-waterway-tool .canal-map-frame {
  height: min(72vh, 660px);
  min-height: 520px;
}
main .g6-waterway-tool .canal-panel {
  background: #fff;
  border-left: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12));
  max-height: min(72vh, 660px);
}
/* Controls: one ruled panel under the instrument. */
main .g6-waterway-tool .canal-hud {
  max-width: 1248px;
  margin: 28px auto 0;
  padding: 1.4rem 1.5rem;
  border: 1px solid var(--g6-line, rgba(22, 40, 62, 0.14));
  border-radius: 14px;
  background: var(--g6-paper, #FAFBFC);
  box-shadow: none;
}
main .g6-waterway-tool .waterway-disclaimer,
main .g6-waterway-tool .waterway-data-notes { max-width: 1248px; margin-left: auto; margin-right: auto; }
main .g6-waterway-tool .waterway-disclaimer { padding: 0 24px; margin-top: 20px; }
main .g6-waterway-tool .waterway-data-notes { padding: 0 24px; }
@media (max-width: 860px) {
  main .g6-waterway-tool .canal-hud { margin: 20px 14px 0; }
  main .g6-waterway-tool .waterway-disclaimer,
  main .g6-waterway-tool .waterway-data-notes { padding: 0 14px; }
}
/* Explainer chapters: one artifact each, no card scaffold above the tool. */
main .g6-waterway-explainer { border: 0; background: transparent; }
main .g6-waterway-soft { background: transparent; }
/* inside the ruled artifact card the three network articles stack as a ruled list */
main .g6-tool-rule__art .g6-waterway-grid { grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0; }
main .g6-tool-rule__art .g6-waterway-grid article {
  border: 0;
  border-top: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12));
  border-radius: 0;
  background: transparent;
  padding: 18px 0;
}
main .g6-tool-rule__art .g6-waterway-grid article:first-child { border-top: 0; padding-top: 0; }
main .g6-tool-rule__art .g6-waterway-list { margin: 0; max-width: none; }
main .g6-tool-rule__art .g6-waterway-list li:last-child { border-bottom: 0; }

/* --------------------------------------------------------------------------
   5. Flood map (/cape-coral-flood-map/)
   .ct-zip-toggle-row is the ruled control panel; .ct-zip-panel is the result
   card. The overlay itself is the instrument.
   -------------------------------------------------------------------------- */
main .g6-tool-flood .ct-zip-toggle-row {
  max-width: 1248px;
  margin: 28px auto 20px;
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--g6-line, rgba(22, 40, 62, 0.14));
  border-radius: 14px;
  background: var(--g6-paper, #FAFBFC);
}
main .g6-tool-flood .ct-zips {
  width: 100%;
  max-width: none;
  margin: 0;
}
main .g6-tool-flood .ct-zip-panel {
  border: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12));
  border-radius: 14px;
  background: #fff;
}
main .g6-tool-flood .ct-ledger-caption {
  max-width: 1248px;
  margin: 24px auto 0;
  padding: 0 24px;
}
@media (max-width: 860px) {
  main .g6-tool-flood .ct-zip-toggle-row { margin: 20px 14px 16px; }
  main .g6-tool-flood .ct-ledger-caption { padding: 0 14px; }
}

/* --------------------------------------------------------------------------
   6. Bridge clearances (/cape-coral-bridge-clearances/)
   .g6b-controls is the ruled control panel, .g6b-table is the result card.
   -------------------------------------------------------------------------- */
main .g6-tool-bridges .g6b-controls {
  border: 1px solid var(--g6-line, rgba(22, 40, 62, 0.14));
  border-radius: 14px;
  background: var(--g6-paper, #FAFBFC);
  padding: 1.15rem 1.25rem;
}
main .g6-tool-bridges .g6b-table-wrap {
  border: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12));
  border-radius: 14px;
  background: #fff;
}
main .g6-tool-bridges .g6b-hero-chart { border: 0; box-shadow: none; background: transparent; padding: 0; margin: 0; }

/* --------------------------------------------------------------------------
   7. Mortgage calculator (/mortgage-calculator/)
   .mc-inputs is the ruled control panel, .mc-results is the white card.
   -------------------------------------------------------------------------- */
main .g6-tool-mortgage .mc-grid { max-width: 1248px; }
main .g6-tool-mortgage .mc-inputs {
  border: 1px solid var(--g6-line, rgba(22, 40, 62, 0.14));
  border-top: 1px solid var(--g6-line, rgba(22, 40, 62, 0.14));
  border-radius: 14px;
  background: var(--g6-paper, #FAFBFC);
  box-shadow: none;
}
main .g6-tool-mortgage .mc-results {
  border: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12));
  border-radius: 14px;
  background: #fff;
  padding: 1.25rem;
}
/* the result card is white with hairlines, so the estimate reads on it */
main .g6-tool-mortgage .mc-summary {
  background: #fff;
  color: var(--g6-ink, #16283E);
  border: 0;
  border-top: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  overflow: visible;
}
main .g6-tool-mortgage .mc-summary::before { display: none; }
main .g6-tool-mortgage .mc-summary__total,
main .g6-tool-mortgage .mc-summary__note,
main .g6-tool-mortgage .mc-summary__kicker,
main .g6-tool-mortgage .mc-breakdown,
main .g6-tool-mortgage .mc-breakdown__row dt,
main .g6-tool-mortgage .mc-breakdown__row dd,
main .g6-tool-mortgage .mc-totals__label,
main .g6-tool-mortgage .mc-totals__value,
main .g6-tool-mortgage .g6-calculator-assumption { color: var(--g6-ink, #16283E); }
main .g6-tool-mortgage .mc-summary__note { color: var(--g6-slate, #53677A); }
main .g6-tool-mortgage .mc-breakdown__row { border-bottom: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12)); }
main .g6-tool-mortgage .mc-dti {
  border: 0;
  border-top: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12));
  border-radius: 0;
  background: transparent;
  padding: 1.1rem 0 0;
  margin-top: 1.1rem;
}
main .g6-tool-mortgage .mc-hero-points { display: none; }
.g6-tool-chips {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.75rem 0 0;
  padding: 0;
}
.g6-tool-chips li {
  border: 1px solid var(--g6-line, rgba(22, 40, 62, 0.16));
  border-radius: 999px;
  padding: 0.28rem 0.7rem;
  font-family: var(--g6-ui, var(--font-body));
  font-size: 0.78rem;
  color: var(--g6-ink, #16283E);
}

/* --------------------------------------------------------------------------
   8. Neighborhood quiz (/neighborhood-quiz/)
   .quiz-card is the white hairline card around the instrument.
   -------------------------------------------------------------------------- */
main .g6-tool-quiz .container--quiz { max-width: 1248px; }
main .g6-tool-quiz .quiz-card {
  box-shadow: none;
  border: 1px solid var(--g6-line, rgba(22, 40, 62, 0.12));
  border-top: 3px solid var(--g6-channel, #2E6FA3);
  border-radius: 14px;
  background: #fff;
}

/* --------------------------------------------------------------------------
   R2 2026-10-15 (Astra R2 finding 6): answer, then the job, then the method.
   /waterway-map/: the hero keeps one answer sentence and a labelled runnable sample; the route-time note and the canal
   guide door sit directly under the instrument (.g6-ww-method). /cape-coral-flood-map/: an address check (.g6-fz) sits
   between the short answer and the map; on phones the toggle explanation follows the map instead of preceding it.
   -------------------------------------------------------------------------- */
.g6-ww-try, .g6-fz-try { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 14px 0 0; }
.g6-ww-sample, .g6-fz-sample { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 18px 8px 8px; border-radius: 999px; font: 700 15px/1.2 var(--g6-ui, Manrope, sans-serif); text-decoration: none; }
.g6-ww-sample { background: #fff; color: #095e93 !important; box-shadow: 0 10px 24px rgba(4, 16, 30, .35); }
.g6-ww-sample-k, .g6-fz-sample-k { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 999px; font: 700 11px/1 var(--g6-ui, Manrope, sans-serif); letter-spacing: .08em; text-transform: uppercase; }
.g6-ww-sample-k { background: #095e93; color: #fff; }
.g6-ww-sample:hover, .g6-ww-sample:focus-visible { background: #eaf4fc; }
.g6-ww-try-note { font: 500 13px/1.4 var(--g6-ui, Manrope, sans-serif); color: rgba(255, 255, 255, .86); }
.g6-ww-method { background: #fafbfc; border-bottom: 1px solid #dbe8f2; }
.g6-ww-method .g6-city-wrap { padding-block: 18px; }
.g6-ww-method-p { margin: 0; max-width: 78ch; font: 400 15px/1.6 var(--g6-ui, Manrope, sans-serif); color: #51647a; }
.g6-ww-method-p a { color: #1d5a87; font-weight: 600; }
.g6-toolpage main section.g6-fz, .g6-fz { background: #095e93; color: #eaf4fc; padding: 0 !important; margin: 0; position: relative; z-index: 2; }
.g6-fz-in { max-width: 1248px; margin: 0 auto; padding: 22px 24px 26px; }
.g6-fz .g6-fz-title { margin: 0 0 12px; font: 700 13px/1.3 var(--g6-ui, Manrope, sans-serif) !important; letter-spacing: .08em; text-transform: uppercase; color: #8fd0f2 !important; }
.g6-fz-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; max-width: 720px; }
.g6-fz-form input { min-height: 52px; padding: 0 18px; border: 1px solid rgba(201, 219, 235, .4); border-radius: 999px; background: #fff; color: #095e93; font: 500 16px/1.2 var(--g6-ui, Manrope, sans-serif); box-sizing: border-box; width: 100%; }
.g6-fz-form button { min-height: 52px; padding: 0 24px; border: 0; border-radius: 999px; background: #095e93; color: #fff; font: 700 15px/1 var(--g6-ui, Manrope, sans-serif); cursor: pointer; }
.g6-fz-form button:hover, .g6-fz-form button:focus-visible { background: #1d5a87; }
.g6-fz-form :focus-visible, .g6-fz-sample:focus-visible, .g6-ww-sample:focus-visible { outline: 3px solid #60c3ef; outline-offset: 3px; }
.g6-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.g6-fz-sample { border: 1px dashed rgba(96, 195, 239, .7); background: rgba(96, 195, 239, .1); color: #fff !important; }
.g6-fz-sample-k { background: #d2e4f5; color: #095e93; }
.g6-fz-sample:hover { background: rgba(96, 195, 239, .2); }
.g6-fz-try-note { font: 500 13px/1.4 var(--g6-ui, Manrope, sans-serif); color: #c9dbeb; }
.g6-fz-list { display: grid; gap: 6px; max-width: 720px; margin: 10px 0 0; }
.g6-fz-match { min-height: 44px; padding: 0 16px; text-align: left; border: 1px solid rgba(201, 219, 235, .3); border-radius: 12px; background: rgba(255, 255, 255, .06); color: #fff; font: 600 15px/1.2 var(--g6-ui, Manrope, sans-serif); cursor: pointer; }
.g6-fz-out { max-width: 720px; margin: 16px 0 0; padding: 18px 20px; border-radius: 18px; background: #fafbfc; color: #095e93; }
.g6-fz-out p { margin: 0 0 8px; }
.g6-fz-addr { font: 700 13px/1.4 var(--g6-ui, Manrope, sans-serif); letter-spacing: .04em; color: #51647a; }
.g6-fz-zone { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
.g6-fz-zone strong { font: 600 34px/1.05 var(--g6-ui, Manrope, sans-serif); font-variant-numeric: lining-nums; color: #095e93; }
.g6-fz-zone span { font: 700 14px/1.3 var(--g6-ui, Manrope, sans-serif); color: #1d5a87; }
.g6-fz-line { font: 400 15px/1.55 var(--g6-ui, Manrope, sans-serif); }
.g6-fz-fine, .g6-fz-wait { font: 400 13px/1.5 var(--g6-ui, Manrope, sans-serif); color: #51647a; }
.g6-fz-deep { display: inline-flex; align-items: center; min-height: 44px; font: 700 15px/1.2 var(--g6-ui, Manrope, sans-serif); color: #1d5a87 !important; }
@media (max-width: 860px) {
  main .g6-tool-open.g6-tool-open { min-height: 0; }
  .g6-tool-waterway .g6-tool-open__inner { padding-bottom: 18px; }
  .g6-ww-try { margin-top: 12px; }
  .g6-ww-try-note { flex-basis: 100%; }
  .g6-fz-in { padding: 18px 20px 22px; }
  .g6-fz-form { grid-template-columns: 1fr; }
  .g6-fz-try-note { flex-basis: 100%; }
  /* flood: toggle, then the map, then the toggle's explanation */
  .g6-tool-flood #ct-zips > .container { display: flex; flex-direction: column; }
  .g6-tool-flood #ct-zips .ct-zip-toggle-row { display: contents; }
  .g6-tool-flood #ct-zips .ct-flood-toggle { order: 1; margin: 16px 18px 0; }
  .g6-tool-flood #ct-zips .ct-flood-legend { margin: 8px 18px 10px; }
  .g6-tool-flood #ct-zips .ct-flood-legend { order: 2; }
  .g6-tool-flood #ct-zips .ct-zips { order: 3; }
  .g6-tool-flood #ct-zips .ct-flood-toggle__copy { order: 4; margin: 14px 18px 0; }
  .g6-tool-flood #ct-zips .ct-ledger-caption { order: 5; }
}
@media (prefers-reduced-motion: reduce) { .g6-ww-sample, .g6-fz-sample { transition: none; } }
