/* Barricade Rise — user.css (Spec aligned) */

/* Containers width per spec */
.container-xxl { max-width: 1240px; }
@media (min-width: 1400px){ .container-xxl { max-width: 1320px; } }

/* Color and layout variables from brief */
:root{
  /* Palette */
  --header-bg: rgb(222,230,235); --header-text: rgb(17,34,56);
  --body-bg: rgb(246,248,251);  --body-text: rgb(14,34,56);
  --link: rgb(30,142,158);      --link-hover: rgb(24,123,137);
  --btn-bg: rgb(30,142,158);    --btn-bg-hover: rgb(24,123,137); --btn-text:#fff;
  --footer-bg: rgb(18,95,153);  --footer-text:#fff;
  --divider: rgb(215,223,231);
  --success:#2BAA6B; --warn:#F0B541; --error:#C94B4B;

  /* Cassiopeia bindings */
  --cassiopeia-color-header: var(--header-bg);
  --cassiopeia-color-footer: var(--footer-bg);
  --cassiopeia-color-background: var(--body-bg);
  --cassiopeia-color-primary: var(--link);
  --cassiopeia-color-link: var(--link);
  --cassiopeia-color-hover: var(--link-hover);

  /* Layout & type */
  --content-max: 1200px;   /* testi/card */
  --container-md: 1240px;  /* container-xxl */
  --container-lg: 1320px;  /* >1400px */
  --page-pad: 16px;
  --section-pad: 40px; /* vertical padding for hero/KPI */
  --btn-py: 10px; --btn-px: 16px;
  --btn-py-sm: 8px;  --btn-px-sm: 12px;
  --btn-py-lg: 12px; --btn-px-lg: 20px;
  --font-base:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
  --font-head:"Manrope",Inter,system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
  --fz-h1: clamp(34px, 5.2vw, 48px);
  --fz-h2: 32px; --fz-h3: 22px; --fz-body: 15px; /* fallback if admin vars not set (15px for pro density) */
}
@media (min-width:1200px){ :root{ --page-pad:24px; } }
@media (max-width:1199.98px){ :root{ --section-pad: 32px; } }
@media (min-width:1400px){ :root{ --section-pad: 44px; } }

/* Enforce template color vars over Cassiopeia Extended inline settings */
:root{
  --btnbg: var(--btn-bg) !important;
  --btnbgh: var(--btn-bg-hover) !important;
  --btncolor: #fff !important;
  --btncolorh: #fff !important;
  --headerbg: var(--header-bg) !important;
  --headercolor: var(--header-text) !important;
  --footerbg: var(--footer-bg) !important;
  --footercolor: var(--footer-text) !important;
  --link-color: var(--link) !important;
  --link-hover-color: var(--link-hover) !important;
}

/* Base */
html{ font-size: var(--body-font-size, var(--fz-body)); }
/* Slightly compact desktop type scale if it looks too large */
@media (min-width:1200px) and (max-width:1399.98px){ html{ font-size: calc(var(--body-font-size, var(--fz-body)) * 0.95); } }
@media (min-width:1400px){ html{ font-size: var(--body-font-size, var(--fz-body)); } }
body{background:var(--body-bg); color:var(--body-text); font-family:var(--font-base); line-height:1.55;}
a{color:var(--link); text-decoration:none}
a:hover{color:var(--link-hover); text-decoration:underline}

/* Header / Footer */
.container-header{background:var(--header-bg); color:var(--header-text); border-bottom:1px solid var(--divider)}
.container-header a{color:var(--header-text)}
.container-footer{background:var(--footer-bg); color:var(--footer-text); border-top:1px solid rgba(0,0,0,.06)}
.container-footer a{color:var(--footer-text)}

/* Compact header spacing for professional feel */
.container-header .navbar-brand{padding-top:6px; padding-bottom:6px}
.container-header .mod-menu a{padding:6px 10px}

