/* Catholic Finance Institute — site stylesheet
   Palette: CFI-BRAND-01 (Edizione 2026). Heritage of Castel Gandolfo, precision of an AI research lab. */
@font-face{font-family:"Lora";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/lora-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Lora";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/lora-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Lora";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/lora-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Lora";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/lora-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:300;font-display:swap;src:url(fonts/poppins-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/poppins-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/poppins-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/poppins-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"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:"Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}

:root{
  /* fondamentali */
  --ink:#1E242B; --gold:#AE9555; --paper:#FAF9F5;
  /* estensioni */
  --night:#131A22; --body:#2A313A; --slate:#3D4753; --fog:#666F7C;
  --gold-text:#806A38; --gold-light:#D6C08D; --sand:#F0EBDF; --rule:#E2DCCE;
  --night-2:#1A222C; --night-line:rgba(214,192,141,.16); --night-text:#C9CED5; --night-mute:#9AA3AE;
  --serif:"Lora",Georgia,"Times New Roman",serif;
  --sans:"Poppins",-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --w:1240px;
  --grid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cpath d='M48 0H0v48' fill='none' stroke='%23D6C08D' stroke-opacity='.07'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:hidden}
body{margin:0;font-family:var(--sans);font-weight:300;color:var(--body);background:var(--paper);font-size:16px;line-height:1.72;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--gold-text)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;color:var(--ink);line-height:1.16;margin:0 0 .6em;letter-spacing:-.005em}
h1{font-size:clamp(2.5rem,5.2vw,4.4rem);letter-spacing:-.015em}
h2{font-size:clamp(1.9rem,3.2vw,2.75rem)}
h3{font-size:1.32rem}
h4{font-size:1.08rem}
p{margin:0 0 1.1em}
strong{font-weight:500;color:var(--ink)}
em{font-family:var(--serif);font-style:italic}
.wrap{max-width:var(--w);margin:0 auto;padding:0 32px}
.eyebrow{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text);margin:0 0 1.1rem;display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--gold)}
.mono{font-family:var(--mono);font-size:.78rem;letter-spacing:.06em}
.lead{font-size:1.14rem;color:var(--slate);max-width:760px}
.muted{color:var(--fog)}
.small{font-size:.87rem}
.rule{width:64px;height:1px;background:var(--gold);border:0;margin:0 0 1.7rem}
.center{text-align:center}

