/* OFF-7 build-owned landing CSS — the bits CD's pillar-landing.css (kept 1:1) can't carry.
   Shared by the pillar landings (views/landing/shell.php) AND the public-T1 catalogue
   chrome (views/landing/layout/*, via MY_Loader::template_landing). Single source. */

/* DH batch-6 #1: the landing templates ship no CSS reset, so the UA default body{margin:8px}
   left the sticky header sitting at top:8px — a real defect that (with browser scroll
   restoration on repeat catalogue navigations) shows as a growing top gap. Zero it. */
body { margin: 0; }

/* mobile-nav hamburger <=860px (CD CSS hides desktop nav, ships no drawer) */
.pl-navtoggle { display:none; background:none; border:0; color:#fff; font-size:24px; line-height:1; cursor:pointer; min-width:44px; min-height:44px; }
@media (max-width:860px){
    .pl-header__inner { position:relative; }
    .pl-navtoggle { display:inline-flex; align-items:center; justify-content:center; order:3; }
    .pl-nav { position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:flex-start; gap:0; background:var(--navy,#071E32); padding:8px 32px 16px; box-shadow:0 12px 24px rgba(7,30,50,.3); z-index:40; }
    .pl-nav:not(.is-open) { display:none; }
    .pl-nav.is-open { display:flex; }
    .pl-nav__link { padding:12px 0; width:100%; }
}
/* A3 mobile hero "clip" fix <=600px: the header row (logo + Sign in + Request access +
   hamburger) doesn't fit a phone width, overflowing and pushing the whole page wider ->
   everything looks clipped. Both CTAs are full-width in the hero below, so drop the
   redundant header CTAs on mobile (bar = logo + hamburger) + a defensive hero text-wrap. */
@media (max-width:600px){
    .pl-header__cta { display:none; }
    .pl-hero__inner { box-sizing:border-box; max-width:100%; }
    .pl-hero__body  { max-width:100%; }
    .pl-hero__title { overflow-wrap:break-word; word-wrap:break-word; hyphens:auto; }
    .pl-hero__sub   { overflow-wrap:break-word; }
}
/* A2 Solutions directory tiles (DH §3 — typographic tile): capability eyebrow + partner
   name large on an accent-tinted card; differentiates the 10 identical globe cards. */
.pl-card--tile { display:flex; flex-direction:column; justify-content:center; gap:8px;
    min-height:190px; padding:24px; border-radius:var(--radius,14px);
    background:linear-gradient(150deg, var(--pl-fill,#EAF0FB), #fff);
    border:1px solid rgba(11,27,43,.10); text-decoration:none;
    transition:transform .15s ease, box-shadow .15s ease; }
.pl-card--tile:hover { transform:translateY(-2px); box-shadow:0 14px 30px rgba(7,30,50,.12); }
.pl-tile__cap { font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--pl-base,#1E5FC4); }
.pl-tile__name { font-size:23px; font-weight:800; line-height:1.12; color:var(--ink,#0B1B2B); letter-spacing:-0.01em; }
.pl-tile__meta { font-size:13px; color:var(--muted,#595959); }
/* A4 territory chip on catalogue cards (one high-level label; full matrix stays T2). */
.pl-card__territory { margin-top:4px; display:inline-block; align-self:flex-start;
    font-size:11px; font-weight:600; line-height:1.2; color:var(--pl-base,#0B599C);
    background:var(--pl-fill,rgba(11,89,156,.08)); border-radius:4px; padding:2px 7px; }
/* honeypot (off-screen, NOT display:none -> a11y-safe) + privacy note */
.pl-hp { position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.pl-form__privacy { margin:12px 0 0; font-size:13px; line-height:1.5; color:var(--muted,#595959); }
.pl-form__privacy a { color:var(--accent,#0B599C); text-decoration:underline; }

/* OFF-7 (option b) — public-T1 listing detail in landing chrome (T1 summary / T2 gate / T3 deal) */
.pl-dtl__inner { max-width:1080px; margin:0 auto; padding:40px 32px 72px; }
.pl-dtl__crumbs { font-size:13px; color:var(--muted,#595959); margin-bottom:24px; }
.pl-dtl__crumbs a { color:var(--accent,#0B599C); text-decoration:none; }
/* DH batch-3 #2: {Pillar}/{Category} breadcrumb on the public category grid (container-aligned) */
.bc-crumbs { max-width:var(--container,1200px); margin:0 auto; padding:22px 32px 0; font-size:13px; color:var(--muted,#595959); }
.bc-crumbs a { color:var(--accent,#0B599C); text-decoration:none; }
.bc-crumbs a:hover { text-decoration:underline; }
/* DH batch-4 #3: pagination controls on the category grid + pillar-wide aggregate */
.bc-pager { max-width:var(--container,1200px); margin:8px auto 0; padding:8px 32px 72px; display:flex; align-items:center; justify-content:center; gap:20px; }
.bc-pager__link { color:var(--accent,#0B599C); text-decoration:none; font-weight:600; font-size:14px; }
.bc-pager__link:hover { text-decoration:underline; }
.bc-pager__link--off { color:var(--muted,#9aa4ad); pointer-events:none; }
.bc-pager__page { font-size:13px; color:var(--muted,#595959); }
.pl-dtl__head { display:grid; grid-template-columns:320px 1fr; gap:40px; align-items:start; }
.pl-dtl__art { position:relative; aspect-ratio:2/3; border-radius:var(--radius,14px); overflow:hidden; background:var(--navy,#071E32); display:flex; align-items:center; justify-content:center; }
.pl-dtl__art img { width:58%; height:auto; opacity:.5; }
.pl-dtl__art .pl-card__badge { position:absolute; top:12px; left:12px; }
.pl-dtl__title { font-size:clamp(28px,3.4vw,40px); font-weight:800; line-height:1.1; color:var(--ink,#0B1B2B); margin:0 0 8px; letter-spacing:-0.01em; }
.pl-dtl__terr { display:inline-block; font-size:12px; font-weight:600; color:var(--accent,#0B599C); background:var(--bg-subtle,#F1F5FB); border-radius:5px; padding:3px 9px; margin:0 0 16px; }
.pl-dtl__synopsis { font-size:16px; line-height:1.6; color:var(--text,#333); margin:0 0 24px; max-width:62ch; }
.pl-dtl__summary { display:grid; grid-template-columns:repeat(2,1fr); gap:8px 32px; margin:0; max-width:560px; }
.pl-dtl__srow { display:flex; gap:10px; border-bottom:1px solid rgba(11,27,43,.08); padding-bottom:8px; }
.pl-dtl__srow dt { font-size:13px; font-weight:700; color:var(--muted,#595959); min-width:84px; margin:0; }
.pl-dtl__srow dd { font-size:14px; color:var(--ink,#0B1B2B); margin:0; }
.pl-dtl__gate, .pl-dtl__deal { margin-top:36px; padding:28px; border-radius:var(--radius,14px); }
.pl-dtl__gate { background:var(--bg-subtle,#F1F5FB); border:1px solid rgba(11,27,43,.08); }
.pl-dtl__deal { background:var(--navy,#071E32); }
.pl-dtl__gate h2, .pl-dtl__deal h2 { font-size:20px; font-weight:800; margin:0 0 8px; }
.pl-dtl__deal h2 { color:#fff; }
.pl-dtl__gate p { color:var(--text,#333); margin:0 0 16px; }
.pl-dtl__deal p { color:rgba(255,255,255,.82); margin:0 0 18px; }
.pl-dtl__gatecta { display:flex; gap:12px; flex-wrap:wrap; }
@media (max-width:760px){ .pl-dtl__head { grid-template-columns:1fr; } .pl-dtl__art { max-width:240px; } .pl-dtl__summary { grid-template-columns:1fr; } }
.pl-dtl__art--real { background:var(--bg-subtle,#F1F5FB); }
.pl-dtl__art--real img { width:100%; height:100%; object-fit:cover; opacity:1; }

/* OFF-7 (option b) — public-T1 catalogue browse grid in landing chrome */
.pl-browse-page__inner { max-width:1200px; margin:0 auto; padding:40px 32px 72px; }
.pl-browse-page__eyebrow { color:var(--pl-base,#0B599C); }
.pl-browse-page__title { font-size:clamp(28px,3.4vw,40px); font-weight:800; color:var(--ink,#0B1B2B); margin:6px 0 28px; letter-spacing:-0.01em; }
.pl-browse-page__empty { color:var(--muted,#595959); }
.pl-browse-page__empty a { color:var(--accent,#0B599C); }
.pl-grid--browse { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:24px; }
@media (max-width:600px){ .pl-grid--browse { grid-template-columns:repeat(2,1fr); gap:14px; } }

/* DH #5/#6: make the landing CHROME colours authoritative on every public-T1 page
   (header/footer are navy -> white text), independent of load-order/cascade — staging
   computed the dark body --text (#3D4754) on the catalogue nav/sign-in. Same values CD
   intends; no visual change on the already-white landings. Plus the CD logo bump 22->28. */
.pl .pl-header .pl-nav__link { color: rgba(255,255,255,0.62); }
.pl .pl-header .pl-nav__link:hover,
.pl .pl-header .pl-nav__link--active { color: #fff; }
.pl .pl-header .pl-btn--outline-light { color: #fff; }
.pl .pl-header .pl-logo img { height: 40px; }
.pl .pl-footer__nav a { color: rgba(255,255,255,0.72); }
.pl .pl-footer__nav a:hover { color: #fff; }

/* DH batch-2 #6/#7: landing curated rows = 5-up at desktop so the bc-cards match the browse
   card size (the curated rows carry exactly 5 picks); CD responsive steps down below 1080. */
@media (min-width: 1080px) { .pl-row .pl-grid { grid-template-columns: repeat(5, 1fr); } }

/* DH batch-2 #4: footer legal links (restored prod Privacy/Terms/FAQs/Support). */
.pl .pl-footer__legal { display:flex; flex-wrap:wrap; gap:14px 20px; }
.pl .pl-footer__legal a { color:rgba(255,255,255,0.72); font-size:13.5px; text-decoration:none; }
.pl .pl-footer__legal a:hover { color:#fff; }
