/* ═══════════════════════════════════════════════════════════════════════════
   SITE ADDITIONS (TASK B0, PHASE 2 wave 1): the rules the approved board does not have because the board is a
   one-page mockup. Loaded AFTER the vendored board sheets (public/styles/board/, never edited: check-vendored-board).
   Same system: scoped under [data-world="V5"], V1 tokens only, GSAP-only motion (no @keyframes), hover transitions
   only, never #000. Each block names why the board lacked it. A stage-2 task adds its OWN sheet
   (public/styles/site/<task>.css via BaseLayout `siteSheet`), never this file (PORTING-CONTRACT.md).
   ═══════════════════════════════════════════════════════════════════════════ */

/* required globals (tech-builder skill "Required global CSS") */
:root { --header-height: 84px; --brand-accent: #E3A93B; --color-primary-rgb: 11, 30, 36; }
body { overflow-x: clip; }

/* ---------- skip link ---------- */
.aps-skip { position: absolute; left: 12px; top: -80px; z-index: 60; padding: 12px 18px; border-radius: 999px; background: #F5F1E8; color: #0B1E24; font: 600 16px/1.2 "Instrument Sans", system-ui, sans-serif; text-decoration: none; }
.aps-skip:focus { top: 12px; outline: 3px solid #0384A9; outline-offset: 3px; }

/* ---------- header: the GATE 1 nav inside the approved island (the board had four anchor links) ---------- */
[data-world="V5"] .v1-header__logo img.aps-logo--mark { display: none; width: 44px; height: 44px; }
[data-world="V5"] .aps-nav { align-items: center; gap: 2px; }
[data-world="V5"] .aps-nav__item { position: relative; }
[data-world="V5"] .aps-nav__btn { display: inline-flex; align-items: center; gap: 8px; min-height: var(--aps-tap); padding: 0 12px; border: 0; border-radius: var(--aps-r-pill); background: transparent; color: var(--v1-ink); font: 600 15.5px/1 var(--v1-body); cursor: pointer; transition: background-color .35s var(--v1-ease); }
[data-world="V5"] .aps-nav__btn:hover, [data-world="V5"] .aps-nav__btn[aria-expanded="true"] { background: rgba(11, 30, 36, .06); }
[data-world="V5"] .aps-nav__chev { width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); }
[data-world="V5"] .aps-nav__btn[aria-expanded="true"] .aps-nav__chev { transform: translateY(2px) rotate(225deg); }
[data-world="V5"] .aps-nav a[aria-current="page"] { background: rgba(11, 30, 36, .06); }
/* the panels hang from the island; a 18 px transparent bridge keeps the pointer path unbroken (audit-nav slow path) */
[data-world="V5"] .aps-mega, [data-world="V5"] .aps-drop { position: absolute; top: 100%; left: 50%; padding-top: 18px; transform: translateX(-50%); z-index: 41; }
[data-world="V5"] .v1-header__island { position: relative; }
[data-world="V5"] .aps-nav__item--mega { position: static; }
[data-world="V5"] .aps-mega { left: auto; right: 0; transform: none; }
/* the board styles every .v1-nav link as a pill: the panel links are plain rows */
[data-world="V5"] .v1-nav .aps-mega a, [data-world="V5"] .v1-nav .aps-drop a { padding: 0; border-radius: 0; white-space: normal; background: none; }
[data-world="V5"] .aps-mega[hidden], [data-world="V5"] .aps-drop[hidden] { display: none; }
[data-world="V5"] .aps-mega__in, [data-world="V5"] .aps-drop__in { background: var(--v1-paper); border: 1px solid rgba(11, 30, 36, .1); border-radius: var(--aps-r-l); box-shadow: 0 30px 60px -30px rgba(11, 30, 36, .55), inset 0 1px 0 rgba(255, 255, 255, .7); }
[data-world="V5"] .aps-mega__in { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 30px; width: min(900px, calc(100vw - 2 * var(--aps-gutter))); padding: 30px 32px 22px; }
[data-world="V5"] .aps-mega__head { display: inline-flex; align-items: center; min-height: var(--aps-tap); color: var(--v1-ink); font: 700 20px/1.15 var(--v1-display); letter-spacing: -.01em; text-decoration: none; }
[data-world="V5"] .aps-mega__head:hover { color: var(--aps-teal-deep); text-decoration: underline; }
[data-world="V5"] .aps-mega__note { margin: -6px 0 6px; font: 500 12px/1.4 var(--v1-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--v1-gold-deep); }
[data-world="V5"] .aps-mega__list, [data-world="V5"] .aps-drop__list { list-style: none; margin: 0; padding: 0; }
[data-world="V5"] .aps-mega__list a, [data-world="V5"] .aps-drop__list a { display: flex; align-items: center; min-height: 44px; color: var(--v1-ink); font-size: 16px; font-weight: 500; text-decoration: none; border-top: 1px solid var(--v1-line-paper); }
[data-world="V5"] .aps-mega__list a:hover, [data-world="V5"] .aps-drop__list a:hover { color: var(--aps-teal-deep); text-decoration: underline; }
[data-world="V5"] .aps-mega__all { grid-column: 1 / -1; margin-top: 10px; padding-top: 6px; border-top: 1px solid var(--v1-line-paper); }
[data-world="V5"] .aps-drop__in { width: 300px; padding: 20px 26px 16px; }
[data-world="V5"] .aps-drop__all { margin-top: 6px; }
/* the menu button: below 1380 px (where the board hides .v1-nav) */
[data-world="V5"] .aps-burger { display: none; flex: none; width: 52px; height: 52px; margin-left: 6px; border: 0; border-radius: 50%; background: var(--v1-ink); color: var(--v1-paper); cursor: pointer; align-items: center; justify-content: center; }
[data-world="V5"] .aps-burger__bars { display: grid; gap: 5px; width: 20px; }
[data-world="V5"] .aps-burger__bars span { display: block; height: 2px; border-radius: 2px; background: currentColor; }
@media (max-width: 1379px) {
  [data-world="V5"] .aps-burger { display: inline-flex; }
}
@media (max-width: 767px) {
  /* phones: the brand mark + the menu button (Call and Book live in the mobile bar) */
  [data-world="V5"] .aps-logo--full { display: none; }
  [data-world="V5"] .v1-header__logo img.aps-logo--mark { display: block; }
  [data-world="V5"] .v1-header__island { justify-content: space-between; }
  [data-world="V5"] .aps-header .v1-header__tel, [data-world="V5"] .aps-header .v1-header__book { display: none; }
  [data-world="V5"] .aps-burger { width: 48px; height: 48px; }
  /* auto-hide on scroll down, back on scroll up (public/scripts/site/chrome.js sets .is-tucked) */
  [data-world="V5"].aps-header { transition: transform .4s var(--v1-ease); }
  [data-world="V5"].aps-header.is-tucked { transform: translateY(calc(-100% - 16px)); }
}
@media (prefers-reduced-motion: reduce) {
  [data-world="V5"].aps-header { transition: none; }
}

/* ---------- the drawer (MobileMenu.astro) ---------- */
[data-world="V5"].aps-drawer { position: fixed; inset: 0; z-index: 50; background: rgba(8, 23, 28, .55); }
[data-world="V5"].aps-drawer[hidden] { display: none; }
[data-world="V5"] .aps-drawer__in { position: absolute; top: 0; right: 0; bottom: 0; width: min(440px, 100%); overflow-y: auto; overscroll-behavior: contain; padding: 18px 24px calc(28px + env(safe-area-inset-bottom)); background: var(--v1-paper); color: var(--v1-ink); }
[data-world="V5"] .aps-drawer__top { display: flex; align-items: center; justify-content: space-between; min-height: 60px; margin-bottom: 12px; }
[data-world="V5"] .aps-drawer__logo { width: 150px; height: auto; }
[data-world="V5"] .aps-drawer__close { position: relative; width: 48px; height: 48px; border: 0; border-radius: 50%; background: var(--v1-ink); cursor: pointer; }
[data-world="V5"] .aps-drawer__close span::before, [data-world="V5"] .aps-drawer__close span::after { content: ""; position: absolute; left: 14px; right: 14px; top: 23px; height: 2px; border-radius: 2px; background: var(--v1-paper); transform: rotate(45deg); }
[data-world="V5"] .aps-drawer__close span::after { transform: rotate(-45deg); }
[data-world="V5"] .aps-drawer__k { margin: 22px 0 6px; font: 500 12px/1.4 var(--v1-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--v1-muted-paper); }
[data-world="V5"] .aps-drawer__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 22px; }
[data-world="V5"] .aps-drawer__head { display: flex; align-items: center; min-height: var(--aps-tap); color: var(--v1-ink); font: 700 18px/1.15 var(--v1-display); text-decoration: none; }
[data-world="V5"] .aps-drawer__list { list-style: none; margin: 0; padding: 0; }
[data-world="V5"] .aps-drawer__list a { display: flex; align-items: center; min-height: 44px; color: var(--v1-ink); font-size: 16px; text-decoration: none; border-top: 1px solid var(--v1-line-paper); }
[data-world="V5"] .aps-drawer__pages { margin-top: 18px; }
[data-world="V5"] .aps-drawer__pages a { font: 700 20px/1.2 var(--v1-display); }
[data-world="V5"] .aps-drawer__ctas { display: grid; gap: 10px; margin-top: 26px; }
html.aps-locked, html.aps-locked body { overflow: hidden; }
@media (max-width: 420px) {
  [data-world="V5"] .aps-drawer__cols { grid-template-columns: 1fr; }
}

/* ---------- footer: the GATE 1 columns (the board footer had three) ---------- */
[data-world="V5"] .aps-footer__grid { grid-template-columns: 1.5fr 1fr 1.5fr 1fr 1fr; gap: 40px; }
[data-world="V5"] .aps-footer__split { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
[data-world="V5"] .aps-footer__split a { display: inline-flex; align-items: center; min-height: var(--aps-tap); color: var(--v1-paper); text-decoration: none; font-size: 17px; }
[data-world="V5"] .aps-footer__split a:hover { color: var(--v1-gold); }
[data-world="V5"] .aps-footer__hours { margin: 14px 0 0; display: grid; gap: 4px; color: var(--v1-muted-ink); }
[data-world="V5"] .aps-footer__hours div { display: flex; flex-wrap: wrap; gap: 0 12px; }
[data-world="V5"] .aps-footer__hours dt { min-width: 9.5em; }
[data-world="V5"] .aps-footer__hours dd { margin: 0; color: var(--v1-paper); white-space: nowrap; }
[data-world="V5"] .aps-footer__acts { display: flex; flex-wrap: wrap; gap: 4px 22px; margin-top: 10px; }
[data-world="V5"] .aps-footer__acts a { display: inline-flex; align-items: center; min-height: var(--aps-tap); color: var(--v1-link-ink); }
[data-world="V5"] .aps-footer__credit { margin-top: 6px; font-size: 15px; }
@media (max-width: 1199px) {
  [data-world="V5"] .aps-footer__grid { grid-template-columns: 1fr 1fr 1fr; }
  [data-world="V5"] .aps-footer__grid .v1-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  [data-world="V5"] .aps-footer__grid { grid-template-columns: 1fr; }
}

/* ---------- home-entity-routing: the R-18 category cards (the exact category string is the small H2, the display line large) ---------- */
[data-world="V5"] .aps-entity-kh { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin-bottom: 14px; }
[data-world="V5"] .aps-entity-kh > * { margin: 0; }
[data-world="V5"] .aps-entity-h2 { font: 500 13px/1.4 var(--v1-mono); letter-spacing: .14em; text-transform: uppercase; }
[data-world="V5"] .v1-regen .aps-entity-h2 { color: var(--v1-gold); }
[data-world="V5"] .v1-route .aps-entity-h2 { color: var(--v1-muted-paper); }
[data-world="V5"] .aps-entity-n { font: 500 13px/1.4 var(--v1-mono); letter-spacing: .14em; }
[data-world="V5"] .v1-regen .aps-entity-n { color: var(--v1-gold); }
[data-world="V5"] .v1-route .aps-entity-n { color: var(--v1-muted-paper); }
[data-world="V5"] .aps-entity-display { margin: 0 0 18px; }
[data-world="V5"] .v1-regen .aps-entity-display { margin-bottom: 22px; }
[data-world="V5"] span.v1-chip:hover { transform: none; }
[data-world="V5"] .v1-chips span.v1-chip:hover { background: rgba(255, 255, 255, .55); border-color: var(--v1-line-paper); }
[data-world="V5"] .v1-chips--ink span.v1-chip:hover { background: rgba(245, 241, 232, .06); color: var(--v1-paper); border-color: var(--v1-line-ink); }
[data-world="V5"] .v5-disclaimer p:first-child { margin-top: 0; }

/* ---------- home-stat-band: three verified cells in one row (the compliance list retired the two unverified counters) ---------- */
[data-world="V5"] .v1-odo.aps-odo--n3 { grid-template-rows: auto; }
[data-world="V5"] .v1-odo.aps-odo--n3 .v1-odo__cell--feat { grid-row: auto; }

/* ---------- home-insurance-strip: the Cherry link inside the featured panel ---------- */
[data-world="V5"] .aps-cherry { margin-top: 12px; }

/* ---------- the live GoHighLevel host (BookingForm.astro, once GHL_FORM_ID is set) ---------- */
[data-world="V5"] .aps-host--live { padding: 0; overflow: hidden; }
[data-world="V5"] .aps-ghl { display: block; width: 100%; min-height: 640px; border: 0; }

/* ---------- column hooks (the menus, the drawer, the footer's wide column) ---------- */
[data-world="V5"] .aps-mega__col, [data-world="V5"] .aps-drawer__col, [data-world="V5"] .aps-footer__col--wide { display: flex; flex-direction: column; min-width: 0; }
[data-world="V5"] .aps-drawer__nav { display: block; }
/* the category cards' display line on phones: the board's entity size floor (30 px), not the 40 px section H2 phone size */
@media (max-width: 767px) {
  [data-world="V5"] .aps-entity-display { font-size: 30px; }
}

/* ── FXB (GATE 2 fix pass, 2026-10-24) ── */
/* ADJUST 2: an in-paragraph link inside the dark regenerative card reads in the board's on-ink link colour (as on every ink
   band, world.css .v1-band--ink a), underline kept */
[data-world="V5"] .v1-regen a:not(.v1-btn) { color: var(--v1-link-ink); text-decoration: underline; text-underline-offset: 3px; }
/* ADJUST 5: the journal card title is the card's own ink / cream (the mockup sets the title text, not link blue); underline kept */
[data-world="V5"] .pt-post__h a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .14em; }
/* contact: the "talk it through" line on the paper booking host reads in ink (it inherited the hero's paper colour: 1.00) */
[data-world="V5"] .ct-host .v1-host__note { color: var(--v1-ink); }
/* ADJUST 4: the condition cost panel with two cells (R-24: no insurance cell) is a two-column grid, no empty third cell */
@media (min-width: 768px) {
  [data-world="V5"] .ptc-cost__rows--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* the byline dot stays beside the first line of the byline when the text wraps (it sat alone above it at 390) */
[data-world="V5"] .ptc-byline { flex-wrap: nowrap; align-items: flex-start; }
[data-world="V5"] .ptc-byline__dot { flex: none; margin-top: calc((1.5em - 8px) / 2); }
/* ── /FXB ── */
