/* ===========================================================================
   fft.css — Focus Financial Team design system (oklch dark theme)
   Loaded by the fft layout; site inherits brand colors via BrandCssVarsService.
   Fonts loaded by the fft layout via <link>; no @import needed here.
   =========================================================================== */
:root {
  --background-50: .1 0 0;
  --background-100: .12 0 0;
  --background-200: .15 0 0;
  --background-300: .18 0 0;
  --background-400: .22 0 0;
  --background-500: .25 0 0;
  --background-600: .3 0 0;
  --background-700: .35 0 0;
  --background-800: .4 0 0;
  --background-900: .45 0 0;
  --background-950: .08 0 0;
  --primary-50: .9 .05 80;
  --primary-100: .85 .08 80;
  --primary-200: .8 .1 80;
  --primary-300: .75 .11 80;
  --primary-400: .7 .12 80;
  --primary-500: .65 .13 80;
  --primary-600: .58 .12 80;
  --primary-700: .5 .11 80;
  --primary-800: .42 .1 80;
  --primary-900: .35 .08 80;
  --primary-950: .28 .06 80;
  --accent-50: .95 .03 85;
  --accent-100: .9 .04 85;
  --accent-200: .85 .06 85;
  --accent-300: .8 .08 85;
  --accent-400: .75 .09 85;
  --accent-500: .7 .1 85;
  --accent-600: .65 .09 85;
  --accent-700: .58 .08 85;
  --accent-800: .5 .07 85;
  --accent-900: .42 .06 85;
  --accent-950: .35 .05 85;
  --secondary-50: .35 .02 0;
  --secondary-100: .38 .02 0;
  --secondary-200: .42 .02 0;
  --secondary-300: .46 .02 0;
  --secondary-400: .5 .02 0;
  --secondary-500: .55 .02 0;
  --secondary-600: .6 .02 0;
  --secondary-700: .65 .02 0;
  --secondary-800: .7 .02 0;
  --secondary-900: .75 .02 0;
  --secondary-950: .3 .02 0;
  --foreground-50: .98 .01 85;
  --foreground-100: .95 .02 85;
  --foreground-200: .9 .02 85;
  --foreground-300: .85 .02 85;
  --foreground-400: .8 .02 85;
  --foreground-500: .75 .02 85;
  --foreground-600: .7 .02 85;
  --foreground-700: .65 .02 85;
  --foreground-800: .6 .02 85;
  --foreground-900: .55 .02 85;
  --foreground-950: .5 .02 85;
  --font-heading: "Playfair Display", "Georgia", serif;
  --font-body: "DM Sans", "Inter", sans-serif;
  --font-label: "DM Sans", "Inter", sans-serif;
}

html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  background-color: oklch(var(--background-50));
  color: oklch(var(--foreground-100));
}
h1,h2,h3,h4,h5,h6 { font-family: var(--font-heading); color: oklch(var(--foreground-100)); }
::selection { background-color: oklch(var(--primary-500) / .3); color: oklch(var(--foreground-100)); }
a { color: oklch(var(--primary-400)); }
a:hover { color: oklch(var(--primary-300)); }

/* Theme header/footer overrides for McontrolBase */
.theme-header { display: none !important; }
.theme-footer { display: none !important; }
.theme-main { padding-top: 0; }

/* Page-level utility classes */
.fft-section { padding: 5rem 0; }
.fft-container { max-width: 1200px; margin: 0 auto; padding: 0 2rem; }
.fft-card {
  background: oklch(var(--background-100));
  border: 1px solid oklch(var(--background-200) / .5);
  border-radius: 0.5rem;
  padding: 1.5rem;
  transition: all 0.3s;
}
.fft-card:hover {
  border-color: oklch(var(--primary-400) / .4);
  box-shadow: 0 0 25px oklch(var(--primary-500) / .08);
}
.fft-btn {
  display: inline-flex;
  align-items: center;
  background: oklch(var(--primary-500));
  color: oklch(var(--background-950));
  font-weight: 600;
  border: none;
  padding: 1rem 2rem;
  border-radius: 9999px;
  font-family: var(--font-body);
  cursor: pointer;
  transition: all 0.3s;
  text-decoration: none;
  font-size: 0.9rem;
}
.fft-btn:hover {
  background: oklch(var(--primary-400));
  transform: scale(1.05);
}
.fft-divider { width: 60px; height: 3px; background: oklch(var(--primary-500)); margin: 1rem 0; }

