
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-sans-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-sans-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/ibm-plex-sans-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');}


:root{
  --ink:#0a1222; --panel:#101a2e; --panel-2:#16223a; --line:rgba(225,229,240,0.12); --line-strong:rgba(225,229,240,0.24);
  --ivory:#f6f1e5; --text:#eef0f3; --muted:#9aa1b0; --muted-2:#6b7280;
  --gold:#d4bd8c; --gold-soft:#ecdfc0; --gold-dim:rgba(212,189,140,0.14);
  --swax:#7089ff; --gecks:#e8792e; --oilco:#dd433c; --penser:#c7a25c;
  --tc:var(--gold);
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --mono:'IBM Plex Mono', monospace;
  --sidebar-w:296px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; background:var(--ink);}
body{background:var(--ink); color:var(--text); font-family:var(--sans); font-weight:400; line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *:not(.fade-step){animation-duration:.001ms !important; transition-duration:.001ms !important;} }
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
:focus-visible{outline:1px solid var(--gold); outline-offset:3px;}

/* thin gold rule + diamond ornament: signature element */
.ornament{display:flex; align-items:center; gap:14px; margin-bottom:22px;}
.ornament .rule{height:1px; width:34px; background:var(--gold);}
.ornament .diamond{width:6px; height:6px; background:var(--gold); transform:rotate(45deg);}
.ornament .lbl{font-family:var(--mono); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold-soft);}

/* photo frame: thin gold keyline + corner brackets, luxe gallery-label feel */
.frame{position:relative; border:1px solid var(--gold-dim); padding:10px;}
.frame img{display:block; width:100%; height:auto;}
.frame::before,.frame::after{content:''; position:absolute; width:16px; height:16px; border:1px solid var(--gold); opacity:0.9;}
.frame::before{top:-1px; left:-1px; border-right:none; border-bottom:none;}
.frame::after{bottom:-1px; right:-1px; border-left:none; border-top:none;}

/* ================= SIDEBAR ================= */
.sidebar{
  position:fixed; top:0; left:0; bottom:0; width:var(--sidebar-w); background:var(--panel);
  border-right:1px solid var(--line); z-index:100; display:flex; flex-direction:column; overflow-y:auto;
}
.sidebar::-webkit-scrollbar{width:5px;} .sidebar::-webkit-scrollbar-thumb{background:var(--line-strong);}
@media (max-width:980px){ .sidebar{transform:translateX(-100%); transition:transform .35s ease; box-shadow:20px 0 60px rgba(0,0,0,0.4);} .sidebar.open{transform:translateX(0);} }
.sb-brand{padding:34px 28px 24px; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:13px;}
.sb-brand img{height:34px; width:auto;}
.sb-brand-word{font-family:var(--serif); font-size:19px; font-weight:600; letter-spacing:0.01em;}
.sb-brand-word small{display:block; font-family:var(--mono); font-size:8.5px; letter-spacing:0.12em; color:var(--muted-2); font-weight:400; margin-top:3px; text-transform:uppercase;}
.sb-nav{padding:22px 0; flex:1;}
.sb-group{padding:0 28px; margin-bottom:22px;}
.sb-group-label{font-family:var(--mono); font-size:10px; letter-spacing:0.14em; color:var(--muted-2); text-transform:uppercase; margin-bottom:10px; display:block;}
.sb-btn{
  display:flex; align-items:center; gap:12px; width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:9px 0; font-family:var(--sans); font-size:14px; color:var(--muted); transition:color .2s ease, padding-left .2s ease;
}
.sb-btn .n{font-family:var(--mono); font-size:10.5px; color:var(--muted-2); width:16px; flex-shrink:0;}
.sb-btn:hover{color:var(--text); padding-left:4px;}
.sb-btn.active{color:var(--gold-soft);}
.sb-btn.active .n{color:var(--gold);}
.sb-foot{padding:22px 28px 30px; border-top:1px solid var(--line);}
.sb-cta{
  display:block; text-align:center; font-family:var(--mono); font-size:11.5px; letter-spacing:0.05em; text-transform:uppercase;
  background:var(--gold); color:var(--ink); padding:14px; font-weight:600; transition:background .2s ease;
}
.sb-cta:hover{background:var(--gold-soft);}
.sb-meta{font-family:var(--mono); font-size:10px; color:var(--muted-2); margin-top:14px; line-height:1.6; text-align:center;}

.topbar{display:none; position:fixed; top:0; left:0; right:0; height:64px; background:var(--panel); border-bottom:1px solid var(--line); z-index:99; align-items:center; justify-content:space-between; padding:0 20px;}
@media (max-width:980px){ .topbar{display:flex;} }
.topbar .sb-brand-word{font-size:16px;}
.menu-toggle{background:none; border:1px solid var(--line-strong); padding:9px 11px; display:flex; flex-direction:column; gap:4px; cursor:pointer;}
.menu-toggle span{width:18px; height:1px; background:var(--text); display:block;}
.sb-overlay{display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:98;}
.sb-overlay.show{display:block;}