/* ---------- top bar + header ---------- */
.topbar{background:var(--night);color:var(--night-mute);font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:36px;gap:16px}
.topbar a{color:var(--night-text);text-decoration:none}.topbar a:hover{color:var(--gold-light)}
.topbar .tb-r{display:flex;gap:24px}
.topbar .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-right:10px;vertical-align:1px}
.header{position:sticky;top:0;z-index:50;background:rgba(250,249,245,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;height:86px;gap:20px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand img{height:56px;width:auto}
.brand .wm{font-family:var(--serif);color:var(--ink);line-height:1.04;font-size:1.1rem;font-weight:600}
.brand .wm small{display:block;font-family:var(--mono);font-size:.58rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-text);margin-top:6px}
.nav{display:flex;align-items:center;gap:2px}
.nav a{font-size:.85rem;font-weight:400;color:var(--ink);text-decoration:none;padding:8px 11px}
.nav a:hover,.nav a.on{color:var(--ink);box-shadow:inset 0 -1px 0 var(--gold)}
.nav .btn{margin-left:12px}
.menu-btn{display:none;background:none;border:1px solid var(--rule);padding:8px 12px;font:inherit;font-size:.85rem;color:var(--ink);cursor:pointer}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-size:.84rem;font-weight:500;letter-spacing:.03em;padding:14px 24px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);text-decoration:none;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.btn:hover{background:var(--night);border-color:var(--night);color:var(--paper)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--night)}
.btn.gold:hover{background:var(--gold-light);border-color:var(--gold-light);color:var(--night)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.btn.light{background:transparent;border-color:rgba(250,249,245,.55);color:var(--paper)}
.btn.light:hover{background:var(--paper);color:var(--night);border-color:var(--paper)}
.btn .arr{font-family:var(--mono)}
.nav .btn{padding:11px 16px;font-size:.78rem}
.nav .btn,.nav .btn:hover{box-shadow:none}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.link-arrow{font-size:.84rem;font-weight:500;text-decoration:none;color:var(--ink);display:inline-flex;gap:8px;align-items:center}
.link-arrow::after{content:"→";font-family:var(--mono);color:var(--gold-text);transition:transform .18s}
.link-arrow:hover::after{transform:translateX(4px)}
.night .link-arrow,.dark .link-arrow{color:var(--paper)}
.night .link-arrow::after,.dark .link-arrow::after{color:var(--gold-light)}

/* ---------- home hero: arch + night ---------- */
.hero{background:var(--night);color:var(--night-text);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:var(--grid);opacity:1;pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:end;padding-top:84px;padding-bottom:0}
.hero h1{color:var(--paper)}
.hero h1 em{color:var(--gold-light)}
.hero .sub{font-size:1.18rem;color:var(--night-text);max-width:600px;margin-bottom:2.2rem}
.hero .eyebrow{color:var(--gold-light)}
.hero .copy{padding-bottom:96px}
.arch{position:relative;border-radius:999px 999px 0 0;overflow:hidden;border:1px solid var(--gold);border-bottom:0;padding:10px 10px 0;background:transparent}
.arch img{border-radius:999px 999px 0 0;width:100%;aspect-ratio:3/4;object-fit:cover}
.arch-cap{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:rgba(19,26,34,.78);padding:6px 12px;white-space:nowrap}
.coords{display:flex;gap:28px;flex-wrap:wrap;font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--night-mute);margin-top:42px;padding-top:22px;border-top:1px solid var(--night-line)}
.coords b{color:var(--gold-light);font-weight:500}

/* index strip under hero */
.index{background:var(--paper);border-bottom:1px solid var(--rule)}
.index .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.index a{display:block;padding:28px 26px 26px;text-decoration:none;border-right:1px solid var(--rule);color:var(--ink);transition:background .18s}
.index a:first-child{border-left:1px solid var(--rule)}
.index a:hover{background:var(--sand)}
.index .n{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;color:var(--gold-text);display:block;margin-bottom:10px}
.index .t{font-family:var(--serif);font-size:1.22rem;display:block}
.index .d{font-size:.82rem;color:var(--fog);display:block;margin-top:4px}

/* page hero */
.page-hero{position:relative;color:var(--night-text);background:var(--night) center/cover no-repeat}
.page-hero::before{content:"";position:absolute;inset:0;background:rgba(19,26,34,.82)}
.page-hero::after{content:"";position:absolute;inset:0;background-image:var(--grid);pointer-events:none}
.page-hero .wrap{position:relative;z-index:1;padding-top:96px;padding-bottom:80px}
.page-hero h1{color:var(--paper);font-size:clamp(2.2rem,4.2vw,3.4rem);max-width:900px}
.page-hero p{color:var(--night-text);font-size:1.12rem;max-width:720px;margin:0}
.page-hero .eyebrow{color:var(--gold-light)}
.crumbs{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--night-mute);margin-bottom:1.6rem}
.crumbs a{color:var(--night-text);text-decoration:none}
.crumbs a:hover{color:var(--gold-light)}

