:root{
  --maroon:#7A1F2B;
  --gold:#C8A24A;
  --gold-strong:#EBD9A2;
  --gray:#6B7280;
  --white:#FFFFFF;
  --bg:#111216;
  --panel:#171923;

  --headline:#FFFFFF;
  --subhead:#EBD9A2;
  --body:#E9EAED;
}

*{box-sizing:border-box}
html,body{
  margin:0;
  padding:0;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",Helvetica,sans-serif;
  color:var(--body);
  background:linear-gradient(180deg,#0d0e12 0%,#13151c 100%);
}

a{color:var(--gold);text-decoration:none}
a:hover{text-decoration:underline}

.container{width:min(1200px,92vw);margin:0 auto}

/* Header & Brand */
header.navbar{
  position:sticky;top:0;z-index:999;
  backdrop-filter:blur(8px);
  background:rgba(17,18,22,.85);
  border-bottom:1px solid rgba(200,162,74,.25);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:12px 0;gap:16px}
.brand{display:flex;align-items:center;gap:12px}
.brand-text .title{font-weight:700;font-size:22px;letter-spacing:.2px;color:var(--gold)}
.brand-text .tagline{font-size:12px;color:var(--gold)}

.logo-badge{
  display:inline-flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:14px;
  background:var(--maroon);
  border:1px solid rgba(200,162,74,.45);
  box-shadow:0 4px 12px rgba(0,0,0,.25);
  overflow:hidden;
}
.logo-badge img{width:50px;height:50px;object-fit:cover;border-radius:12px}

/* Nav: gold tabs */
nav ul{list-style:none;display:flex;gap:12px;padding:0;margin:0;flex-wrap:wrap}
nav a{
  display:inline-block;padding:8px 12px;border-radius:999px;border:1px solid transparent;
  color:var(--gold);
}
nav a.active, nav a:hover{
  border-color:rgba(200,162,74,.6);
  background:rgba(122,31,43,.15);
  color:var(--gold);
}

/* Hero & general */
.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:center;padding:40px 0 24px}
.hero-card{
  background:linear-gradient(180deg,rgba(122,31,43,.25),rgba(23,25,35,.9));
  border:1px solid rgba(200,162,74,.25);border-radius:18px;padding:28px;
  box-shadow:0 10px 35px rgba(0,0,0,.45);
}
.headline{margin:8px 0 12px;font-size:clamp(28px,4vw,44px);line-height:1.1;color:var(--headline)}
.lead{color:#f2f3f5}
.hero p{color:#e9eaed;opacity:.95;font-size:16px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.button{display:inline-block;padding:10px 14px;border-radius:10px;font-weight:600;border:1px solid rgba(200,162,74,.45)}
.button.primary{background:var(--maroon);color:var(--white)}
.button.secondary{background:transparent;color:var(--gold)}
.button:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(122,31,43,.25)}

.card{background:var(--panel);border:1px solid rgba(200,162,74,.18);border-radius:16px;padding:20px}
.grid{display:grid;gap:16px}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:960px){.hero{grid-template-columns:1fr}.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid,.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}

.section{display:none;padding:28px 0 40px}
.section.active{display:block}

