/* ADAB Squad Customer Services Inc., shared design system.
   Structure modeled on Canada.ca's official government site pattern,
   recolored into ADAB's brand palette (gold / brown / charcoal / white).
   Type scale deliberately restrained/small, refined, not loud.
   Chrome (header/menu/footer/fields) kept tight, box padding/heights
   stay compact even where text sizes are already settled. */

:root{
  --brown:#483A2C;
  --brown-deep:#332921;
  --gold:#C6A15B;
  --charcoal:#3E3E3E;
  --black:#1B1712;
  --white:#FFFFFF;
  --off:#F5F2EC;
  --line:#DDD5C7;
  --accent-red:#B0472F;
  --accent-green:#3F6B33;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{ font-family:"Noto Sans",-apple-system,BlinkMacSystemFont,Arial,sans-serif; color:var(--black); background:var(--white); line-height:1.6; font-size:15px; }
a{ color:inherit; }
img{ max-width:100%; display:block; }

/* ---------- Header ---------- */
.topbar{
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 28px; border-bottom:2px solid var(--gold);
}
.brand{ display:flex; align-items:center; gap:10px; }
.brand img{ height:24px; }
.brand .wordmark{ font-size:13px; font-weight:700; letter-spacing:0.01em; line-height:1.25; color:var(--brown); }
.brand .wordmark span{ display:block; font-size:10px; font-weight:500; color:var(--charcoal); letter-spacing:0.02em; }
.search{ display:flex; position:relative; }
.search input{ border:1px solid #B9B0A0; border-right:none; padding:6px 10px; font-size:12.5px; width:180px; }
.search button{ background:var(--brown); border:none; color:#fff; padding:0 12px; font-size:12.5px; cursor:pointer; }

.adab-search-results{
  position:absolute; top:calc(100% + 6px); right:0; width:340px; max-width:90vw;
  background:#fff; border:1px solid var(--line); box-shadow:0 8px 24px rgba(0,0,0,0.12);
  z-index:50; max-height:420px; overflow-y:auto;
}
.adab-sr-item{ display:flex; align-items:center; gap:10px; padding:10px 14px; text-decoration:none; border-bottom:1px solid var(--line); }
.adab-sr-item:hover, .adab-sr-item.active{ background:var(--off); }
.adab-sr-tag{ flex-shrink:0; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; color:var(--gold-deep, #B9862A); border:1px solid var(--line); padding:2px 6px; white-space:nowrap; }
.adab-sr-title{ font-size:12.5px; color:var(--black); line-height:1.4; }
.adab-sr-more{ display:block; padding:11px 14px; font-size:12px; font-weight:700; color:var(--brown); text-decoration:none; background:var(--off); }
.adab-sr-more:hover{ text-decoration:underline; }
.adab-sr-empty{ padding:16px 14px; font-size:12.5px; color:var(--charcoal); }

/* Dedicated search results page (sr-) */
.sr-hero{ max-width:760px; margin:0 auto; padding:40px 32px 8px; }
.sr-hero .kicker{ font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-deep, #B9862A); font-weight:700; margin-bottom:10px; }
.sr-hero h1{ font-family:Georgia,serif; font-size:28px; font-weight:700; color:var(--black); }
.sr-hero .sr-count{ font-size:13px; color:var(--charcoal); margin-top:8px; }
.sr-refine{ margin-top:20px; }
.sr-refine input{ width:100%; max-width:420px; padding:11px 14px; font-size:14px; font-family:inherit; border:1.5px solid var(--brown); }
.sr-refine input:focus{ outline:2px solid var(--gold); outline-offset:1px; }

.sr-list{ max-width:760px; margin:24px auto 0; padding:0 32px 70px; }
.sr-row{ display:block; padding:18px 0; border-bottom:1px solid var(--line); text-decoration:none; color:inherit; }
.sr-row:hover .sr-row-title{ color:var(--brown); text-decoration:underline; }
.sr-row-tag{ display:inline-block; font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; color:var(--gold-deep, #B9862A); border:1px solid var(--line); padding:2px 7px; margin-bottom:8px; }
.sr-row-title{ display:block; font-size:16px; font-weight:700; color:var(--black); margin-bottom:6px; }
.sr-row-snippet{ font-size:13px; color:var(--charcoal); line-height:1.65; }
.sr-empty{ font-size:14px; color:var(--charcoal); padding:20px 0; line-height:1.7; }
.sr-empty a{ color:var(--brown); font-weight:700; }

.menubar{ background:var(--off); border-bottom:1px solid var(--line); padding:0 28px; display:flex; align-items:center; overflow-x:auto; }
.menubar nav{ display:flex; }
.menubar a{
  text-decoration:none; font-weight:600; font-size:12.5px; color:var(--brown); white-space:nowrap;
  padding:8px 14px; border-right:1px solid var(--line);
}
.menubar a:first-child{ border-left:1px solid var(--line); }
.menubar a:hover{ background:var(--line); }
.menubar a.current{ background:var(--brown); color:#fff; }

/* ---------- Home hero (split, with photo) ---------- */
.hero{ display:grid; grid-template-columns:1fr 1fr; max-width:1320px; margin:0 auto; align-items:center; }
.hero-text{ padding:28px 28px 36px; }
.hero-text h1{ font-size:29px; font-weight:700; line-height:1.25; color:var(--black); max-width:480px; letter-spacing:-0.01em; }
.accent-bar{ width:44px; height:3px; background:var(--accent-red); margin:12px 0 16px; }
.hero-text p{ font-size:14.5px; line-height:1.65; color:var(--charcoal); max-width:440px; margin-bottom:18px; }
.btn-gov{ display:inline-block; background:var(--accent-green); color:#fff; padding:9px 18px; font-weight:700; font-size:12.5px; text-decoration:none; }
.btn-gov:hover{ background:#345a2a; }
.hero-photo{
  position:relative; overflow:hidden;
  background:transparent;
  height:300px; align-self:center;
}
.hero-photo::before{
  content:""; position:absolute; inset:0; z-index:0;
  /* closest-side (not the default farthest-corner) sizes the fade relative
     to the shorter dimension, so it reaches true transparency well before
     the top/bottom edges instead of getting hard-clipped by overflow:hidden. */
  background:radial-gradient(circle closest-side at 50% 50%, rgba(217,179,106,0.30) 0%, rgba(217,179,106,0.14) 45%, rgba(217,179,106,0) 100%);
  pointer-events:none;
}
.hero-photo img{ width:100%; height:100%; object-fit:cover; position:relative; z-index:1; }
.hero-photo canvas{ position:relative; z-index:1; width:100%; height:100%; display:block; }

/* ---------- Interior page banner (no split photo) ---------- */
.page-banner{ max-width:1320px; margin:0 auto; padding:28px 28px 32px; }
.page-banner h1{ font-size:27px; font-weight:700; line-height:1.25; color:var(--black); max-width:720px; letter-spacing:-0.01em; }
.page-banner p.lede{ font-size:14.5px; line-height:1.65; color:var(--charcoal); max-width:600px; margin-top:14px; }

/* ---------- Cards ---------- */
.cards-section{ max-width:1320px; margin:0 auto; padding:36px 28px; }
.cards-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.cards-grid.cols-2{ grid-template-columns:repeat(2,1fr); }
.card{ background:var(--brown); color:#fff; padding:20px; }
.card h3{ font-size:15.5px; font-weight:700; }
.card .accent-bar{ background:var(--gold); }
.card p{ font-size:13px; line-height:1.6; color:rgba(255,255,255,0.82); margin-bottom:12px; }
.card a{ font-size:12.5px; text-decoration:underline; font-weight:600; color:#fff; }

/* ---------- Full-width section header ---------- */
.section-header{ background:var(--brown); color:#fff; padding:10px 28px; font-size:14.5px; font-weight:700; letter-spacing:0.01em; }

/* ---------- Dynamic sectional showcase: one distinct UI pattern per specialty ---------- */
.ds-section{
  max-width:1320px; margin:0 auto; padding:56px 32px; border-bottom:1px solid var(--line);
  opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease;
}
.ds-section.ds-visible{ opacity:1; transform:translateY(0); }
.ds-eyebrow{ font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-deep, #B9862A); font-weight:700; margin-bottom:10px; }
.ds-title{ font-size:24px; font-weight:700; color:var(--brown); margin-bottom:14px; }
.ds-title a{ color:inherit; text-decoration:none; border-bottom:2px solid transparent; }
.ds-title a:hover{ border-bottom-color:var(--gold); }
.ds-lede{ font-size:14px; line-height:1.75; color:var(--charcoal); max-width:800px; }

/* 01 Information Technology, Hero Section */
.ds-hero{ background:linear-gradient(135deg, var(--brown), var(--brown-deep)); color:#fff; padding:64px 40px; position:relative; overflow:hidden; }
.ds-hero::before{ content:"IT"; position:absolute; right:20px; top:50%; transform:translateY(-50%); font-family:Georgia,serif; font-size:220px; font-weight:700; color:rgba(255,255,255,0.06); line-height:1; pointer-events:none; }
.ds-hero .ds-eyebrow{ color:var(--gold); }
.ds-hero .ds-title{ color:#fff; font-size:30px; max-width:680px; position:relative; z-index:1; }
.ds-hero .ds-lede{ color:rgba(255,255,255,0.85); max-width:640px; position:relative; z-index:1; }

/* 02 Software Development, Split Screen */
.ds-split{ display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center; margin-top:24px; }
.ds-code-panel{ background:var(--black); border-radius:3px; padding:22px; font-family:"SF Mono",Consolas,monospace; font-size:11.5px; line-height:2; color:#e8dcc4; }
.ds-code-panel .ln{ color:#6a6a6a; margin-right:12px; user-select:none; }
.ds-code-panel .kw{ color:var(--gold); }
.ds-code-panel .str{ color:#8fb37e; }

/* 03 Application Development, Card Layout */
.ds-cards3{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:24px; }
.ds-card{ border:1px solid var(--line); padding:22px; background:#fff; }
.ds-card .glyph{ font-family:Georgia,serif; font-size:26px; font-weight:700; color:var(--gold-deep, #B9862A); margin-bottom:12px; }
.ds-card h4{ font-size:14.5px; font-weight:700; color:var(--brown); margin-bottom:8px; }
.ds-card p{ font-size:12.5px; line-height:1.6; color:var(--charcoal); }

/* 04 CRM, Grid Layout */
.ds-grid4{ display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); margin-top:24px; }
.ds-grid4 div{ padding:20px; border-left:1px solid var(--line); }
.ds-grid4 div:first-child{ border-left:none; }
.ds-grid4 b{ display:block; font-size:13.5px; color:var(--brown); margin-bottom:6px; }
.ds-grid4 span{ font-size:12px; color:var(--charcoal); line-height:1.5; }

/* 05 CSM, Accordion */
.ds-accordion{ margin-top:24px; border-top:1px solid var(--line); }
.ds-acc-item{ border-bottom:1px solid var(--line); }
.ds-acc-btn{ width:100%; text-align:left; background:none; border:none; padding:15px 2px; font-size:14px; font-weight:700; color:var(--brown); display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-family:inherit; }
.ds-acc-btn .plus{ font-size:17px; color:var(--gold-deep, #B9862A); transition:transform .2s; }
.ds-acc-item.open .plus{ transform:rotate(45deg); }
.ds-acc-panel{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
.ds-acc-item.open .ds-acc-panel{ max-height:200px; }
.ds-acc-panel p{ padding:0 2px 16px; font-size:12.5px; line-height:1.6; color:var(--charcoal); }

/* 06 ERP, Row-Based List Layout */
.ds-rows{ margin-top:24px; border-top:1px solid var(--line); }
.ds-rowitem{ display:flex; gap:18px; padding:15px 2px; border-bottom:1px solid var(--line); align-items:baseline; }
.ds-rowitem b{ font-size:12.5px; color:var(--brown); width:150px; flex-shrink:0; }
.ds-rowitem span{ font-size:12.5px; color:var(--charcoal); line-height:1.6; }

/* 07 Marketing, Horizontal Scroll */
.ds-hscroll{ display:flex; gap:14px; overflow-x:auto; padding:24px 2px 10px; scroll-snap-type:x mandatory; }
.ds-hcard{ scroll-snap-align:start; flex:0 0 230px; background:var(--off); border:1px solid var(--line); padding:18px; }
.ds-hcard b{ display:block; font-size:13.5px; color:var(--brown); margin-bottom:8px; }
.ds-hcard span{ font-size:12px; color:var(--charcoal); line-height:1.55; }

/* 08 Branding, Overlapping Layers */
.ds-layers{ position:relative; height:230px; margin-top:28px; }
.ds-layer{ position:absolute; width:240px; padding:16px 18px; border:1px solid var(--line); background:#fff; box-shadow:0 8px 20px rgba(0,0,0,0.08); transition:transform .2s ease, box-shadow .2s ease; }
.ds-layer:hover{ transform:translateY(-4px); box-shadow:0 14px 28px rgba(0,0,0,0.12); z-index:5 !important; }
.ds-layer b{ display:block; font-size:12.5px; color:var(--brown); margin-bottom:4px; }
.ds-layer span{ font-size:11.5px; color:var(--charcoal); }
.ds-layer:nth-child(1){ top:0; left:0; z-index:4; }
.ds-layer:nth-child(2){ top:26px; left:250px; z-index:3; background:var(--off); }
.ds-layer:nth-child(3){ top:52px; left:500px; z-index:2; background:var(--off); }
.ds-layer:nth-child(4){ top:78px; left:750px; z-index:1; background:var(--off); }

/* 09 Advertising, Carousel/Slider */
.ds-carousel{ margin-top:24px; }
.ds-car-viewport{ overflow:hidden; }
.ds-car-track{ display:flex; transition:transform .35s ease; }
.ds-car-slide{ min-width:100%; padding:26px; background:var(--off); border:1px solid var(--line); }
.ds-car-slide b{ display:block; font-size:14.5px; color:var(--brown); margin-bottom:8px; }
.ds-car-slide p{ font-size:12.5px; color:var(--charcoal); line-height:1.6; }
.ds-car-controls{ display:flex; gap:10px; align-items:center; margin-top:14px; }
.ds-car-btn{ width:28px; height:28px; border:1px solid var(--line); background:#fff; cursor:pointer; font-size:13px; color:var(--brown); }
.ds-car-dots{ display:flex; gap:6px; align-items:center; margin-left:6px; }
.ds-car-dot{ width:7px; height:7px; border-radius:50%; background:var(--line); cursor:pointer; padding:0; border:none; }
.ds-car-dot.active{ background:var(--gold-deep, #B9862A); }

/* 10 Packaging, Bento Grid */
.ds-bento{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:minmax(104px, auto); gap:10px; margin-top:24px; }
.ds-bento div{ border:1px solid var(--line); padding:14px; background:var(--off); }
.ds-bento div:nth-child(1){ grid-column:span 2; grid-row:span 2; background:var(--brown); }
.ds-bento div:nth-child(1) b{ color:var(--gold); }
.ds-bento div:nth-child(1) span{ color:rgba(255,255,255,0.8); }
.ds-bento b{ display:block; font-size:12.5px; color:var(--brown); margin-bottom:5px; }
.ds-bento span{ font-size:11px; color:var(--charcoal); line-height:1.4; }

/* 11 Project Management, Timeline/Stepper */
.ds-timeline{ display:flex; margin-top:32px; position:relative; }
.ds-timeline::before{ content:""; position:absolute; top:14px; left:0; right:0; height:1px; background:var(--line); }
.ds-step{ flex:1; text-align:left; padding-right:16px; position:relative; }
.ds-step .dot{ width:28px; height:28px; border-radius:50%; background:var(--brown); color:var(--gold); font-size:11.5px; font-weight:700; display:flex; align-items:center; justify-content:center; margin-bottom:14px; position:relative; z-index:1; }
.ds-step b{ display:block; font-size:13px; color:var(--brown); margin-bottom:6px; }
.ds-step span{ font-size:11.5px; color:var(--charcoal); line-height:1.55; }

/* 12 HR Management, Zig-Zag Layout */
.ds-zigzag{ margin-top:24px; }
.ds-zig-item{ display:flex; align-items:baseline; gap:16px; margin-bottom:16px; }
.ds-zig-item:nth-child(even){ flex-direction:row-reverse; margin-left:64px; text-align:right; }
.ds-zig-item:nth-child(odd){ margin-right:64px; }
.ds-zig-num{ width:32px; height:32px; border-radius:50%; background:var(--off); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:11.5px; font-weight:700; color:var(--brown); flex-shrink:0; }
.ds-zig-item b{ font-size:13px; color:var(--brown); }
.ds-zig-item span{ font-size:12px; color:var(--charcoal); margin:0 6px; }

/* 13 Startups, Motion Background */
.ds-motion{ position:relative; padding:60px 40px; overflow:hidden; background:var(--black); }
.ds-motion .bg-anim{ position:absolute; inset:0; background:linear-gradient(120deg, var(--brown), var(--gold-deep, #B9862A), var(--brown-deep)); background-size:200% 200%; animation:ds-gradient-move 9s ease infinite; opacity:0.55; }
@keyframes ds-gradient-move{ 0%{background-position:0% 50%;} 50%{background-position:100% 50%;} 100%{background-position:0% 50%;} }
.ds-motion .ds-eyebrow, .ds-motion .ds-title, .ds-motion .ds-lede{ position:relative; z-index:2; }
.ds-motion .ds-eyebrow{ color:var(--gold); }
.ds-motion .ds-title{ color:#fff; }
.ds-motion .ds-lede{ color:rgba(255,255,255,0.85); max-width:680px; }
@media (prefers-reduced-motion:reduce){ .ds-motion .bg-anim{ animation:none; } }

/* 14 Analysis, Hover Effects / Interactive States */
.ds-hovergrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:24px; }
.ds-hovercard{ border:1px solid var(--line); padding:18px; height:116px; position:relative; overflow:hidden; cursor:pointer; }
.ds-hovercard .front{ font-size:13.5px; font-weight:700; color:var(--brown); transition:opacity .25s ease; }
.ds-hovercard .back{ position:absolute; inset:0; padding:18px; background:var(--brown); color:#fff; font-size:11.5px; line-height:1.5; opacity:0; transform:translateY(6px); transition:opacity .25s ease, transform .25s ease; }
.ds-hovercard:hover .front, .ds-hovercard.touched .front{ opacity:0; }
.ds-hovercard:hover .back, .ds-hovercard.touched .back{ opacity:1; transform:translateY(0); }

/* 15 Data Science, Tabs Section */
.ds-tabs{ margin-top:24px; }
.ds-tab-nav{ display:flex; gap:2px; border-bottom:1px solid var(--line); }
.ds-tab-btn{ padding:10px 16px; font-size:12.5px; font-weight:700; color:var(--charcoal); background:none; border:none; cursor:pointer; font-family:inherit; border-bottom:2px solid transparent; }
.ds-tab-btn.active{ color:var(--brown); border-bottom-color:var(--gold-deep, #B9862A); }
.ds-tab-panel{ display:none; padding:18px 2px; font-size:12.5px; color:var(--charcoal); line-height:1.65; }
.ds-tab-panel.active{ display:block; }

/* ---------- Icon link grid ---------- */
.icon-grid{ max-width:1320px; margin:0 auto; padding:28px 28px 48px; display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.icon-grid.cols-3{ grid-template-columns:repeat(3,1fr); }
.icon-card{ text-align:left; }
.icon-card .circle{
  width:36px; height:36px; border-radius:50%; background:var(--off); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; margin-bottom:11px; font-size:13px; font-weight:700; color:var(--brown);
}
.icon-card a{ font-weight:700; font-size:14px; text-decoration:underline; color:var(--brown); }
.icon-card p{ font-size:12.5px; color:var(--charcoal); margin-top:6px; line-height:1.55; }

/* ---------- Plain content block (for interior pages) ---------- */
.content-block{ max-width:860px; margin:0 auto; padding:4px 28px 44px; }
.content-block h2{ font-size:19px; font-weight:700; color:var(--brown); margin:26px 0 10px; }
.content-block h2:first-child{ margin-top:0; }
.content-block p{ font-size:14.5px; line-height:1.7; color:var(--charcoal); margin-bottom:12px; }
.content-block ul{ margin:0 0 12px 20px; }
.content-block li{ font-size:14.5px; line-height:1.7; color:var(--charcoal); margin-bottom:5px; }
.stat-strip{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:26px 0; }
.stat-strip div{ padding:13px; border-left:1px solid var(--line); }
.stat-strip div:first-child{ border-left:none; }
.stat-strip b{ display:block; font-size:21px; font-weight:700; color:var(--brown); }
.stat-strip span{ font-size:10.5px; text-transform:uppercase; letter-spacing:0.05em; color:var(--charcoal); }

/* ---------- Owner / profile ---------- */
.profile{ display:grid; grid-template-columns:220px 1fr; gap:32px; max-width:960px; margin:0 auto; padding:4px 28px 44px; align-items:start; }
.profile-photo{ width:100%; aspect-ratio:1; background:linear-gradient(160deg,#8a6f4e,#332921); border:1px solid var(--line); }
.profile h2{ font-size:21px; font-weight:700; color:var(--brown); margin-bottom:3px; }
.profile .role{ font-size:12px; color:var(--charcoal); font-weight:600; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:14px; }
.profile p{ font-size:14.5px; line-height:1.7; color:var(--charcoal); margin-bottom:12px; }

/* ---------- Contact form ---------- */
.contact-wrap{ max-width:860px; margin:0 auto; padding:4px 28px 48px; display:grid; grid-template-columns:1.2fr 1fr; gap:40px; }
.contact-wrap .info h2{ font-size:15px; font-weight:700; color:var(--brown); margin-bottom:10px; }
.contact-wrap .info p{ font-size:13.5px; color:var(--charcoal); line-height:1.7; margin-bottom:8px; }
.contact-wrap .info a{ color:#2A5A8C; text-decoration:underline; }
.form-field{ margin-bottom:12px; }
.form-field label{ display:block; font-size:12.5px; font-weight:700; color:var(--black); margin-bottom:4px; }
.form-field input, .form-field textarea{
  width:100%; border:1px solid #B9B0A0; padding:7px 10px; font-size:13.5px; font-family:inherit; background:#fff;
}
.form-field textarea{ min-height:88px; resize:vertical; }
.form-note{ font-size:11.5px; color:var(--charcoal); margin-top:4px; }

/* ---------- Footer ---------- */
footer{ background:var(--black); color:rgba(255,255,255,0.85); position:relative; overflow:hidden; }
.footer-inner{ max-width:1320px; margin:0 auto; padding:36px 28px 22px; position:relative; z-index:2; }
.footer-brand{ padding-bottom:18px; margin-bottom:20px; border-bottom:1px solid rgba(255,255,255,0.12); }
.footer-brand span{ font-size:13px; font-weight:700; letter-spacing:0.01em; color:#fff; }
.footer-cols{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px 24px; }
.footer-col h3{ font-size:10px; letter-spacing:0.09em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-bottom:11px; }
.footer-col a{ display:block; padding:3.5px 0; font-size:12px; text-decoration:none; color:rgba(255,255,255,0.72); }
.footer-col a:hover{ color:#fff; }
footer .skyline{
  position:absolute; bottom:0; left:0; right:0; height:120px; opacity:0.08;
  background:linear-gradient(180deg, transparent, rgba(255,255,255,0.4));
  mask-image: linear-gradient(180deg, transparent 40%, black 100%);
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.15); padding:10px 28px;
  display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:10.5px; position:relative; z-index:2;
}
.footer-bottom .links{ color:rgba(255,255,255,0.55); }
.footer-bottom .links a{ text-decoration:none; color:rgba(255,255,255,0.7); margin-right:10px; }
.footer-bottom .word img{ height:16px; width:auto; display:block; flex-shrink:0; }

@media (max-width:900px){
  .hero{ grid-template-columns:1fr; }
  .hero-photo{ height:220px; order:-1; }
  .cards-grid, .icon-grid, .cards-grid.cols-2, .icon-grid.cols-3{ grid-template-columns:1fr; }
  .footer-cols{ grid-template-columns:repeat(2,1fr); }
  .profile{ grid-template-columns:1fr; }
  .profile-photo{ max-width:200px; }
  .contact-wrap{ grid-template-columns:1fr; }
  .stat-strip{ grid-template-columns:repeat(2,1fr); }
  .topbar{ flex-wrap:wrap; gap:10px; }
  .search{ width:100%; }
  .search input{ flex:1; width:auto; min-width:0; }
}

@media (max-width:900px){
  .ds-split, .ds-cards3{ grid-template-columns:1fr; }
  .ds-grid4{ grid-template-columns:repeat(2,1fr); }
  .ds-grid4 div:nth-child(3){ border-left:none; }
  .ds-bento{ grid-template-columns:repeat(2,1fr); grid-auto-rows:minmax(100px, auto); }
  .ds-bento div:nth-child(1){ grid-column:span 2; grid-row:span 1; }
  .ds-hovergrid{ grid-template-columns:repeat(2,1fr); }
  .ds-timeline{ flex-direction:column; gap:20px; }
  .ds-timeline::before{ display:none; }
  .ds-layers{ height:auto; position:static; display:flex; flex-direction:column; gap:12px; }
  .ds-layer{ position:static; width:auto; }
}

@media (max-width:700px){
  .ds-section{ padding:40px 20px; }
  .ds-hero{ padding:44px 24px; }
  .ds-hero::before{ font-size:140px; }
  .ds-zig-item, .ds-zig-item:nth-child(even), .ds-zig-item:nth-child(odd){ flex-direction:row; margin-left:0; margin-right:0; text-align:left; }
}

/* Narrow phones: tighten side padding and scale down headings so nothing
   crowds or wraps awkwardly on a ~360-400px real device screen. */
@media (max-width:480px){
  .topbar, .menubar, .hero-text, .page-banner, .cards-section,
  .icon-grid, .content-block, .profile, .contact-wrap, .footer-inner,
  .footer-bottom, .section-header{
    padding-left:16px; padding-right:16px;
  }
  .hero-text h1{ font-size:24px; }
  .page-banner h1{ font-size:24px; }
  .brand .wordmark{ font-size:12px; }
  .brand img{ height:22px; }
  section, .cards-section{ padding-top:28px; padding-bottom:28px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; gap:12px; }
  .footer-bottom .word{ align-self:flex-start; }
  .footer-bottom .word img{ height:18px; }
}

/* ==================================================================
   Technology page: engineering-console aesthetic (tc- prefix).
   Deliberately distinct from the Home page's ds- showcase system:
   monospace accents, blueprint grid lines, bracket/prompt motifs,
   spec-sheet panels instead of alternating feature rows.
   ================================================================== */
.tc-mono{ font-family:"SF Mono",Consolas,monospace; }

.tc-hero{
  background:linear-gradient(160deg, var(--black), var(--brown-deep));
  color:#fff; padding:56px 40px 44px; position:relative; overflow:hidden;
}
.tc-hero::before{
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size:32px 32px;
  pointer-events:none;
}
.tc-tag{ font-family:"SF Mono",Consolas,monospace; font-size:11px; color:var(--gold); letter-spacing:0.05em; margin-bottom:14px; position:relative; z-index:1; }
.tc-tag::before{ content:"// "; color:rgba(255,255,255,0.4); }
.tc-hero h1{ font-size:31px; font-weight:700; color:#fff; max-width:740px; line-height:1.28; position:relative; z-index:1; }
.tc-hero .lede{ font-size:14.5px; color:rgba(255,255,255,0.78); max-width:660px; margin-top:16px; line-height:1.75; position:relative; z-index:1; }
.tc-hero .lede + .lede{ margin-top:12px; }
.tc-status-strip{ display:flex; flex-wrap:wrap; gap:24px; margin-top:26px; position:relative; z-index:1; }
.tc-status-chip{ display:flex; align-items:center; gap:8px; font-family:"SF Mono",Consolas,monospace; font-size:11.5px; color:rgba(255,255,255,0.85); }
.tc-status-dot{ width:7px; height:7px; border-radius:50%; background:#5fbf6f; box-shadow:0 0 6px #5fbf6f; flex-shrink:0; }

.tc-intro{ max-width:900px; margin:0 auto; padding:36px 32px 4px; }
.tc-intro p{ font-size:14.5px; line-height:1.75; color:var(--charcoal); margin-bottom:14px; }

.tc-panels{ max-width:1320px; margin:24px auto 0; padding:0 32px 40px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.tc-panel{ background:#fff; padding:26px; }
.tc-panel-id{ font-family:"SF Mono",Consolas,monospace; font-size:10.5px; color:var(--gold-deep, #B9862A); margin-bottom:10px; letter-spacing:0.03em; }
.tc-panel h3{ font-size:16px; font-weight:700; color:var(--brown); margin-bottom:9px; line-height:1.3; }
.tc-panel h3 a{ color:inherit; text-decoration:none; border-bottom:1px solid transparent; }
.tc-panel h3 a:hover{ border-bottom-color:var(--gold); }
.tc-panel p{ font-size:12.5px; line-height:1.65; color:var(--charcoal); margin-bottom:14px; }
.tc-specs{ border-top:1px dashed var(--line); padding-top:11px; }
.tc-specs div{ display:flex; justify-content:space-between; gap:8px; font-family:"SF Mono",Consolas,monospace; font-size:10.5px; padding:3px 0; color:var(--charcoal); }
.tc-specs div span:last-child{ color:var(--brown); font-weight:700; text-align:right; }

.tc-diagram{ display:flex; align-items:stretch; max-width:1320px; margin:0 auto; padding:0 32px; overflow-x:auto; }
.tc-diagram-box{ flex:1; min-width:150px; border:1.5px solid var(--brown); background:var(--off); padding:18px 14px; text-align:center; }
.tc-diagram-box b{ display:block; font-size:12.5px; color:var(--brown); margin-bottom:5px; }
.tc-diagram-box span{ font-size:10.5px; color:var(--charcoal); line-height:1.45; display:block; }
.tc-diagram-arrow{ flex:0 0 36px; display:flex; align-items:center; justify-content:center; color:var(--gold-deep, #B9862A); font-size:18px; }

.tc-stack{ max-width:1320px; margin:0 auto; padding:8px 32px 8px; }
.tc-stack-row{ display:flex; gap:24px; padding:16px 0; border-bottom:1px solid var(--line); flex-wrap:wrap; align-items:baseline; }
.tc-stack-row b{ font-family:"SF Mono",Consolas,monospace; font-size:10.5px; color:var(--gold-deep, #B9862A); width:190px; flex-shrink:0; text-transform:uppercase; letter-spacing:0.04em; }
.tc-stack-row .desc{ font-size:12.5px; color:var(--charcoal); flex-basis:100%; margin-top:6px; line-height:1.6; }
.tc-chip{ display:inline-block; font-size:11.5px; color:var(--brown); background:var(--off); border:1px solid var(--line); padding:4px 10px; margin:2px 5px 2px 0; }

.tc-pipeline{ display:flex; max-width:1320px; margin:0 auto; padding:0 32px; overflow-x:auto; }
.tc-pipe-step{ flex:1; min-width:140px; position:relative; padding:0 22px 4px 0; }
.tc-pipe-step .n{ font-family:"SF Mono",Consolas,monospace; font-size:10px; color:var(--gold-deep, #B9862A); }
.tc-pipe-step b{ display:block; font-size:13px; color:var(--brown); margin:6px 0; }
.tc-pipe-step span{ font-size:11.5px; color:var(--charcoal); line-height:1.55; }
.tc-pipe-step::after{ content:"\2192"; position:absolute; right:-2px; top:0; color:var(--line); font-size:20px; }
.tc-pipe-step:last-child::after{ content:""; }

.tc-principles{ max-width:900px; margin:0 auto; padding:8px 32px; }
.tc-principle{ font-family:"SF Mono",Consolas,monospace; font-size:12.5px; line-height:1.7; color:var(--charcoal); padding:11px 0; border-bottom:1px solid var(--line); }
.tc-principle .prompt{ color:var(--gold-deep, #B9862A); margin-right:8px; }

.tc-dash{ background:var(--black); display:grid; grid-template-columns:repeat(4,1fr); }
.tc-dash div{ padding:28px 20px; text-align:center; border-left:1px solid rgba(255,255,255,0.1); }
.tc-dash div:first-child{ border-left:none; }
.tc-dash b{ display:block; font-family:"SF Mono",Consolas,monospace; font-size:25px; color:var(--gold); margin-bottom:6px; }
.tc-dash span{ font-size:10px; color:rgba(255,255,255,0.6); text-transform:uppercase; letter-spacing:0.05em; }

@media (max-width:900px){
  .tc-panels{ grid-template-columns:1fr; }
  .tc-diagram, .tc-pipeline{ flex-direction:column; }
  .tc-diagram-arrow{ transform:rotate(90deg); padding:2px 0; }
  .tc-pipe-step{ padding:0 0 18px 0; }
  .tc-pipe-step::after{ content:"\2193"; right:auto; left:0; top:auto; bottom:-4px; }
  .tc-dash{ grid-template-columns:repeat(2,1fr); }
  .tc-dash div:nth-child(3){ border-left:none; }
}
@media (max-width:480px){
  .tc-hero{ padding:40px 20px 32px; }
  .tc-stack-row b{ width:auto; }
}

/* ==================================================================
   Subsidiaries page: holding-company registry aesthetic (hd- prefix).
   Distinct again from both ds- (Home) and tc- (Technology): a formal,
   serif-accented ledger/prospectus feel, grouped by sector, numbered
   registry entries instead of a feature showcase or a spec console.
   ================================================================== */
.hd-hero{
  background:var(--off); border-bottom:3px solid var(--gold);
  padding:52px 40px 40px; position:relative;
  background-image:repeating-linear-gradient(rgba(72,58,44,0.05) 0px, rgba(72,58,44,0.05) 1px, transparent 1px, transparent 34px);
}
.hd-hero .tag{ font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-deep, #B9862A); font-weight:700; margin-bottom:14px; }
.hd-hero h1{ font-family:Georgia,serif; font-size:36px; font-weight:700; color:var(--black); max-width:760px; line-height:1.2; }
.hd-hero .lede{ font-size:14.5px; color:var(--charcoal); max-width:660px; margin-top:16px; line-height:1.75; }

.hd-statbar{ display:flex; max-width:1320px; margin:0 auto; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.hd-statbar div{ flex:1; padding:20px 24px; border-left:1px solid var(--line); }
.hd-statbar div:first-child{ border-left:none; }
.hd-statbar b{ display:block; font-family:Georgia,serif; font-size:26px; color:var(--brown); }
.hd-statbar span{ font-size:10.5px; text-transform:uppercase; letter-spacing:0.06em; color:var(--charcoal); }

.hd-index{ max-width:1320px; margin:0 auto; padding:28px 32px 8px; display:flex; flex-wrap:wrap; gap:10px; }
.hd-index a{ font-size:12px; font-weight:700; color:var(--brown); background:var(--off); border:1px solid var(--line); padding:7px 14px; text-decoration:none; }
.hd-index a:hover{ background:var(--line); }
.hd-index a span{ color:var(--gold-deep, #B9862A); margin-left:4px; }

.hd-sector{ max-width:1320px; margin:0 auto; padding:36px 32px 6px; }
.hd-sector-head{ display:flex; align-items:baseline; gap:12px; margin-bottom:6px; padding-bottom:10px; border-bottom:2px solid var(--brown); }
.hd-sector-head h2{ font-family:Georgia,serif; font-size:20px; color:var(--brown); font-weight:700; }
.hd-sector-head span{ font-size:11px; color:var(--charcoal); text-transform:uppercase; letter-spacing:0.05em; }

.hd-entry{ display:flex; gap:26px; padding:26px 4px; border-bottom:1px solid var(--line); }
.hd-entry-num{ flex:0 0 76px; font-family:Georgia,serif; font-size:13px; color:var(--charcoal); padding-top:2px; }
.hd-entry-body{ flex:1; border-left:3px solid var(--sector-color, var(--gold)); padding-left:22px; }
.hd-entry-top{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:8px; }
.hd-entry-top h3{ font-family:Georgia,serif; font-size:19px; color:var(--black); font-weight:700; }
.hd-tag{ font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; color:var(--sector-color, var(--gold-deep)); border:1px solid var(--sector-color, var(--gold-deep)); padding:2px 8px; }
.hd-entry-meta{ font-size:11px; color:var(--charcoal); margin-bottom:10px; }
.hd-entry-meta b{ color:var(--brown); }
.hd-entry-body p{ font-size:13.5px; line-height:1.7; color:var(--charcoal); margin-bottom:10px; max-width:820px; }

@media (max-width:900px){
  .hd-statbar{ flex-wrap:wrap; }
  .hd-statbar div{ flex:0 0 50%; border-left:none; border-top:1px solid var(--line); }
  .hd-statbar div:nth-child(odd){ border-left:none; }
  .hd-entry{ flex-direction:column; gap:8px; }
  .hd-entry-num{ flex:none; }
}
@media (max-width:480px){
  .hd-hero{ padding:36px 20px 28px; }
  .hd-hero h1{ font-size:27px; }
}

/* ==================================================================
   Projects page: image-forward portfolio gallery + case study
   detail template (pf- prefix). Distinct again from ds- (Home),
   tc- (Technology), and hd- (Subsidiaries): large visual tiles,
   category filters, and a full case-study narrative page you click
   into, instead of a text-first component showcase.
   ================================================================== */
.pf-hero{ max-width:1320px; margin:0 auto; padding:44px 32px 8px; }
.pf-hero .tag{ font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold-deep, #B9862A); font-weight:700; margin-bottom:12px; }
.pf-hero h1{ font-size:31px; font-weight:700; color:var(--black); max-width:700px; line-height:1.25; }
.pf-hero .lede{ font-size:14.5px; color:var(--charcoal); max-width:660px; margin-top:14px; line-height:1.7; }

.pf-filters{ max-width:1320px; margin:0 auto; padding:20px 32px 4px; display:flex; flex-wrap:wrap; gap:8px; }
.pf-filters span{ font-size:11.5px; font-weight:700; padding:6px 14px; border:1px solid var(--line); color:var(--charcoal); background:#fff; }
.pf-filters span.active{ background:var(--brown); color:#fff; border-color:var(--brown); }

.pf-gallery{ max-width:1320px; margin:0 auto; padding:24px 32px 60px; display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.pf-tile{ display:block; text-decoration:none; color:inherit; border:1px solid var(--line); background:#fff; transition:box-shadow .2s ease, transform .2s ease; }
.pf-tile:hover{ box-shadow:0 16px 32px rgba(0,0,0,0.1); transform:translateY(-3px); }
.pf-tile-visual{ height:180px; position:relative; overflow:hidden; display:flex; align-items:flex-end; padding:16px; }
.pf-tile-visual::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 42%, rgba(0,0,0,0.6) 100%); }
.pf-tile-cat{ position:relative; z-index:1; font-size:10px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:#fff; background:rgba(0,0,0,0.32); padding:4px 9px; }
.pf-tile-body{ padding:20px; }
.pf-tile-body h3{ font-size:16px; font-weight:700; color:var(--brown); margin-bottom:8px; line-height:1.3; }
.pf-tile-body p{ font-size:12.5px; line-height:1.6; color:var(--charcoal); margin-bottom:12px; }
.pf-tile-link{ font-size:12px; font-weight:700; color:var(--brown); }
.pf-tile-link span{ margin-left:4px; transition:margin-left .15s ease; }
.pf-tile:hover .pf-tile-link span{ margin-left:8px; }

/* Case study detail template */
.pf-case-hero{ position:relative; min-height:300px; display:flex; align-items:flex-end; padding:40px; color:#fff; overflow:hidden; }
.pf-case-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.65) 100%); z-index:0; }
.pf-case-hero-inner{ position:relative; z-index:1; max-width:1320px; margin:0 auto; width:100%; }
.pf-case-hero .cat{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; color:var(--gold); margin-bottom:10px; }
.pf-case-hero h1{ font-size:30px; font-weight:700; max-width:760px; line-height:1.25; }
.pf-case-crumb{ max-width:1320px; margin:0 auto; padding:14px 32px 0; font-size:12px; }
.pf-case-crumb a{ color:#2A5A8C; text-decoration:underline; }

.pf-case-meta{ display:flex; flex-wrap:wrap; max-width:1320px; margin:0 auto; border-bottom:1px solid var(--line); }
.pf-case-meta div{ flex:1; min-width:140px; padding:18px 24px; border-left:1px solid var(--line); }
.pf-case-meta div:first-child{ border-left:none; }
.pf-case-meta b{ display:block; font-size:13.5px; color:var(--brown); }
.pf-case-meta span{ font-size:10.5px; text-transform:uppercase; letter-spacing:0.05em; color:var(--charcoal); }

.pf-case-body{ max-width:860px; margin:0 auto; padding:40px 32px 8px; }
.pf-case-body h2{ font-size:22px; font-weight:700; color:var(--brown); margin:32px 0 14px; }
.pf-case-body h2:first-child{ margin-top:0; }
.pf-case-body p{ font-size:15px; line-height:1.75; color:var(--charcoal); margin-bottom:14px; }
.pf-pullquote{ border-left:3px solid var(--gold); padding:4px 0 4px 22px; font-family:Georgia,serif; font-style:italic; font-size:18px; color:var(--brown); margin:30px 0; }
.pf-placeholder-note{ font-size:12.5px; color:var(--charcoal); background:var(--off); border:1px dashed var(--line); padding:14px 16px; margin:18px 0; }

.pf-case-gallery-label{ max-width:860px; margin:36px auto 0; padding:0 32px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--gold-deep, #B9862A); }
.pf-case-gallery{ max-width:1320px; margin:0 auto; padding:16px 32px 60px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.pf-case-gallery div{ aspect-ratio:4/3; background:var(--off); border:1px dashed var(--line); display:flex; align-items:center; justify-content:center; font-size:11px; color:var(--charcoal); text-transform:uppercase; letter-spacing:0.05em; text-align:center; padding:10px; }

.pf-case-nav{ max-width:1320px; margin:0 auto; padding:0 32px 60px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.pf-case-nav a{ font-size:13px; font-weight:700; color:var(--brown); text-decoration:none; }
.pf-case-nav a:hover{ text-decoration:underline; }

@media (max-width:900px){
  .pf-gallery{ grid-template-columns:1fr; }
  .pf-case-gallery{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:480px){
  .pf-case-hero{ padding:28px 20px; min-height:240px; }
  .pf-case-hero h1{ font-size:24px; }
  .pf-case-gallery{ grid-template-columns:1fr; }
}

/* ==================================================================
   Investment page: luxury investor-relations aesthetic (iv- prefix).
   Distinct again from ds- (Home), tc- (Technology), hd- (Subsidiaries),
   and pf- (Projects): near-black backgrounds, thin gold hairlines,
   generous whitespace, serif numerals, a private-capital feel rather
   than a product showcase.
   ================================================================== */
.iv-hero{
  background:var(--black); color:#fff; position:relative; overflow:hidden;
  padding:64px 40px 52px; text-align:center;
}
.iv-hero::before{
  content:""; position:absolute; left:50%; top:-20%; width:900px; height:900px;
  transform:translateX(-50%); border-radius:50%;
  background:radial-gradient(circle, rgba(198,161,91,0.14) 0%, rgba(198,161,91,0) 70%);
  pointer-events:none;
}
.iv-hero-inner{ position:relative; z-index:1; max-width:800px; margin:0 auto; }
.iv-hero .eyebrow{ font-size:11px; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-bottom:18px; }
.iv-hero h1{ font-family:Georgia,serif; font-size:38px; font-weight:700; line-height:1.25; }
.iv-hero .rule{ width:56px; height:1px; background:var(--gold); margin:22px auto; }
.iv-hero .lede{ font-size:15px; line-height:1.8; color:rgba(255,255,255,0.78); max-width:620px; margin:0 auto; }
.iv-hero .actions{ margin-top:30px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.iv-btn{ display:inline-block; border:1px solid var(--gold); color:var(--gold); padding:11px 28px; font-size:12px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; text-decoration:none; transition:background .2s ease, color .2s ease; }
.iv-btn:hover{ background:var(--gold); color:var(--black); }
.iv-btn.solid{ background:var(--gold); color:var(--black); }
.iv-btn.solid:hover{ background:#d8b878; }

.iv-glance{ background:var(--black); border-top:1px solid rgba(198,161,91,0.25); display:flex; flex-wrap:wrap; }
.iv-glance div{ flex:1; min-width:150px; text-align:center; padding:26px 20px; border-top:1px solid var(--gold); }
.iv-glance b{ display:block; font-family:Georgia,serif; font-size:28px; color:var(--gold); }
.iv-glance span{ font-size:10px; text-transform:uppercase; letter-spacing:0.08em; color:rgba(255,255,255,0.6); }

.iv-section{ max-width:940px; margin:0 auto; padding:52px 32px 8px; }
.iv-section .kicker{ font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-deep, #B9862A); font-weight:700; text-align:center; margin-bottom:10px; }
.iv-section h2.title{ font-family:Georgia,serif; font-size:26px; font-weight:700; color:var(--black); text-align:center; margin-bottom:14px; }
.iv-section .intro{ font-size:14.5px; line-height:1.8; color:var(--charcoal); text-align:center; max-width:680px; margin:0 auto 8px; }

.iv-thesis{ max-width:940px; margin:0 auto; padding:24px 32px 40px; }
.iv-thesis-item{ display:flex; gap:26px; padding:26px 0; border-bottom:1px solid var(--line); }
.iv-thesis-num{ flex:0 0 56px; font-family:Georgia,serif; font-size:26px; color:var(--gold-deep, #B9862A); }
.iv-thesis-body h3{ font-size:16.5px; font-weight:700; color:var(--brown); margin-bottom:8px; }
.iv-thesis-body p{ font-size:14px; line-height:1.75; color:var(--charcoal); }

.iv-panels{ max-width:1200px; margin:0 auto; padding:24px 32px 56px; display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.iv-panel{ background:#fff; padding:32px; }
.iv-panel .rule-sm{ width:34px; height:2px; background:var(--gold); margin-bottom:16px; }
.iv-panel h3{ font-family:Georgia,serif; font-size:19px; color:var(--black); margin-bottom:12px; }
.iv-panel p{ font-size:13.5px; line-height:1.75; color:var(--charcoal); margin-bottom:16px; }
.iv-panel a{ font-size:11.5px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--brown); text-decoration:none; border-bottom:1px solid var(--gold); padding-bottom:2px; }

.iv-process{ max-width:760px; margin:0 auto; padding:24px 32px 56px; }
.iv-step{ display:flex; gap:24px; position:relative; padding-bottom:34px; }
.iv-step::before{ content:""; position:absolute; left:19px; top:42px; bottom:0; width:1px; background:var(--line); }
.iv-step:last-child::before{ display:none; }
.iv-step-num{ flex:0 0 40px; height:40px; border:1px solid var(--gold); color:var(--gold-deep, #B9862A); font-family:Georgia,serif; font-size:15px; display:flex; align-items:center; justify-content:center; background:#fff; position:relative; z-index:1; }
.iv-step-body{ padding-top:6px; }
.iv-step-body h3{ font-size:15px; font-weight:700; color:var(--brown); margin-bottom:6px; }
.iv-step-body p{ font-size:13.5px; line-height:1.7; color:var(--charcoal); }

.iv-disclaimer{ max-width:940px; margin:0 auto; padding:24px 32px 60px; }
.iv-disclaimer p{ font-size:11.5px; line-height:1.7; color:var(--charcoal); border-top:1px solid var(--line); padding-top:18px; }

.iv-cta{ background:var(--off); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:48px 32px; text-align:center; }
.iv-cta h2{ font-family:Georgia,serif; font-size:24px; color:var(--black); margin-bottom:12px; }
.iv-cta p{ font-size:14px; color:var(--charcoal); max-width:560px; margin:0 auto 22px; line-height:1.7; }

@media (max-width:900px){
  .iv-panels{ grid-template-columns:1fr; }
  .iv-hero h1{ font-size:29px; }
}
@media (max-width:480px){
  .iv-hero{ padding:44px 20px 36px; }
  .iv-hero h1{ font-size:24px; }
  .iv-thesis-item{ gap:16px; }
  .iv-thesis-num{ flex:0 0 36px; font-size:20px; }
}

/* ==================================================================
   Customers page: a warm, ceremonial "recognition" aesthetic
   (cx- prefix). Distinct again from every other page: cream and
   gold rather than dark or corporate, ornamental corner brackets,
   circular medallion badges, and an actual certificate-style panel,
   built to honor clients rather than sell to them.
   ================================================================== */
.cx-hero{
  background:var(--off); position:relative; padding:56px 60px; text-align:center;
  border:1px solid var(--line); margin:24px 32px 0; max-width:1256px; margin-left:auto; margin-right:auto;
}
.cx-hero::before, .cx-hero::after,
.cx-hero .corner-br, .cx-hero .corner-bl{ content:""; position:absolute; width:26px; height:26px; }
.cx-hero::before{ top:10px; left:10px; border-top:2px solid var(--gold); border-left:2px solid var(--gold); }
.cx-hero::after{ top:10px; right:10px; border-top:2px solid var(--gold); border-right:2px solid var(--gold); }
.cx-hero .corner-bl{ bottom:10px; left:10px; border-bottom:2px solid var(--gold); border-left:2px solid var(--gold); }
.cx-hero .corner-br{ bottom:10px; right:10px; border-bottom:2px solid var(--gold); border-right:2px solid var(--gold); }
.cx-seal{
  width:56px; height:56px; border-radius:50%; margin:0 auto 20px;
  border:2px solid var(--gold); display:flex; align-items:center; justify-content:center;
  font-family:Georgia,serif; font-size:20px; color:var(--gold-deep, #B9862A); position:relative;
}
.cx-seal::before{ content:""; position:absolute; inset:5px; border:1px solid var(--gold); border-radius:50%; }
.cx-hero .eyebrow{ font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-deep, #B9862A); font-weight:700; margin-bottom:14px; }
.cx-hero h1{ font-family:Georgia,serif; font-size:32px; font-weight:700; color:var(--black); max-width:640px; margin:0 auto; line-height:1.3; }
.cx-hero .lede{ font-size:14.5px; color:var(--charcoal); max-width:600px; margin:18px auto 0; line-height:1.8; }

.cx-section{ max-width:1100px; margin:0 auto; padding:52px 32px 8px; text-align:center; }
.cx-section .kicker{ font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-deep, #B9862A); font-weight:700; margin-bottom:10px; }
.cx-section h2{ font-family:Georgia,serif; font-size:25px; color:var(--black); margin-bottom:12px; }
.cx-section p.intro{ font-size:14px; line-height:1.8; color:var(--charcoal); max-width:660px; margin:0 auto; }

.cx-badges{ max-width:1200px; margin:0 auto; padding:28px 32px 56px; display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.cx-badge{ text-align:center; padding:0 8px; }
.cx-medal{
  width:72px; height:72px; border-radius:50%; margin:0 auto 18px; position:relative;
  background:linear-gradient(160deg, var(--gold), var(--gold-deep, #B9862A));
  display:flex; align-items:center; justify-content:center;
  font-family:Georgia,serif; font-size:24px; color:#fff; font-weight:700;
  box-shadow:0 6px 16px rgba(198,161,91,0.35);
}
.cx-medal::before{ content:""; position:absolute; inset:6px; border:1px solid rgba(255,255,255,0.6); border-radius:50%; }
.cx-badge h3{ font-size:15.5px; font-weight:700; color:var(--brown); margin-bottom:8px; }
.cx-badge p{ font-size:12.5px; line-height:1.65; color:var(--charcoal); }

.cx-cert-wrap{ max-width:820px; margin:0 auto; padding:12px 32px 60px; }
.cx-cert{
  border:2px solid var(--gold); padding:44px 40px; text-align:center; position:relative; background:#fff;
}
.cx-cert::before{ content:""; position:absolute; inset:8px; border:1px solid var(--line); pointer-events:none; }
.cx-cert .mark{ font-family:Georgia,serif; font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold-deep, #B9862A); margin-bottom:18px; }
.cx-cert h3{ font-family:Georgia,serif; font-size:24px; color:var(--black); margin-bottom:6px; }
.cx-cert .sub{ font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--charcoal); margin-bottom:26px; }
.cx-cert .field{ font-family:Georgia,serif; font-style:italic; font-size:19px; color:var(--brown); border-bottom:1px dotted var(--line); display:inline-block; min-width:280px; padding-bottom:6px; margin-bottom:26px; }
.cx-cert p.body{ font-size:13px; line-height:1.8; color:var(--charcoal); max-width:520px; margin:0 auto 30px; }
.cx-cert .sign{ display:flex; justify-content:space-between; max-width:480px; margin:0 auto; }
.cx-cert .sign div{ text-align:center; }
.cx-cert .sign b{ font-family:Georgia,serif; font-size:14px; color:var(--brown); display:block; border-top:1px solid var(--charcoal); padding-top:6px; margin-top:26px; }
.cx-cert .sign span{ font-size:10px; text-transform:uppercase; letter-spacing:0.05em; color:var(--charcoal); }
.cx-cert-note{ font-size:11.5px; color:var(--charcoal); text-align:center; margin-top:16px; }

.cx-segments{ max-width:1200px; margin:0 auto; padding:24px 32px 56px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.cx-seg{ display:flex; gap:16px; align-items:flex-start; text-align:left; }
.cx-seg-icon{
  width:46px; height:46px; border-radius:50%; flex-shrink:0; border:1.5px solid var(--gold);
  display:flex; align-items:center; justify-content:center; font-family:Georgia,serif; color:var(--gold-deep, #B9862A); font-size:15px;
}
.cx-seg h3{ font-size:14.5px; font-weight:700; color:var(--brown); margin-bottom:5px; }
.cx-seg p{ font-size:12.5px; line-height:1.6; color:var(--charcoal); }

.cx-support{ background:var(--off); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:52px 32px; }
.cx-support-inner{ max-width:900px; margin:0 auto; }
.cx-support h2{ font-family:Georgia,serif; font-size:24px; color:var(--black); text-align:center; margin-bottom:28px; }
.cx-support-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.cx-support-grid div{ text-align:center; }
.cx-support-grid .num{ font-family:Georgia,serif; font-size:22px; color:var(--gold-deep, #B9862A); margin-bottom:10px; }
.cx-support-grid h3{ font-size:14px; font-weight:700; color:var(--brown); margin-bottom:8px; }
.cx-support-grid p{ font-size:12.5px; line-height:1.65; color:var(--charcoal); }

.cx-cta{ text-align:center; padding:52px 32px 60px; }
.cx-cta h2{ font-family:Georgia,serif; font-size:24px; color:var(--black); margin-bottom:12px; }
.cx-cta p{ font-size:14px; color:var(--charcoal); max-width:520px; margin:0 auto 22px; line-height:1.7; }

@media (max-width:900px){
  .cx-badges{ grid-template-columns:repeat(2,1fr); }
  .cx-segments{ grid-template-columns:1fr; }
  .cx-support-grid{ grid-template-columns:1fr; }
  .cx-hero{ margin:16px 16px 0; padding:40px 24px; }
  .cx-cert{ padding:34px 20px; }
  .cx-cert .field{ min-width:200px; }
  .cx-cert .sign{ flex-direction:column; gap:20px; }
}
@media (max-width:480px){
  .cx-hero h1{ font-size:25px; }
  .cx-badges{ grid-template-columns:1fr; }
}

/* ==================================================================
   Articles page: editorial magazine aesthetic (ar- prefix).
   Distinct again from every other page: a newspaper-style masthead,
   underline category tabs, a dense 20-card grid with real pagination,
   and a separate long-form reading template for the article itself.
   ================================================================== */
.ar-masthead{ max-width:1320px; margin:0 auto; padding:40px 32px 22px; text-align:center; border-bottom:3px double var(--brown); }
.ar-masthead .kicker{ font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold-deep, #B9862A); font-weight:700; margin-bottom:10px; }
.ar-masthead h1{ font-family:Georgia,serif; font-size:38px; font-weight:700; color:var(--black); }
.ar-masthead p{ font-size:13.5px; color:var(--charcoal); margin-top:10px; max-width:560px; margin-left:auto; margin-right:auto; line-height:1.7; }

.ar-tabs{ max-width:1320px; margin:0 auto; padding:16px 32px 0; display:flex; flex-wrap:wrap; gap:2px; justify-content:center; }
.ar-tabs span{ font-size:12px; font-weight:700; color:var(--charcoal); padding:10px 14px; border-bottom:2px solid transparent; cursor:pointer; }
.ar-tabs span:hover{ color:var(--brown); }
.ar-tabs span.active{ color:var(--brown); border-bottom-color:var(--gold); }

.ar-empty{ display:none; max-width:1320px; margin:0 auto; padding:40px 32px; text-align:center; font-size:13px; color:var(--charcoal); }
.ar-empty a{ color:var(--brown); font-weight:700; }

.ar-grid{ max-width:1320px; margin:0 auto; padding:28px 32px 20px; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.ar-card{ background:#fff; padding:22px 20px; display:flex; flex-direction:column; min-height:190px; text-decoration:none; color:inherit; }
.ar-card.linked:hover{ background:var(--off); }
.ar-card .tag{ font-size:9.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--gold-deep, #B9862A); margin-bottom:10px; }
.ar-card h3{ font-size:14.5px; font-weight:700; color:var(--brown); line-height:1.4; margin-bottom:auto; padding-bottom:12px; }
.ar-card .status{ font-size:11px; color:var(--charcoal); font-style:italic; margin-bottom:10px; }
.ar-card .meta{ font-size:10.5px; color:var(--charcoal); border-top:1px solid var(--line); padding-top:10px; display:flex; justify-content:space-between; }

.ar-pagination{ max-width:1320px; margin:0 auto; padding:8px 32px 56px; display:flex; align-items:center; justify-content:center; gap:8px; }
.ar-pagination a, .ar-pagination span.current{ display:flex; align-items:center; justify-content:center; width:34px; height:34px; font-size:12.5px; font-weight:700; text-decoration:none; color:var(--charcoal); border:1px solid var(--line); }
.ar-pagination span.current{ background:var(--brown); color:#fff; border-color:var(--brown); }
.ar-pagination a:hover{ background:var(--off); }
.ar-pagination .arrow{ width:auto; padding:0 14px; font-size:11.5px; text-transform:uppercase; letter-spacing:0.04em; }

/* Article reading template */
.ar-article-hero{ max-width:900px; margin:0 auto; padding:40px 32px 0; text-align:center; }
.ar-article-hero .tag{ font-size:11px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-deep, #B9862A); margin-bottom:14px; }
.ar-article-hero h1{ font-family:Georgia,serif; font-size:32px; font-weight:700; color:var(--black); line-height:1.3; }
.ar-article-meta{ display:flex; justify-content:center; gap:18px; flex-wrap:wrap; font-size:12px; color:var(--charcoal); margin-top:18px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.ar-article-meta b{ color:var(--brown); }
.ar-article-image{ max-width:1100px; margin:0 auto; padding:32px 32px 0; }
.ar-article-image div{ aspect-ratio:16/7; background:var(--off); border:1px dashed var(--line); display:flex; align-items:center; justify-content:center; font-size:12px; color:var(--charcoal); text-transform:uppercase; letter-spacing:0.05em; }
.ar-article-body{ max-width:740px; margin:0 auto; padding:36px 32px; }
.ar-article-body p{ font-size:16px; line-height:1.85; color:var(--charcoal); margin-bottom:18px; }
.ar-article-body p.lead::first-letter{ font-family:Georgia,serif; font-size:52px; font-weight:700; color:var(--brown); float:left; line-height:0.85; padding:6px 8px 0 0; }
.ar-article-body h2{ font-size:21px; font-weight:700; color:var(--brown); margin:30px 0 14px; }

.ar-related{ max-width:1100px; margin:0 auto; padding:16px 32px 60px; }
.ar-related-label{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--gold-deep, #B9862A); margin-bottom:16px; border-top:1px solid var(--line); padding-top:20px; }
.ar-related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.ar-related-grid div{ border:1px solid var(--line); padding:16px; }
.ar-related-grid .tag{ font-size:9.5px; font-weight:700; text-transform:uppercase; color:var(--gold-deep, #B9862A); margin-bottom:6px; display:block; }
.ar-related-grid b{ font-size:13px; color:var(--brown); display:block; }

@media (max-width:900px){
  .ar-grid{ grid-template-columns:repeat(2,1fr); }
  .ar-related-grid{ grid-template-columns:1fr; }
}
@media (max-width:480px){
  .ar-grid{ grid-template-columns:1fr; }
  .ar-masthead h1{ font-size:28px; }
  .ar-article-hero h1{ font-size:24px; }
}

/* ============================================================
   News: wire-feed newsroom system (nw-)
   Distinct from Articles (ar-): a chronological feed instead of
   a card grid, monospace datelines, a scrolling ticker, a
   featured lead item. Same palette, different instrument.
   ============================================================ */
.nw-masthead{ background:var(--black); color:#fff; padding:34px 32px 22px; text-align:center; }
.nw-masthead .kicker{ font-family:"SF Mono",Consolas,monospace; font-size:10.5px; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.nw-masthead h1{ font-size:34px; font-weight:800; letter-spacing:-0.01em; text-transform:uppercase; }
.nw-masthead p{ font-size:13px; color:rgba(255,255,255,0.68); max-width:600px; margin:12px auto 0; line-height:1.7; }
.nw-masthead .edition{ font-family:"SF Mono",Consolas,monospace; font-size:10.5px; color:rgba(255,255,255,0.5); margin-top:16px; display:flex; justify-content:center; gap:16px; flex-wrap:wrap; }
.nw-masthead .edition b{ color:var(--gold); }

.nw-ticker{ background:var(--brown-deep, #332921); border-bottom:1px solid rgba(255,255,255,0.1); overflow:hidden; white-space:nowrap; }
.nw-ticker-track{ display:inline-flex; gap:48px; padding:9px 0; animation:nw-scroll 42s linear infinite; }
.nw-ticker-track span{ font-family:"SF Mono",Consolas,monospace; font-size:11px; color:rgba(255,255,255,0.8); letter-spacing:0.02em; }
.nw-ticker-track span b{ color:var(--gold); font-weight:700; }
@keyframes nw-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .nw-ticker-track{ animation:none; } }

.nw-tabs{ max-width:1180px; margin:0 auto; padding:16px 32px 0; display:flex; flex-wrap:wrap; gap:2px; justify-content:center; }
.nw-tabs span{ font-family:"SF Mono",Consolas,monospace; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:var(--charcoal); padding:10px 14px; border-bottom:2px solid transparent; cursor:pointer; }
.nw-tabs span:hover{ color:var(--brown); }
.nw-tabs span.active{ color:var(--accent-red); border-bottom-color:var(--accent-red); }

.nw-lead{ max-width:1180px; margin:24px auto 0; padding:0 32px; }
.nw-lead-inner{ border:1px solid var(--black); padding:26px 26px 22px; position:relative; }
.nw-lead-flag{ display:inline-flex; align-items:center; gap:7px; font-family:"SF Mono",Consolas,monospace; font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--accent-red); margin-bottom:12px; }
.nw-lead-flag::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--accent-red); }
.nw-lead h2{ font-size:23px; font-weight:800; color:var(--black); line-height:1.3; margin-bottom:10px; }
.nw-lead p{ font-size:14px; color:var(--charcoal); line-height:1.7; max-width:760px; }
.nw-lead-meta{ font-family:"SF Mono",Consolas,monospace; font-size:10.5px; color:var(--charcoal); margin-top:14px; display:flex; gap:16px; flex-wrap:wrap; }
.nw-lead-meta b{ color:var(--gold-deep, #B9862A); }

.nw-feed{ max-width:1180px; margin:0 auto; padding:8px 32px 20px; }
.nw-item{ display:grid; grid-template-columns:150px 1fr; gap:22px; padding:18px 0; border-bottom:1px solid var(--line); }
.nw-item:first-child{ padding-top:22px; }
.nw-stamp{ font-family:"SF Mono",Consolas,monospace; font-size:10.5px; color:var(--charcoal); line-height:1.6; }
.nw-stamp .date{ display:block; color:var(--brown); font-weight:700; }
.nw-stamp .cat{ display:block; text-transform:uppercase; letter-spacing:0.04em; color:var(--gold-deep, #B9862A); margin-top:3px; }
.nw-item h3{ font-size:16px; font-weight:700; color:var(--black); line-height:1.4; margin-bottom:6px; }
.nw-item p{ font-size:13px; color:var(--charcoal); line-height:1.65; margin-bottom:8px; }
.nw-source{ font-size:11px; color:var(--charcoal); }
.nw-source b{ color:var(--brown); }
.nw-item.linked{ text-decoration:none; color:inherit; }
.nw-item.linked:hover{ background:var(--off); }
.nw-item.linked h3{ color:var(--brown); }

.nw-empty{ display:none; max-width:1180px; margin:0 auto; padding:40px 32px; text-align:center; font-size:13px; color:var(--charcoal); }
.nw-empty a{ color:var(--brown); font-weight:700; }

.nw-pagination{ max-width:1180px; margin:0 auto; padding:8px 32px 56px; display:flex; align-items:center; justify-content:center; gap:8px; }
.nw-pagination a, .nw-pagination span.current{ display:flex; align-items:center; justify-content:center; width:34px; height:34px; font-family:"SF Mono",Consolas,monospace; font-size:12px; font-weight:700; text-decoration:none; color:var(--charcoal); border:1px solid var(--line); }
.nw-pagination span.current{ background:var(--black); color:#fff; border-color:var(--black); }
.nw-pagination a:hover{ background:var(--off); }
.nw-pagination .arrow{ width:auto; padding:0 14px; font-size:10.5px; text-transform:uppercase; letter-spacing:0.04em; }

@media (max-width:640px){
  .nw-item{ grid-template-columns:1fr; gap:6px; }
  .nw-stamp{ display:flex; gap:10px; }
  .nw-masthead h1{ font-size:26px; }
}

/* News: single-story reading page (nw-story-) */
.nw-story-hero{ background:var(--black); color:#fff; padding:34px 32px 26px; }
.nw-story-hero-inner{ max-width:820px; margin:0 auto; }
.nw-story-flag{ display:inline-flex; align-items:center; gap:7px; font-family:"SF Mono",Consolas,monospace; font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--accent-red); margin-bottom:14px; }
.nw-story-flag::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--accent-red); }
.nw-story-hero h1{ font-size:28px; font-weight:800; line-height:1.35; margin-bottom:16px; }
.nw-story-meta{ font-family:"SF Mono",Consolas,monospace; font-size:11px; color:rgba(255,255,255,0.65); display:flex; gap:18px; flex-wrap:wrap; border-top:1px solid rgba(255,255,255,0.15); padding-top:14px; }
.nw-story-meta b{ color:var(--gold); }

.nw-story-body{ max-width:740px; margin:0 auto; padding:36px 32px; }
.nw-story-note{ font-size:12.5px; color:var(--charcoal); background:var(--off); border:1px dashed var(--line); padding:14px 16px; margin-bottom:26px; }
.nw-story-body p{ font-size:16px; line-height:1.85; color:var(--charcoal); margin-bottom:18px; }
.nw-story-body h2{ font-size:20px; font-weight:700; color:var(--brown); margin:28px 0 12px; }
.nw-story-stat{ display:flex; gap:28px; flex-wrap:wrap; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:18px 0; margin:26px 0; }
.nw-story-stat div b{ display:block; font-family:"SF Mono",Consolas,monospace; font-size:22px; color:var(--gold-deep, #B9862A); }
.nw-story-stat div span{ font-size:11px; color:var(--charcoal); text-transform:uppercase; letter-spacing:0.04em; }

.nw-story-related{ max-width:1180px; margin:0 auto; padding:16px 32px 56px; }
.nw-story-related-label{ font-family:"SF Mono",Consolas,monospace; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--gold-deep, #B9862A); margin-bottom:10px; border-top:1px solid var(--line); padding-top:20px; }

@media (max-width:640px){
  .nw-story-hero h1{ font-size:22px; }
}

/* ============================================================
   FAQ: help-center directory (fq-)
   A sidebar index + searchable accordion list, distinct from
   the Articles grid and the News feed: this one is a reference
   tool, built for scanning and lookup rather than reading.
   ============================================================ */
.fq-hero{ max-width:900px; margin:0 auto; padding:38px 32px 8px; text-align:center; }
.fq-hero .kicker{ font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep, #B9862A); font-weight:700; margin-bottom:10px; }
.fq-hero h1{ font-family:Georgia,serif; font-size:34px; font-weight:700; color:var(--black); }
.fq-hero p{ font-size:13.5px; color:var(--charcoal); max-width:600px; margin:12px auto 0; line-height:1.7; }

.fq-search-wrap{ max-width:560px; margin:22px auto 0; position:relative; }
.fq-search{ width:100%; padding:13px 44px 13px 16px; font-size:14px; font-family:inherit; border:1.5px solid var(--brown); background:#fff; }
.fq-search:focus{ outline:2px solid var(--gold); outline-offset:1px; }
.fq-search-count{ position:absolute; right:14px; top:50%; transform:translateY(-50%); font-size:11px; color:var(--charcoal); pointer-events:none; }

.fq-layout{ max-width:1200px; margin:34px auto 0; padding:0 32px 60px; display:grid; grid-template-columns:230px 1fr; gap:40px; align-items:start; }

.fq-sidebar{ position:sticky; top:16px; border:1px solid var(--line); background:var(--off); padding:18px; max-height:calc(100vh - 32px); overflow-y:auto; }
.fq-sidebar-group{ margin-bottom:18px; }
.fq-sidebar-group:last-child{ margin-bottom:0; }
.fq-sidebar-group h4{ font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-deep, #B9862A); margin-bottom:8px; }
.fq-sidebar-group a{ display:block; font-size:12.5px; color:var(--charcoal); text-decoration:none; padding:5px 0; border-left:2px solid transparent; padding-left:9px; margin-left:-9px; }
.fq-sidebar-group a:hover, .fq-sidebar-group a.active{ color:var(--brown); border-left-color:var(--gold); font-weight:700; }

.fq-topic{ margin-bottom:44px; scroll-margin-top:16px; }
.fq-topic-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; border-bottom:2px solid var(--black); padding-bottom:10px; margin-bottom:4px; }
.fq-topic-head h2{ font-family:Georgia,serif; font-size:22px; font-weight:700; color:var(--black); }
.fq-topic-head span{ font-size:11px; color:var(--charcoal); text-transform:uppercase; letter-spacing:0.04em; white-space:nowrap; }

.fq-item{ border-bottom:1px solid var(--line); }
.fq-q{ width:100%; text-align:left; background:none; border:none; padding:16px 26px 16px 2px; font-size:14.5px; font-weight:700; color:var(--black); display:flex; justify-content:space-between; align-items:flex-start; gap:16px; cursor:pointer; font-family:inherit; position:relative; }
.fq-q:hover{ color:var(--brown); }
.fq-q .fq-plus{ flex-shrink:0; font-size:18px; font-weight:400; color:var(--gold-deep, #B9862A); line-height:1; transition:transform .2s; }
.fq-item.open .fq-q .fq-plus{ transform:rotate(45deg); }
.fq-a{ max-height:0; overflow:hidden; transition:max-height .25s ease; }
.fq-item.open .fq-a{ max-height:400px; }
.fq-a p{ padding:0 26px 18px 2px; font-size:13.5px; line-height:1.75; color:var(--charcoal); }
.fq-item.fq-hidden{ display:none; }

.fq-empty{ display:none; text-align:center; padding:50px 20px; font-size:13.5px; color:var(--charcoal); }
.fq-empty a{ color:var(--brown); font-weight:700; }

@media (max-width:900px){
  .fq-layout{ grid-template-columns:1fr; }
  .fq-sidebar{ position:static; max-height:none; display:flex; flex-wrap:wrap; gap:4px 16px; }
  .fq-sidebar-group{ margin-bottom:10px; }
}
@media (max-width:480px){
  .fq-hero h1{ font-size:26px; }
}

/* ============================================================
   Contact: direct-channel layout (ct-)
   Distinct from every other page: a confident, warm, minimal
   split between reasons to reach out and the form itself, built
   around one specific commitment, everything reaches info@adab.ca.
   ============================================================ */
.ct-hero{ max-width:1180px; margin:0 auto; padding:46px 32px 0; text-align:center; }
.ct-hero .kicker{ font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold-deep, #B9862A); font-weight:700; margin-bottom:12px; }
.ct-hero h1{ font-family:Georgia,serif; font-size:38px; font-weight:700; color:var(--black); max-width:680px; margin:0 auto; line-height:1.2; }
.ct-hero p{ font-size:14.5px; color:var(--charcoal); max-width:560px; margin:16px auto 0; line-height:1.75; }

.ct-split{ max-width:1180px; margin:44px auto 0; padding:0 32px 64px; display:grid; grid-template-columns:0.85fr 1.15fr; gap:0; border:1px solid var(--line); }

.ct-channels{ background:var(--brown); color:rgba(255,255,255,0.92); padding:42px 36px; display:flex; flex-direction:column; }
.ct-channels h2{ font-family:Georgia,serif; font-size:21px; font-weight:700; color:#fff; margin-bottom:8px; }
.ct-channels > p{ font-size:13px; color:rgba(255,255,255,0.72); line-height:1.7; margin-bottom:28px; }
.ct-email-link{ display:block; font-family:Georgia,serif; font-size:22px; font-weight:700; color:#fff; text-decoration:none; border-bottom:2px solid var(--gold); padding-bottom:10px; margin-bottom:28px; width:fit-content; }
.ct-email-link:hover{ color:var(--gold); }
.ct-channel-list{ margin-top:auto; display:flex; flex-direction:column; gap:18px; }
.ct-channel-item b{ display:block; font-size:10.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--gold); margin-bottom:4px; }
.ct-channel-item span{ font-size:13px; color:rgba(255,255,255,0.82); line-height:1.6; }

.ct-form-card{ background:#fff; padding:42px 40px; }
.ct-form-card h2{ font-size:15px; font-weight:700; color:var(--brown); margin-bottom:22px; }
.ct-field{ margin-bottom:18px; }
.ct-field label{ display:block; font-size:12px; font-weight:700; color:var(--black); margin-bottom:6px; }
.ct-field input, .ct-field select, .ct-field textarea{
  width:100%; border:1px solid #C9C0AE; padding:11px 12px; font-size:14px; font-family:inherit; background:#fff; color:var(--black);
}
.ct-field input:focus, .ct-field select:focus, .ct-field textarea:focus{ outline:2px solid var(--gold); outline-offset:1px; border-color:var(--brown); }
.ct-field textarea{ min-height:120px; resize:vertical; }
.ct-row2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ct-submit{ width:100%; background:var(--brown); color:#fff; border:none; padding:14px 18px; font-size:13.5px; font-weight:700; letter-spacing:0.02em; cursor:pointer; margin-top:6px; }
.ct-submit:hover{ background:var(--brown-deep, #332921); }
.ct-note{ font-size:11.5px; color:var(--charcoal); margin-top:12px; line-height:1.6; }

@media (max-width:820px){
  .ct-split{ grid-template-columns:1fr; }
  .ct-channels{ padding:32px 28px; }
  .ct-form-card{ padding:32px 28px; }
  .ct-row2{ grid-template-columns:1fr; }
}
@media (max-width:480px){
  .ct-hero h1{ font-size:27px; }
}

/* ============================================================
   Legal documents: Terms and Privacy (lg-)
   Deliberately restrained: a formal document register, numbered
   clauses, a jump-link table of contents. Built to be read and
   cited, not browsed, distinct from the FAQ's search-and-answer
   register even though both are reference pages.
   ============================================================ */
.lg-hero{ max-width:900px; margin:0 auto; padding:44px 32px 28px; border-bottom:1px solid var(--line); }
.lg-hero .kicker{ font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold-deep, #B9862A); font-weight:700; margin-bottom:12px; }
.lg-hero h1{ font-family:Georgia,serif; font-size:32px; font-weight:700; color:var(--black); }
.lg-hero .lg-dates{ display:flex; gap:24px; flex-wrap:wrap; margin-top:16px; font-size:12px; color:var(--charcoal); }
.lg-hero .lg-dates b{ color:var(--brown); }
.lg-hero p.lg-intro{ font-size:14px; color:var(--charcoal); line-height:1.75; margin-top:16px; max-width:680px; }

.lg-layout{ max-width:1140px; margin:0 auto; padding:0 32px 70px; display:grid; grid-template-columns:230px 1fr; gap:48px; align-items:start; }

.lg-toc{ position:sticky; top:16px; border-left:2px solid var(--line); padding-left:18px; max-height:calc(100vh - 32px); overflow-y:auto; }
.lg-toc h4{ font-size:10px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-deep, #B9862A); margin-bottom:10px; }
.lg-toc ol{ list-style:none; counter-reset:lgtoc; }
.lg-toc li{ counter-increment:lgtoc; margin-bottom:2px; }
.lg-toc a{ display:block; font-size:12.5px; color:var(--charcoal); text-decoration:none; padding:5px 0; }
.lg-toc a::before{ content:counter(lgtoc) ". "; color:var(--gold-deep, #B9862A); font-weight:700; }
.lg-toc a:hover{ color:var(--brown); }

.lg-body{ max-width:700px; font-family:Georgia,serif; }
.lg-section{ margin-bottom:36px; scroll-margin-top:16px; counter-reset:lgsub; }
.lg-section h2{ font-size:19px; font-weight:700; color:var(--black); border-bottom:1px solid var(--line); padding-bottom:10px; margin-bottom:14px; }
.lg-section h2 .num{ color:var(--gold-deep, #B9862A); margin-right:8px; }
.lg-section p{ font-size:14.5px; line-height:1.8; color:var(--charcoal); margin-bottom:13px; }
.lg-section ul{ margin:0 0 13px 22px; }
.lg-section li{ font-size:14.5px; line-height:1.8; color:var(--charcoal); margin-bottom:7px; }
.lg-section strong{ color:var(--black); }
.lg-clause{ counter-increment:lgsub; }
.lg-clause-label{ font-weight:700; color:var(--brown); }

.lg-callout{ font-family:"Noto Sans",-apple-system,BlinkMacSystemFont,Arial,sans-serif; font-size:12.5px; line-height:1.7; color:var(--charcoal); background:var(--off); border:1px solid var(--line); border-left:3px solid var(--gold); padding:16px 18px; margin:20px 0; }

@media (max-width:900px){
  .lg-layout{ grid-template-columns:1fr; }
  .lg-toc{ position:static; max-height:none; border-left:none; border-top:1px solid var(--line); padding-left:0; padding-top:16px; }
}
@media (max-width:480px){
  .lg-hero h1{ font-size:24px; }
}

/* ============================================================
   Founder profile (fd-): a private, unlinked executive page.
   Dark wood-and-leather study register: burgundy, Rolex green,
   black, gold, and ivory. A wax seal, gold flourishes, leather
   panels. Built to feel like a private study, not a dashboard.
   ============================================================ */
:root{
  --fdx-black:#0C0806;
  --fdx-black-2:#17110D;
  --fdx-burgundy:#6E1423;
  --fdx-burgundy-deep:#3D0B13;
  --fdx-jigar:#4A1418;
  --fdx-zone-burgundy:#160A0B;
  --fdx-zone-green:#08130F;
  --fdx-green:#01402E;
  --fdx-green-bright:#0B6B4D;
  --fdx-gold-dim:#8B6914;
  --fdx-gold:#C9A24B;
  --fdx-gold-bright:#E8C878;
  --fdx-ivory:#F2EBDD;
  --fdx-ivory-dim:#B9AD97;
}
body.fd-page{ background:var(--fdx-black); }

.fd-corner{ position:relative; }
.fd-corner::before, .fd-corner::after{ content:""; position:absolute; width:16px; height:16px; border-color:var(--fdx-gold-dim); border-style:solid; opacity:0.7; pointer-events:none; }
.fd-corner::before{ top:0; left:0; border-width:1.5px 0 0 1.5px; }
.fd-corner::after{ bottom:0; right:0; border-width:0 1.5px 1.5px 0; }

.fd-gold-text{
  background:linear-gradient(120deg, var(--fdx-gold-dim) 0%, var(--fdx-gold-bright) 35%, var(--fdx-gold) 55%, var(--fdx-gold-bright) 80%, var(--fdx-gold-dim) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.fd-flourish{ display:flex; align-items:center; justify-content:center; gap:12px; margin:26px auto; width:100%; max-width:300px; }
.fd-flourish::before, .fd-flourish::after{ content:""; flex:1; height:1px; background:linear-gradient(90deg, transparent, var(--fdx-gold), transparent); }
.fd-flourish span{ width:6px; height:6px; background:var(--fdx-gold); transform:rotate(45deg); flex-shrink:0; }

.fd-hero{
  position:relative; overflow:hidden; text-align:center; padding:76px 32px 0;
  background:
    radial-gradient(ellipse 70% 60% at 12% -8%, rgba(11,107,77,0.32) 0%, transparent 55%),
    radial-gradient(ellipse 90% 75% at 88% 12%, rgba(110,20,35,0.4) 0%, transparent 60%),
    radial-gradient(ellipse 120% 90% at 50% -15%, #2E1016 0%, var(--fdx-black) 58%),
    var(--fdx-black);
  border-bottom:1px solid rgba(201,162,75,0.25);
}
.fd-hero::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:0.07;
  background-image:
    repeating-linear-gradient(128deg, #fff 0px, #fff 1px, transparent 1px, transparent 4px),
    repeating-linear-gradient(38deg, #000 0px, #000 2px, transparent 2px, transparent 9px);
}
.fd-eyebrow{
  position:relative; z-index:1; display:inline-flex; align-items:center; gap:9px;
  font-variant:small-caps; font-size:13px; letter-spacing:0.14em; color:var(--fdx-gold); font-weight:700;
}
.fd-eyebrow::before{ content:""; width:6px; height:6px; background:var(--fdx-gold-bright); transform:rotate(45deg); box-shadow:0 0 8px 2px rgba(232,200,120,0.6); }

.fd-seal{
  width:132px; height:132px; border-radius:50%; margin:30px auto 0; position:relative; z-index:1;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  background:radial-gradient(circle at 35% 28%, #8A2036 0%, #5C0F1E 55%, var(--fdx-burgundy-deep) 100%);
  border:3px solid var(--fdx-gold);
  box-shadow:inset 0 2px 7px rgba(0,0,0,0.55), 0 6px 26px rgba(0,0,0,0.65), 0 0 0 5px rgba(201,162,75,0.12), 0 0 34px rgba(201,162,75,0.18);
  font-family:Georgia,serif; font-size:23px; font-weight:700; color:var(--fdx-gold-bright); letter-spacing:0.02em;
}
.fd-seal img{ width:100%; height:100%; object-fit:cover; border-radius:50%; }

.fd-hero h1{ position:relative; z-index:1; font-family:Georgia,serif; font-size:52px; font-weight:700; color:var(--fdx-ivory); letter-spacing:-0.01em; margin-top:24px; }
.fd-tagline{ position:relative; z-index:1; font-variant:small-caps; font-size:16px; letter-spacing:0.06em; color:var(--fdx-gold-bright); margin-top:14px; }
.fd-hero p.fd-lede{ position:relative; z-index:1; font-size:15px; color:var(--fdx-ivory-dim); line-height:1.9; max-width:600px; margin:0 auto; }

.fd-hero-stats{
  position:relative; z-index:1; display:flex; justify-content:center; gap:1px;
  margin:46px auto 0; max-width:640px; background:rgba(201,162,75,0.22);
}
.fd-hero-stats div{ flex:1; background:var(--fdx-black-2); padding:24px 16px; }
.fd-hero-stats b{ display:block; font-family:Georgia,serif; font-size:29px; color:var(--fdx-gold-bright); }
.fd-hero-stats span{ display:block; margin-top:7px; font-size:9.5px; text-transform:uppercase; letter-spacing:0.08em; color:var(--fdx-ivory-dim); }

.fd-zone-green{ background:linear-gradient(180deg, var(--fdx-black) 0%, var(--fdx-zone-green) 50%, var(--fdx-black) 100%); }
.fd-zone-burgundy{ background:linear-gradient(180deg, var(--fdx-black) 0%, var(--fdx-zone-burgundy) 50%, var(--fdx-black) 100%); }

.fd-section-head{ max-width:900px; margin:0 auto; padding:64px 32px 0; text-align:center; background:transparent; }
.fd-section-head .kicker{ font-variant:small-caps; font-size:14px; letter-spacing:0.1em; color:var(--fdx-gold); font-weight:700; margin-bottom:12px; }
.fd-section-head h2{ font-family:Georgia,serif; font-size:28px; font-weight:700; color:var(--fdx-ivory); }
.fd-section-head p{ font-size:13.5px; color:var(--fdx-ivory-dim); max-width:620px; margin:14px auto 0; line-height:1.75; }

.fd-expertise{ max-width:1100px; margin:34px auto 0; padding:0 32px 64px; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(201,162,75,0.16); }
.fd-expertise-group{ background:var(--fdx-black-2); padding:28px 24px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.03), inset 0 -12px 24px rgba(0,0,0,0.35); transition:box-shadow .3s ease; }
.fd-expertise-group:hover{ box-shadow:inset 0 1px 0 rgba(255,255,255,0.03), inset 0 -12px 24px rgba(0,0,0,0.35), 0 0 0 1px rgba(201,162,75,0.3); }
.fd-expertise-group h3{ font-variant:small-caps; font-size:14px; font-weight:700; letter-spacing:0.04em; color:var(--fdx-gold); border-bottom:1px solid rgba(201,162,75,0.3); padding-bottom:13px; margin-bottom:14px; }
.fd-chip{ display:block; font-size:13px; color:var(--fdx-ivory-dim); padding:7px 0; border-bottom:1px solid rgba(255,255,255,0.05); }
.fd-chip:last-child{ border-bottom:none; }

.fd-quote{ max-width:640px; margin:0 auto; padding:16px 32px 70px; text-align:center; background:var(--fdx-black); }
.fd-quote-card{ background:var(--fdx-ivory); padding:44px 40px; position:relative; box-shadow:0 24px 60px rgba(0,0,0,0.55); }
.fd-quote-card::before, .fd-quote-card::after{ content:""; position:absolute; width:22px; height:22px; border-color:var(--fdx-gold-dim); border-style:solid; }
.fd-quote-card::before{ top:12px; left:12px; border-width:1.5px 0 0 1.5px; }
.fd-quote-card::after{ bottom:12px; right:12px; border-width:0 1.5px 1.5px 0; }
.fd-quote blockquote{ font-family:Georgia,serif; font-style:italic; font-size:27px; color:var(--fdx-burgundy); line-height:1.4; }
.fd-quote blockquote::before{ content:"\201C"; }
.fd-quote blockquote::after{ content:"\201D"; }
.fd-quote cite{ display:block; margin-top:16px; font-variant:small-caps; font-size:14px; letter-spacing:0.08em; color:var(--fdx-green); font-weight:700; }
.fd-quote p{ font-size:13px; color:#4A3F35; line-height:1.75; margin-top:18px; }

.fd-bio{ max-width:680px; margin:0 auto; padding:10px 32px 20px; background:var(--fdx-black); }
.fd-bio p{ font-size:16px; line-height:1.9; color:var(--fdx-ivory-dim); margin-bottom:18px; }
.fd-bio p.fd-lead{ color:var(--fdx-ivory); }
.fd-bio p.fd-lead::first-letter{ font-family:Georgia,serif; font-size:60px; font-weight:700; color:var(--fdx-gold-bright); float:left; line-height:0.8; padding:8px 12px 0 0; }
.fd-objective{ max-width:680px; margin:0 auto 54px; padding:0 32px; background:var(--fdx-black); }
.fd-objective-box{ background:linear-gradient(135deg, var(--fdx-black-2) 0%, var(--fdx-zone-burgundy) 100%); border-left:3px solid var(--fdx-gold); padding:22px 26px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.03); }
.fd-objective-box b{ display:block; font-variant:small-caps; font-size:14px; letter-spacing:0.06em; color:var(--fdx-gold); margin-bottom:9px; }
.fd-objective-box p{ font-size:13.5px; line-height:1.75; color:var(--fdx-ivory-dim); margin:0; }

.fd-focus{ max-width:1080px; margin:34px auto 0; padding:0 32px 64px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(201,162,75,0.16); }
.fd-focus-item{ background:var(--fdx-black-2); padding:36px 30px; box-shadow:inset 0 1px 0 rgba(255,255,255,0.03), inset 0 -14px 26px rgba(0,0,0,0.4); border-top:2px solid var(--fdx-gold); transition:box-shadow .3s ease; }
.fd-focus-item:nth-child(2){ border-top-color:var(--fdx-green-bright); }
.fd-focus-item:nth-child(3){ border-top-color:#B8384F; }
.fd-focus-item:hover{ box-shadow:inset 0 1px 0 rgba(255,255,255,0.03), inset 0 -14px 26px rgba(0,0,0,0.4), 0 0 0 1px rgba(201,162,75,0.3); }
.fd-focus-num{ font-family:Georgia,serif; font-size:17px; color:var(--fdx-gold); margin-bottom:15px; }
.fd-focus-item h3{ font-family:Georgia,serif; font-size:19px; color:var(--fdx-ivory); margin-bottom:12px; }
.fd-focus-item p{ font-size:13.5px; line-height:1.75; color:var(--fdx-ivory-dim); }

.fd-track{ background:linear-gradient(180deg, var(--fdx-black) 0%, var(--fdx-zone-green) 55%, var(--fdx-black) 100%); }
.fd-track-inner{ max-width:1180px; margin:0 auto; padding:60px 32px; }
.fd-track-grid{ margin-top:32px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,0.06); }
.fd-track-item{ background:var(--fdx-black-2); padding:22px 24px; border-top:2px solid var(--fdx-gold); }
.fd-track-item:nth-child(3n+2){ border-top-color:var(--fdx-green-bright); }
.fd-track-item:nth-child(3n){ border-top-color:var(--fdx-burgundy); }
.fd-track-item h4{ font-size:14.5px; font-weight:700; color:var(--fdx-ivory); margin-bottom:8px; }
.fd-track-item p{ font-size:12.5px; line-height:1.65; color:var(--fdx-ivory-dim); }

.fd-principles{ background:linear-gradient(180deg, var(--fdx-black) 0%, var(--fdx-zone-burgundy) 55%, var(--fdx-black) 100%); }
.fd-principles-inner{ max-width:820px; margin:0 auto; padding:60px 32px; }
.fd-principle{ display:flex; gap:24px; padding:20px 0; border-bottom:1px solid rgba(201,162,75,0.15); }
.fd-principle:last-child{ border-bottom:none; }
.fd-principle-num{ flex:0 0 46px; font-family:Georgia,serif; font-size:20px; color:var(--fdx-gold); }
.fd-principle h3{ font-size:15.5px; font-weight:700; color:var(--fdx-ivory); margin-bottom:7px; }
.fd-principle p{ font-size:13.5px; line-height:1.7; color:var(--fdx-ivory-dim); }

.fd-contact{
  position:relative; text-align:center; padding:70px 32px;
  background:radial-gradient(ellipse 100% 100% at 50% 100%, #2E1016 0%, var(--fdx-black) 62%);
  border-top:1px solid rgba(201,162,75,0.2);
}
.fd-contact .kicker{ font-variant:small-caps; font-size:14px; letter-spacing:0.1em; color:var(--fdx-gold); font-weight:700; margin-bottom:16px; }
.fd-contact h2{ font-family:Georgia,serif; font-size:27px; color:var(--fdx-ivory); margin-bottom:14px; }
.fd-contact p{ font-size:14px; color:var(--fdx-ivory-dim); max-width:480px; margin:0 auto 28px; line-height:1.7; }
.fd-contact-email{
  display:inline-block; font-family:Georgia,serif; font-size:23px; font-weight:700; color:var(--fdx-ivory); text-decoration:none;
  border:1.5px solid var(--fdx-gold); padding:17px 38px;
  box-shadow:0 0 0 1px rgba(201,162,75,0.12), 0 0 32px rgba(201,162,75,0.28);
}
.fd-contact-email:hover{ background:var(--fdx-gold); color:var(--fdx-black); }
.fd-contact-row{ display:flex; justify-content:center; gap:30px; margin-top:26px; flex-wrap:wrap; }
.fd-contact-row a{ font-size:12.5px; color:var(--fdx-ivory-dim); text-decoration:none; border-bottom:1px solid rgba(201,162,75,0.35); padding-bottom:2px; }
.fd-contact-row a:hover{ color:var(--fdx-gold-bright); border-color:var(--fdx-gold-bright); }

.fd-signature{ max-width:700px; margin:0 auto; padding:56px 32px 70px; text-align:center; background:var(--fdx-black); }
.fd-signature .name{ font-family:Georgia,serif; font-style:italic; font-size:30px; color:var(--fdx-gold-bright); }
.fd-signature .title{ font-variant:small-caps; font-size:13px; letter-spacing:0.06em; color:var(--fdx-ivory-dim); margin-top:10px; }

@media (max-width:900px){
  .fd-expertise{ grid-template-columns:repeat(2,1fr); }
  .fd-track-grid{ grid-template-columns:1fr; }
}
@media (max-width:800px){
  .fd-focus{ grid-template-columns:1fr; }
}
@media (max-width:480px){
  .fd-hero h1{ font-size:34px; }
  .fd-hero-stats{ flex-wrap:wrap; }
  .fd-hero-stats div{ flex:1 1 45%; }
  .fd-quote blockquote{ font-size:22px; }
  .fd-expertise{ grid-template-columns:1fr; }
}

/* Scroll motion: progress rail + staggered reveal-on-scroll */
.fd-progress{ position:fixed; top:0; left:0; height:2px; width:0%; background:linear-gradient(90deg, var(--fdx-burgundy), var(--fdx-gold), var(--fdx-green-bright)); z-index:200; transition:width .08s linear; }

.fd-reveal{ opacity:0; transform:translateY(30px); transition:opacity .8s ease, transform .8s ease; }
.fd-reveal.is-visible{ opacity:1; transform:translateY(0); }
.fd-reveal-stagger > *{ opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease; }
.fd-reveal-stagger.is-visible > *{ opacity:1; transform:translateY(0); }
.fd-reveal-stagger.is-visible > *:nth-child(1){ transition-delay:.05s; }
.fd-reveal-stagger.is-visible > *:nth-child(2){ transition-delay:.15s; }
.fd-reveal-stagger.is-visible > *:nth-child(3){ transition-delay:.25s; }
.fd-reveal-stagger.is-visible > *:nth-child(4){ transition-delay:.35s; }
.fd-reveal-stagger.is-visible > *:nth-child(5){ transition-delay:.45s; }
.fd-reveal-stagger.is-visible > *:nth-child(6){ transition-delay:.55s; }
.fd-reveal-stagger.is-visible > *:nth-child(7){ transition-delay:.65s; }
.fd-reveal-stagger.is-visible > *:nth-child(8){ transition-delay:.75s; }
.fd-reveal-stagger.is-visible > *:nth-child(9){ transition-delay:.85s; }
.fd-reveal-stagger.is-visible > *:nth-child(10){ transition-delay:.95s; }
.fd-reveal-stagger.is-visible > *:nth-child(11){ transition-delay:1.05s; }
@media (prefers-reduced-motion:reduce){
  .fd-reveal, .fd-reveal-stagger > *{ opacity:1; transform:none; transition:none; }
  .fd-seal{ transform:none !important; }
}

/* Expertise: break the uniform grid with an alternating vertical rhythm */
.fd-expertise-group:nth-child(2){ margin-top:26px; }
.fd-expertise-group:nth-child(3){ margin-top:52px; }
.fd-expertise-group:nth-child(4){ margin-top:26px; }
@media (max-width:900px){
  .fd-expertise-group:nth-child(2), .fd-expertise-group:nth-child(3), .fd-expertise-group:nth-child(4){ margin-top:0; }
}

/* Bio: asymmetric split instead of a centered column, a different silhouette entirely */
.fd-bio-wrap{ max-width:1100px; margin:0 auto; padding:70px 32px 20px; background:var(--fdx-black); display:grid; grid-template-columns:0.85fr 1.4fr; gap:56px; align-items:start; }
.fd-bio-mark{ position:sticky; top:24px; text-align:right; }
.fd-bio-mark .num{ font-family:Georgia,serif; font-size:170px; line-height:0.8; color:transparent; -webkit-text-stroke:1.5px var(--fdx-gold); opacity:0.8; }
.fd-bio-mark .cap{ font-variant:small-caps; font-size:14px; letter-spacing:0.08em; color:var(--fdx-gold-bright); margin-top:12px; display:block; }
.fd-bio-wrap .fd-bio{ padding:0; max-width:none; margin:0; }
@media (max-width:820px){
  .fd-bio-wrap{ grid-template-columns:1fr; gap:20px; }
  .fd-bio-mark{ position:static; text-align:left; }
  .fd-bio-mark .num{ font-size:80px; }
}

/* Track record: an alternating editorial ledger instead of a uniform grid */
.fd-ledger{ max-width:880px; margin:32px auto 0; }
.fd-ledger-row{ display:grid; grid-template-columns:120px 1fr; gap:28px; padding:26px 0; border-bottom:1px solid rgba(201,162,75,0.15); align-items:baseline; }
.fd-ledger-row:nth-child(even){ grid-template-columns:1fr 120px; }
.fd-ledger-row:nth-child(even) .fd-ledger-num{ order:2; text-align:left; }
.fd-ledger-row:nth-child(even) .fd-ledger-body{ order:1; text-align:right; }
.fd-ledger-num{ font-family:Georgia,serif; font-size:34px; color:var(--fdx-gold); text-align:right; }
.fd-ledger-row:nth-child(3n+2) .fd-ledger-num{ color:var(--fdx-green-bright); }
.fd-ledger-row:nth-child(3n) .fd-ledger-num{ color:#B8384F; }
.fd-ledger-row{ transition:background .3s ease; }
.fd-ledger-row:hover{ background:rgba(201,162,75,0.04); }
.fd-ledger-body h4{ font-size:16px; font-weight:700; color:var(--fdx-ivory); margin-bottom:8px; }
.fd-ledger-body p{ font-size:13px; line-height:1.7; color:var(--fdx-ivory-dim); }
@media (max-width:640px){
  .fd-ledger-row, .fd-ledger-row:nth-child(even){ grid-template-columns:56px 1fr; }
  .fd-ledger-row:nth-child(even) .fd-ledger-num{ order:0; text-align:right; }
  .fd-ledger-row:nth-child(even) .fd-ledger-body{ order:1; text-align:left; }
  .fd-ledger-num{ font-size:22px; }
}

/* Hero entrance sequence, plays once on load */
@keyframes fdRise{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:translateY(0); } }
.fd-hero > *{ animation:fdRise .9s ease both; }
.fd-hero > .fd-eyebrow{ animation-delay:.05s; }
.fd-hero > .fd-seal{ animation-delay:.2s; }
.fd-hero > h1{ animation-delay:.35s; }
.fd-hero > .fd-tagline{ animation-delay:.5s; }
.fd-hero > .fd-flourish{ animation-delay:.62s; }
.fd-hero > .fd-lede{ animation-delay:.72s; }
.fd-hero > .fd-hero-stats{ animation-delay:.85s; }
@media (prefers-reduced-motion:reduce){
  .fd-hero > *{ animation:none; }
}