/* ---------- sections ---------- */
.sec{padding:104px 0}
.sec.tight{padding:64px 0}
.sec.grey,.sec.sand{background:var(--sand)}
.sec.navy,.sec.night{background:var(--night);color:var(--night-text);position:relative}
.sec.night::before,.sec.navy::before{content:"";position:absolute;inset:0;background-image:var(--grid);pointer-events:none}
.sec.night>.wrap,.sec.navy>.wrap{position:relative}
.sec.navy h2,.sec.navy h3,.sec.navy h4,.sec.night h2,.sec.night h3,.sec.night h4{color:var(--paper)}
.sec.navy .eyebrow,.sec.night .eyebrow{color:var(--gold-light)}
.sec.navy .muted,.sec.night .muted{color:var(--night-mute)}
.sec.navy a:not(.btn),.sec.night a:not(.btn){color:var(--paper)}
.sec-head{margin-bottom:56px;max-width:840px}
.sec-head.row{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:40px}
.grid{display:grid;gap:28px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:72px;align-items:center}
.split.rev>:first-child{order:2}
.figure{position:relative;margin:0}
.figure img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.figure.archf img{border-radius:999px 999px 0 0;aspect-ratio:4/5}
.figure.archf{border:1px solid var(--gold);border-bottom:0;border-radius:999px 999px 0 0;padding:10px 10px 0}
.figure figcaption{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fog);margin-top:12px}
.sec.night .figure figcaption{color:var(--night-mute)}

.card{background:var(--paper);border:1px solid var(--rule);padding:34px 30px;position:relative;transition:border-color .2s,transform .2s}
.card:hover{border-color:#cfc6b2}
.card h3{margin-bottom:.5em}
.card p:last-child{margin-bottom:0}
.card .num{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);margin-bottom:16px;display:block}
.card.top,.card.gtop{border-top:2px solid var(--gold)}
.sec.sand .card,.sec.grey .card{background:var(--paper)}
.sec.night .card{background:var(--night-2);border-color:var(--night-line);color:var(--night-text)}
.sec.night .card .num{color:var(--gold-light)}
.img-card{background:var(--paper);border:1px solid var(--rule);overflow:hidden;display:flex;flex-direction:column}
.img-card img{aspect-ratio:16/10;object-fit:cover;width:100%;filter:saturate(.9)}
.img-card .body{padding:28px 28px 30px;flex:1;display:flex;flex-direction:column}
.img-card .body p{flex:1}
.list{list-style:none;padding:0;margin:0 0 1.2em}
.list li{padding:10px 0 10px 24px;border-bottom:1px solid var(--rule);position:relative;break-inside:avoid}
.list li::before{content:"";position:absolute;left:0;top:21px;width:10px;height:1px;background:var(--gold)}
.sec.night .list li,.sec.navy .list li{border-color:var(--night-line)}
.ticks{list-style:none;padding:0;margin:0 0 1.4em}
.ticks li{padding:5px 0 5px 26px;position:relative}
.ticks li::before{content:"✓";position:absolute;left:0;color:var(--gold-text);font-weight:500}
.sec.night .ticks li::before{color:var(--gold-light)}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.tags li{font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;border:1px solid var(--rule);padding:7px 12px;background:var(--paper);color:var(--ink)}
.sec.night .tags li,.sec.navy .tags li{background:transparent;border-color:var(--night-line);color:var(--paper)}

/* statement */
.statement{font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.42;color:var(--ink);max-width:980px}
.statement em{color:var(--gold-text)}
.sec.night .statement{color:var(--paper)}
.mv{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.mv>div{padding:52px 48px 52px 0}
.mv>div+div{border-left:1px solid var(--rule);padding-left:48px}
.mv p{font-family:var(--serif);font-size:1.42rem;line-height:1.48;color:var(--ink);margin:0}

/* values */
.values{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--night-line)}
.values>div{padding:30px 22px 8px 0;border-right:1px solid var(--night-line);margin-right:22px}
.values>div:last-child{border-right:0;margin-right:0}
.values .rn{font-family:var(--serif);color:var(--gold-light);font-size:1.4rem;display:block;margin-bottom:12px}
.values h4{color:var(--paper);font-size:1.1rem}
.values p{font-size:.85rem;color:var(--night-mute)}

/* facts */
.facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--rule)}
.facts>div{padding:32px 28px 30px 0}
.facts>div+div{padding-left:28px;border-left:1px solid var(--rule)}
.facts b{display:block;font-family:var(--serif);font-weight:500;font-size:2.6rem;color:var(--ink);line-height:1;margin-bottom:10px}
.facts span{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fog)}