/* ================= MAIN ================= */
.main{margin-left:var(--sidebar-w);}
@media (max-width:980px){ .main{margin-left:0; padding-top:64px;} }
.wrap{max-width:980px; padding:0 64px; margin:0 auto;}
@media (max-width:1200px){ .wrap{padding:0 48px;} }
@media (max-width:720px){ .wrap{padding:0 24px;} }

section{position:relative; padding:96px 0; scroll-margin-top:40px; border-bottom:1px solid var(--line);}
@media (max-width:980px){ section{scroll-margin-top:80px;} }
@media (max-width:720px){ section{padding:64px 0;} }
.section-alt{background:var(--panel);}
.section-head{max-width:640px; margin:0 auto 52px; text-align:center;}
.section-head h2{font-family:var(--serif); font-weight:600; font-size:clamp(30px,4vw,50px); line-height:1.05; letter-spacing:-0.01em;}
.section-head p{color:var(--muted); font-size:16px; margin-top:16px; line-height:1.75;}
.ornament{justify-content:center;}

.reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

.btn-gold{
  display:inline-flex; align-items:center; gap:12px; font-family:var(--mono); font-size:13.5px; letter-spacing:0.05em; text-transform:uppercase;
  background:var(--gold); color:var(--ink); padding:16px 28px; font-weight:600; transition:background .2s ease;
}
.btn-gold:hover{background:var(--gold-soft);}
.btn-line{
  display:inline-flex; align-items:center; gap:12px; font-family:var(--mono); font-size:13.5px; letter-spacing:0.05em; text-transform:uppercase;
  border:1px solid var(--line-strong); color:var(--text); padding:15px 26px; transition:border-color .2s ease, background .2s ease;
}
.btn-line:hover{border-color:var(--gold); background:var(--gold-dim);}
.btn-gold-outline{
  display:inline-flex; align-items:center; gap:12px; font-family:var(--mono); font-size:13.5px; letter-spacing:0.05em; text-transform:uppercase;
  border:1px solid var(--gold); color:var(--gold-soft); padding:15px 26px; font-weight:600; transition:background .2s ease, color .2s ease;
}
.btn-gold-outline:hover{background:var(--gold); color:var(--ink);}

/* ================= HERO ================= */
.hero{position:relative; min-height:92vh; display:flex; align-items:center; justify-content:center;}
@media (max-width:720px){ .hero{min-height:auto; padding-top:92px; padding-bottom:60px;} }
.hero-media{position:absolute; inset:0; z-index:0;}
.hero-media img{width:100%; height:100%; object-fit:cover; object-position:center 25%;}
.hero-media::after{content:''; position:absolute; inset:0; background:linear-gradient(90deg, var(--ink) 4%, rgba(10,18,34,0.72) 38%, rgba(10,18,34,0.28) 74%), linear-gradient(0deg, var(--ink) 0%, transparent 20%, transparent 76%, var(--ink) 100%);}
.hero-content{position:relative; z-index:2; padding:120px 64px 60px; text-align:center; display:flex; flex-direction:column; align-items:center;}
@media (max-width:1200px){ .hero-content{padding:120px 48px 50px;} }
@media (max-width:720px){ .hero-content{padding:100px 24px 44px;} }
h1.hero-title{font-family:var(--serif); font-weight:600; font-style:italic; font-size:clamp(42px,6vw,86px); line-height:1.02; letter-spacing:-0.01em; max-width:800px; text-shadow:0 2px 20px rgba(0,0,0,0.55);}
.hero-sectors{font-family:var(--mono); font-size:13px; letter-spacing:0.1em; color:var(--gold); margin-top:26px; text-transform:uppercase; text-shadow:0 1px 12px rgba(0,0,0,0.6);}
.hero-sub{font-size:17px; color:var(--muted); max-width:520px; margin-top:22px; line-height:1.75; text-shadow:0 1px 14px rgba(0,0,0,0.65);}
.hero-row{display:flex; align-items:center; justify-content:center; gap:18px; margin-top:40px; flex-wrap:wrap;}
.hero-companies{display:flex; justify-content:center; align-items:center; gap:20px; margin-top:56px; flex-wrap:wrap; padding-top:32px; border-top:1px solid var(--line); width:100%;}
@media (max-width:720px){
  .hero-sectors{margin-top:18px; font-size:11.5px; letter-spacing:0.06em;}
  .hero-sub{margin-top:16px; font-size:15px; line-height:1.65;}
  .hero-row{margin-top:26px; gap:12px;}
}
.hero-companies a{display:flex; align-items:center; padding:14px 26px; transition:opacity .2s ease;}
.hero-companies a:hover{opacity:1;}
.hero-companies img{height:78px; width:auto; filter:grayscale(1) brightness(2.4); opacity:0.9; transition:opacity .2s ease, filter .2s ease;}
.hero-companies a:hover img{opacity:1; filter:none;}
@media (max-width:720px){
  .hero-companies{margin-top:34px; padding-top:24px; gap:12px; display:grid; grid-template-columns:1fr 1fr;}
  .hero-companies a{padding:10px 16px; justify-content:center;}
  .hero-companies img{height:47px;}
}

