   :root {
       --brand: #7a1430;
       --text: #1a1a1a;
       --link: #111;
       --link-hover: #7a1430;
       --topbar-h: 118px;
       --container: 1240px;
   }

   * {
       box-sizing: border-box;
   }

   html,
   body {
       height: 100%;
   }

   body {
       margin: 0;
       font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
       color: var(--text);
       background: #fff;
       overflow-x: hidden;
       -webkit-font-smoothing: antialiased;
   }

   a {
       color: var(--link);
       text-decoration: none;
   }

   a:hover {
       color: var(--link-hover);
   }

   .container {
       width: min(100%, calc(var(--container) + 40px));
       margin: 0 auto;
       padding: 0 20px;
   }

   /* ===================== HERO ===================== */
   .hero {
       position: relative;
       height: calc(100vh - var(--topbar-h));
       min-height: 620px;
       isolation: isolate;
       overflow: hidden;
   }

   .hero video,
   .hero img {
       position: absolute;
       inset: 0;
       width: 100%;
       height: 100%;
       object-fit: cover;
       object-position: center;
       filter: brightness(.78) saturate(.92);
       opacity: 0;
       transform: scale(1.04);
       transition: transform .7s cubic-bezier(.2, .8, .2, 1), filter .7s ease, opacity .5s ease;
   }

   body.is-loaded .hero video,
   body.is-loaded .hero img {
       opacity: 1;
       transform: scale(1);
       filter: brightness(.78) saturate(.92);
   }

   .hero::after {
       content: "";
       position: absolute;
       inset: 0;
       background: linear-gradient(0deg, rgba(0, 0, 0, .20), rgba(0, 0, 0, .20));
       mix-blend-mode: multiply;
       pointer-events: none;
       opacity: .35;
       transition: opacity .7s ease;
   }

   body.is-loaded .hero::after {
       opacity: .2;
   }

   .hero-center {
       position: relative;
       z-index: 2;
       height: 100%;
       display: flex;
       align-items: center;
       justify-content: flex-start;
       padding: 24px;
   }

   .hero-inner {
       display: flex;
       align-items: center;
       justify-content: space-between;
       gap: 40px;
       width: 100%;
       max-width: 1200px;
       margin-left: clamp(40px, 7vw, 80px);
   }

   .hero-mark {
       display: flex;
       flex-direction: column;
       align-items: flex-start;
       justify-content: center;
       gap: 18px;
       position: relative;
       text-align: left;
   }

   #logo_big {
       width: 260px;
       height: 260px;
       object-fit: contain;
       display: block;
       filter: drop-shadow(0 8px 28px rgba(0, 0, 0, .34));
       opacity: 0;
       transform: translateY(-100vh) scale(.98);
       will-change: transform, opacity;
       z-index: 1;
       margin: 0 0 12px 0;
   }

   body.is-loaded #logo_big {
       animation: dropBounce 1.4s cubic-bezier(.22, 1, .36, 1) .15s forwards;
   }

   #logo_big.logo-fixed {
       opacity: 1 !important;
       transform: none !important;
       animation: none !important;
   }

   @keyframes dropBounce {
       0% {
           transform: translateY(-120vh) scale(.98);
           opacity: 0;
       }

       55% {
           transform: translateY(0) scale(1);
           opacity: 1;
       }

       72% {
           transform: translateY(-28px) scale(.99);
       }

       85% {
           transform: translateY(0) scale(1);
       }

       92% {
           transform: translateY(-14px) scale(.995);
       }

       100% {
           transform: translateY(0) scale(1);
       }
   }

   .hero-mark .title {
       font-family: "Playfair Display", serif;
       font-weight: 800;
       letter-spacing: .04em;
       font-size: 30px;
       line-height: 1.12;
       color: #fff;
       text-shadow: 0 2px 24px rgba(0, 0, 0, .55);
       opacity: 0;
       transform: translateY(10px);
       margin: 0;
       max-width: 820px;
       white-space: nowrap;
       position: relative;
       z-index: 2;
   }

   body.is-loaded .hero-mark .title {
       animation: fadeUp .6s ease .9s forwards;
   }

   .hero-heading {
       max-width: 620px;
   }

   .hero-subheading {
       margin: 0;
       max-width: 520px;
       font-size: 18px;
       line-height: 1.45;
       color: rgba(255, 255, 255, .9);
   }

   .hero-boxes {
       display: flex;
       gap: 14px;
       margin-top: 34px;
   }

   .hero-box {
       width: 150px;
       min-height: 92px;
       background: #fff;
       border-radius: 34px;
       padding: 18px 14px;
       text-align: center;
       color: #111;
       box-shadow: 0 12px 28px rgba(0, 0, 0, .18);
   }

   .hero-box strong {
       display: block;
       font-size: 18px;
       line-height: 1.1;
       margin-bottom: 6px;
   }

   .hero-box span {
       display: block;
       font-size: 13px;
       line-height: 1.25;
   }

   .hero-side {
       position: absolute;
       right: clamp(40px, 7vw, 120px);
       top: 50%;
       transform: translateY(-50%);
       width: min(560px, 45vw);
       border-radius: 42px;
       padding: 24px;
   }

   .hero-video-box {
       position: relative;
       transform: none;
       width: 100%;
       aspect-ratio: 16 / 9;
       border-radius: 34px;
       overflow: hidden;
       background: #000;
       border: 5px solid #fff;
       box-shadow: none;
   }

   .hero-video-box video.hero-inline-video {
       width: 100%;
       height: 100%;
       display: block;
       object-fit: cover;
       position: absolute;
       inset: 0;
       opacity: 1;
       transform: none;
       filter: none;
       transition: none;
   }

   .hero-video-box2 {
       position: static;
       transform: none;
       width: 100%;
       height: auto;
       margin-top: 24px;
       padding: 26px 30px;
       border-radius: 34px;
       background: #7a1430;
       color: #fff;
       box-shadow: none;
   }

   .hero-video-box2 h3 {
       margin: 0 0 8px;
       color: #fff;
       font-size: 22px;
       line-height: 1.25;
       font-weight: 800;
   }

   .hero-video-box2 p {
       margin: 0;
       color: #fff;
       font-size: 16px;
       line-height: 1.4;
   }

   @keyframes fadeUp {
       from {
           opacity: 0;
           transform: translateY(10px);
           filter: blur(4px);
       }

       to {
           opacity: 1;
           transform: none;
           filter: blur(0);
       }
   }

   /* ===================== STUDY CHOICE ===================== */
   .study-choice {
       background: #f1e7df;
       padding: 78px 0 88px;
       color: #7a1430;
   }

   .study-choice-head {
       margin-bottom: 70px;
   }

   .study-choice-head h2 {
       margin: 0 0 10px;
       font-size: clamp(30px, 3vw, 42px);
       line-height: 1.1;
       font-weight: 800;
       color: #7a1430;
   }

   .study-choice-head p {
       margin: 0;
       font-size: 18px;
       line-height: 1.45;
       color: #7a1430;
   }

   .study-choice-grid {
       display: grid;
       grid-template-columns: repeat(4, 1fr);
       gap: 26px;
   }

   .study-card {
       display: flex;
       flex-direction: column;
       background: #fff;
       color: #7a1430;
       text-decoration: none;
       border-radius: 34px 34px 0 0;
       overflow: hidden;
       min-height: 520px;
   }

   .study-card:hover {
       color: #7a1430;
       transform: translateY(-4px);
   }

   .study-card-img {
       height: 220px;
       background: #d8d8d8;
       border-radius: 34px 34px 0 0;
       overflow: hidden;
   }

   .study-card-img img {
       display: block;
       width: 100%;
       height: 100%;
       object-fit: cover;
       object-position: center;
   }

   .study-card-body {
       padding: 16px 22px 22px;
   }

   .study-card-label {
       display: inline-flex;
       align-items: center;
       padding: 8px 18px;
       border-radius: 999px;
       background: #f1e7df;
       color: #7a1430;
       font-weight: 800;
       font-size: 20px;
       margin-bottom: 20px;
   }

   .study-card-strong {
       margin: 0 0 18px;
       font-size: 14px;
       line-height: 1.35;
       font-weight: 800;
       color: #7a1430;
   }

   .study-card ul {
       margin: 0 0 22px;
       padding-left: 20px;
       font-size: 14px;
       line-height: 1.35;
       color: #7a1430;
   }

   .study-card-btn {
       display: inline-flex;
       align-items: center;
       justify-content: center;
       min-width: 110px;
       height: 22px;
       border-radius: 999px;
       background: #eb3353;
       color: #fff;
       font-size: 10px;
       font-weight: 800;
       line-height: 1;
   }

   /* ===================== HOME CAROUSELS UNIFORMI ===================== */
   .home-carousel-section {
       padding: 78px 0 92px;
       overflow: hidden;
   }

   .home-carousel-section--burgundy {
       background: #7a1430;
       color: #fff;
   }

   .home-carousel-section--beige {
       background: #f1e7df;
       color: #7a1430;
   }

   .home-carousel-section--white {
       background: #fff;
       color: #7a1430;
   }

   .home-carousel-head {
       margin-bottom: 34px;
   }

   .home-carousel-title {
       margin: 0 0 12px;
       font-size: clamp(32px, 3vw, 42px);
       line-height: 1.1;
       font-weight: 800;
       color: inherit;
   }

   .home-carousel-subtitle {
       margin: 0;
       max-width: 980px;
       font-size: 20px;
       line-height: 1.4;
       color: inherit;
       opacity: .92;
   }

   .home-carousel {
       display: flex;
       align-items: center;
       gap: 18px;
   }

   .home-carousel-track {
       display: flex;
       gap: 22px;
       overflow-x: auto;
       scroll-snap-type: x mandatory;
       padding: 8px 2px 18px;
       scrollbar-width: none;
       -ms-overflow-style: none;
   }

   .home-carousel-track::-webkit-scrollbar {
       display: none;
   }

   .home-carousel-card {
       flex: 0 0 296px;
       width: 296px;
       min-height: 430px;
       border-radius: 24px;
       overflow: hidden;
       background: #fff;
       color: #7a1430;
       box-shadow: 0 14px 36px rgba(0, 0, 0, .12);
       scroll-snap-align: start;
       display: flex;
       flex-direction: column;
       text-decoration: none;
   }

   .home-carousel-card:hover {
       color: #7a1430;
       transform: translateY(-3px);
   }

   .home-carousel-media {
       position: relative;
       height: 215px;
       background: #eee;
       overflow: hidden;
   }

   .home-carousel-media img {
       width: 100%;
       height: 100%;
       display: block;
       object-fit: cover;
   }

   .home-carousel-badge {
       position: absolute;
       left: 14px;
       top: 14px;
       min-height: 30px;
       padding: 7px 13px;
       border-radius: 999px;
       background: #eb3353;
       color: #fff;
       font-size: 13px;
       line-height: 1;
       font-weight: 800;
       letter-spacing: .02em;
   }

   .home-carousel-body {
       padding: 16px 18px 18px;
       display: flex;
       flex-direction: column;
       flex: 1;
   }

   .home-carousel-card-title {
       min-height: 44px;
       font-size: 18px;
       line-height: 1.2;
       font-weight: 800;
       color: #7a1430;
       margin: 0 0 12px;
   }

   .home-carousel-desc {
       margin: 0;
       font-size: 14px;
       line-height: 1.4;
       color: #7a1430;
   }

   .home-carousel-meta {
       margin-top: auto;
       padding-top: 14px;
       border-top: 1px solid rgba(122, 20, 48, .14);
       font-size: 13px;
       line-height: 1.35;
       color: #7a1430;
   }

   .home-carousel-actions {
       margin-top: 14px;
       display: flex;
       gap: 8px;
       flex-wrap: wrap;
   }

   .home-carousel-small-btn {
       display: inline-flex;
       align-items: center;
       justify-content: center;
       min-height: 32px;
       padding: 8px 14px;
       border-radius: 999px;
       border: 0;
       background: #eb3353;
       color: #fff;
       font-size: 13px;
       font-weight: 800;
       cursor: pointer;
   }

   .home-carousel-small-btn:hover {
       color: #fff;
       filter: brightness(1.05);
   }

   .home-carousel-arrow {
       flex: 0 0 auto;
       width: 42px;
       height: 42px;
       border-radius: 999px;
       border: 3px solid currentColor;
       background: transparent;
       color: inherit;
       font-size: 34px;
       line-height: 1;
       display: inline-flex;
       align-items: center;
       justify-content: center;
       cursor: pointer;
       padding: 0 0 4px;
   }

   .home-carousel-arrow:hover {
       background: rgba(255, 255, 255, .12);
   }

   .home-carousel-section--white .home-carousel-arrow:hover,
   .home-carousel-section--beige .home-carousel-arrow:hover {
       background: rgba(122, 20, 48, .08);
   }

   .home-carousel-cta {
       margin-top: 24px;
       text-align: center;
   }

   .home-carousel-cta a {
       display: inline-flex;
       align-items: center;
       justify-content: center;
       min-width: 360px;
       height: 52px;
       padding: 0 34px;
       border-radius: 999px;
       background: #eb3353;
       color: #fff;
       font-size: 22px;
       line-height: 1;
       font-weight: 800;
       text-decoration: none;
   }

   .home-carousel-cta a:hover {
       color: #fff;
       filter: brightness(1.05);
   }

   /* ===================== RECENSIONI HOME ===================== */
   .home-review-card {
       min-height: 320px;
       padding: 22px;
   }

   .home-review-top {
       display: flex;
       justify-content: space-between;
       gap: 12px;
       align-items: flex-start;
       margin-bottom: 12px;
   }

   .home-review-stars {
       color: #f4a300;
       font-size: 17px;
       letter-spacing: 1px;
       line-height: 1;
       white-space: nowrap;
   }

   .home-review-tag {
       display: inline-flex;
       align-items: center;
       justify-content: center;
       min-height: 26px;
       padding: 6px 10px;
       border-radius: 999px;
       background: #eb3353;
       color: #fff;
       font-size: 11px;
       line-height: 1;
       font-weight: 900;
       text-transform: uppercase;
       white-space: nowrap;
   }

   .home-review-text {
       margin: 0;
       color: #7a1430;
       font-size: 15px;
       line-height: 1.45;
       max-height: 145px;
       overflow-y: auto;
       padding-right: 4px;
   }

   .home-review-bottom {
       margin-top: auto;
       padding-top: 16px;
   }

   .home-review-name {
       color: #7a1430;
       font-size: 16px;
       line-height: 1.2;
       font-weight: 900;
       margin-bottom: 6px;
   }

   .home-review-product {
       color: #7a1430;
       opacity: .82;
       font-size: 13px;
       line-height: 1.3;
       font-weight: 700;
   }

   /* ===================== DISCOUNT BAR ===================== */
   .discount-fixed-bar {
       position: fixed;
       inset: auto 0 0 0;
       z-index: 999;
       background: #f97316;
       color: #111827;
       box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.25);
       font-size: 14px;
   }

   .discount-fixed-inner {
       max-width: 1240px;
       margin: 0 auto;
       padding: 10px 16px;
       display: flex;
       align-items: center;
       gap: 14px;
   }

   .discount-fixed-label {
       font-size: 11px;
       text-transform: uppercase;
       letter-spacing: .18em;
       font-weight: 800;
       color: #fff7ed;
       white-space: nowrap;
   }

   .discount-fixed-items {
       display: flex;
       flex: 1;
       gap: 8px;
       flex-wrap: wrap;
   }

   .discount-fixed-item {
       display: inline-flex;
       flex-direction: column;
       justify-content: center;
       padding: 6px 10px;
       border-radius: 999px;
       background: rgba(255, 255, 255, 0.18);
       border: 1px solid rgba(255, 255, 255, 0.5);
       color: #111827;
       text-decoration: none;
       min-width: 0;
       max-width: 260px;
   }

   .discount-fixed-close {
       flex-shrink: 0;
       width: 26px;
       height: 26px;
       border-radius: 999px;
       border: none;
       background: rgba(0, 0, 0, 0.18);
       color: #fef3c7;
       font-size: 16px;
       cursor: pointer;
       display: inline-flex;
       align-items: center;
       justify-content: center;
   }

   /* ===================== RESPONSIVE ===================== */
   @media (max-width: 1100px) {
       :root {
           --container: 1000px;
       }

       .hero-side {
           width: min(500px, 42vw);
       }

       .hero-box {
           width: 138px;
       }

       .study-choice-grid {
           grid-template-columns: repeat(2, 1fr);
       }
   }

   @media (max-width: 960px) {
       :root {
           --topbar-h: 84px;
       }

       .burger {
           display: flex;
       }

       .menu {
           position: absolute;
           top: var(--topbar-h);
           left: 0;
           right: 0;
           display: none;
           flex-direction: column;
           gap: 12px;
           padding: 16px 20px;
           background: #fff;
           border-top: 1px solid rgba(0, 0, 0, .06);
           box-shadow: 0 10px 30px rgba(0, 0, 0, .08);
           z-index: 60;
       }

       .nav-toggle:checked~.menu {
           display: flex;
       }

       nav.nav {
           gap: 16px;
       }

       .lang {
           display: none;
       }

       .hero {
           height: auto;
           min-height: calc(100vh - var(--topbar-h));
           padding: 40px 0;
       }

       .hero-center {
           height: auto;
       }

       .hero-inner {
           margin-left: 0;
           flex-direction: column;
           align-items: center;
           justify-content: center;
       }

       .hero-mark {
           position: static;
           display: flex;
           flex-direction: column;
           align-items: center;
           padding-top: 0;
           text-align: center;
       }

       #logo_big {
           position: static;
           width: 220px;
           height: 220px;
           margin-bottom: 8px;
       }

       .hero-mark .title {
           white-space: normal;
           font-size: 26px;
       }

       .hero-heading,
       .hero-subheading {
           max-width: 520px;
       }

       .hero-boxes {
           justify-content: center;
           flex-wrap: wrap;
           margin-top: 24px;
       }

       .hero-side {
           position: static;
           transform: none;
           width: min(100%, 560px);
           margin-top: 24px;
       }

       .home-carousel {
           gap: 10px;
       }

       .home-carousel-arrow {
           display: none;
       }
   }

   @media (min-width: 961px) {
       .hero-mark {
           position: relative;
           display: block;
           padding-top: 260px;
       }

       #logo_big {
           position: absolute;
           top: 0;
           left: 0;
           margin: 0;
       }

       .hero-mark .title {
           display: block;
           margin-top: 12px;
           white-space: nowrap;
       }

       .hero-subheading {
           margin-top: 10px;
       }
   }

   @media (max-width: 720px) {
       .home-carousel-section {
           padding: 56px 0 70px;
       }

       .home-carousel-card {
           flex-basis: 78vw;
           width: 78vw;
       }

       .home-carousel-cta a {
           min-width: 0;
           width: 100%;
           font-size: 20px;
       }

       .discount-fixed-inner {
           flex-direction: column;
           align-items: flex-start;
           gap: 10px;
           padding: 10px 12px 12px;
       }

       .discount-fixed-items,
       .discount-fixed-item {
           width: 100%;
           max-width: none;
       }

       .discount-fixed-close {
           position: absolute;
           top: 6px;
           right: 8px;
       }

       .discount-fixed-bar {
           padding-top: 18px;
       }
   }

   @media (max-width: 620px) {
       .study-choice {
           padding: 56px 0 64px;
       }

       .study-choice-head {
           margin-bottom: 36px;
       }

       .study-choice-grid {
           grid-template-columns: 1fr;
       }
   }

   @media (max-width: 520px) {
       .hero-box {
           width: 100%;
           max-width: 260px;
       }

       .hero-side {
           border-radius: 32px;
           padding: 16px;
       }

       .hero-video-box2 {
           padding: 22px;
           border-radius: 28px;
       }

       .hero-video-box2 h3 {
           font-size: 20px;
       }

       .hero-video-box2 p {
           font-size: 15px;
       }
   }

   @media (max-width: 420px) {
       .container {
           padding-inline: 12px;
       }

       #logo_big {
           width: 180px;
           height: 180px;
       }

       .hero {
           min-height: 480px;
       }
   }

   @media (prefers-reduced-motion: reduce) {

       .topbar,
       .hero video,
       .hero::after,
       #logo_big,
       .hero-mark .title,
       .home-carousel-card {
           transition: none !important;
           transform: none !important;
           filter: none !important;
           opacity: 1 !important;
           animation: none !important;
       }
   }


   /* ===================== ABOUT ALESSIA ===================== */
   .home-about-chef {
       background: #f1e7df;
       color: #7a1430;
       padding: 0 0 76px;
   }

   .home-about-stats {
       display: grid;
       grid-template-columns: repeat(2, minmax(0, 1fr));
       gap: 40px;
       padding: 34px 0 30px;
       border-bottom: 1px solid rgba(122, 20, 48, .14);
       text-align: center;
   }

   .home-about-stat-number {
       display: block;
       font-size: clamp(44px, 5vw, 62px);
       line-height: 1;
       font-weight: 900;
       color: #7a1430;
   }

   .home-about-stat-label {
       display: block;
       margin-top: 10px;
       font-size: clamp(20px, 2vw, 28px);
       line-height: 1.1;
       font-weight: 800;
       color: #7a1430;
   }

   .home-about-content {
       display: grid;
       grid-template-columns: minmax(0, 1fr) 360px;
       gap: clamp(42px, 7vw, 110px);
       align-items: center;
       padding-top: 54px;
   }

   .home-about-text {
       max-width: 560px;
   }

   .home-about-text h2 {
       margin: 0 0 28px;
       font-size: clamp(26px, 3vw, 34px);
       line-height: 1.15;
       font-weight: 900;
       color: #7a1430;
   }

   .home-about-text p {
       margin: 0 0 18px;
       font-size: 15px;
       line-height: 1.65;
       color: #7a1430;
   }

   .home-about-photo {
       width: 100%;
       aspect-ratio: 3 / 4;
       background: #d8d8d8;
       border: 0;
   }

   @media (max-width: 900px) {
       .home-about-content {
           grid-template-columns: 1fr;
       }

       .home-about-photo {
           max-width: 360px;
       }
   }

   @media (max-width: 620px) {
       .home-about-stats {
           grid-template-columns: 1fr;
           gap: 26px;
       }
   }