/* ============================================================
   RAMINI.css — Sakura Karate Ramini
   Banner cookie + widget accessibilità + pagine legali
   Kit CosaCore — Protocollo Landing v2.0
   ============================================================ */
:root{
  --r-bg:#0a0908;
  --r-bg2:#141110;
  --r-ink:#f5efe3;
  --r-ink-dim:#a99c8c;
  --r-orange:#ff5a1f;
  --r-orange2:#ff9351;
  --r-red:#d92b1e;
  --r-line:rgba(246,239,228,.14);
  --r-surface:#1c1815;
  --r-shadow:0 20px 50px -24px rgba(0,0,0,.6);
  --a11y-size:100%;
}

/* -------- font scaling globale -------- */
html{ font-size: var(--a11y-size, 100%); }

/* ================================================================
   BANNER COOKIE
   ================================================================ */
.cc-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:9999;
  font-family:"Plus Jakarta Sans",sans-serif;
}
.cc-box{
  max-width:1180px; margin:0 auto; background:var(--r-surface); border-top:1px solid var(--r-line);
  padding:18px clamp(16px,4vw,32px); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:16px; box-shadow:var(--r-shadow);
}
.cc-text{ margin:0; font-size:13.5px; color:var(--r-ink-dim); line-height:1.5; max-width:640px; }
.cc-text a{ color:var(--r-orange2); text-decoration:underline; }
.cc-actions{ display:flex; gap:10px; flex-wrap:wrap; }
.cc-btn{
  font-family:"Plus Jakarta Sans",sans-serif; font-weight:600; font-size:12.5px; letter-spacing:.02em;
  border-radius:999px; padding:11px 20px; border:1px solid var(--r-line); cursor:pointer;
  background:transparent; color:var(--r-ink); white-space:nowrap;
}
.cc-btn.cc-primary{ background:var(--r-ink); color:#180d08; border-color:var(--r-ink); }
.cc-btn.cc-ghost:hover{ border-color:rgba(255,147,81,.4); color:var(--r-orange2); }
.cc-panel{
  max-width:1180px; margin:0 auto; background:var(--r-surface); border-top:1px solid var(--r-line);
  padding:18px clamp(16px,4vw,32px) 24px;
}
.cc-panel-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid var(--r-line); }
.cc-panel-row:last-of-type{ border-bottom:none; }
.cc-panel-row b{ display:block; font-size:14px; color:var(--r-ink); margin-bottom:2px; }
.cc-panel-row span{ font-size:12.5px; color:var(--r-ink-dim); }
.cc-panel-actions{ display:flex; justify-content:flex-end; gap:10px; margin-top:14px; flex-wrap:wrap; }
.cc-switch{ position:relative; display:inline-flex; align-items:center; width:42px; height:24px; flex:none; }
.cc-switch input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.cc-switch span{
  position:absolute; inset:0; background:rgba(246,239,228,.16); border-radius:999px; transition:background .2s ease;
}
.cc-switch span::before{
  content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%;
  background:var(--r-ink-dim); transition:transform .2s ease, background .2s ease;
}
.cc-switch input:checked + span{ background:rgba(255,90,31,.35); }
.cc-switch input:checked + span::before{ transform:translateX(18px); background:var(--r-orange2); }
.cc-switch-locked{
  font-size:11.5px; color:var(--r-ink-dim); width:auto; height:auto; background:rgba(246,239,228,.1);
  border-radius:999px; padding:4px 12px;
}
@media (max-width:600px){
  .cc-box{ flex-direction:column; align-items:stretch; }
  .cc-actions{ justify-content:stretch; }
  .cc-btn{ flex:1; text-align:center; }
}

/* ================================================================
   WIDGET ACCESSIBILITÀ
   ================================================================ */