/* publications */
.pub{display:grid;grid-template-columns:140px 1fr auto;gap:32px;align-items:center;padding:30px 0;border-bottom:1px solid var(--rule)}
.pub:first-child{border-top:1px solid var(--ink)}
.pub .series{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);line-height:1.5;margin-bottom:6px}
.pub h3{margin:0 0 .3em;font-size:1.24rem}
.pub p{margin:0;color:var(--slate);font-size:.93rem}
.pub .meta{font-family:var(--mono);font-size:.7rem;color:var(--fog);margin-top:8px;letter-spacing:.06em}
.doc-cover{width:140px;aspect-ratio:3/4;background:var(--night);color:var(--paper);padding:16px 14px;display:flex;flex-direction:column;justify-content:space-between;border-top:2px solid var(--gold);position:relative;overflow:hidden}
.doc-cover::before{content:"";position:absolute;inset:0;background-image:var(--grid)}
.doc-cover small{position:relative;font-family:var(--mono);font-size:.54rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light)}
.doc-cover span{position:relative;font-family:var(--serif);font-size:.86rem;line-height:1.3}

/* ---------- AI / tech band ---------- */
.office-band{background:var(--night);color:var(--night-text);position:relative;overflow:hidden}
.office-band::before{content:"";position:absolute;inset:0;background-image:var(--grid);pointer-events:none}
.office-band .wrap{position:relative}
.office-band h2{color:var(--paper)}
.office-band .eyebrow{color:var(--gold-light)}
.office-band .muted{color:var(--night-mute)}
.office-band .frame,.frame{border:1px solid var(--night-line);padding:8px;background:var(--night-2);position:relative}
.frame .bar{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--night-mute);padding:4px 4px 10px}
.frame .bar i{font-style:normal;color:var(--gold-light)}
.office-band video,.frame img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover;background:var(--night)}
.console{font-family:var(--mono);font-size:.78rem;line-height:1.55;background:var(--night-2);border:1px solid var(--night-line);color:var(--night-text)}
.console .head{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--night-line);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--night-mute)}
.console .head b{color:var(--gold-light);font-weight:500}
.console ol{list-style:none;margin:0;padding:8px 0}
.console li{display:grid;grid-template-columns:34px 1fr auto;gap:12px;padding:7px 16px;border-bottom:1px dashed rgba(214,192,141,.08)}
.console li:last-child{border-bottom:0}
.console .k{color:var(--gold-light)}
.console .a{color:var(--night-mute);font-size:.7rem;text-align:right}
.spec{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--night-line);margin-top:56px}
.spec>div{padding:26px 24px 0 0}
.spec>div+div{padding-left:24px;border-left:1px solid var(--night-line)}
.spec b{display:block;font-family:var(--serif);font-weight:500;font-size:2.4rem;color:var(--paper);line-height:1}
.spec span{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--night-mute)}
.badge{display:inline-block;font-family:var(--mono);font-size:.64rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;border:1px solid var(--gold);color:var(--gold-text)}
.badge.solid{background:var(--gold);color:var(--night)}
.sec.night .badge{color:var(--gold-light)}
.mode{border:1px solid var(--rule);padding:40px 36px;background:var(--paper);height:100%}
.mode.client{border-top:2px solid var(--gold)}
.mode h3{margin-top:16px}
.agents{columns:2;column-gap:28px;list-style:none;padding:0;margin:0;font-family:var(--mono);font-size:.78rem}
.agents li{break-inside:avoid;padding:9px 0;border-bottom:1px solid var(--night-line);display:flex;gap:14px}
.agents li span{color:var(--gold-light);min-width:28px}

/* steps */
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.steps>div{padding:28px 24px 0 0;position:relative}
.steps>div::before{counter-increment:s;content:counter(s,upper-roman);font-family:var(--serif);color:var(--gold-text);font-size:1.3rem;display:block;margin-bottom:10px}
.steps h4{margin-bottom:.4em}
.steps p{font-size:.9rem;color:var(--fog)}