/* Type */
h1,h2,h3,h4,h5,h6{font-family:var(--font-head); color:#112238; line-height:1.2; margin:.7em 0 .35em}
h1{font-size: var(--h1size, var(--fz-h1));}
h2{font-size: var(--h2size, var(--fz-h2));}
h3{font-size: var(--h3size, var(--fz-h3));}
p, li{color:#3B4D62}

/* Buttons */
/* Base shape/spacing unified for all Bootstrap buttons */
.btn, .button, button[type="submit"], input[type="submit"]{
  box-sizing:border-box; border-radius:12px; font-weight:600; line-height:1.2;
  padding:var(--btn-py) var(--btn-px); border-width:1px; border-style:solid; min-height:34px;
  transition: background-color .12s ease, border-color .12s ease, color .12s ease;
}
.btn-sm{ padding:var(--btn-py-sm) var(--btn-px-sm) !important; border-radius:10px; font-size:.875rem; }
.btn-lg{ padding:var(--btn-py-lg) var(--btn-px-lg) !important; border-radius:14px; font-size:1.05rem; min-height:44px; }
/* Primary (filled) */
.btn-primary, .btn.btn-primary, .button, button[type="submit"], input[type="submit"]{
  background:var(--btn-bg); color:var(--btn-text); border-color:var(--btn-bg);
}
.btn-primary:hover, .btn.btn-primary:hover, .button:hover, button[type="submit"]:hover, input[type="submit"]:hover{
  background:var(--btn-bg-hover); border-color:var(--btn-bg-hover); color:var(--btn-text);
}
/* Outline (Bootstrap) */
.btn-outline-primary{
  color:var(--link); border-color:var(--link); background:transparent; border-width:2px;
}
.btn-outline-primary:hover, .btn-outline-primary:focus{
  color:#fff; background:var(--btn-bg-hover); border-color:var(--btn-bg-hover)
}
/* Custom outline utility */
.btn--outline{background:transparent; color:var(--link); border-color:var(--link);} 
.btn--outline:hover{color:#fff; border-color:var(--btn-bg-hover); background:var(--btn-bg-hover)}

/* Additional variants aligned to palette */
.btn-secondary{ background:#fff; color:#112238; border-color:var(--divider); }
.btn-secondary:hover{ background:#f4f7fa; border-color:#cfd7df; color:#112238; }
.btn-outline-secondary{ color:#112238; border-color:var(--divider); background:transparent; border-width:2px; }
.btn-outline-secondary:hover{ background:#f4f7fa; border-color:#cfd7df; }
.btn-success{ background:var(--success); border-color:var(--success); color:#fff; }
.btn-success:hover{ background:color-mix(in srgb, var(--success), #000 10%); border-color:color-mix(in srgb, var(--success), #000 10%); }
.btn-danger{ background:var(--error); border-color:var(--error); color:#fff; }
.btn-danger:hover{ background:color-mix(in srgb, var(--error), #000 10%); border-color:color-mix(in srgb, var(--error), #000 10%); }
.btn-warning{ background:var(--warn); border-color:var(--warn); color:#111; }
.btn-warning:hover{ background:color-mix(in srgb, var(--warn), #000 10%); border-color:color-mix(in srgb, var(--warn), #000 10%); color:#111; }

/* Focus/disabled */
.btn:focus-visible{ outline:2px solid var(--btn-bg-hover); outline-offset:2px; box-shadow:none; }
.btn:disabled, .btn[disabled]{ opacity:.6; cursor:not-allowed; }

/* Icons inside buttons */
.btn > .fa, .btn > svg{ margin-right:.5rem; }

/* High‑density layout for trading views */
body.com_barricaderise, body.view-movements{
  --btn-py: 8px; --btn-px: 12px; --btn-py-sm: 6px; --btn-px-sm: 10px;
}
body.com_barricaderise .card, body.view-movements .card{ padding:12px; border-radius:10px }
body.com_barricaderise table, body.view-movements table{ font-size:.9375rem }
body.com_barricaderise table th, body.com_barricaderise table td,
body.view-movements table th, body.view-movements table td{ padding:8px 10px }
body.com_barricaderise .btn, body.view-movements .btn{ min-height:32px }
body.com_barricaderise h1, body.view-movements h1{ font-size: calc(var(--h1size, var(--fz-h1)) * .9) }
body.com_barricaderise h2, body.view-movements h2{ font-size: calc(var(--h2size, var(--fz-h2)) * .92) }
body.com_barricaderise h3, body.view-movements h3{ font-size: calc(var(--h3size, var(--fz-h3)) * .95) }

/* Cards / modules */
.moduletable, .card, .com-content-article__body{background:#fff; border:1px solid var(--divider); border-radius:12px; padding:16px; box-shadow: 0 2px 8px rgba(2,20,39,.04);}
.br-cards{display:grid; gap:16px}
@media(min-width:900px){ .br-cards{grid-template-columns:repeat(3,1fr);} }
.br-card__img{background:rgba(18,95,153,.06); border-radius:8px; height:160px}
.br-card__title{font-weight:700; margin-top:12px}
.br-card__copy{color:#3B4D62}

/* KPI table */
table{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--divider); border-radius:12px; overflow:hidden}
table th, table td{padding:12px 14px; border-bottom:1px solid var(--divider)}
table th{color:#516579; font-weight:700; text-transform:uppercase; letter-spacing:.02em; font-size:13px}
table tr:last-child td{border-bottom:0}

/* Full-bleed utilities */
.br-fullbleed{width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);}
.br-hero, .br-kpi{position:relative}
.br-hero.br-fullbleed, .br-kpi.br-fullbleed{background:linear-gradient(180deg, rgba(18,95,153,.08), rgba(18,95,153,0)); border-top:1px solid var(--divider); border-bottom:1px solid var(--divider)}
.br-hero__inner, .br-kpi__inner{max-width:var(--content-max); margin:0 auto; padding:var(--section-pad) var(--page-pad)}
.wrapper-static .br-hero__inner, .wrapper-static .br-kpi__inner{ padding: calc(var(--section-pad) * .9) var(--page-pad); }
.br-hero__subtitle{color:#3B4D62; font-weight:500}
.br-hero__cta{display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:16px}

/* Note / strip */
.br-note{background:#fff; border:1px solid var(--divider); border-radius:12px; padding:16px}

/* CTA final bar */
.br-cta{background:var(--btn-bg); color:#fff; padding:20px var(--page-pad); border-radius:12px}
.br-cta .btn{background:#fff; color:var(--link)}
.br-cta .btn:hover{background:#f2f6f8}

/* Menu interactions */
.mod-menu a{padding:8px 12px; border-radius:8px; color:var(--header-text)}
.mod-menu a:focus, .mod-menu a:hover{background:rgba(30,142,158,.10)}

/* Language switcher as small outlined pills */
.mod-languages a, .mod-languages button{
  padding:var(--btn-py-sm) var(--btn-px-sm);
  border:2px solid var(--link); border-radius:10px; color:var(--link); background:transparent; font-weight:600; line-height:1.1;
}
.mod-languages a:hover, .mod-languages button:hover{background:var(--btn-bg-hover); color:#fff; border-color:var(--btn-bg-hover)}

/* Status badges */
.badge-success{background:var(--success); color:#fff}
.badge-warn{background:var(--warn); color:#111}
.badge-error{background:var(--error); color:#fff}

/* Accessibility */
:focus-visible{outline:2px solid var(--link); outline-offset:2px}
/* === HEADER FIX (compat: banner | top-a | brand) === */

/* Spaziatura/struttura header */
.container-header{
  padding:8px 24px;
  border-bottom:1px solid var(--divider);
  background:var(--header-bg);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
}

/* Nasconde logo/titolo nativi di Cassiopeia se presenti */
.container-header .navbar-brand,
.container-header .navbar-brand .site-title{ display:none !important; }

/* Blocchi brand nelle posizioni comuni */
.banner .br-brand,
.top-a .br-brand,
.brand .br-brand{
  display:flex; align-items:baseline; gap:10px; padding:6px 0; color:var(--header-text);
}

/* Logo */
.banner .br-logo img,
.top-a .br-logo img,
.brand .br-logo img{
  height:42px; width:auto; display:block;
}

/* Titolo */
.banner .br-title,
.top-a .br-title,
.brand .br-title{
  font-family:var(--font-head);
  font-size:2.5rem; line-height:1.1;
  font-weight:600; letter-spacing:.02em;
  color:var(--header-text); white-space:nowrap; margin:0;
}

/* Menu principale */
.container-header .mod-menu{
  display:flex; align-items:center; gap:20px;
}
.container-header .mod-menu a{
  color:var(--header-text); font-weight:500; text-decoration:none;
  padding:6px 10px; border-radius:6px; transition:background-color .2s,color .2s;
}
.container-header .mod-menu a:hover{
  background:rgba(30,142,158,.10); color:var(--link-hover);
}

/* Responsive */
@media (max-width:992px){
  .banner .br-logo img, .top-a .br-logo img, .brand .br-logo img{ height:38px; }
  .banner .br-title,   .top-a .br-title,   .brand .br-title{ font-size:2rem; }
}
@media (max-width:768px){
  .banner .br-brand, .top-a .br-brand, .brand .br-brand{ gap:6px; }
  .banner .br-logo img, .top-a .br-logo img, .brand .br-logo img{ height:34px; }
  .banner .br-title,   .top-a .br-title,   .brand .br-title{ font-size:1.6rem; }
  .container-header .mod-menu{ gap:12px; }
}
@media (max-width:576px){
  .banner .br-logo img, .top-a .br-logo img, .brand .br-logo img{ height:32px; }
  .banner .br-title,   .top-a .br-title,   .brand .br-title{ font-size:1.4rem; }
}
