/* ==========================================================================
   GCFasthub — landing page
   Stesso sistema visivo di generalcounsels.org (tema GCCv5): palette navy,
   Cormorant Garamond per i titoli, Jost per il testo, linee sottili, angoli vivi.

   Nessuno stile inline nelle pagine: la Content-Security-Policy ammette solo
   fogli di stile serviti da questo dominio (style-src 'self').
   ========================================================================== */

@font-face{
  font-family:'Cormorant Garamond';
  src:url(/assets/fonts/cormorant-garamond-var.woff2) format('woff2');
  font-weight:300 700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Jost';
  src:url(/assets/fonts/jost-var.woff2) format('woff2');
  font-weight:100 900;font-style:normal;font-display:swap;
}

:root{
  --navy-950:#0A0F1C;
  --navy-900:#101830;
  --navy-800:#16213E;
  --navy-700:#1A2A4A;
  --navy-600:#2C3E63;
  --navy-500:#5A6A8C;
  --navy-300:#98A2B8;
  --paper:#F3F4F8;
  --white:#FFFFFF;
  --ink:#10152A;
  --line-on-dark:rgba(255,255,255,.16);
  --line-on-light:rgba(16,21,42,.13);
  --text-on-dark:rgba(255,255,255,.80);
  --text-on-light:#414A61;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Jost',"Segoe UI",sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --accent:#4C7CF3;
  --accent-600:#3D64D6;
  --accent-soft:rgba(76,124,243,.12);
  --accent-soft-dark:rgba(76,124,243,.16);
  --radius-sm:12px;
  --radius-md:18px;
  --radius-lg:26px;
  --shadow-sm:0 1px 2px rgba(16,21,42,.04),0 6px 16px -8px rgba(16,21,42,.10);
  --shadow-md:0 10px 30px -12px rgba(16,21,42,.22);
  --shadow-dark:0 18px 48px -20px rgba(0,0,0,.55);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
:root{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto;}}
body{
  background:var(--navy-950);
  font-family:var(--sans);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
section[id]{scroll-margin-top:64px;}
h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;text-wrap:balance;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}
img{max-width:100%;height:auto;display:block;}
::selection{background:var(--navy-600);color:#fff;}
:focus-visible{outline:2px solid var(--navy-300);outline-offset:3px;}

.site-frame{background:var(--white);}
.section-inner{max-width:1180px;margin:0 auto;padding:0 24px;}
@media (min-width:860px){.section-inner{padding:0 56px;}}

/* ---------- Accessibilità ---------- */
.skip-link{
  position:absolute;left:12px;top:-60px;z-index:100;
  background:#fff;color:var(--navy-800);font-size:13px;font-weight:600;
  padding:14px 20px;border-radius:2px;transition:top .2s;
}
.skip-link:focus{top:12px;}
.sr-only{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;
  margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;
}

/* ---------- Comparsa (solo se il JS è attivo: senza JS tutto resta visibile) ---------- */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.js .reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .js .reveal{transition:none;opacity:1;transform:none;}
}