/* ================= HERO ENTRANCE ANIMATION ================= */
.fade-step{
  opacity:0; transform:translateY(14px);
  animation:heroFadeIn 0.8s cubic-bezier(.2,.7,.3,1) forwards;
  animation-delay:calc(var(--d) * 0.14s + 0.15s);
}
@keyframes heroFadeIn{ to{ opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce){
  .fade-step{ transform:none; animation-duration:0.6s; }
}

/* ================= CARDS / GRIDS ================= */
.card{background:var(--panel-2); border:1px solid var(--line); padding:30px 28px; text-align:center;}
.card h3{font-family:var(--serif); font-size:22px; font-weight:600; margin-bottom:10px;}
.card h4{font-family:var(--mono); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.05em; color:var(--gold); margin-bottom:10px;}
.card p{color:var(--muted); font-size:14.5px; line-height:1.75;}
.card ul{list-style:none; text-align:left; display:inline-block;}
.card ul li{font-size:14px; color:var(--muted); line-height:1.7; padding-left:16px; position:relative; margin-bottom:9px;}
.card ul li::before{content:'—'; position:absolute; left:0; color:var(--gold); opacity:0.8;}
.grid{display:grid; gap:1px; background:var(--line); border:1px solid var(--line);}
.grid > .cell{background:var(--panel); padding:30px 26px; text-align:center;}
.grid-4{grid-template-columns:repeat(4,1fr);} .grid-3{grid-template-columns:repeat(3,1fr);} .grid-2{grid-template-columns:repeat(2,1fr);}
@media (max-width:820px){ .grid-4{grid-template-columns:repeat(2,1fr);} .grid-3{grid-template-columns:1fr;} }
@media (max-width:520px){ .grid-4, .grid-2{grid-template-columns:1fr;} }
.cell h4{font-family:var(--serif); font-size:17px; font-weight:600; margin-bottom:10px;}
.cell p{font-size:13.5px; color:var(--muted); line-height:1.7;}
.stat-num{font-family:var(--serif); font-size:42px; font-weight:600; color:var(--gold); line-height:1;}
.stat-label{font-family:var(--mono); font-size:11.5px; font-weight:600; margin-top:14px; text-transform:uppercase; letter-spacing:0.03em;}
.stat-sub{font-size:12.5px; color:var(--muted-2); margin-top:6px; line-height:1.5;}

/* ================= ABOUT ================= */
.about-split{display:grid; grid-template-columns:0.72fr 1.28fr; gap:56px; align-items:center; text-align:center;}
@media (max-width:780px){ .about-split{grid-template-columns:1fr; gap:32px;} }
.about-photo img{filter:grayscale(1) contrast(1.05); margin:0 auto;}
.about-name{font-family:var(--serif); font-size:28px; font-weight:600; margin-bottom:24px;}
.about-name span{display:block; font-family:var(--mono); font-size:11px; color:var(--muted-2); font-weight:400; margin-top:8px; text-transform:uppercase; letter-spacing:0.04em;}
.quote-list{list-style:none; text-align:left; display:inline-block;}
.quote-list li{font-size:16px; line-height:1.8; color:var(--muted); padding:0 0 20px 24px; position:relative; border-left:1px solid var(--line);}
.quote-list li::before{content:''; position:absolute; left:-1px; top:8px; width:8px; height:1px; background:var(--gold);}
.quote-list li:last-child{padding-bottom:0;}
.principles-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:52px; background:var(--line); border:1px solid var(--line);}
.principles-grid .card{border:none;}
@media (max-width:820px){ .principles-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .principles-grid{grid-template-columns:1fr;} }

/* ================= REACH ================= */
#reach{padding:0;}
.reach-media{position:relative; min-height:560px; display:flex; align-items:center; overflow:hidden;}
.reach-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(0.3);}
.reach-overlay{position:absolute; inset:0; background:linear-gradient(90deg, var(--ink) 0%, rgba(14,22,19,0.85) 42%, rgba(14,22,19,0.4) 75%);}
.reach-content{position:relative; z-index:2; padding:90px 64px; width:100%; max-width:900px; margin:0 auto; text-align:center;}
@media (max-width:1200px){ .reach-content{padding:80px 48px;} }
@media (max-width:720px){ .reach-content{padding:56px 24px;} }
.reach-content h2{font-family:var(--serif); font-size:clamp(28px,4vw,42px); font-weight:600; max-width:520px; line-height:1.08; margin:0 auto;}
.reach-lead{color:var(--muted); font-size:16px; margin:16px auto 0; max-width:440px;}
.reach-card{margin:34px auto 0; max-width:500px; background:rgba(20,32,25,0.75); border:1px solid var(--line-strong); padding:30px 28px; backdrop-filter:blur(4px); text-align:left;}
.reach-card ul{list-style:none;}
.reach-card li{font-size:14.5px; color:var(--text); opacity:0.85; line-height:1.75; padding-left:18px; position:relative; margin-bottom:13px;}
.reach-card li:last-child{margin-bottom:0;}
.reach-card li::before{content:'—'; position:absolute; left:0; color:var(--gold);}