/* ── Page Hero (banner) — shared inner-page header, see element/fft_page_hero.php ── */
.fft-pagehero { position: relative; padding: 9rem 0 4rem; overflow: hidden; }
.fft-pagehero:not(.has-image) { background: oklch(var(--background-950)); }
.fft-pagehero .fft-hero-bg { position: absolute; inset: 0; z-index: 0; }
.fft-pagehero .fft-hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.fft-pagehero .fft-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, oklch(var(--background-950) / .95), oklch(var(--background-950) / .75) 55%, oklch(var(--background-950) / .5));
}
.fft-pagehero-content { position: relative; z-index: 1; max-width: 720px; }
.fft-pagehero-eyebrow {
  display: inline-flex; align-items: center; gap: .6rem;
  font-size: .75rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase;
  color: oklch(var(--primary-400)); margin-bottom: 1rem;
}
.fft-pagehero-eyebrow .fft-eyebrow-line { width: 28px; height: 2px; background: oklch(var(--primary-500)); display: inline-block; }
.fft-pagehero-title {
  font-size: clamp(2.25rem, 4vw, 3.25rem); font-weight: 700; line-height: 1.15;
  margin: 0 0 1rem; color: oklch(var(--foreground-100));
}
.fft-pagehero-title .fft-hl {
  color: transparent;
  background: linear-gradient(to right, oklch(var(--primary-400)), oklch(var(--primary-500)), oklch(var(--accent-500)));
  -webkit-background-clip: text; background-clip: text;
}
.fft-pagehero-sub { font-size: 1.05rem; line-height: 1.65; color: oklch(var(--foreground-300)); max-width: 560px; margin: 0; }

/* Readdy animations */
@keyframes goldShimmerSweep {
  0% { background-position: 200% 0; }
  to { background-position: -200% 0; }
}
@keyframes sparkleTwinkle {
  0%,to { opacity: .3; }
  25% { opacity: .8; }
  50% { opacity: .4; }
  75% { opacity: 1; }
}
@keyframes goldRingPulse {
  0% { box-shadow: 0 0 0 0 oklch(var(--primary-500) / .4); }
  70% { box-shadow: 0 0 0 12px oklch(var(--primary-500) / 0); }
  to { box-shadow: 0 0 0 0 oklch(var(--primary-500) / 0); }
}