.kicker{
  display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  font-weight:600;color:var(--text-on-dark);margin-bottom:20px;
  padding:7px 16px;border-radius:999px;border:1px solid var(--line-on-dark);
  background:rgba(255,255,255,.04);backdrop-filter:blur(6px);
}
.kicker:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft-dark);flex-shrink:0;}
.kicker-dark{color:var(--navy-700);border-color:var(--line-on-light);background:rgba(16,21,42,.03);}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  padding:15px 30px;border-radius:999px;border:1px solid currentColor;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),
             transform .35s var(--ease),box-shadow .35s var(--ease);
}
.btn svg{flex-shrink:0;}
.btn-ghost-light{color:#fff;}
.btn-ghost-light:hover,.btn-ghost-light:focus-visible{background:#fff;color:var(--navy-900);transform:translateY(-2px);}
.btn-solid-light{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 14px 32px -14px rgba(76,124,243,.65);}
.btn-solid-light:hover,.btn-solid-light:focus-visible{background:var(--accent-600);border-color:var(--accent-600);color:#fff;transform:translateY(-2px);box-shadow:0 18px 38px -14px rgba(76,124,243,.8);}
.btn-ghost-dark{color:var(--navy-700);}
.btn-ghost-dark:hover,.btn-ghost-dark:focus-visible{background:var(--navy-700);color:#fff;transform:translateY(-2px);}

/* ---------- Nav ---------- */
.nav{
  position:sticky;top:0;z-index:40;
  background:rgba(10,15,28,.94);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:0 1px 0 var(--line-on-dark);
  transition:box-shadow .3s var(--ease);
}
.nav.scrolled{box-shadow:0 1px 0 var(--line-on-dark),0 14px 32px -20px rgba(0,0,0,.55);}
.nav-inner{
  max-width:1180px;margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
@media (min-width:860px){.nav-inner{padding:14px 56px;}}

/* Marchio: logo GCC + "Fasthub", separati dalla stessa barra verticale del titolo GCC */
.brand{display:flex;align-items:center;gap:12px;color:#fff;}
.brand img{height:20px;width:auto;}
.brand-sep{width:1px;height:20px;background:var(--line-on-dark);}
.brand-product{
  font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  color:#fff;line-height:1;
}

.nav-links{display:none;gap:32px;align-items:center;}
@media (min-width:960px){.nav-links{display:flex;}}
.nav-link{
  font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-on-dark);
  padding-bottom:4px;border-bottom:1px solid transparent;transition:color .3s,border-color .3s;
}
.nav-link:hover,.nav-link:focus-visible{color:#fff;border-color:#fff;}
.nav-link.active{color:#fff;}

.nav-right{display:flex;align-items:center;gap:14px;}
.nav-login{
  display:none;align-items:center;gap:8px;
  font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;
  color:var(--navy-900);background:#fff;border:1px solid #fff;border-radius:20px;padding:8px 16px;
  transition:background .3s var(--ease),color .3s var(--ease);
}
.nav-login:hover,.nav-login:focus-visible{background:transparent;color:#fff;}
@media (min-width:600px){.nav-login{display:inline-flex;}}

.lang-switch{position:relative;display:flex;background:rgba(255,255,255,.08);border:1px solid var(--line-on-dark);border-radius:20px;padding:3px;width:76px;}
.lang-btn{
  position:relative;z-index:2;flex:1;display:flex;align-items:center;justify-content:center;line-height:1;
  color:var(--text-on-dark);font-size:11px;letter-spacing:.06em;font-weight:600;padding:6px 0;border-radius:16px;
}
.lang-btn:hover{color:#fff;}
.lang-btn.active,.lang-btn.active:hover{color:var(--navy-900);}
.lang-thumb{
  position:absolute;top:3px;left:3px;width:34px;height:calc(100% - 6px);
  background:#fff;border-radius:16px;z-index:1;
}
.lang-switch.is-en .lang-thumb{transform:translateX(34px);}

.menu-toggle{width:34px;height:26px;position:relative;background:none;border:none;cursor:pointer;padding:0;}
@media (min-width:960px){.menu-toggle{display:none;}}
.menu-toggle span{position:absolute;left:0;right:0;height:1.5px;background:#fff;border-radius:2px;}
.menu-toggle span:nth-child(1){top:2px;}
.menu-toggle span:nth-child(2){top:12px;}
.menu-toggle span:nth-child(3){top:22px;}
/* Senza JS il pulsante non servirebbe a nulla: lo mostriamo solo se il JS è attivo. */
html:not(.js) .menu-toggle{display:none;}

/* ---------- Menu mobile ---------- */
.mobile-menu{
  position:fixed;inset:0;z-index:60;background:var(--navy-950);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;
  opacity:0;visibility:hidden;transform:translateY(-12px);
  transition:opacity .35s var(--ease),transform .35s var(--ease),visibility 0s linear .35s;
}
.mobile-menu.open{opacity:1;visibility:visible;transform:none;transition:opacity .35s var(--ease),transform .35s var(--ease);}
.mobile-menu a{font-family:var(--serif);font-size:30px;color:#fff;font-weight:500;}
.mobile-menu a.mobile-login{
  font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--line-on-dark);border-radius:20px;padding:10px 22px;
  display:flex;align-items:center;gap:10px;
}
.mobile-menu-close{
  position:absolute;top:22px;right:22px;background:none;border:none;color:#fff;font-size:22px;cursor:pointer;
  width:40px;height:40px;
}

/* ---------- Hero ---------- */
.hero{
  position:relative;overflow:hidden;min-height:88svh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:120px 24px 90px;
  background:
    radial-gradient(60% 50% at 18% -8%, rgba(76,124,243,.28) 0%, transparent 60%),
    radial-gradient(120% 80% at 12% -10%, var(--navy-700) 0%, transparent 55%),
    radial-gradient(70% 55% at 102% 108%, rgba(76,124,243,.16) 0%, transparent 60%),
    radial-gradient(120% 80% at 100% 110%, var(--navy-800) 0%, transparent 55%),
    linear-gradient(165deg,var(--navy-900) 0%,var(--navy-950) 100%);
}
.hero-grid{
  position:absolute;inset:0;opacity:.4;pointer-events:none;
  background-image:repeating-linear-gradient(0deg,transparent,transparent 42px,rgba(255,255,255,.045) 43px),
                   repeating-linear-gradient(90deg,transparent,transparent 42px,rgba(255,255,255,.045) 43px);
  -webkit-mask-image:radial-gradient(90% 70% at 50% 35%,#000 0%,transparent 80%);
  mask-image:radial-gradient(90% 70% at 50% 35%,#000 0%,transparent 80%);
}
.hero-inner{position:relative;max-width:820px;}
.hero-inner .kicker{margin-bottom:34px;}
.hero-title{font-size:clamp(2.3rem,6.6vw,4.8rem);color:#fff;line-height:1.06;margin-bottom:30px;}
.hero-title .pipe{color:var(--navy-500);font-weight:300;padding:0 6px;}
.hero-title .hero-title-sub{display:block;font-size:.5em;font-style:italic;font-weight:400;color:var(--text-on-dark);margin-top:20px;padding-top:20px;border-top:1px solid var(--line-on-dark);width:max-content;max-width:100%;margin-left:auto;margin-right:auto;position:relative;}
.hero-title .hero-title-sub:before{content:'';position:absolute;top:-1px;left:50%;transform:translateX(-50%);width:64px;height:1px;background:var(--accent);}
.hero-sub{font-size:clamp(15px,2vw,18px);font-weight:300;color:var(--text-on-dark);max-width:58ch;margin:0 auto 44px;}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;}

/* ---------- Testate di sezione ---------- */
.section-head{max-width:660px;margin:0 auto 56px;text-align:center;}
.section-head h2{font-size:clamp(1.7rem,4vw,2.6rem);margin-bottom:18px;}
.lead{font-size:15.5px;font-weight:300;color:var(--text-on-light);}
.on-dark .lead{color:var(--text-on-dark);}
.on-dark .kicker{color:var(--navy-300);}
.on-dark h2{color:#fff;}

/* ---------- Piattaforma (card moderne a griglia) ---------- */
.platform{background:var(--paper);padding:110px 0;}
.index-list{
  display:grid;grid-template-columns:1fr;gap:20px;
}
@media (min-width:700px){.index-list{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1000px){.index-list{grid-template-columns:repeat(3,1fr);}}
.index-row{
  position:relative;background:var(--white);border-radius:var(--radius-lg);
  padding:36px 30px;box-shadow:var(--shadow-sm);border:1px solid var(--line-on-light);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);
}
.index-row:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:transparent;}
.index-num{
  display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-bottom:22px;
  font-family:var(--serif);font-size:18px;color:var(--accent);font-weight:600;
  border-radius:var(--radius-sm);background:var(--accent-soft);
}
.index-row h3{font-size:19px;letter-spacing:.02em;color:var(--navy-800);margin-bottom:12px;}
.index-row p{font-size:14.5px;color:var(--text-on-light);max-width:64ch;}

/* ---------- Agenti (linea a nodi, come "Workflow" GCC) ---------- */
.agents{background:var(--navy-800);padding:110px 0;}
.wf-line-wrap{position:relative;display:flex;flex-direction:column;gap:16px;}
.wf-line-wrap:before{content:'';position:absolute;left:27px;top:26px;bottom:26px;width:2px;
  background:linear-gradient(var(--accent),var(--line-on-dark));border-radius:2px;}
.wf-item{
  display:flex;gap:24px;padding:22px;position:relative;border-radius:var(--radius-md);
  transition:transform .35s var(--ease),background .35s var(--ease);
}
.wf-item:hover{transform:translateY(-4px);background:rgba(255,255,255,.04);}
.wf-node{
  width:56px;height:56px;flex-shrink:0;border-radius:50%;border:1px solid var(--accent);
  background:var(--navy-800);display:flex;align-items:center;justify-content:center;position:relative;z-index:2;
  box-shadow:0 0 0 6px var(--accent-soft-dark);
}
.wf-num{font-family:var(--serif);font-size:18px;color:#fff;}
.wf-content h3{color:#fff;font-size:18px;letter-spacing:.03em;margin-bottom:10px;}
.wf-content p{color:var(--text-on-dark);font-size:14.5px;}
.wf-tag{display:block;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-weight:600;}
@media (min-width:860px){
  .wf-line-wrap{flex-direction:row;gap:4px;}
  .wf-line-wrap:before{left:0;right:0;top:27px;bottom:auto;height:2px;width:auto;}
  .wf-item{flex:1;flex-direction:column;align-items:center;text-align:center;padding:18px 18px 22px;}
  .wf-content{margin-top:22px;}
}
.agents-note{
  margin:56px auto 0;max-width:640px;text-align:center;
  font-family:var(--serif);font-style:italic;font-size:19px;color:var(--text-on-dark);
}

/* ---------- Sicurezza (griglia di riquadri) ---------- */
.security{background:var(--paper);padding:110px 0;}
.sec-grid{display:grid;grid-template-columns:1fr;gap:20px;}
@media (min-width:700px){.sec-grid{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1000px){.sec-grid{grid-template-columns:repeat(3,1fr);}}
.sec-card{
  background:var(--white);padding:32px 28px;border-radius:var(--radius-lg);
  border:1px solid var(--line-on-light);box-shadow:var(--shadow-sm);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);
}
.sec-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:transparent;}
.sec-icon{
  color:var(--accent);margin-bottom:20px;width:48px;height:48px;padding:11px;box-sizing:border-box;
  border-radius:var(--radius-sm);background:var(--accent-soft);
}
.sec-card h3{font-size:19px;color:var(--navy-800);letter-spacing:.02em;margin-bottom:10px;}
.sec-card p{font-size:13.8px;color:var(--text-on-light);}
.sec-footnote{margin-top:36px;font-size:12.5px;color:var(--navy-500);text-align:center;}
.sec-footnote a{color:var(--navy-700);border-bottom:1px solid var(--line-on-light);}
.sec-footnote a:hover{border-color:var(--navy-700);}

/* ---------- Accesso ---------- */
.access{background:var(--navy-800);padding:110px 0 120px;position:relative;overflow:hidden;}
.access:before{
  content:'';position:absolute;left:50%;top:0;width:620px;height:620px;
  background:radial-gradient(circle,rgba(76,124,243,.18) 0%,transparent 70%);
  transform:translate(-50%,-45%);pointer-events:none;
}
.access-panel{
  position:relative;max-width:680px;margin:0 auto;text-align:center;
  border:1px solid var(--line-on-dark);background:var(--navy-900);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-dark);
  padding:52px 32px;
}
@media (min-width:700px){.access-panel{padding:60px 56px;}}
.access-lead{font-family:var(--serif);font-size:24px;font-style:italic;color:#fff;margin-bottom:20px;}
.access-body{font-size:14.5px;color:var(--text-on-dark);margin-bottom:34px;}
.access-url{
  display:inline-flex;align-items:center;gap:8px;margin-top:22px;
  font-size:12.5px;letter-spacing:.04em;color:var(--navy-300);
}
.access-url code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff;font-size:12.5px;}
.access-steps{
  list-style:none;margin:40px 0 0;padding:28px 0 0;border-top:1px solid var(--line-on-dark);
  display:grid;gap:16px;text-align:left;counter-reset:step;
}
.access-steps li{
  position:relative;padding-left:40px;font-size:13.8px;color:var(--text-on-dark);counter-increment:step;
}
.access-steps li:before{
  content:counter(step,decimal-leading-zero);position:absolute;left:0;top:-2px;
  font-family:var(--serif);font-size:19px;color:var(--navy-300);
}
.access-warning{
  margin-top:32px;padding:16px 18px;text-align:left;
  border:1px solid var(--line-on-dark);border-left:2px solid var(--navy-300);
  font-size:13px;color:var(--text-on-dark);
}
.access-warning strong{color:#fff;font-weight:500;}
.access-contact{margin-top:30px;font-size:13px;color:var(--navy-300);}
.access-contact a{color:#fff;border-bottom:1px solid var(--line-on-dark);}
.access-contact a:hover{border-color:#fff;}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-950);padding:40px 0;}
.footer-inner{
  display:flex;flex-direction:column;gap:18px;align-items:flex-start;
  border-top:1px solid var(--line-on-dark);padding-top:28px;
}
@media (min-width:860px){.footer-inner{flex-direction:row;justify-content:space-between;align-items:center;}}
.footer-legal{font-size:11.5px;color:rgba(255,255,255,.45);max-width:60ch;line-height:1.7;}
.footer-links-group{display:flex;gap:24px;flex-wrap:wrap;}
.footer-link{
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6);white-space:nowrap;
  border-bottom:1px solid transparent;transition:color .3s var(--ease),border-color .3s var(--ease);
}
.footer-link:hover,.footer-link:focus-visible{color:#fff;border-bottom-color:rgba(255,255,255,.55);}

/* ---------- 404 ---------- */
.notfound{min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;padding:40px 24px;
  background:linear-gradient(165deg,var(--navy-900) 0%,var(--navy-950) 100%);}
.notfound-code{font-family:var(--serif);font-size:clamp(3rem,10vw,6rem);color:var(--navy-500);line-height:1;margin-bottom:12px;}
.notfound h1{color:#fff;font-size:clamp(1.5rem,3.4vw,2.2rem);margin-bottom:28px;}
.notfound .actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;}