/* ================= STRUCTURE ================= */
.org-parent{display:flex; align-items:center; justify-content:center; text-align:center; gap:22px; padding:28px 30px; border:1px solid var(--gold); background:var(--gold-dim); margin-bottom:1px;}
.org-parent img{height:52px; width:auto;}
.org-parent-title{font-family:var(--serif); font-size:20px; font-weight:600;}
.org-parent-sub{font-family:var(--mono); font-size:11.5px; color:var(--muted); margin-top:6px;}
.org-children{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line);}
@media (max-width:820px){ .org-children{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .org-children{grid-template-columns:1fr;} }
.org-child{background:var(--panel); padding:32px 26px; border-top:2px solid var(--c); display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; transition:background .2s ease;}
.org-child:hover{background:var(--panel-2);}
.org-child img{height:40px; width:auto; object-fit:contain;}
.org-child p{font-size:13.5px; color:var(--muted); line-height:1.65; flex-grow:1;}
.org-link{font-family:var(--mono); font-size:11px; letter-spacing:0.04em; color:var(--c); text-transform:uppercase; font-weight:600;}

/* ================= COMPANY SECTIONS ================= */
.co-hero{position:relative; min-height:clamp(360px, 32vw, 720px); display:flex; align-items:flex-end; overflow:hidden;}
@media (max-width:720px){ .co-hero{min-height:340px;} }
.co-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.co-hero img.hero-contain{object-fit:contain; background:var(--ink);}
.co-hero::after{content:''; position:absolute; inset:0; background:linear-gradient(0deg, var(--ink) 0%, rgba(14,22,19,0.6) 55%, rgba(14,22,19,0.25) 100%);}
.co-hero-content{position:relative; z-index:2; padding:44px 64px; width:100%; text-align:center; display:flex; flex-direction:column; align-items:center;}
@media (max-width:1200px){ .co-hero-content{padding:40px 48px;} }
@media (max-width:720px){ .co-hero-content{padding:28px 24px;} }
.co-hero-content img.co-logo{position:static; height:56px; width:auto; margin-bottom:18px; filter:brightness(0) invert(1); inset:auto;}
.co-hero-content .co-tagline{font-family:var(--serif); font-style:italic; font-size:clamp(18px,2.4vw,26px); max-width:640px; font-weight:500;}
.co-hero-content .co-badge{font-family:var(--mono); font-size:11px; letter-spacing:0.08em; color:var(--tc); text-transform:uppercase; margin-bottom:12px; display:block; font-weight:600;}
.co-body{padding-top:52px;}
.co-overview{font-size:16px; color:var(--muted); max-width:740px; line-height:1.85; margin:0 auto 56px; text-align:center;}
.co-overview b{color:var(--text); font-weight:600;}
.cap-row{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; margin-bottom:64px; text-align:center;}
.cap-row.rev .cap-media{order:2;} .cap-row.rev .cap-text{order:1;}
@media (max-width:840px){ .cap-row, .cap-row.rev{grid-template-columns:1fr; gap:24px;} .cap-row.rev .cap-media, .cap-row.rev .cap-text{order:unset;} }
.cap-media img{filter:grayscale(0.25); margin:0 auto;}
.cap-text{display:flex; flex-direction:column; align-items:center;}
.cap-num{font-family:var(--mono); font-size:11px; color:var(--tc); letter-spacing:0.06em; margin-bottom:12px; font-weight:600; text-transform:uppercase;}
.cap-text h3{font-family:var(--serif); font-size:25px; font-weight:600; margin-bottom:14px;}
.cap-text > p.lead{color:var(--text); opacity:0.75; font-size:14.5px; margin-bottom:16px;}
.cap-text ul{list-style:none; text-align:left; display:inline-block;}
.cap-text ul li{font-size:14px; color:var(--muted); line-height:1.75; padding-left:16px; position:relative; margin-bottom:10px;}
.cap-text ul li::before{content:'—'; position:absolute; left:0; color:var(--tc); opacity:0.85;}
.cap-grid-head{font-family:var(--mono); font-size:11.5px; letter-spacing:0.06em; color:var(--tc); text-transform:uppercase; margin-bottom:20px; font-weight:600; text-align:center;}
.cap-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:56px;}
@media (max-width:820px){ .cap-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .cap-grid{grid-template-columns:1fr;} }
.cap-grid .cell{background:var(--panel); padding:24px 22px; text-align:center;}
.cap-grid .cell h4{font-family:var(--serif); font-size:16px; font-weight:600; margin-bottom:8px; color:var(--tc);}
.cap-grid .cell p{font-size:13px; color:var(--muted); line-height:1.65;}
.chain-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:56px;}
@media (max-width:820px){ .chain-grid{grid-template-columns:repeat(2,1fr);} }
.chain-card{background:var(--panel); text-align:center;}
.chain-card .ci{width:100%; aspect-ratio:5/4; overflow:hidden;}
.chain-card .ci img{width:100%; height:100%; object-fit:cover; filter:grayscale(0.3);}
.chain-card .ct{padding:16px 16px 20px;}
.chain-card .ct .cn{font-family:var(--mono); font-size:10px; color:var(--tc); letter-spacing:0.05em; text-transform:uppercase; margin-bottom:6px; font-weight:600;}
.chain-card .ct h5{font-family:var(--serif); font-size:15px; font-weight:600; margin-bottom:6px;}
.chain-card .ct p{font-size:12px; color:var(--muted); line-height:1.55;}
.plan-strip-head{display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px; margin-bottom:22px;}
.plan-strip-head h3{font-family:var(--serif); font-size:21px; font-weight:600;}
.plan-strip-head span{font-family:var(--mono); font-size:11px; color:var(--muted-2);}
.plan-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:48px;}
@media (max-width:820px){ .plan-strip{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .plan-strip{grid-template-columns:1fr;} }
.plan-strip .cell{background:var(--panel); padding:20px 20px; text-align:center;}
.plan-strip .cell .py{font-family:var(--mono); font-size:10.5px; color:var(--tc); letter-spacing:0.05em; margin-bottom:8px; font-weight:600;}
.plan-strip .cell h5{font-family:var(--serif); font-size:15px; font-weight:600; margin-bottom:6px;}
.plan-strip .cell p{font-size:12px; color:var(--muted); line-height:1.6;}
.co-next{display:flex; flex-direction:column; align-items:center; text-align:center; padding-top:8px; gap:18px;}
.co-next-label{font-family:var(--mono); font-size:12px; color:var(--muted-2); text-transform:uppercase; letter-spacing:0.05em;}
.co-next-btn{
  display:inline-flex; align-items:center; gap:16px; font-family:var(--serif); font-size:26px; font-weight:600; color:var(--text);
  border:1px solid var(--line-strong); padding:22px 40px; transition:color .2s ease, border-color .2s ease, background .2s ease;
}
.co-next-btn:hover{color:var(--tc); border-color:var(--tc); background:var(--panel-2);}
.co-next-btn img{height:42px; width:auto; filter:grayscale(1) brightness(2);}

/* ================= TIMELINE / SYNERGY / CONTACT / FOOTER ================= */
.master-timeline{position:relative;}
.mt-row{display:grid; grid-template-columns:repeat(4,1fr); gap:32px;}
@media (max-width:820px){ .mt-row{grid-template-columns:1fr 1fr; row-gap:44px;} }
@media (max-width:520px){ .mt-row{grid-template-columns:1fr;} }
.mt-item{position:relative; padding-top:26px; border-top:1px solid var(--line); text-align:center; display:flex; flex-direction:column; align-items:center;}
.mt-item::before{content:''; position:absolute; top:-1px; left:50%; transform:translateX(-50%); width:34px; height:1px; background:var(--gold);}
.mt-year{font-family:var(--mono); font-size:12px; color:var(--gold); letter-spacing:0.05em; margin-bottom:12px; font-weight:600;}
.mt-item h4{font-family:var(--serif); font-size:19px; font-weight:600; margin-bottom:8px;}
.mt-item p{font-size:13px; color:var(--muted); line-height:1.7; max-width:250px;}

.synergy-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:820px){ .synergy-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .synergy-grid{grid-template-columns:1fr;} }
.syn-card{background:var(--panel); padding:32px 26px; border-top:2px solid var(--c); text-align:center;}
.syn-verb{font-family:var(--serif); font-style:italic; font-size:16px; color:var(--c); display:block; margin-bottom:16px;}
.syn-card h4{font-family:var(--mono); font-size:11px; font-weight:600; margin-bottom:10px; text-transform:uppercase; letter-spacing:0.03em;}
.syn-card p{font-size:13.5px; color:var(--muted); line-height:1.7;}

