/* ============================================================
   TSN Avigliana — Foglio di stile condiviso
   Versione multi-pagina 2026
   ============================================================ */

:root{
  --ink:#14181f;
  --steel:#1b222c;
  --steel-2:#232c38;
  --paper:#f5f3ee;
  --card:#fff;
  --accent:#b3122a;
  --accent-2:#c8a45a;
  --green:#2e7d4f;
  --text-light:#f5f3ee;
  --text-muted:#aab3bf;
  --line:#e3ded3;
  --shadow:0 10px 30px rgba(0,0,0,.18);
  --radius:14px;
  --maxw:1180px;
  --nav-h:62px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:"Source Sans 3",Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.6;}
body.inner-page{background:var(--paper);}
body.inner-page::before{content:'';position:fixed;inset:0;background:url('Doc_Image/sfondo.jpeg') center/cover no-repeat;opacity:0.15;z-index:0;pointer-events:none;}
body.inner-page main{position:relative;z-index:1;}
img{max-width:100%;}
a{color:var(--accent);}

/* ---- Tricolore + Navbar ---- */
.tricolore{position:fixed;top:0;left:0;width:100%;height:4px;z-index:1001;background:linear-gradient(90deg,var(--green) 0 33.33%,#fff 33.33% 66.66%,var(--accent) 66.66% 100%);}

.navbar{position:fixed;top:4px;left:0;width:100%;z-index:1000;background:var(--steel);box-shadow:0 2px 12px rgba(0,0,0,.25);}
.nav-inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:18px;padding:0 20px;min-height:var(--nav-h);}

.brand{display:flex;align-items:center;gap:10px;color:var(--text-light);text-decoration:none;font-family:"Oswald",sans-serif;font-weight:600;font-size:19px;letter-spacing:.5px;white-space:nowrap;}
.brand .target{width:52px;height:52px;flex:none;}
.brand b{color:var(--accent-2);font-weight:600;}

.nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:2px;list-style:none;margin:0;padding:0;}
.nav-links a{color:var(--text-light);text-decoration:none;font-family:"Oswald",sans-serif;font-weight:400;font-size:14px;text-transform:uppercase;letter-spacing:.4px;padding:8px 11px;border-radius:8px;transition:background .2s,color .2s;}
.nav-links a:hover,.nav-links a:focus{background:var(--steel-2);color:var(--accent-2);}
.nav-links a.active{color:var(--accent-2);box-shadow:inset 0 -2px 0 var(--accent);}

.orologio{margin-left:auto;color:var(--text-muted);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap;}

.nav-toggle{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:8px;}
.nav-toggle span{display:block;width:26px;height:3px;margin:5px 0;background:var(--text-light);border-radius:2px;}

/* ---- Page wrapper ---- */
.page{max-width:var(--maxw);margin:0 auto;padding:calc(var(--nav-h) + 48px) 22px 60px;}

.page-head{border-left:5px solid var(--accent);padding-left:18px;margin-bottom:34px;}
.page-head h1{font-family:"Oswald",sans-serif;font-weight:600;font-size:clamp(30px,5vw,46px);text-transform:uppercase;letter-spacing:1px;margin:0;color:var(--ink);}
.page-head .sub{margin:4px 0 0;color:#6c747e;font-style:italic;}

/* ---- Components ---- */
h2.section-title{font-family:"Oswald",sans-serif;font-weight:600;font-size:24px;letter-spacing:.5px;margin:0 0 14px;color:var(--ink);display:flex;align-items:center;gap:12px;}
h2.section-title::before{content:"";width:14px;height:14px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(179,18,42,.18);flex:none;}

.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 28px;margin-bottom:24px;}

.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;}