/* tables */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{width:100%;border-collapse:collapse;font-size:.92rem;background:var(--paper)}
.table th,.table td{text-align:left;padding:15px 16px;border-bottom:1px solid var(--rule);vertical-align:top}
.table th{font-family:var(--mono);font-weight:500;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);background:var(--sand);border-top:2px solid var(--gold)}
.table td:first-child{font-family:var(--serif);color:var(--ink);font-size:1.02rem}
.sec.night .table{color:var(--body)}

/* forms */
.form{background:var(--paper);border:1px solid var(--rule);border-top:2px solid var(--gold);padding:40px 38px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form label{display:block;font-family:var(--mono);font-size:.68rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);margin-bottom:18px}
.form input,.form select,.form textarea{display:block;width:100%;margin-top:8px;font-family:var(--sans);font-size:.95rem;font-weight:300;letter-spacing:0;text-transform:none;color:var(--ink);padding:12px 14px;border:1px solid #d3cbb9;background:#FFFEFB;border-radius:0}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid rgba(174,149,85,.35);border-color:var(--gold)}
.form textarea{min-height:130px;resize:vertical}
.form .check{display:flex;gap:10px;align-items:flex-start;font-family:var(--sans);text-transform:none;letter-spacing:0;font-weight:300;font-size:.85rem;color:var(--fog)}
.form .check input{width:auto;margin-top:4px}
.hp{display:none!important}
.form-msg{display:none;margin-top:16px;padding:14px 16px;font-size:.9rem;border-left:2px solid var(--gold);background:var(--sand);color:var(--ink)}
.form-msg.show{display:block}
.inline-form{display:flex;gap:10px;max-width:520px}
.inline-form input{flex:1;min-width:0;font:inherit;font-size:.95rem;padding:13px 14px;border:1px solid var(--night-line);background:rgba(250,249,245,.04);color:var(--paper)}
.inline-form input::placeholder{color:var(--night-mute)}

/* FAQ */
details{border-bottom:1px solid var(--rule);padding:22px 0}
details:first-of-type{border-top:1px solid var(--ink)}
summary{cursor:pointer;font-family:var(--serif);font-size:1.16rem;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:20px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--gold-text);font-family:var(--mono);font-size:1.2rem;line-height:1}
details[open] summary::after{content:"−"}
details p{margin:14px 0 0;color:var(--slate)}

/* CTA band */
.cta-band{background:var(--sand);border-top:1px solid var(--rule)}
.cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:40px;padding-top:72px;padding-bottom:72px}
.cta-band h2{margin:0;font-size:clamp(1.55rem,2.6vw,2.1rem);max-width:720px}

/* footer */
.footer{background:var(--night);color:var(--night-mute);font-size:.88rem;position:relative}
.footer::before{content:"";position:absolute;inset:0;background-image:var(--grid);pointer-events:none}
.footer .wrap{position:relative;padding-top:80px;padding-bottom:30px}
.footer .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.3fr;gap:36px;padding-bottom:52px;border-bottom:1px solid var(--night-line)}
.footer h4{color:var(--gold-light);font-family:var(--mono);font-size:.66rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;margin-bottom:18px}
.footer a{color:var(--night-text);text-decoration:none}.footer a:hover{color:var(--gold-light)}
.footer ul{list-style:none;padding:0;margin:0}.footer li{padding:4px 0}
.footer .fbrand{display:flex;gap:14px;align-items:center;margin-bottom:18px}
.footer .fbrand img{height:50px;background:var(--paper);padding:6px 7px}
.footer .fbrand span{font-family:var(--serif);font-size:1.12rem;color:var(--paper);line-height:1.15}
.footer .legal{display:flex;justify-content:space-between;gap:24px;padding-top:24px;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--night-mute)}
.footer .disc{font-size:.78rem;line-height:1.6;color:var(--night-mute);margin-top:16px}
.footer .inline-form{flex-direction:column}