.contact-wrap{display:grid; grid-template-columns:1fr; gap:0; text-align:center; margin-bottom:48px;}
.contact-info{display:flex; flex-direction:column; align-items:center;}
.contact-info h2{font-family:var(--serif); font-size:clamp(28px,4vw,40px); font-weight:600; margin-bottom:36px;}
.contact-block{margin-bottom:24px; padding-bottom:24px; border-bottom:1px solid var(--line); width:100%;}
.contact-block:last-child{border-bottom:none;}
.cb-label{font-family:var(--mono); font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted-2); display:block; margin-bottom:8px;}
.contact-block p{font-size:16px; color:var(--text); line-height:1.7;}
.contact-block a{border-bottom:1px solid var(--line-strong); transition:color .2s ease, border-color .2s ease;}
.contact-block a:hover{border-color:var(--gold); color:var(--gold);}
.contact-media img{filter:grayscale(0.3); margin:0 auto;}

.site-footer{border-top:1px solid var(--line); padding-top:56px; background:var(--panel); text-align:center;}
.footer-inner{display:flex; justify-content:center; gap:70px; flex-wrap:wrap; padding-bottom:44px;}
.footer-brand{display:flex; flex-direction:column; align-items:center;}
.footer-brand img{height:48px; width:auto; margin-bottom:18px;}
.footer-brand p{font-size:13px; color:var(--muted-2); line-height:1.7;}
.footer-cols{display:flex; gap:60px; flex-wrap:wrap; justify-content:center;}
.footer-cols > div{display:flex; flex-direction:column; align-items:center; gap:11px;}
.footer-cols span{font-family:var(--mono); font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted-2); margin-bottom:6px;}
.footer-cols a{font-size:13.5px; color:var(--muted); transition:color .2s ease;}
.footer-cols a:hover{color:var(--gold);}
.footer-bottom{display:flex; justify-content:center; align-items:center; padding:22px 64px; border-top:1px solid var(--line); font-size:12px; color:var(--muted-2); flex-wrap:wrap; gap:24px;}
@media (max-width:720px){ .footer-bottom{padding:18px 24px;} }
.footer-code{font-family:var(--mono); letter-spacing:0.03em;}