.orari{width:100%;border-collapse:collapse;margin-top:6px;}
.orari th,.orari td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);}
.orari th{font-family:"Oswald",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--ink);}
.orari td{color:#333;font-variant-numeric:tabular-nums;}
.orari tr:last-child td,.orari tr:last-child th{border-bottom:0;}

.note{font-size:14px;color:#6c747e;margin-top:10px;}
.list-clean{padding-left:20px;}
.list-clean li{margin:6px 0;}

.btn{display:inline-block;padding:11px 22px;background:var(--accent);color:#fff;text-decoration:none;border-radius:999px;font-family:"Oswald",sans-serif;font-weight:500;letter-spacing:.5px;transition:background .2s,transform .15s;cursor:pointer;}
.btn:hover{background:#8c0e20;transform:translateY(-2px);}
.btn.ghost{background:transparent;color:var(--accent);border:2px solid var(--accent);}
.btn.ghost:hover{background:var(--accent);color:#fff;}

.doc-link{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink);font-weight:600;transition:border-color .2s,background .2s;margin-bottom:10px;}
.doc-link:hover{border-color:var(--accent);background:#fcf6f2;}
.doc-link .ico{color:var(--accent);flex:none;}

.callout{border-left:5px solid var(--accent);background:#fcf1f2;padding:16px 20px;border-radius:0 10px 10px 0;margin:16px 0;}
.callout.gold{border-color:var(--accent-2);background:#fbf6ea;}

.contact-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);}
.contact-row:last-child{border-bottom:0;}
.contact-row .label{font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.5px;min-width:190px;color:var(--ink);display:flex;align-items:center;gap:10px;}
.contact-row .ico{color:var(--accent);flex:none;}

/* ---- Hero (homepage) ---- */
.hero{position:relative;min-height:100vh;padding:calc(var(--nav-h) + 30px) 20px 50px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;background-image:linear-gradient(180deg,rgba(20,24,31,.05) 40%,rgba(20,24,31,.65) 100%),url('Doc_Image/sfondo.jpeg');background-repeat:no-repeat;background-size:cover;background-position:center;background-attachment:fixed;background-color:var(--ink);}
.hero-watermark{position:absolute;top:calc(var(--nav-h) + 4px + 14px);left:20px;right:20px;max-width:calc(100% - 40px);text-align:left;font-family:"Oswald",sans-serif;font-weight:700;letter-spacing:clamp(1px,0.6vw,5px);text-transform:none;color:rgba(117,102,63,0.80);-webkit-font-smoothing:antialiased;pointer-events:none;user-select:none;z-index:0;line-height:1.25;overflow-wrap:break-word;}
.hwl1{ display:block; font-size:clamp(14px,2.8vw,64px); padding-left:clamp(8px,8vw,50px); }
.hwl2{display:block;font-size:clamp(14px,2.8vw,32px);font-style:italic;padding-left:clamp(16px,45vw,300px);}
.hero-label{position:relative;z-index:1;font-family:"Oswald",sans-serif;font-weight:600;font-size:clamp(22px,4vw,34px);letter-spacing:4px;text-transform:uppercase;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.7);margin:0 0 22px;}
@media (max-width:600px){
  .hwl1{padding-left:6px;}
  .hwl2{padding-left:28px;}
  .hero-label{margin-top:70px;}
}
.news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;width:100%;max-width:1080px;}

.card{background:rgba(255,255,255,.97);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;border-top:4px solid var(--accent);}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,0,0,.4);}
.card-body{padding:20px 22px 24px;}
.card .tag{display:inline-block;font-family:"Oswald",sans-serif;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#fff;background:var(--accent);padding:3px 10px;border-radius:4px;margin-bottom:10px;}
.card h3{font-family:"Oswald",sans-serif;font-weight:600;font-size:20px;margin:0 0 8px;color:var(--ink);}
.card p{margin:0 0 14px;font-size:15px;color:#444;}
.card .closures{font-size:14px;columns:2;gap:18px;margin:0 0 14px;padding-left:18px;}
.card a.more{font-family:"Oswald",sans-serif;font-weight:500;letter-spacing:.5px;color:var(--accent);text-decoration:none;}
.card a.more:hover{text-decoration:underline;}

/* ---- Welcome panel on homepage ---- */
.welcome-strip{background:transparent;}

/* ---- Staff / People cards ---- */
.staff-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;}
.staff-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:0 4px 14px rgba(0,0,0,.08);}
.staff-card h2{margin:0 0 10px;font-family:"Oswald",sans-serif;font-size:18px;color:var(--ink);}
.staff-card ul{list-style:none;padding:0;margin:0;}
.person{display:flex;align-items:center;gap:10px;padding:6px 4px;}
.person+.person{border-top:1px dashed var(--line);}
.avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:1px solid #ddd;background:#fafafa;flex:none;}
.person-name{font-size:14px;line-height:1.2;}

/* ---- Instructors ---- */
.instructors{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px;}
.instr-card{display:flex;gap:12px;align-items:center;background:#f9f9f9;border:1px solid #ececec;border-radius:10px;padding:12px;}
.instr-card img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:1px solid #ddd;background:#fafafa;flex:none;}
.instr-card .name{font-weight:600;font-size:15px;}
.instr-card .role{font-size:13px;color:#666;}

/* ---- FAQ accordion ---- */
.faq-item{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;overflow:hidden;}
.faq-q{width:100%;text-align:left;background:var(--card);border:0;padding:18px 22px;font-family:"Oswald",sans-serif;font-size:18px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--ink);gap:12px;}
.faq-q:hover{background:#f8f4ef;}
.faq-q .arrow{flex:none;color:var(--accent);transition:transform .25s;font-size:22px;}
.faq-q[aria-expanded="true"] .arrow{transform:rotate(180deg);}
.faq-a{display:none;padding:4px 22px 18px;color:#333;font-size:15px;line-height:1.7;}
.faq-q[aria-expanded="true"]+.faq-a{display:block;}

/* ---- Timeline (storia) ---- */
.timeline{position:relative;padding-left:32px;}
.timeline::before{content:"";position:absolute;left:10px;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--accent) 0%,var(--accent-2) 100%);}
.tl-item{position:relative;margin-bottom:28px;}
.tl-dot{position:absolute;left:-26px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--accent);border:3px solid var(--paper);box-shadow:0 0 0 3px rgba(179,18,42,.25);}
.tl-year{font-family:"Oswald",sans-serif;font-weight:600;font-size:22px;color:var(--accent);margin-bottom:2px;}
.tl-text{font-size:15px;color:#333;}

/* ---- Footer ---- */
footer{background:var(--steel);color:var(--text-muted);text-align:center;padding:22px 20px;font-size:13px;}
footer a{color:var(--accent-2);text-decoration:none;}
footer .links{margin-bottom:8px;}
footer .links a{margin:0 8px;}

/* ---- Modal popup ---- */
.modal-overlay{position:fixed;inset:0;z-index:2000;background:rgba(12,15,20,.62);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .25s;}
.modal-overlay.show{opacity:1;visibility:visible;}
.modal{background:var(--paper);border-radius:18px;max-width:440px;width:100%;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.45);overflow:hidden;transform:translateY(16px) scale(.97);transition:transform .25s;border-top:5px solid var(--accent-2);position:relative;}
.modal-overlay.show .modal{transform:translateY(0) scale(1);}
.modal-head{background:linear-gradient(135deg,#f0c66b,#c8a45a);padding:26px 24px 18px;}
.modal-head img{width:80px;height:80px;object-fit:contain;}
.modal-body{padding:22px 28px 10px;}
.modal-body h2{font-family:"Oswald",sans-serif;font-weight:600;font-size:26px;letter-spacing:.5px;margin:0 0 10px;color:var(--ink);}
.modal-body p{margin:0;color:#4a525c;font-size:16px;}
.modal-foot{padding:18px 28px 26px;}
.modal-foot .btn{min-width:120px;}
.modal-x{position:absolute;top:14px;right:18px;background:none;border:0;color:rgba(255,255,255,.9);font-size:26px;line-height:1;cursor:pointer;}

/* ---- Responsive ---- */
@media (max-width:980px){
  .nav-toggle{display:block;}
  .nav-links{position:absolute;top:100%;left:0;width:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--steel);max-height:0;overflow:hidden;transition:max-height .3s ease;}
  .nav-links.open{max-height:85vh;}
  .nav-links a{border-radius:0;padding:14px 20px;border-top:1px solid rgba(255,255,255,.06);}
  .orologio{display:none;}
  .contact-row{flex-wrap:wrap;}
  .contact-row .label{min-width:0;width:100%;}
  .card .closures{columns:1;}
}
@media (prefers-reduced-motion:reduce){.modal-overlay,.modal,.faq-q .arrow{transition:none;}}

/* ---- Freccie scroll up/down ---- */
.scroll-nav{position:fixed;right:22px;bottom:26px;display:flex;flex-direction:column;gap:10px;z-index:900;}
.scroll-nav button{width:44px;height:44px;border-radius:50%;background:var(--steel);border:2px solid var(--accent-2);color:var(--text-light);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .25s,transform .25s,visibility .25s,background .2s,border-color .2s;padding:0;}
.scroll-nav button.show{opacity:1;visibility:visible;transform:translateY(0);}
.scroll-nav button:hover{background:var(--accent);border-color:var(--accent);}
.scroll-nav button:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px;}
.scroll-nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
@media (max-width:600px){.scroll-nav{right:12px;bottom:16px;}.scroll-nav button{width:38px;height:38px;}}
@media (prefers-reduced-motion:reduce){.scroll-nav button{transition:none;}}