/* Titles & contrast */
h2.section-title{font-size:clamp(22px,3vw,32px);margin:8px 0 14px;color:var(--gold)}
.subhead{color:var(--subhead);margin:6px 0 4px}
.subhead-strong{color:var(--subhead);font-weight:700}
.muted{color:#c2c6cf}
.kicker{color:#e7d8af;text-transform:uppercase;font-size:12px;letter-spacing:1.6px}

/* Circular headshot */
.avatar{
  width:220px;height:220px;object-fit:cover;border-radius:50%;
  border:4px solid var(--gold);
  background:radial-gradient(circle at 50% 50%, #fff 0, #fff0 70%);
  display:block;
  box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.about .profile{display:flex;gap:24px;align-items:center;flex-wrap:wrap}

/* Services tiles */
.tiles{display:grid;gap:16px;grid-template-columns:repeat(5,1fr)}
@media (max-width:1200px){.tiles{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.tiles{grid-template-columns:1fr}}
.tile{position:relative}
.tile details{border-radius:16px;background:var(--panel);border:1px solid rgba(200,162,74,.22);overflow:hidden}
.tile summary{list-style:none;cursor:pointer;padding:16px;font-weight:700;outline:none}
.tile summary::-webkit-details-marker{display:none}
.tile .content{padding:14px 18px 18px;color:#e7e9ef}
.tile .blurb{color:#ffffff;margin-top:2px}
.tile-label{color:var(--subhead)}
.subgroup{color:var(--subhead);font-weight:600}

/* Tables & labels */
.table-wrap{overflow-x:auto;margin-top:8px}
table{border-collapse:collapse;width:100%;min-width:720px}
thead th{
  position:sticky;top:0;background:rgba(19,21,28,.85);
  backdrop-filter:blur(6px);color:var(--subhead);
}
th,td{border:1px solid rgba(200,162,74,.25);padding:10px;text-align:left}
tbody tr:nth-child(even){background:rgba(200,162,74,.06)}
.caption{color:#e7d8af;font-size:12px;margin-top:6px}
.level{color:var(--subhead);font-weight:700}

/* FAQ */
.accordion details{background:var(--panel);border:1px solid rgba(200,162,74,.18);border-radius:12px;margin:10px 0;overflow:hidden}
.accordion summary{padding:12px 14px;cursor:pointer;font-weight:600;color:var(--subhead)}
.accordion .answer{padding:0 14px 14px;color:#e7e9ef}

/* Forms */
form.contact-form{display:grid;gap:12px;max-width:720px}
input,textarea,select{background:#0f1117;color:var(--white);border:1px solid rgba(200,162,74,.25);border-radius:10px;padding:10px 12px}
textarea{min-height:120px}

/* Consultation CTAs */
.consult-cta{margin-top:18px;text-align:left}
.consult-cta .button.primary{background:var(--maroon);color:var(--white)}
.contact-cta{margin-top:12px}

/* Small inline alternative booking links */
.alt-links{font-size:12px}
.alt-links a{margin-left:10px}

/* Mobile: tuck small booking links under the main button */
@media (max-width:640px){ .alt-links{display:block;margin-left:0;width:100%} }

/* Contact page tighter spacing */
.contact-card h3.subhead-strong{margin-bottom:4px}
.contact-card p.tight{margin-top:0}

/* Footer */
footer.disclaimer{border-top:1px solid rgba(200,162,74,.25);padding:16px 0 40px;color:#d7d7d7}
.small{font-size:12px}
hr.sep{border:none;height:1px;background:rgba(200,162,74,.2);margin:22px 0}

/* Badges */
.badge{display:inline-block;background:rgba(200,162,74,.12);border:1px solid rgba(200,162,74,.35);padding:2px 8px;border-radius:999px;color:#f3e7c2;font-size:12px}


/* === Patch: remove unintended border/outline around brand title/tagline === */
a.brand{border:none}
a.brand:focus{outline:none}
a.brand:focus-visible{outline:none}
.brand-text .tagline{border:0;outline:0;background:transparent}
/* === End patch === */


/* ===== Mobile optimization overrides (non-destructive) ===== */
/* Keep original desktop styles intact; only adjust layout on smaller screens */
img, video, svg, canvas{max-width:100%;height:auto}

/* Make iframes and tables scroll safely on small screens */
iframe, table{max-width:100%}
table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Form controls should not overflow on narrow viewports */
input[type="text"],input[type="email"],input[type="tel"],input[type="search"],input[type="url"],
input[type="number"],input[type="password"],select,textarea,.button,button{max-width:100%}

/* Reduce horizontal padding on very small devices */
@media (max-width:640px){
  .container{padding-left:16px;padding-right:16px}
  .panel,.card{padding:16px}
  .hero{grid-template-columns:1fr}
  .grid,.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}
  .cta-group{grid-template-columns:1fr}
  nav ul{display:flex;flex-wrap:wrap;gap:.5rem}
  nav a{display:inline-block;padding:.5rem .75rem}
  /* Ensure brand doesn't get pushed off-screen by negative margins on small screens */
  .brand{margin-left:0 !important}
}

/* Slightly larger tap targets on medium-small devices */
@media (max-width:820px){
  nav a{line-height:1.2}
  .button, button{min-height:44px}
}

/* Prevent header overlap with anchored content on mobile (if using position:sticky headers) */
:target{scroll-margin-top:72px}
/* ===== End mobile optimization overrides — appended 2025-10-24T18:58:44.893396Z ===== */


/* ===== Mobile nav & brand fixes (non-destructive; appended) ===== */
@media (max-width: 720px){
  .nav-inner{gap:10px}

  /* Slightly smaller badge on phones */
  .logo-badge{width:44px;height:44px}
  .logo-badge img{width:40px;height:40px}

  /* Keep brand on a single line per row and prevent 3–4 line wrapping */
  .brand{gap:8px;flex:0 0 auto;margin-left:0 !important}
  .brand-text{display:flex;flex-direction:column;min-width:0}
  .brand-text .title{
    font-size:18px;line-height:1.05;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    max-width:70vw;
  }
  .brand-text .tagline{
    font-size:10px;line-height:1.1;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    max-width:70vw;opacity:.9;
  }

  /* Turn the tabs into a tidy scrollable menu instead of wrapping into multiple rows */
  nav{flex:1 1 auto;min-width:0}
  nav ul{
    flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;
    -webkit-overflow-scrolling:touch;gap:8px;
    padding-bottom:4px;margin-bottom:-4px;
    scrollbar-width:none;
  }
  nav ul::-webkit-scrollbar{display:none}
  nav a{flex:0 0 auto;padding:8px 10px}
}

/* Ultra-small devices: trim text a bit more */
@media (max-width: 400px){
  .brand-text .title{font-size:16px;max-width:62vw}
  .brand-text .tagline{font-size:9px;max-width:62vw}
}
/* ===== End mobile nav & brand fixes ===== */


/* ===== Sticky footer fix (non-destructive; appended) ===== */
/* Keep footer visible at the bottom; add body padding to avoid overlap */
:root{ --footer-h: 72px }

footer.disclaimer{
  position:fixed;left:0;right:0;bottom:0;z-index:998;
  background:rgba(19,21,28,.95);
  backdrop-filter:blur(8px);
  border-top:1px solid rgba(200,162,74,.25);
  padding:12px 0 16px; /* slightly tighter padding for fixed layout */
}

body{padding-bottom:calc(var(--footer-h) + 16px)} 

/* Very small screens: footer slightly taller */
@media (max-width:480px){
  :root{ --footer-h: 84px }
}

/* Print: revert to normal static footer */
@media print{
  footer.disclaimer{position:static}
  body{padding-bottom:0}
}
/* ===== End sticky footer fix ===== */


/* ===== Footer & Brand tuning (non-destructive; appended) ===== */
/* Footer: sit flush with bottom; reduce height; keep text off edges */
:root{ --footer-h: 56px } /* smaller default footer height */

footer.disclaimer{
  position:fixed;left:0;right:0;bottom:0;z-index:998;
  background:rgba(19,21,28,.95);
  backdrop-filter:blur(8px);
  border-top:1px solid rgba(200,162,74,.25);
  padding:10px 0 12px; /* reduce vertical space to move it down */
}

/* Keep page content clear of fixed footer */
body{padding-bottom:calc(var(--footer-h) + 12px)}

/* Keep disclaimer text/content centered and not edge-to-edge even if footer spans full width */
footer.disclaimer > *{max-width:min(1200px,92vw);margin:0 auto;padding:0 16px}
footer.disclaimer .small{max-width:min(1200px,92vw);margin:0 auto;padding:0 16px}

/* Tiny phones: allow slightly taller footer */
@media (max-width:480px){
  :root{ --footer-h: 68px }
}

/* Print: revert to normal static footer */
@media print{
  footer.disclaimer{position:static}
  body{padding-bottom:0}
}

/* Brand: bring logo/title much closer to the left on desktop, but keep mobile-friendly */
@media (min-width:1200px){
  .brand{margin-left:-160px !important}
}
@media (min-width:960px) and (max-width:1199.98px){
  .brand{margin-left:-120px !important}
}
@media (max-width:959.98px){
  .brand{margin-left:0 !important}
}
/* ===== End Footer & Brand tuning ===== */


/* ===== Footer/Brand/Home avatar tuning (non-destructive; appended) ===== */
/* 1) Brand offset to ~-140px on large screens; scale down on mids; reset on mobile */
@media (min-width:1200px){
  .brand{margin-left:-140px !important}
}
@media (min-width:960px) and (max-width:1199.98px){
  .brand{margin-left:-110px !important}
}
@media (max-width:959.98px){
  .brand{margin-left:0 !important}
}

/* Tighten title/tagline spacing in brand */
.brand-text .title{display:block;line-height:1.05;margin-bottom:0}
.brand-text .tagline{display:block;line-height:1.05;margin-top:-2px}

/* 2) Home profile picture: remove 'tile/card' chrome in hero sidebar only */
.hero aside.card{background:transparent;border:0;box-shadow:none;padding:0}

/* 3) Footer: thinner, two-line look on desktop, divider not edge-to-edge */
footer.disclaimer{
  /* still fixed via previous rules; here we just refine visuals */
  padding-top:8px;padding-bottom:10px;
}
footer.disclaimer p{
  margin:0;
  font-size:12px;          /* slightly smaller to slim height */
  line-height:1.25;        /* tighter line height */
  text-wrap:balance;       /* balance the two lines on wide screens */
  max-width:min(1100px,92vw);
  margin-inline:auto;
  padding-inline:16px;
}

/* Replace full-width top border with a centered short divider matching text width */
footer.disclaimer{border-top:none}
footer.disclaimer::before{
  content:"";
  display:block;
  height:1px;
  width:calc(min(1100px,92vw));
  margin:0 auto 8px auto;
  background:rgba(200,162,74,.25);
}

/* Keep adequate page bottom padding to clear fixed footer */
:root{ --footer-h: 52px }
body{padding-bottom:calc(var(--footer-h) + 8px)}

/* On very small screens, allow more natural wrapping and slightly taller footer */
@media (max-width:640px){
  footer.disclaimer p{font-size:12px;line-height:1.3;max-width:92vw}
  :root{ --footer-h: 68px }
}
/* ===== End Footer/Brand/Home avatar tuning ===== */


/* ===== Header/Disclaimer tightening (non-destructive; appended) ===== */
/* Header: tighten space between company name (title) and tagline */
header.navbar .brand-text{line-height:1}
header.navbar .brand-text .title{margin-bottom:0;line-height:1.02}
header.navbar .brand-text .tagline{
  margin-top:-6px !important; /* stronger tighten */
  line-height:1.0;
}

/* Slightly relax on very small screens to avoid overlap */
@media (max-width:480px){
  header.navbar .brand-text .tagline{margin-top:-4px !important}
}

/* Footer: force a slim, centered two-line disclaimer and match divider width */
:root{ --footer-text-w: 820px } /* target width that yields ~2 lines on desktop */

@media (min-width:960px){
  :root{ --footer-text-w: 780px } /* a touch narrower for typical laptops */
}

footer.disclaimer{border-top:none} /* we'll draw a centered divider instead */
footer.disclaimer::before{
  content:"";
  display:block;
  height:1px;
  width:min(var(--footer-text-w),92vw);
  margin:0 auto 6px auto; /* centered divider above text */
  background:rgba(200,162,74,.25);
}

/* Apply the same width to the text block, center it, and clamp to 2 lines */
footer.disclaimer p,
footer.disclaimer .small{
  width:min(var(--footer-text-w),92vw);
  margin:0 auto;
  padding:0 12px;
  text-align:center;
  font-size:12px;
  line-height:1.25;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* Phones: allow natural wrapping but remain centered; keep it compact */
@media (max-width:640px){
  :root{ --footer-text-w: 92vw }
  footer.disclaimer p,
  footer.disclaimer .small{
    font-size:12px;line-height:1.3;width:92vw;padding:0 10px
  }
}
/* ===== End Header/Disclaimer tightening ===== */


/* ===== Final footer width & brand spacing tweak (non-destructive; appended) ===== */
/* Wider text block to fit full disclaimer across 2 lines; divider matches width */
:root{ --footer-text-w: 1100px }           /* desktop target */
@media (min-width:960px) and (max-width:1199.98px){
  :root{ --footer-text-w: 1000px }         /* laptops */
}
/* Phones/tablets still use the earlier responsive rules */

/* Centered divider exactly the same width as the text; avoid left gap */
footer.disclaimer{border-top:none}         /* ensure no competing border */
footer.disclaimer::before{
  content:"";
  display:block;
  height:1px;
  width:min(var(--footer-text-w), 92vw);
  margin:0 auto 6px auto;
  background-color:rgba(200,162,74,.25);   /* solid color to avoid gradient seams */
  transform:translateZ(0);                 /* mitigate subpixel rendering gaps */
}

/* Apply the same width to the text block and keep it to 2 lines on desktop */
footer.disclaimer p,
footer.disclaimer .small{
  width:min(var(--footer-text-w), 92vw);
  margin:0 auto;
  padding:0 12px;
  text-align:center;
  font-size:12px;
  line-height:1.25;
  display:-webkit-box;
  -webkit-line-clamp:2;                    /* maintain 2 lines without truncating early */
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* Header brand: tighten title↔tagline just a bit more */
header.navbar .brand-text .title{line-height:1.02;margin-bottom:0}
header.navbar .brand-text .tagline{
  margin-top:-8px !important;              /* slightly tighter than before */
  line-height:1.0;
}

/* Slightly relax on very small screens so the tagline doesn't overlap */
@media (max-width:480px){
  header.navbar .brand-text .tagline{margin-top:-5px !important}
}
/* ===== End final tweak ===== */


/* ===== Footer width++ & header tighten v2 (non-destructive; appended) ===== */
/* Expand desktop/laptop text block so the full disclaimer fits on exactly 2 lines */
:root{ --footer-text-w: 1200px }                 /* desktop target */
@media (min-width:960px) and (max-width:1199.98px){
  :root{ --footer-text-w: 1120px }               /* common laptop widths */
}

/* Match divider to text width; eliminate any left seam */
footer.disclaimer{border-top:none}
footer.disclaimer::before{
  content:"";
  display:block;
  height:1px;
  width:min(var(--footer-text-w), 96vw);         /* a little wider than before */
  margin:0 auto 6px auto;
  background-color:rgba(200,162,74,.25);
  transform:translateZ(0.001px);                 /* nudge to avoid subpixel breaks */
  will-change:transform;
}

/* Apply the same width to the text block; keep 2-line clamp on desktop/laptop */
@media (min-width:960px){
  footer.disclaimer p,
  footer.disclaimer .small{
    width:min(var(--footer-text-w), 96vw);
    margin:0 auto;
    padding:0 12px;
    text-align:center;
    font-size:12px;
    line-height:1.25;
    display:-webkit-box;
    -webkit-line-clamp:2;                        /* show all text across exactly 2 lines */
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
}

/* On tablets/phones, allow natural wrapping (no clamp) to avoid truncation */
@media (max-width:959.98px){
  footer.disclaimer p,
  footer.disclaimer .small{
    width:96vw;
    margin:0 auto;
    padding:0 10px;
    text-align:center;
    font-size:12px;
    line-height:1.3;
    display:block;
    -webkit-line-clamp:unset;
    -webkit-box-orient:unset;
    overflow:visible;
  }
}

/* Header brand: tighten title ↔ tagline slightly more without overlap */
header.navbar .brand-text .title{line-height:1.02;margin-bottom:0}
header.navbar .brand-text .tagline{
  margin-top:-10px !important;                   /* tighter than previous */
  line-height:1.0;
}
@media (max-width:480px){
  header.navbar .brand-text .tagline{margin-top:-6px !important} /* small devices safety */
}
/* ===== End v2 ===== */


/* ===== Footer width+++ & header tighten v3 (non-destructive; appended) ===== */
/* Push width further so the full disclaimer fits on exactly 2 lines */
:root{ --footer-text-w: 1350px }                    /* wide desktop target */
@media (min-width:960px) and (max-width:1199.98px){
  :root{ --footer-text-w: 1200px }                  /* laptops */
}

/* Divider exactly matches the widened text block (no left seam) */
footer.disclaimer{border-top:none}
footer.disclaimer::before{
  content:"";
  display:block;
  height:1px;
  width:min(var(--footer-text-w), 99vw) !important;
  margin:0 auto 6px auto;
  background-color:rgba(200,162,74,.25);
  transform:translateZ(0.001px);
}

/* Text block: same width and still clamped to 2 lines on desktop/laptop */
@media (min-width:960px){
  footer.disclaimer p,
  footer.disclaimer .small{
    width:min(var(--footer-text-w), 99vw) !important;
    margin:0 auto;
    padding:0 12px;
    text-align:center;
    font-size:11.75px;                    /* slightly smaller to fit content */
    line-height:1.22;                     /* compact but readable */
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
}

/* Below 960px, allow natural wrapping */
@media (max-width:959.98px){
  footer.disclaimer p,
  footer.disclaimer .small{
    width:96vw;
    margin:0 auto;
    padding:0 10px;
    text-align:center;
    font-size:12px;
    line-height:1.3;
    display:block;
    -webkit-line-clamp:unset;
    -webkit-box-orient:unset;
    overflow:visible;
  }
}

/* Header brand: tighten title ↔ tagline slightly more without overlap */
header.navbar .brand-text .title{line-height:1.02;margin-bottom:0}
header.navbar .brand-text .tagline{
  margin-top:-11px !important;                 /* tighter than v2 */
  line-height:1.0;
}
@media (max-width:480px){
  header.navbar .brand-text .tagline{margin-top:-6px !important} /* small devices safety */
}
/* ===== End v3 ===== */


/* ===== Footer width++++ & header tighten v4 (non-destructive; appended) ===== */
/* Goal: show full disclaimer across exactly 2 lines on desktop/laptop,
   with divider same width; keep mobile natural wrapping. */

/* Wider desktop/laptop target width */
:root{ --footer-text-w: 1500px } /* wide desktop */
@media (min-width:960px) and (max-width:1365.98px){
  :root{ --footer-text-w: 1280px } /* common laptop widths */
}

/* Divider matches text width exactly (centered) */
footer.disclaimer{border-top:none}
footer.disclaimer::before{
  content:"";
  display:block;
  height:1px;
  width:min(var(--footer-text-w), 99.5vw) !important;
  margin:0 auto 6px auto;
  background-color:rgba(200,162,74,.25);
  transform:translateZ(0.001px);
}

/* Text block: same width and clamped to 2 lines on >=960px */
@media (min-width:960px){
  footer.disclaimer p,
  footer.disclaimer .small{
    width:min(var(--footer-text-w), 99.5vw) !important;
    margin:0 auto;
    padding:0; /* maximize available width under divider */
    text-align:center;
    font-size:11.4px;               /* slightly smaller to fit */
    line-height:1.22;               /* compact but readable */
    letter-spacing:0;               /* neutral tracking */
    text-wrap:balance;
    display:-webkit-box;
    -webkit-line-clamp:2;           /* enforce 2 lines */
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
}

/* Below 960px: natural wrapping, centered */
@media (max-width:959.98px){
  footer.disclaimer p,
  footer.disclaimer .small{
    width:96vw;margin:0 auto;padding:0 10px;text-align:center;
    font-size:12px;line-height:1.3;display:block;
    -webkit-line-clamp:unset;-webkit-box-orient:unset;overflow:visible;
  }
}

/* Header brand: tighten title ↔ tagline slightly more without overlap */
header.navbar .brand-text .title{line-height:1.02;margin-bottom:0}
header.navbar .brand-text .tagline{
  margin-top:-12px !important;
  line-height:1.0;
}
@media (max-width:480px){
  header.navbar .brand-text .tagline{margin-top:-7px !important}
}
/* ===== End v4 ===== */


/* ===== Footer width+++++ & header tighten v5 (non-destructive; appended) ===== */
/* Objective: ensure the full disclaimer fits across exactly 2 lines on desktop/laptop,
   with a centered divider of the same width that does NOT run edge-to-edge.
   Phones/tablets continue to wrap naturally without truncation. */

/* Wider desktop/laptop target width with a sensible viewport cap */
:root{ --footer-text-w: 1650px } /* wide desktop */
@media (min-width:960px) and (max-width:1439.98px){
  :root{ --footer-text-w: 1400px } /* laptops / smaller desktops */
}

/* Divider width = text width; centered; never edge-to-edge */
footer.disclaimer{border-top:none}
footer.disclaimer::before{
  content:"";
  display:block;
  height:1px;
  width:min(var(--footer-text-w), 90vw) !important;  /* cap at 90vw to avoid edge-to-edge */
  margin:0 auto 6px auto;
  background-color:rgba(200,162,74,.25);
  transform:translateZ(0.001px);
}

/* Desktop/laptop: 2-line clamp with slightly tighter typography */
@media (min-width:960px){
  footer.disclaimer p,
  footer.disclaimer .small{
    width:min(var(--footer-text-w), 90vw) !important; /* same as divider */
    margin:0 auto;
    padding:0;                           /* use full width under divider */
    text-align:center;
    font-size:11.1px;                    /* slightly smaller to fit complete text */
    line-height:1.22;                    /* compact but legible */
    letter-spacing:-0.1px;               /* tiny tracking tighten for fit */
    text-wrap:balance;
    display:-webkit-box;
    -webkit-line-clamp:2;                /* exactly 2 lines */
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
}

/* Tablets/phones: natural wrapping (no clamp) */
@media (max-width:959.98px){
  footer.disclaimer p,
  footer.disclaimer .small{
    width:92vw;margin:0 auto;padding:0 8px;text-align:center;
    font-size:12px;line-height:1.3;display:block;
    -webkit-line-clamp:unset;-webkit-box-orient:unset;overflow:visible;
  }
}

/* Header brand: nudge tagline slightly closer, with mobile safety */
header.navbar .brand-text .title{line-height:1.02;margin-bottom:0}
header.navbar .brand-text .tagline{
  margin-top:-13px !important;
  line-height:1.0;
}
@media (max-width:480px){
  header.navbar .brand-text .tagline{margin-top:-7px !important}
}
/* ===== End v5 =====


/* ===== vFIX-2025-10-26 FINAL RESPONSIVE BLOCK ===== */
/* PHONE (<=720px):
   - header row stays compact (brand left, Menu right),
   - dropdown nav hidden until Menu is tapped,
   - sticky footer pinned bottom, body padded.
   DESKTOP (>=721px):
   - Menu button hidden,
   - nav inline across header,
   - sticky footer still pinned with body padding.
*/

/* PHONE VIEW */
@media (max-width:720px){

  header.navbar{
    position:sticky;
    top:0;
    z-index:1000;
    background:#111216;
    border-bottom:1px solid rgba(200,162,74,.25);
    padding:8px 0;
  }

  .nav-inner{
    position:relative;
    display:flex;
    flex-wrap:nowrap;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
  }

  .brand{
    margin-left:0 !important;
    flex:1 1 auto;
    max-width:70%;
    display:flex;
    align-items:flex-start;
    gap:8px;
  }

  .brand-text{
    display:flex;
    flex-direction:column;
    min-width:0;
  }

  .brand-text .title{
    font-size:18px;
    line-height:1.1;
    margin-bottom:0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:100%;
  }

  .brand-text .tagline{
    font-size:10px;
    line-height:1.1;
    margin-top:-6px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:100%;
    opacity:.9;
  }

  .mobile-menu-toggle{
    order:2;
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#171923;
    color:#EBD9A2;
    border:1px solid rgba(200,162,74,.4);
    border-radius:8px;
    padding:8px 12px;
    font-size:16px;
    line-height:1.2;
    font-family:inherit;
    cursor:pointer;
    z-index:1501;
  }

  .primary-nav{
    order:3;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:1500;
    width:100%;
    padding:0 12px 12px 12px;
    display:none !important;
  }

  .primary-nav.open{
    display:block !important;
  }

  .primary-nav ul{
    list-style:none;
    margin:8px 0 0 0;
    padding:8px 12px;
    display:flex;
    flex-direction:column;
    gap:0;
    background:#111216;
    border:1px solid rgba(200,162,74,.25);
    border-radius:8px;
    box-shadow:0 16px 32px rgba(0,0,0,.7);
    max-height:60vh;
    overflow-y:auto;
  }

  .primary-nav a{
    display:block;
    width:100%;
    padding:10px 0;
    font-size:16px;
    line-height:1.3;
    border-bottom:1px solid rgba(200,162,74,.15);
  }

  .primary-nav li:last-child a{
    border-bottom:0;
  }

  footer.disclaimer{
    position:fixed !important;
    left:0;
    right:0;
    bottom:0;
    z-index:999;
    background:rgba(19,21,28,.95);
    backdrop-filter:blur(8px);
  }

  body{
    padding-bottom:140px !important;
  }
}

/* DESKTOP + TABLET VIEW */
@media (min-width:721px){

  .mobile-menu-toggle{
    display:none !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    padding:0 !important;
  }

  .primary-nav{
    position:static !important;
    display:block !important;
    padding:0 !important;
  }

  .primary-nav ul{
    position:static !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    max-height:none !important;
    overflow:visible !important;
    margin:0 !important;
    padding:0 !important;
    gap:12px !important;
    flex-wrap:wrap !important;
  }

  .primary-nav a{
    padding:8px 12px !important;
    border-bottom:0 !important;
  }

  footer.disclaimer{
    position:fixed !important;
    left:0;
    right:0;
    bottom:0;
    z-index:999;
    background:rgba(19,21,28,.95);
    backdrop-filter:blur(8px);
  }

  body{
    padding-bottom:140px !important;
  }
}
/* ===== END vFIX-2025-10-26 FINAL RESPONSIVE BLOCK =====


/* ===== FINAL MOBILE NAV + BRAND SPACING + STICKY FOOTER (2025-10-27 V2) ===== */

/* Tighten the gap between company name and tagline in the header */
header.navbar .brand-text .tagline{
  margin-top:-10px !important;
  line-height:1.05;
}

/* Let the footer disclaimer be centered + 2 lines on desktop */
:root{
  --footer-text-w:1400px; /* max width of disclaimer text block */
}

/* PHONE (<=720px): brand left, Menu button right, dropdown hidden until tap */
@media (max-width:720px){

  header.navbar{
    position:sticky;
    top:0;
    z-index:1000;
    background:rgba(17,18,22,.95);
    backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(200,162,74,.25);
    padding:8px 0 !important;
  }

  .nav-inner{
    position:relative;
    display:flex;
    flex-wrap:nowrap;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding:8px 0 !important;
  }

  /* Brand block stays on the left and doesn't wrap into 4 lines */
  .brand{
    flex:1 1 auto;
    max-width:70%;
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin-left:0 !important; /* cancel any desktop negative margin */
  }

  .brand-text{
    display:flex;
    flex-direction:column;
    min-width:0;
    line-height:1.1;
  }

  .brand-text .title{
    font-size:18px;
    line-height:1.1;
    margin-bottom:0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:100%;
  }

  .brand-text .tagline{
    font-size:10px;
    line-height:1.05;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:100%;
    color:var(--gold);
  }

  /* Show the Menu button on phones (no gold border) */
  .mobile-menu-toggle{
    order:2;
    flex:0 0 auto;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    background:#171923;
    color:var(--gold-strong);
    border:0 !important;
    box-shadow:none !important;
    border-radius:8px;
    padding:8px 12px;
    font-size:16px;
    line-height:1.2;
    font-family:inherit;
    cursor:pointer;
    z-index:1501;
  }

  /* Hide nav by default on phones; it becomes dropdown */
  .primary-nav{
    order:3;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    width:100%;
    padding:0 12px 12px 12px;
    display:none !important; /* closed by default */
    z-index:1500;
  }

  /* When JS toggles .open, show it */
  .primary-nav.open{
    display:block !important;
  }

  /* Dropdown panel styling */
  .primary-nav ul{
    list-style:none;
    margin:8px 0 0 0;
    padding:8px 12px;
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
    background:#111216;
    border:1px solid rgba(200,162,74,.25);
    border-radius:8px;
    box-shadow:0 16px 32px rgba(0,0,0,.7);
    max-height:60vh;
    overflow-y:auto;
  }

  .primary-nav a{
    display:block;
    width:100%;
    padding:10px 0 !important;
    font-size:16px;
    line-height:1.3;
    border-bottom:1px solid rgba(200,162,74,.15);
    border-radius:0 !important;
  }

  .primary-nav li:last-child a{
    border-bottom:0;
  }

  /* Sticky footer on phones (no full-width border-top line) */
  footer.disclaimer{
    position:fixed !important;
    left:0;
    right:0;
    bottom:0;
    z-index:999;
    background:rgba(19,21,28,.95);
    backdrop-filter:blur(8px);
    border-top:0 !important; /* remove edge-to-edge line */
    padding:12px 0 16px !important;
    text-align:center;
  }

  /* Centered gold divider above footer text on phones */
  footer.disclaimer::before{
    content:"";
    display:block;
    height:1px;
    width:92vw;
    margin:0 auto 6px auto;
    background-color:rgba(200,162,74,.25);
  }

  /* Footer text on phones can wrap naturally */
  footer.disclaimer p{
    width:92vw;
    margin:0 auto;
    padding:0 10px;
    font-size:12px;
    line-height:1.3;
    text-align:center;
    display:block;
    -webkit-line-clamp:unset;
    -webkit-box-orient:unset;
    overflow:visible;
  }

  /* Make room so content doesn’t hide behind fixed footer */
  body{
    padding-bottom:140px !important;
  }
}

/* DESKTOP / TABLET (>=721px): keep original desktop nav look, hide Menu button */
@media (min-width:721px){

  /* Hide Menu button completely on desktop */
  .mobile-menu-toggle{
    display:none !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    padding:0 !important;
    box-shadow:none !important;
  }

  /* Force nav back to inline horizontal layout on desktop */
  .primary-nav{
    position:static !important;
    display:block !important;
    padding:0 !important;
  }

  .primary-nav ul{
    position:static !important;
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    max-height:none !important;
    overflow:visible !important;
    margin:0 !important;
    padding:0 !important;
    gap:12px !important;
  }

  .primary-nav a{
    padding:8px 12px !important;
    border-bottom:0 !important;
    width:auto !important;
  }

  /* Sticky footer on desktop/tablet (no edge-to-edge border-top) */
  footer.disclaimer{
    position:fixed !important;
    left:0;
    right:0;
    bottom:0;
    z-index:999;
    background:rgba(19,21,28,.95);
    backdrop-filter:blur(8px);
    border-top:0 !important; /* remove edge-to-edge line */
    padding:10px 0 12px !important;
    text-align:center;
  }

  /* Centered gold divider above text, same width as text block */
  footer.disclaimer::before{
    content:"";
    display:block;
    height:1px;
    width:min(var(--footer-text-w),90vw);
    margin:0 auto 6px auto;
    background-color:rgba(200,162,74,.25);
  }

  /* Force disclaimer text to 2 centered lines on desktop/tablet */
  footer.disclaimer p{
    width:min(var(--footer-text-w),90vw);
    margin:0 auto;
    padding:0 12px;
    font-size:11.5px;
    line-height:1.25;
    text-align:center;
    display:-webkit-box;
    -webkit-line-clamp:2;          /* clamp to 2 lines only */
    -webkit-box-orient:vertical;
    overflow:hidden;
  }

  /* Add body bottom padding so content doesn't disappear under footer */
  body{
    padding-bottom:120px !important;
  }
}

/* ===== END FINAL MOBILE NAV + BRAND SPACING + STICKY FOOTER (2025-10-27 V2) ===== */


/* ===== PATCH-2025-10-27 V4 WIDER DESKTOP DISCLAIMER ===== */
/* On desktop/tablet, increase the max text width so the full disclaimer fits
   within 2 lines and no words are cut off after "seek". */
@media (min-width:721px){
  :root{
    --footer-text-w:2000px; /* was 1400px; allow wider block for full sentence */
  }
}
/* ===== END PATCH-2025-10-27 V4 ===== */


/* ===== PATCH-2025-10-27 V5 DESKTOP DISCLAIMER FIT ===== */
/* Make the desktop/tablet disclaimer text slightly smaller + tighter line-height
   so the entire disclaimer sentence fits within 2 lines of 90vw without cutting off. */
@media (min-width:721px){
  footer.disclaimer p{
    font-size:10.5px !important;
    line-height:1.2 !important;
    -webkit-line-clamp:2 !important;
  }
}
/* ===== END PATCH-2025-10-27 V5 ===== */