/* ================= MULTI-PAGE HEADER / NAV ================= */
header.site-header{position:fixed; top:0; left:0; right:0; z-index:200; background:rgba(10,18,34,0.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.header-inner{max-width:1280px; margin:0 auto; padding:0 44px; height:92px; display:flex; align-items:center; justify-content:space-between; gap:32px;}
@media (max-width:1180px){ .header-inner{padding:0 24px;} }
.brand{display:flex; align-items:center; gap:12px; flex-shrink:0;}
.brand img{height:42px; width:auto;}
.brand-word{font-family:var(--serif); font-size:18px; font-weight:600;}
.brand-word small{display:block; font-family:var(--mono); font-size:8px; letter-spacing:0.12em; color:var(--muted-2); font-weight:400; margin-top:2px; text-transform:uppercase;}
.main-nav{display:flex; align-items:center; gap:4px; flex:1; justify-content:center;}
@media (max-width:1180px){ .main-nav{display:none;} }
.main-nav > a, .nav-drop-btn{
  font-family:var(--sans); font-size:14px; color:var(--text); padding:10px 16px; display:flex; align-items:center; gap:6px;
  background:none; border:none; cursor:pointer; transition:color .2s ease;
}
.main-nav > a:hover, .nav-drop-btn:hover, .nav-drop:hover .nav-drop-btn{color:var(--gold-soft);}
.nav-drop{position:relative;}
.nav-drop-btn .caret{width:8px; height:8px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s ease;}
.nav-drop:hover .nav-drop-btn .caret{transform:rotate(225deg) translateY(2px);}
.nav-drop-panel{
  position:absolute; top:100%; left:50%; transform:translateX(-50%); background:var(--panel); border:1px solid var(--line-strong);
  min-width:230px; padding:10px; opacity:0; visibility:hidden; transform-origin:top center; translate:0 -6px;
  transition:opacity .18s ease, translate .18s ease, visibility .18s ease; box-shadow:0 24px 48px rgba(0,0,0,0.4);
}
.nav-drop:hover .nav-drop-panel, .nav-drop.open .nav-drop-panel{opacity:1; visibility:visible; translate:0 0;}
.nav-drop-panel a{display:block; padding:10px 14px; font-size:13.5px; color:var(--muted); transition:background .15s ease, color .15s ease;}
.nav-drop-panel a:hover{background:var(--panel-2); color:var(--gold-soft);}
.nav-cta{
  display:inline-flex; align-items:center; font-family:var(--mono); font-size:14px; letter-spacing:0.05em; text-transform:uppercase;
  background:var(--gold); color:var(--ink); padding:15px 26px; font-weight:600; transition:background .2s ease; flex-shrink:0;
}
.nav-cta:hover{background:var(--gold-soft);}
@media (max-width:1180px){ .nav-cta{display:none;} }
.menu-toggle{display:none; flex-direction:column; gap:5px; background:none; border:1px solid var(--line-strong); padding:9px 11px; cursor:pointer;}
.menu-toggle span{width:18px; height:1px; background:var(--text); display:block;}
@media (max-width:1180px){ .menu-toggle{display:flex;} }

/* mobile drawer */
.mobile-drawer{position:fixed; top:0; right:0; bottom:0; width:min(360px,88vw); background:var(--panel); z-index:220; transform:translateX(100%); transition:transform .3s ease; overflow-y:auto; border-left:1px solid var(--line);}
.mobile-drawer.open{transform:translateX(0);}
.mobile-drawer-head{padding:22px 24px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center;}
.mobile-close{background:none; border:1px solid var(--line-strong); color:var(--text); width:34px; height:34px; cursor:pointer; font-size:16px;}
.mobile-nav{padding:14px 10px;}
.mobile-group{margin-bottom:6px;}
.mobile-group-btn{width:100%; display:flex; justify-content:space-between; align-items:center; background:none; border:none; color:var(--text); font-family:var(--serif); font-size:17px; padding:14px 14px; cursor:pointer;}
.mobile-group-btn .caret{width:9px; height:9px; border-right:2px solid var(--gold); border-bottom:2px solid var(--gold); transform:rotate(45deg); transition:transform .25s ease; flex-shrink:0;}
.mobile-group.open .mobile-group-btn .caret{transform:rotate(225deg);}
.mobile-group-panel{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.mobile-group.open .mobile-group-panel{max-height:400px;}
.mobile-group-panel a{display:block; padding:10px 26px; font-size:14px; color:var(--muted);}
.mobile-nav > a{display:block; padding:14px 14px; font-family:var(--serif); font-size:17px; color:var(--text); border-top:1px solid var(--line);}
.drawer-overlay{display:none; position:fixed; inset:0; background:rgba(0,0,0,0.55); z-index:210;}
.drawer-overlay.show{display:block;}

/* ================= BREADCRUMBS ================= */
.breadcrumbs{background:var(--panel); border-bottom:1px solid var(--line); padding:14px 0; margin-top:92px;}
.breadcrumbs .wrap{max-width:1280px; padding:0 44px;}
@media (max-width:720px){ .breadcrumbs .wrap{padding:0 24px;} }
.breadcrumbs a{font-family:var(--mono); font-size:11.5px; color:var(--muted-2); text-transform:uppercase; letter-spacing:0.03em;}
.breadcrumbs a:hover{color:var(--gold-soft);}
.breadcrumbs span.sep{color:var(--muted-2); margin:0 8px; font-size:11px;}
.breadcrumbs span.current{font-family:var(--mono); font-size:11.5px; color:var(--gold-soft); text-transform:uppercase; letter-spacing:0.03em;}

/* ================= PAGE HERO (inner pages) ================= */
.page-hero{position:relative; min-height:clamp(340px, 32vw, 720px); display:flex; align-items:flex-end; overflow:hidden;}
.page-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center center;}
@media (max-width:720px){ .page-hero{min-height:260px;} }
.page-hero img.hero-hq{object-position:center 32%;}
@media (max-width:720px){ .page-hero img.hero-hq{object-position:center 26%; transform:scale(1.2); transform-origin:50% 28%;} }
.page-hero img.hero-contain{object-fit:contain; object-position:82% center; background:var(--ink);}
@media (max-width:720px){ .page-hero img.hero-contain{object-position:center center;} }
.page-hero::after{content:''; position:absolute; inset:0; background:linear-gradient(0deg, var(--ink) 6%, rgba(10,18,34,0.55) 60%, rgba(10,18,34,0.25) 100%);}
.page-hero-content{position:relative; z-index:2; padding:50px 44px; max-width:1280px; margin:0 auto; width:100%;}
@media (max-width:720px){ .page-hero-content{padding:26px 20px;} }
.page-hero h1{font-family:var(--serif); font-weight:600; font-style:italic; font-size:clamp(34px,5vw,58px); line-height:1.05;}
.page-hero p{color:var(--muted); font-size:15.5px; margin-top:14px; max-width:560px; line-height:1.7;}

/* ================= WRAP OVERRIDE (multi-page uses wider max) ================= */
.wrap{max-width:1000px;}

/* ================= HOME QUICK LINKS ================= */
.quicklinks-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:900px){ .quicklinks-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .quicklinks-grid{grid-template-columns:1fr;} }
.ql-card{background:var(--panel); padding:30px 26px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; transition:background .2s ease;}
.ql-card:hover{background:var(--panel-2);}
.ql-num{font-family:var(--mono); font-size:11px; color:var(--gold); letter-spacing:0.05em;}
.ql-card h3{font-family:var(--serif); font-size:19px; font-weight:600;}
.ql-card p{font-size:13.5px; color:var(--muted); line-height:1.6; flex-grow:1;}
.ql-link{font-family:var(--mono); font-size:11px; letter-spacing:0.04em; color:var(--gold-soft); text-transform:uppercase;}

/* ================= FOOTER (multi-page, more columns) ================= */
.site-footer{border-top:1px solid var(--line); padding-top:52px; background:var(--panel);}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; padding-bottom:44px;}
@media (max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }
.footer-brand img{height:48px; width:auto; margin-bottom:16px;}
.footer-brand p{font-size:12.5px; color:var(--muted-2); line-height:1.7;}
.footer-col span{font-family:var(--mono); font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted-2); margin-bottom:14px; display:block;}
.footer-col a{display:block; font-size:13.5px; color:var(--muted); margin-bottom:10px; transition:color .2s ease;}
.footer-col a:hover{color:var(--gold);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding:20px 44px; border-top:1px solid var(--line); font-size:11.5px; color:var(--muted-2); flex-wrap:wrap; gap:10px;}
@media (max-width:720px){ .footer-bottom{padding:16px 24px;} }

