/**********************************************
VARIABILI
***********************************************/
:root{
  --text-white: #fff;
  --rosso-egaf: #b72020;
  --marrone-egaf: #69605b;
  --verde-egaf: #00847f;
  --egaf: #635953;
  --c-border-egaf: #d9d3c8;
  --c-grey: #828282;
  --c-text-soft: #353535;
  --bg-header: #e3e3e3;
  --c-bg: #fbfaf7;
  --c-surface: #ffffff;
  --c-surface-2: #f1eee7;
  --c-text: #0e1620;
  --c-text-muted: #5b6678;
  --c-border: #d8dee8;
  --c-border-2: #e7e3d9;
  --c-primary: #1a3a6c;
  --c-primary-2: #102a52;
  --c-accent: #b8862b;
  --c-accent-soft: #f4e9c8;
  --c-danger: #b3382a;
  --c-success: #2e7d4f;
  --c-shadow: 14 22 32;
  --f-display: "Fraunces", Georgia, "Times New Roman", serif;
  --f-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, monospace;
  --f-montsserat: "Montserrat", sans-serif;
  --f-encode: "Encode Sans", sans-serif;
  --bp-sm: 480px;
  --bp-md: 768px;
  --bp-lg: 1024px;
  --bp-xl: 1280px;
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-7: 32px;
  --s-8: 48px;
  --s-9: 64px;
  --s-10: 96px;
  --r-sm: 3px;
  --r-md: 6px;
  --r-lg: 12px;
  --r-pill: 999px;
  --max-width: 1200px;
  --max-width-admin: 1440px;
  --header-h: 72px;
  --header-h-mobile: 60px;
  --header-h-admin: 60px
}


/**********************************************
BODY-CONTAINER-HTML GENERICO
***********************************************/
*,
*:before,
*:after{
  box-sizing: border-box;
}
html{
  -webkit-text-size-adjust: 100%;
  tab-size: 4;
}
body{
  margin: 0px;
  font-family: var(--f-montsserat);
  font-size: 1rem;
  line-height: 1.5rem;
  color: var(--c-text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}
.container{
  max-width: var(--max-width);
  margin: 0 auto;
}
.visually-hidden{
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0
}
.info{
  padding: var(--s-7) 0 var(--s-9);
  flex: 1 0 auto;
}


/**********************************************
TESTI
***********************************************/
a, a:hover{
  color: var(--verde-egaf);
}

ul{
  list-style: none;
  padding: 0;
  margin: 0;
}
h1{
  letter-spacing: -.012em;
  color: var(--c-text);
  font-family: var(--f-montsserat);
}
h2{
  letter-spacing: -.012em;
  color: var(--c-text);
  font-family: var(--f-montsserat);
}
h3{
  letter-spacing: -.012em;
  color: var(--c-text);
  font-family: var(--f-montsserat);
}
h4{
  letter-spacing: -.012em;
  color: var(--c-text);
  font-family: var(--f-montsserat);
}
p{
  margin: 0px;
}
small{
  font-size: .875em;
  color: var(--c-text-muted);
}

.h1-logo{
  color: var(--marrone-egaf);
  font-family: var(--f-montsserat);
  text-transform: uppercase;
  font-weight: 300;
}
.h1-intro-page{
  font-size: 1.875rem;
  line-height: 2.3rem;
  font-weight: 800;
  margin: 0px;
  font-family: var(--f-montsserat);
}

.h1-form-page{
  font-size: 2.25rem;
  line-height: 3rem;
  font-weight: 700;
  margin: 0px;
  font-family: var(--f-montsserat);
}
.h2-section-title{
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 800;
  margin: 0px;
  font-family: var(--f-montsserat);
}
.h2-card-title{
  font-size: 1.375rem;
  line-height: 1.875rem;
  font-weight: 700;
  margin: 0px;
   font-family: var(--f-montsserat);
}

.p-subtitle{
  font-size: 1rem;
  line-height: 1.2rem;
  font-weight: 300;
  font-style: italic;
  margin: 0px;
  font-family: var(--f-montsserat);
}
.p-card-text{
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 300;
  font-style: italic;
  margin: 0px;
  color: var(--c-grey);
}
.p-card-text strong{
  font-style: normal;
  color: var(--c-text);
}
.p-label-upper{
  font-size: 1.375rem;
  line-height: 1.875rem;
  font-weight: 700;
  text-transform: uppercase;
   font-family: var(--f-montsserat);
  margin: 0px;
}


/**********************************************
FOTO-SVG
***********************************************/
img,
svg{
  display: block;
  height: auto;
}
button,
input,
select,
textarea{
  font: inherit;
  color: inherit;
}





/**********************************************
LAYOUT
***********************************************/
/* Pagina a due colonne: contenuto principale (.layout-main) + card laterale (.card-side) */
.layout-main-side{
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 40px 60px;
}
.layout-main{
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1 1 0;
  min-width: 0;
}
.hr-dashed{
  border: 1px dashed rgb(0, 0, 0, 32%);
}


/**********************************************
CARD
***********************************************/
/* Bordo e raggio comuni alle card evento / form */
.card-evento{
  border: 1px solid var(--c-border-egaf);
  border-radius: 25px;
}

/* Card laterale (dettaglio evento, biglietto): coppie etichetta (span) + valore (p) e bottoni a tutta larghezza */
.card-side{
  display: flex;
  flex-direction: column;
  gap: 25px;
  padding: 20px;
  border: 1px solid var(--c-border-egaf);
  border-radius: 25px;
  max-height: fit-content;
  flex: 0 1 440px;
  min-width: 0;
  position: sticky;
  top: 20px;
}
.card-side span{
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 300;
  font-style: italic;
  font-family: var(--f-montsserat);
  color: var(--c-grey);
  margin: 0px;
}
.card-side p{
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 500;
  font-family: var(--f-montsserat);
  margin: 0px;
}
.card-side .btn-container{
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.card-side .btn-container:not(:has(*)){
  display: none;
}
.card-side .btn-container .btn{
  border-radius: 10px;
  padding: 10px 20px;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 500;
  font-family: var(--f-montsserat);
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  gap: 10px;
}

/**********************************************
MEDIA QUERYS 
***********************************************/

@media screen and (max-width: 1024px){
  .layout-main-side{
    flex-direction: column;
  }
  .card-side{
    flex: none;
    width: 100%;
    max-width: none;
    position: static;
  }
}

/*DA CONTROLLARE ADMIN*/
.admin-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--c-surface);
  border-bottom: 1px solid var(--c-border)
}