.gold-shimmer-text {
  background: linear-gradient(105deg, oklch(var(--primary-500)/.4) 0%, oklch(var(--primary-400)/.6) 15%, oklch(var(--accent-400)/.75) 30%, oklch(var(--primary-300)/.65) 45%, oklch(var(--primary-500)/.45) 55%, oklch(var(--accent-500)/.7) 70%, oklch(var(--primary-400)/.55) 85%, oklch(var(--primary-500)/.4) 100%);
  color: transparent;
  text-shadow: 0 0 40px oklch(var(--primary-500)/.25), 0 0 80px oklch(var(--accent-500)/.2), 0 0 120px oklch(var(--primary-400)/.15);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  animation: 4s ease-in-out infinite goldShimmerSweep;
}
.gold-shimmer-text:before, .gold-shimmer-text:after {
  content: "";
  pointer-events: none;
  position: absolute;
}
.gold-shimmer-text:before {
  background: linear-gradient(105deg, transparent 0%, oklch(var(--accent-400)/.4) 40%, oklch(var(--primary-300)/.55) 50%, oklch(var(--accent-400)/.4) 60%, transparent 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  animation: 4s ease-in-out .3s infinite goldShimmerSweep;
  inset: 0;
}
.gold-sparkle { position: relative; }
.gold-sparkle:after {
  content: "";
  pointer-events: none;
  background: radial-gradient(circle at 20% 30%, oklch(var(--accent-400)/.85) 0%, transparent 2px), radial-gradient(circle at 70% 60%, oklch(var(--primary-400)/.9) 0%, transparent 1.5px), radial-gradient(circle at 40% 80%, oklch(var(--accent-500)/.85) 0%, transparent 2px), radial-gradient(circle at 85% 20%, oklch(var(--primary-300)/.9) 0%, transparent 1.5px), radial-gradient(circle at 55% 45%, oklch(var(--accent-400)/.85) 0%, transparent 2px), radial-gradient(circle at 10% 70%, oklch(var(--primary-400)/.85) 0%, transparent 1.5px);
  animation: 2.5s ease-in-out infinite sparkleTwinkle;
  position: absolute;
  inset: 0;
}
.gold-ring {
  box-shadow: 0 0 0 0 oklch(var(--primary-500) / .4);
  animation: 2.5s ease-out infinite goldRingPulse;
}
.honeypot-field { opacity:0; pointer-events:none; position:absolute; top:-9999px; left:-9999px; }

/* =========================================================================
   Urban Survivor HQ — shared design system (.ush-*)
   Palette: black #0D0D0D · charcoal #1A1A1A · gold #D4AF37 · warm white #F5F5F5
            deep green #1E5D3B (accent). Montserrat headings, Inter body.
   Used by every USHQ sub-page so they match the homepage.
   ========================================================================= */
.ush { --ush-black:#0D0D0D; --ush-charcoal:#1A1A1A; --ush-charcoal-2:#111; --ush-gold:#D4AF37; --ush-white:#F5F5F5; --ush-green:#1E5D3B; --ush-muted:#9a9a9a; --ush-line:rgba(255,255,255,.06);
  font-family:'Inter',sans-serif; color:var(--ush-white); background:var(--ush-black); }
.ush h1,.ush h2,.ush h3,.ush h4,.ush .mont { font-family:'Montserrat',sans-serif; }
.ush a { color:inherit; }
.ush ::selection { background:var(--ush-gold); color:var(--ush-black); }

.ush-section { padding:5.5rem 2rem; }
.ush-section--tight { padding:4rem 2rem; }
.ush-wrap { max-width:1280px; margin:0 auto; }
.ush-wrap--narrow { max-width:820px; margin:0 auto; }
.ush-eyebrow { font-family:'Montserrat',sans-serif; font-weight:700; font-size:.8rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ush-gold); }
.ush-sec-head { text-align:center; max-width:660px; margin:0 auto 3rem; }
.ush-sec-head h2 { font-size:clamp(1.7rem,3vw,2.4rem); font-weight:800; letter-spacing:-.01em; margin:.5rem 0 .75rem; }
.ush-sec-head p { color:var(--ush-muted); font-size:1rem; line-height:1.65; }
@media(max-width:768px){ .ush-section{ padding:3.5rem 1.25rem; } }