/* ================= HUBSPOT FORM CARD ================= */
.hubspot-form-card{padding:44px 48px; background:var(--panel-2); width:100%; max-width:900px; margin:0 auto; text-align:center;}
.hs-card-title{font-family:var(--serif); font-size:22px; font-weight:600; margin-bottom:8px;}
.hs-card-sub{font-size:13.5px; color:var(--muted); margin-bottom:22px;}
.hs-form-frame{display:block; width:100%; min-height:460px; height:auto; overflow:visible;}
/* Note: HubSpot's current embed (hs-form-frame) renders the form inside an iframe from
   HubSpot's own servers, so this page's CSS cannot reach inside and restyle its fields —
   that's a browser security boundary (cross-origin iframes), not a bug here. To match the
   site's look, set colors/fonts inside HubSpot itself: open the form > Style tab. */
.hs-form label{font-family:var(--mono); font-size:11px; letter-spacing:0.05em; text-transform:uppercase; color:var(--muted-2); display:block; margin-bottom:8px;}
.hs-form input, .hs-form textarea, .hs-form select{
  width:100%; background:var(--panel); border:1px solid var(--line-strong); color:var(--text); font-family:var(--sans); font-size:14px;
  padding:12px 14px; margin-bottom:18px;
}
.hs-form input:focus, .hs-form textarea:focus, .hs-form select:focus{outline:1px solid var(--gold); border-color:var(--gold);}
.hs-form .hs-button{
  font-family:var(--mono); font-size:12px; letter-spacing:0.05em; text-transform:uppercase; background:var(--gold); color:var(--ink);
  border:none; padding:14px 26px; font-weight:600; cursor:pointer; transition:background .2s ease;
}
.hs-form .hs-button:hover{background:var(--gold-soft);}
.hs-form .hs-error-msgs{list-style:none; color:#e08a8a; font-size:12px; margin:-12px 0 14px;}

/* ================= BLOG ================= */
.blog-empty{background:var(--panel-2);}
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:40px;}
@media (max-width:900px){ .blog-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .blog-grid{grid-template-columns:1fr;} }
.blog-card{background:var(--panel); display:block; text-align:center;}
.blog-card-img{aspect-ratio:4/3; overflow:hidden;}
.blog-card-img img{width:100%; height:100%; object-fit:cover; filter:grayscale(0.2); transition:transform .4s ease;}
.blog-card:hover .blog-card-img img{transform:scale(1.05);}
.blog-card-body{padding:22px 24px;}
.blog-date{font-family:var(--mono); font-size:10.5px; letter-spacing:0.05em; color:var(--gold); text-transform:uppercase;}
.blog-card-body h3{font-family:var(--serif); font-size:19px; font-weight:600; margin:10px 0 8px;}
.blog-card-body p{font-size:13.5px; color:var(--muted); line-height:1.65;}