/* floating office button */
.office-fab{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;align-items:center;gap:12px;background:var(--night);color:var(--paper);text-decoration:none;font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:13px 18px;border:1px solid var(--gold)}
.office-fab:hover{background:var(--ink);color:var(--gold-light)}
.office-fab .pulse{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(174,149,85,.6);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(174,149,85,.55)}70%{box-shadow:0 0 0 10px rgba(174,149,85,0)}100%{box-shadow:0 0 0 0 rgba(174,149,85,0)}}
@media (prefers-reduced-motion:reduce){.office-fab .pulse{animation:none}html{scroll-behavior:auto}}

.note{border-left:2px solid var(--gold);background:var(--sand);padding:18px 22px;font-size:.92rem;color:var(--ink)}
.note.navy{background:var(--sand)}

/* ---------- responsive ---------- */
@media (max-width:1120px){
  .nav{display:none;position:absolute;top:86px;left:0;right:0;background:var(--paper);flex-direction:column;align-items:stretch;padding:12px 24px 22px;border-bottom:1px solid var(--rule)}
  .nav.open{display:flex}
  .nav a{padding:13px 4px;border-bottom:1px solid var(--rule)}
  .nav .btn{margin:14px 0 0;justify-content:center}
  .menu-btn{display:block}
  .values{grid-template-columns:repeat(3,1fr)}
  .values>div{margin-right:0;padding-left:0;border-right:0}
  .footer .cols{grid-template-columns:1fr 1fr 1fr}
}
@media (max-width:880px){
  .g2,.g3,.g4,.split,.mv,.facts,.steps,.hero .wrap,.spec{grid-template-columns:1fr}
  .split{gap:44px}
  .split.rev>:first-child{order:0}
  .hero .wrap{gap:0;padding-top:64px}
  .hero .copy{padding-bottom:48px}
  .arch{max-width:420px;margin:0 auto}
  .index .wrap{grid-template-columns:1fr 1fr;padding:0}
  .index a{border-bottom:1px solid var(--rule)}
  .mv>div{padding:36px 0}
  .mv>div+div{border-left:0;border-top:1px solid var(--rule);padding-left:0}
  .facts>div+div,.spec>div+div{border-left:0;padding-left:0;border-top:1px solid var(--rule)}
  .spec>div+div{border-top-color:var(--night-line)}
  .values{grid-template-columns:1fr 1fr}
  .pub{grid-template-columns:1fr;gap:16px}
  .doc-cover{display:none}
  .cta-band .wrap{flex-direction:column;align-items:flex-start}
  .footer .cols{grid-template-columns:1fr 1fr}
  .form .row{grid-template-columns:1fr}
  .form{padding:30px 22px}
  .topbar .tb-l{display:none}
  .sec{padding:72px 0}
  .agents{columns:1}
  .sec-head.row{flex-direction:column;align-items:flex-start}
  .office-fab span.t{display:none}
  .wrap{padding:0 22px}
}
@media (max-width:600px){
  .footer .cols{grid-template-columns:1fr}
  .footer .legal{flex-direction:column}
  .inline-form{flex-direction:column}
  .table th,.table td{padding:10px;font-size:.84rem}
  .console li{grid-template-columns:28px 1fr}
  .console .a{display:none}
}

/* ---------- client area ---------- */
.form-msg.err{border-left-color:#8a2e2e;background:#F5E9E6}
.linkbtn{background:none;border:0;padding:0 0 0 14px;font:inherit;font-size:.84rem;color:var(--fog);cursor:pointer;text-decoration:underline;text-decoration-color:var(--rule)}
.linkbtn:hover{color:#8a2e2e}
.pt-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;margin-bottom:20px}
.bar-row{display:grid;grid-template-columns:160px 1fr 64px;gap:14px;align-items:center;padding:9px 0;border-bottom:1px solid var(--rule);font-size:.9rem}
.bar-row b{font-family:var(--mono);font-weight:500;text-align:right;color:var(--ink)}
.bar{height:8px;background:var(--sand)}
.bar i{display:block;height:100%;background:var(--ink)}
.bar-row:first-of-type .bar i{background:var(--gold)}
[hidden]{display:none!important}
@media (max-width:880px){.pt-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:110px 1fr 56px}}