.admin-header__inner {
  max-width: var(--max-width-admin);
  margin: 0 auto;
  padding: 0 var(--s-5);
  height: var(--header-h-admin);
  display: flex;
  align-items: center;
  gap: var(--s-7)
}

.admin-header__brand {
  display: inline-flex;
  align-items: baseline;
  gap: var(--s-2);
  text-decoration: none;
  color: var(--c-text);
  white-space: nowrap
}

.admin-header__brand-mark {
  font-family: var(--f-display);
  font-weight: 600;
  font-variation-settings: "opsz" 144;
  font-size: 1.1rem;
  letter-spacing: -.015em
}

.admin-header__brand-suffix {
  font-family: var(--f-display);
  font-style: italic;
  font-weight: 400;
  font-size: .95rem;
  color: var(--c-text-muted)
}

.admin-header__nav ul {
  display: flex;
  gap: var(--s-1)
}

.admin-header__nav a {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  padding: 8px 14px;
  text-decoration: none;
  color: var(--c-text-muted);
  font-weight: 500;
  font-size: .92rem;
  border-radius: var(--r-md)
}

.admin-header__nav a:hover {
  background: var(--c-surface-2);
  color: var(--c-text)
}

.admin-header__nav a[aria-current=page] {
  color: var(--c-text);
  background: var(--c-surface-2);
  box-shadow: inset 0 -2px 0 var(--c-accent)
}

.admin-header__nav .bi {
  font-size: 1rem
}

.admin-header__user {
  margin-left: auto;
  display: flex;
  align-items: center;
  align-self: stretch
}

@media (max-width: 767px) {
  .admin-header__inner {
    gap: var(--s-3);
    padding: 0 var(--s-3)
  }

  .admin-header__nav a {
    padding: 8px 10px;
    font-size: .88rem
  }

  .admin-header__nav a span,
  .admin-header__brand-suffix {
    display: none
  }
}

.admin-footer {
  padding: var(--s-3) var(--s-5);
  border-top: 1px solid var(--c-border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--s-3);
  flex-wrap: wrap;
  font-size: .85rem;
  color: var(--c-text-muted)
}

.admin-footer code {
  font-family: var(--f-mono);
  font-size: .82rem;
  padding: 2px 6px;
  background: var(--c-surface-2);
  border-radius: var(--r-sm)
}

.hero {
  padding: var(--s-9) 0 var(--s-8);
  position: relative;
  overflow: hidden
}

.hero:before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(900px 320px at 85% -10%, rgb(184 134 43 / .1), transparent 70%), radial-gradient(720px 380px at -10% 120%, rgb(26 58 108 / .08), transparent 70%);
  pointer-events: none;
  z-index: -1
}

.hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--c-accent);
  margin: 0 0 var(--s-4);
  font-weight: 600
}

.hero__eyebrow:before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  background: currentColor
}

.hero h1 {
  max-width: 18ch
}

.hero p {
  max-width: 58ch;
  color: var(--c-text-muted);
  font-size: 1.1rem;
  line-height: 1.55
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
  margin-top: var(--s-5)
}

.placeholder {
  padding: var(--s-7) var(--s-5);
  border: 1px dashed var(--c-border);
  border-radius: var(--r-lg);
  color: var(--c-text-muted);
  background: var(--c-surface)
}

.placeholder strong {
  color: var(--c-text);
  font-weight: 600
}