/* ================= ACCESSIBILITY / SEO UTILITY ================= */
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}

/* ================= LEGAL DOCUMENT (Privacy) =================
   Note: body paragraphs/lists intentionally stay left-aligned here even though the
   rest of the site is centered — centering long-form multi-line legal text makes it
   measurably harder to read. Headings and the block itself are centered for consistency. */
.legal-doc{max-width:760px; margin:0 auto; text-align:center;}
.legal-doc h2{font-family:var(--serif); font-size:22px; font-weight:600; margin:48px 0 14px;}
.legal-doc h2:first-of-type{margin-top:0;}
.legal-doc p{color:var(--muted); font-size:15px; margin-bottom:14px; line-height:1.75; text-align:left;}
.legal-doc ul{list-style:none; margin:0 0 14px; text-align:left;}
.legal-doc li{color:var(--muted); font-size:15px; line-height:1.75; padding-left:17px; position:relative; margin-bottom:9px;}
.legal-doc li::before{content:'—'; position:absolute; left:0; color:var(--gold); opacity:0.85;}
.legal-doc strong{color:var(--text); font-weight:600;}
.legal-doc a{color:var(--gold-soft); border-bottom:1px solid var(--line-strong);}
.legal-doc a:hover{color:var(--gold);}
.todo{color:var(--gold); background:var(--gold-dim); padding:1px 7px; font-family:var(--mono); font-size:12.5px;}
.legal-notice{border-left:2px solid var(--gold); background:var(--panel-2); padding:24px 26px; margin-bottom:8px; text-align:left;}
.legal-notice p{margin-bottom:0; color:var(--text); opacity:0.85;}
.legal-notice strong{color:var(--gold-soft);}