.a11y-fab{
  position:fixed; left:20px; bottom:20px; z-index:9998; width:52px; height:52px; border-radius:50%;
  background:var(--r-orange); color:#180d08; border:none; display:flex; align-items:center; justify-content:center;
  box-shadow:var(--r-shadow); cursor:pointer;
}
.a11y-fab svg{ width:24px; height:24px; }
.a11y-panel{
  position:fixed; left:20px; bottom:82px; z-index:9998; width:280px; max-width:calc(100vw - 40px);
  background:var(--r-surface); border:1px solid var(--r-line); border-radius:18px; padding:18px;
  box-shadow:var(--r-shadow); font-family:"Plus Jakarta Sans",sans-serif;
}
.a11y-panel h3{ margin:0 0 14px; font-family:"Bricolage Grotesque",sans-serif; font-size:16px; color:var(--r-ink); }
.a11y-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px solid var(--r-line); font-size:13px; color:var(--r-ink-dim); }
.a11y-row:last-of-type{ border-bottom:none; }
.a11y-mini{ display:flex; gap:6px; }
.a11y-mini button{
  width:28px; height:28px; border-radius:8px; border:1px solid var(--r-line); background:transparent; color:var(--r-ink);
  font-size:11px; cursor:pointer;
}
.a11y-reset{
  margin-top:12px; width:100%; padding:10px; border-radius:10px; border:1px solid var(--r-line); background:transparent;
  color:var(--r-ink-dim); font-size:12.5px; cursor:pointer;
}
@media (max-width:480px){ .a11y-fab{ left:14px; bottom:14px; } .a11y-panel{ left:14px; bottom:74px; } }

/* ================================================================
   REGOLE ACCESSIBILITÀ (attivate dagli attributi su <html>)
   ================================================================ */
html[data-a11y-contrast="on"]{ filter:contrast(1.25) saturate(1.15); }
html[data-a11y-links="on"] a{ text-decoration:underline !important; outline:1px solid currentColor; outline-offset:2px; }
html[data-a11y-font="on"] body, html[data-a11y-font="on"] p, html[data-a11y-font="on"] span, html[data-a11y-font="on"] div{
  font-family:Arial, Helvetica, sans-serif !important;
}
html[data-a11y-spacing="on"] p, html[data-a11y-spacing="on"] li{ line-height:1.9 !important; letter-spacing:.02em !important; }
html[data-a11y-spacing="on"] h1, html[data-a11y-spacing="on"] h2, html[data-a11y-spacing="on"] h3{ letter-spacing:.01em !important; }
html[data-a11y-cursor="on"], html[data-a11y-cursor="on"] *{ cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32'><path d='M4 2 L4 26 L11 20 L15 28 L19 26 L15 18 L24 18 Z' fill='black' stroke='white' stroke-width='2'/></svg>") 4 2, auto !important; }
html[data-a11y-motion="on"] *, html[data-a11y-motion="on"] *::before, html[data-a11y-motion="on"] *::after{
  animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;
}
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* Focus sempre visibile per navigazione da tastiera */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--r-orange2); outline-offset:2px;
}
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:10000; background:var(--r-ink); color:#180d08;
  padding:12px 20px; border-radius:0 0 10px 0; font-family:"Plus Jakarta Sans",sans-serif; font-weight:700; text-decoration:none;
}
.skip-link:focus{ left:0; }

/* ================================================================
   PAGINE LEGALI
   ================================================================ */
.legal-wrap{ max-width:760px; margin:0 auto; padding:140px clamp(20px,5vw,56px) 100px; font-family:"Plus Jakarta Sans",sans-serif; color:var(--r-ink-dim); line-height:1.7; }
.legal-wrap h1{ font-family:"Bricolage Grotesque",sans-serif; font-weight:800; font-size:clamp(28px,4vw,40px); color:var(--r-ink); margin:0 0 8px; }
.legal-wrap .legal-updated{ font-size:12.5px; color:var(--r-ink-dim); opacity:.7; margin:0 0 40px; }
.legal-wrap h2{ font-family:"Bricolage Grotesque",sans-serif; font-weight:700; font-size:20px; color:var(--r-ink); margin:40px 0 12px; }
.legal-wrap p{ margin:0 0 14px; font-size:15px; }
.legal-wrap ul{ margin:0 0 14px; padding-left:20px; }
.legal-wrap li{ margin-bottom:8px; font-size:15px; }
.legal-wrap table{ width:100%; border-collapse:collapse; margin:16px 0 24px; font-size:13.5px; }
.legal-wrap th, .legal-wrap td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--r-line); }
.legal-wrap th{ color:var(--r-ink); font-family:"Plus Jakarta Sans",sans-serif; font-weight:700; }
.legal-wrap a{ color:var(--r-orange2); }
.legal-placeholder{ color:var(--r-orange2); font-weight:700; }
body.legal-body{ background:var(--r-bg); color:var(--r-ink); font-family:"Plus Jakarta Sans",ui-sans-serif,system-ui,sans-serif; }
body.legal-body h1, body.legal-body h2, body.legal-body h3{ font-family:"Bricolage Grotesque","Arial Black",sans-serif; }