/* Buttons + links */
.ush-btn-gold { font-family:'Montserrat',sans-serif; display:inline-flex; align-items:center; gap:.5rem; background:var(--ush-gold); color:var(--ush-black); padding:.9rem 1.7rem; border-radius:6px; font-weight:700; font-size:.9rem; text-decoration:none; border:none; cursor:pointer; transition:box-shadow .2s,transform .2s; }
.ush-btn-gold:hover { box-shadow:0 0 22px rgba(212,175,55,.5); transform:translateY(-1px); color:var(--ush-black); }
.ush-btn-outline { font-family:'Montserrat',sans-serif; display:inline-flex; align-items:center; gap:.5rem; background:transparent; color:var(--ush-white); padding:.9rem 1.7rem; border:1px solid rgba(245,245,245,.35); border-radius:6px; font-weight:600; font-size:.9rem; text-decoration:none; transition:border-color .2s,background .2s; }
.ush-btn-outline:hover { border-color:var(--ush-gold); background:rgba(212,175,55,.08); color:var(--ush-white); }
.ush-link-gold { color:var(--ush-gold); font-weight:600; font-size:.85rem; text-decoration:none; display:inline-flex; align-items:center; gap:.35rem; }
.ush-link-gold:hover { color:#e6c76a; }

/* Sub-page hero */
.ush-phero { position:relative; padding:9rem 2rem 4rem; text-align:center; overflow:hidden; background:linear-gradient(180deg,#0d0d0d,#141414); border-bottom:1px solid rgba(212,175,55,.12); }
.ush-phero::after { content:''; position:absolute; inset:0; background:radial-gradient(600px 300px at 50% -10%, rgba(212,175,55,.10), transparent 70%); pointer-events:none; }
.ush-phero__inner { position:relative; max-width:760px; margin:0 auto; }
.ush-phero h1 { font-size:clamp(2.2rem,4.5vw,3.4rem); font-weight:800; line-height:1.08; letter-spacing:-.02em; margin:1rem 0 1rem; }
.ush-phero p { color:#c9c9c9; font-size:1.1rem; line-height:1.6; max-width:560px; margin:0 auto; }

/* Card grid */
.ush-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.ush-cards--2 { grid-template-columns:repeat(2,1fr); }
.ush-cards--4 { grid-template-columns:repeat(4,1fr); }
@media(max-width:900px){ .ush-cards,.ush-cards--4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:560px){ .ush-cards,.ush-cards--2,.ush-cards--4{ grid-template-columns:1fr; } }
.ush-card { background:var(--ush-charcoal); border:1px solid var(--ush-line); border-radius:12px; overflow:hidden; text-decoration:none; color:inherit; display:flex; flex-direction:column; transition:border-color .25s,transform .25s; }
.ush-card:hover { border-color:rgba(212,175,55,.4); transform:translateY(-3px); }
.ush-card__body { padding:1.35rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.ush-card h3 { font-size:1.1rem; font-weight:700; line-height:1.3; }
.ush-card p { color:var(--ush-muted); font-size:.9rem; line-height:1.55; }
.ush-img-ph { background:linear-gradient(135deg,var(--ush-charcoal),var(--ush-black)); display:flex; align-items:center; justify-content:center; color:#3a3a3a; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; aspect-ratio:16/10; }
.ush-pill { display:inline-block; align-self:flex-start; padding:.2rem .6rem; border-radius:4px; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; background:rgba(212,175,55,.15); color:var(--ush-gold); }

/* Icon disc */
.ush-disc { width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(30,93,59,.18); color:var(--ush-gold); }

/* Prose (text-heavy pages) */
.ush-prose { color:#d3d3d3; font-size:1rem; line-height:1.8; }
.ush-prose h2 { color:var(--ush-white); font-size:1.6rem; font-weight:800; margin:2.5rem 0 1rem; }
.ush-prose h3 { color:var(--ush-white); font-size:1.2rem; font-weight:700; margin:2rem 0 .75rem; }
.ush-prose p { margin-bottom:1.15rem; }
.ush-prose ul { margin:0 0 1.15rem 1.1rem; }
.ush-prose li { margin-bottom:.5rem; }
.ush-prose a { color:var(--ush-gold); }

/* Stat band */
.ush-stats { background:var(--ush-charcoal); border-top:1px solid rgba(212,175,55,.12); border-bottom:1px solid rgba(212,175,55,.12); padding:2.25rem 2rem; }
.ush-stats__grid { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; text-align:center; }
.ush-stats .n { font-family:'Montserrat',sans-serif; font-weight:800; font-size:1.8rem; color:var(--ush-gold); line-height:1; }
.ush-stats .l { font-size:.8rem; color:var(--ush-muted); margin-top:.4rem; }
@media(max-width:768px){ .ush-stats__grid{ grid-template-columns:repeat(2,1fr); gap:1.75rem; } }

/* CTA band */
.ush-cta { text-align:center; background:linear-gradient(135deg,var(--ush-green),#134028); }
.ush-cta h2 { font-size:clamp(1.7rem,3vw,2.3rem); font-weight:800; margin-bottom:.75rem; }
.ush-cta p { color:rgba(245,245,245,.85); margin-bottom:1.75rem; max-width:520px; margin-left:auto; margin-right:auto; line-height:1.6; }

/* Inline form */
.ush-form { display:flex; gap:.6rem; max-width:480px; margin:0 auto; flex-wrap:wrap; justify-content:center; position:relative; }
.ush-form input[type=email],.ush-form input[type=text],.ush-form input[type=tel],.ush-form textarea { flex:1; min-width:220px; background:var(--ush-black); border:1px solid rgba(245,245,245,.2); border-radius:6px; padding:.9rem 1.1rem; color:#fff; font-size:.9rem; outline:none; }
.ush-form input:focus,.ush-form textarea:focus { border-color:rgba(212,175,55,.5); }

/* Two-column feature */
.ush-split { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
@media(max-width:768px){ .ush-split{ grid-template-columns:1fr; gap:2rem; } }

/* Urban Survivor HQ — ShopCell skin (overrides the --shop-* base). */
.ush .shop-cell, .shop-cell {
  --shop-fg: #F5F5F5;
  --shop-muted: #9a9a9a;
  --shop-card-bg: #1A1A1A;
  --shop-card-border: rgba(255,255,255,.06);
  --shop-accent: #D4AF37;
  --shop-accent-fg: #0D0D0D;
  --shop-media-bg: #111;
  --shop-radius: 12px;
}

/* ============================================================================
   Amazon affiliate product card (AAWP-style) — image left, 3 bullets, price rail
   Used by templates/Urbansurvivor/shop.php. Dark theme, gold accents.
   ============================================================================ */
.ush-cards--aff { display:grid; grid-template-columns:repeat(auto-fill,minmax(440px,1fr)); gap:1rem; }
@media (max-width:560px){ .ush-cards--aff { grid-template-columns:1fr; } }

.ush-acard { position:relative; display:flex; gap:1rem; padding:1rem 1.1rem; align-items:stretch; text-align:left; }
.ush-acard:hover { border-color:rgba(212,175,55,.4); transform:translateY(-3px); }
.ush-acard__media { flex:0 0 132px; width:132px; align-self:flex-start; aspect-ratio:1/1; background:#fff; border-radius:8px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ush-acard__media img { max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.ush-acard__body { flex:1; min-width:0; display:flex; flex-direction:column; gap:.55rem; }
.ush-acard__title { font-weight:700; color:var(--ush-gold); line-height:1.32; font-size:1rem; text-decoration:none; }
.ush-acard__title:hover { text-decoration:underline; }
.ush-acard__bullets { margin:0; padding-left:1.05rem; color:var(--ush-muted); font-size:.8rem; line-height:1.45; display:flex; flex-direction:column; gap:.2rem; }
.ush-acard__bullets li { list-style:disc; }
.ush-acard__foot { margin-top:auto; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.6rem; padding-top:.5rem; }
.ush-acard__price { display:flex; align-items:baseline; gap:.4rem; flex-wrap:wrap; }
.ush-acard__strike { color:#7c7c7c; text-decoration:line-through; font-size:.85rem; }
.ush-acard__disc { background:var(--ush-green); color:#fff; font-size:.72rem; font-weight:700; padding:.12rem .4rem; border-radius:4px; }
.ush-acard__now { font-weight:800; font-size:1.2rem; color:var(--ush-white); }
.ush-acard__prime { color:#4aa3ff; font-size:.72rem; font-weight:700; letter-spacing:.02em; }
.ush-acard__buy { display:inline-flex; align-items:center; gap:.4rem; padding:.5rem .9rem; font-size:.82rem; white-space:nowrap; }
.ush-acard__sale { position:absolute; top:0; right:0; background:var(--ush-green); color:#fff; font-size:.68rem; font-weight:800; letter-spacing:.06em; padding:.22rem .6rem; border-bottom-left-radius:8px; }
.ush-acard__fine { font-size:.68rem; color:#6f6f6f; }
.ush-acard__blurb { margin:0; color:var(--ush-muted); font-size:.82rem; line-height:1.5; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }


/* Urban storefront content shares the existing gold/charcoal design system.
   Scope every addition to .ush so other Master Control tenants are unaffected. */
.ush-home-hero { position:relative; min-height:76vh; display:flex; align-items:center; padding:9rem 0 5rem; overflow:hidden; }
.ush-home-hero__image,.ush-home-hero__shade { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ush-home-hero__shade { background:linear-gradient(90deg,rgba(13,13,13,.82),rgba(13,13,13,.35) 60%,rgba(13,13,13,.12)); }
.ush-home-hero__content { position:relative; width:100%; }
.ush-home-hero h1 { max-width:720px; font-size:clamp(2.4rem,5vw,4.5rem); line-height:1.1; font-weight:800; margin:1rem 0; }
.ush-home-hero p { max-width:540px; color:#e0e0e0; font-size:1.15rem; line-height:1.7; }
.ush .ush-actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:1.5rem; }
.ush .ush-content-image { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.ush .ush-feature-image { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; border-radius:12px; }
.ush-help { padding-top:9rem; }
.ush-help .ush-help__title { font-size:clamp(2rem,4vw,3rem); font-weight:800; }
.ush-help .ush-prose h2:first-child { margin-top:0; }
.ush .ush-support { display:block; }
.ush .ush-support__label { display:block; margin-bottom:.4rem; color:#d3d3d3; }
.ush .ush-support__field { width:100%; background:var(--ush-black); color:var(--ush-white); border:1px solid #6d6d6d; padding:.8rem; border-radius:6px; }
.ush .ush-support__field:focus { border-color:var(--ush-gold); box-shadow:0 0 0 2px rgba(212,175,55,.25); }
.ush a:focus-visible,.ush button:focus-visible { outline:2px solid var(--ush-gold); outline-offset:4px; }
.ush-footer-grid { max-width:1280px; margin:0 auto; padding:4rem 2rem 2rem; display:grid; grid-template-columns:1.4fr 1fr 1.4fr; gap:3rem; }
@media(max-width:768px) { .ush-home-hero { min-height:640px; } .ush-home-hero__image { object-position:64% center; } .ush-footer-grid { grid-template-columns:1fr; gap:2rem; } }
@media(prefers-reduced-motion:reduce) { .ush *, .ush-footer-grid * { transition:none!important; scroll-behavior:auto!important; } }
@media print { header,footer,.ush-help nav,.ush-help .ush-support { display:none!important; } .ush-help { padding-top:0; } .ush,.ush-help .ush-card { background:white!important; color:black!important; } .ush-help .ush-prose,.ush-help h1,.ush-help h2,.ush-help a { color:black!important; } }


/* Decorative header photos only. Existing banner dimensions, text, page grids,
   cards and forms are the original Git layouts. Home/Books are not restyled. */
.ush-phero--image > .ush-top-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.ush-phero--image::before { content:''; position:absolute; inset:0; background:rgba(0,0,0,.62); z-index:1; }
.ush-phero--image > .ush-phero__inner { z-index:2; }
.ush-help { position:relative; isolation:isolate; }
.ush-help__top-image { position:absolute; top:0; left:0; right:0; height:360px; overflow:hidden; z-index:-1; }
.ush-help__top-image img { width:100%; height:100%; object-fit:cover; }
.ush-help__top-image::after { content:''; position:absolute; inset:0; background:linear-gradient(rgba(0,0,0,.72),rgba(0,0,0,.68) 70%,#0d0d0d); }
@media print { .ush-help__top-image { display:none; } }
