@font-face {
  font-family: 'KBB Impact';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../assets/fonts/impact/impact.ttf") format('truetype');
}

/* ============ KEBABBIAMO BRAND WORDMARK ============ */
.brand-wordmark{
  font-family:var(--font-montserrat);
  font-style:normal;
  font-weight:800;
  letter-spacing:-.02em;
  text-transform:uppercase;
  white-space:nowrap;
}

.brand-wordmark .brand-wordmark-kebab{
  color:var(--rosso);
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../assets/fonts/montserrat/montserrat-400.woff2") format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url("../assets/fonts/montserrat/montserrat-500.woff2") format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/montserrat/montserrat-600.woff2") format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: block;
  src: url("../assets/fonts/montserrat/montserrat-700.woff2") format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: block;
  src: url("../assets/fonts/montserrat/montserrat-800.woff2") format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../assets/fonts/montserrat/montserrat-900.woff2") format('woff2');
}

@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../assets/fonts/bebas-neue/bebas-neue-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../assets/fonts/bebas-neue/bebas-neue-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* vietnamese */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: block;
  src: url("../assets/fonts/5c8ad115-30de-441b-9a0e-c8671a055cf9.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: block;
  src: url("../assets/fonts/4bb22948-c108-4fdf-9605-7a228b6adcda.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: block;
  src: url("../assets/fonts/ecfd74f1-4e74-4f7c-886a-828d52b06e3a.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: block;
  src: url("../assets/fonts/5c8ad115-30de-441b-9a0e-c8671a055cf9.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: block;
  src: url("../assets/fonts/4bb22948-c108-4fdf-9605-7a228b6adcda.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: block;
  src: url("../assets/fonts/ecfd74f1-4e74-4f7c-886a-828d52b06e3a.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/5a93f0e5-2885-4680-bf80-4685071f9a82.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/b009d5d1-0eca-4dc9-bbc9-db92b4d90bae.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/adc07ffd-0920-4486-9f49-b5fb47e0a8a5.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/18382519-1a60-4e62-a1d9-3ce1d619c90a.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: block;
  src: url("../assets/fonts/5a93f0e5-2885-4680-bf80-4685071f9a82.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: block;
  src: url("../assets/fonts/b009d5d1-0eca-4dc9-bbc9-db92b4d90bae.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: block;
  src: url("../assets/fonts/adc07ffd-0920-4486-9f49-b5fb47e0a8a5.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: block;
  src: url("../assets/fonts/18382519-1a60-4e62-a1d9-3ce1d619c90a.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/ecd49476-144e-46a1-882b-e862208064c2.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/3820516a-5b65-4950-b15e-edd128ebd77e.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/56685e7b-2d94-4c21-b5a9-843a0716e487.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 800;
  font-display: block;
  src: url("../assets/fonts/ecd49476-144e-46a1-882b-e862208064c2.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 800;
  font-display: block;
  src: url("../assets/fonts/3820516a-5b65-4950-b15e-edd128ebd77e.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 800;
  font-display: block;
  src: url("../assets/fonts/56685e7b-2d94-4c21-b5a9-843a0716e487.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/d0327e71-77ca-49ea-8c76-e814eb692b37.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/a0020569-04e4-4b97-b658-5722a8e4e4f5.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/0ecb40df-748f-49e7-a692-2b4dac851ea6.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 800;
  font-display: block;
  src: url("../assets/fonts/d0327e71-77ca-49ea-8c76-e814eb692b37.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 800;
  font-display: block;
  src: url("../assets/fonts/a0020569-04e4-4b97-b658-5722a8e4e4f5.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 800;
  font-display: block;
  src: url("../assets/fonts/0ecb40df-748f-49e7-a692-2b4dac851ea6.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../assets/fonts/36b35f68-2632-42d0-a785-9414ecfd2d11.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../assets/fonts/3ad8164b-70c4-4fa6-9519-7fe13f966409.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../assets/fonts/3e3a8df5-3837-418c-80c3-fa3820e8ad17.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../assets/fonts/56ad0181-003f-4b23-bb87-89f0b9b4ecdd.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../assets/fonts/f621d59c-d1a9-48c5-9711-38a0ca06482f.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../assets/fonts/4621b862-c432-45ba-9612-6007851b0975.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../assets/fonts/0732e01a-feea-47ae-8646-8553d24506d2.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url("../assets/fonts/36b35f68-2632-42d0-a785-9414ecfd2d11.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url("../assets/fonts/3ad8164b-70c4-4fa6-9519-7fe13f966409.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url("../assets/fonts/3e3a8df5-3837-418c-80c3-fa3820e8ad17.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url("../assets/fonts/56ad0181-003f-4b23-bb87-89f0b9b4ecdd.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url("../assets/fonts/f621d59c-d1a9-48c5-9711-38a0ca06482f.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url("../assets/fonts/4621b862-c432-45ba-9612-6007851b0975.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url("../assets/fonts/0732e01a-feea-47ae-8646-8553d24506d2.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/36b35f68-2632-42d0-a785-9414ecfd2d11.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/3ad8164b-70c4-4fa6-9519-7fe13f966409.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/3e3a8df5-3837-418c-80c3-fa3820e8ad17.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/56ad0181-003f-4b23-bb87-89f0b9b4ecdd.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/f621d59c-d1a9-48c5-9711-38a0ca06482f.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/4621b862-c432-45ba-9612-6007851b0975.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url("../assets/fonts/0732e01a-feea-47ae-8646-8553d24506d2.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  color-scheme:light only;
  --page-background:#FCECDB;
  --rosso:#DC4D1F;
  --rosso-deep:#DC4D1F;
  --crema:var(--page-background);
  --crema-dark:var(--page-background);
  --nero:#422817;
  --oro:#E8A33C;
  --verde:#6B8A45;
  --verde-vege:#0E8A3B;
  --bianco:#FFFFFF;
  --section-gutter:32px;
  --content-inset:32px;
  --font-sans:'Inter',sans-serif;
  --font-montserrat:'Montserrat','Inter',sans-serif;
  --font-bebas-neue:'Bebas Neue','Montserrat','Arial Narrow',sans-serif;
  --font-impact:'KBB Impact','Impact','Haettenschweiler','Arial Narrow Bold',sans-serif;
  --font-title:var(--font-montserrat);
  --font-title-weight:800;
  --font-title-case:uppercase;
  --safe-area-top:env(safe-area-inset-top, 0px);
  --safe-area-right:env(safe-area-inset-right, 0px);
  --safe-area-bottom:env(safe-area-inset-bottom, 0px);
  --safe-area-left:env(safe-area-inset-left, 0px);
  --app-viewport-height:100vh;
  --mobile-shell-viewport-height:var(--app-viewport-height);
}
@supports (height:100svh){
  :root{
    --app-viewport-height:100svh;
  }
}
/* One extent for installed portrait page shells. Fixed controls still use
   their viewport's bottom edge, not a top offset calculated from this size. */
@media (display-mode: standalone) and (max-width: 760px) and (orientation: portrait){
  :root{--mobile-shell-viewport-height:100vh;}
  @supports (height:100lvh){
    :root{--mobile-shell-viewport-height:100lvh;}
  }
}
/* 显式禁用任何系统级深色模式适配 */
@media (prefers-color-scheme: dark){
  :root{
    color-scheme:light only;
  }
  html, body{
    background-color:var(--page-background) !important;
    color:#422817 !important;
  }
}
*{margin:0;padding:0;box-sizing:border-box}
button, input{font:inherit}
button{appearance:none}
a:focus-visible,
button:focus-visible,
input:focus-visible{
  outline:3px solid var(--oro);
  outline-offset:3px;
}

/* Shared surface contract: borderless support surfaces and single-stroke form focus. */
#page-contatti .contact-channel-card,
#page-faq .support-faq-shell{
  border:0;
}

.lead-form input:focus-visible,
.lead-form select:focus-visible,
.lead-form textarea:focus-visible{
  border-color:var(--nero);
  box-shadow:none;
  outline:0;
  outline-offset:0;
}

@media (hover:none) and (pointer:coarse){
  a,
  button,
  input,
  [role="button"]{
    -webkit-tap-highlight-color:transparent;
  }
  a:focus,
  button:focus,
  input:focus,
  [role="button"]:focus{
    outline:none;
    outline-offset:0;
  }
}
html,body{
  overflow-x:hidden !important;
  overflow-y:auto;
  -ms-overflow-style:none;
  scrollbar-width:none;
  width:100% !important;
  max-width:100vw !important;
  position:relative;
  touch-action:auto;
  overscroll-behavior-y:auto;
  overscroll-behavior-x:none;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar{
  display:none;
  width:0;
  height:0;
}
html{
  background-color:var(--page-background);
  scroll-behavior:smooth;
}
body{
  font-family:var(--font-sans);
  background-color:var(--page-background);
  color:var(--nero);
  font-size:16px;
  line-height:1.5;
  min-height:100svh;
  -webkit-overflow-scrolling:touch;
}
main,
.page,
.task-page-section,
.task-page-intro{
  background-color:transparent;
}
.font-montserrat{font-family:var(--font-montserrat)}
.font-bebas-neue{font-family:var(--font-bebas-neue)}
.font-impact{font-family:var(--font-impact)}
body.menu-open{overflow:hidden}
/* 强制所有顶层容器永远不超过视口宽度 */
.page, section, header, footer, .hero, .container, .nav{
  max-width:100vw !important;
  overflow-x:clip;
}
/* 任何 img 默认不可超宽 */
img{max-width:100%;height:auto}
/* ============ SCROLL ENTRANCE ANIMATIONS ============ */
.reveal{
  opacity:0;
  transform:translateY(40px);
  transition:opacity .8s cubic-bezier(.2,.6,.2,1), transform .8s cubic-bezier(.2,.6,.2,1);
  will-change:transform,opacity;
}
.reveal.visible{
  opacity:1;
  transform:translateY(0);
}
.reveal.fade-left{transform:translateX(-50px)}
.reveal.fade-left.visible{transform:translateX(0)}
.reveal.fade-right{transform:translateX(50px)}
.reveal.fade-right.visible{transform:translateX(0)}
.reveal.scale-in{transform:scale(.85);opacity:0}
.reveal.scale-in.visible{transform:scale(1);opacity:1}
.reveal.delay-1{transition-delay:.1s}
.reveal.delay-2{transition-delay:.2s}
.reveal.delay-3{transition-delay:.3s}
.reveal.delay-4{transition-delay:.4s}
.reveal.delay-5{transition-delay:.5s}

/* ============ BUTTON SHINE ============ */
.btn{position:relative;overflow:hidden}
.btn::after{
  content:'';
  position:absolute;
  top:0;left:-100%;
  width:100%;height:100%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent);
  transition:left .6s;
}
.btn:hover::after{left:100%}

/* ============ CARD 3D HOVER ============ */
.product, .cat-card, .store-card, .coupon{
  transition:transform .35s cubic-bezier(.2,.6,.2,1), box-shadow .35s, border-color .25s;
}
.cat-card, .store-card, .coupon{
  transform-style:preserve-3d;
}
.cat-card:hover{
  transform:translateY(-8px) rotate(-2deg) scale(1.04);
}
.product:hover .product-emoji{
  transform:scale(1.1) rotate(-4deg);
}
.product:is(:hover, .is-mobile-expanded) .product-photo{
  transform:
    translateX(var(--product-photo-hover-shift-x))
    scale(var(--product-photo-hover-scale))
    rotate(var(--product-photo-hover-rotate));
}
.product-emoji{transition:transform .4s}

/* ============ ANIMATED COUNTERS ============ */
.stat strong{
  display:inline-block;
  transition:transform .4s;
}
.stat:hover strong{transform:scale(1.15) rotate(-3deg)}

/* ============ FLOATING DECORATIONS GLOBAL ============ */
.float-deco{
  position:absolute;
  font-size:60px;
  opacity:.1;
  pointer-events:none;
  animation:driftDeco 18s linear infinite;
  z-index:0;
}
@keyframes driftDeco{
  0%{transform:translate(0,0) rotate(0)}
  25%{transform:translate(40px,-30px) rotate(20deg)}
  50%{transform:translate(80px,0) rotate(-10deg)}
  75%{transform:translate(40px,40px) rotate(30deg)}
  100%{transform:translate(0,0) rotate(0)}
}

/* ============ PROMO CARD WIGGLE ============ */
.promo-card{
  transition:transform .4s cubic-bezier(.2,.6,.2,1);
}
.promo-card:hover{
  transform:translateY(-8px) rotate(-1deg);
}
.promo-card:hover .promo-bg-emoji{
  animation:wobble 1s ease-in-out infinite;
}
@keyframes wobble{
  0%,100%{transform:rotate(15deg) scale(1)}
  50%{transform:rotate(25deg) scale(1.1)}
}

/* ============ SECTION TITLE UNDERLINE ON SCROLL ============ */
.section-title em{
  position:relative;
  display:inline-block;
}
.section-title em::after{
  content:'';
  position:absolute;
  left:0;bottom:0;
  width:0;height:6px;
  background:var(--oro);
  z-index:-1;
  transition:width .8s cubic-bezier(.2,.6,.2,1) .3s;
}
.reveal.visible .section-title em::after,
.section-title.has-underline em::after{
  width:100%;
}

/* ============ MASCOT NAVIGATOR (吉祥物在某些区域出现) ============ */
.mascot-helper{
  position:absolute;
  width:120px;height:auto;
  z-index:5;
  filter:drop-shadow(0 12px 20px rgba(0,0,0,.25));
  pointer-events:none;
}
.mascot-helper.bounce{animation:mascotBounce 4s ease-in-out infinite}
@keyframes mascotBounce{
  0%,100%{transform:translateY(0) rotate(-5deg)}
  50%{transform:translateY(-15px) rotate(5deg)}
}

/* ============ RESPECT REDUCED MOTION ============ */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* ============ HEADER ============ */
body > header{
  position:sticky;top:0;z-index:40;
  background-color:var(--page-background);
  background-image:none;
  border-bottom:0;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  padding-top:var(--safe-area-top);
}
.nav{
  max-width:1400px;margin:0 auto;
  padding:18px 32px;
  display:flex;align-items:center;justify-content:space-between;
  gap:32px;
}
.logo{
  display:flex;align-items:center;gap:12px;
  cursor:pointer;
  color:inherit;text-decoration:none;
}
.logo-mark{
  width:48px;height:48px;
  border-radius:50%;
  display:block;
  transition:transform .3s;
  flex-shrink:0;
}
.logo:hover .logo-mark{transform:rotate(-12deg) scale(1.05)}
@keyframes spin{to{transform:rotate(360deg)}}
.logo-text{
  font-family:var(--font-montserrat);
  font-weight:800;font-size:22px;
  letter-spacing:-.02em;
  font-style:normal;
  line-height:1;
  text-transform:uppercase;
}
header .logo-text-kebab{
  color:var(--rosso);
}
.logo-text small{
  display:block;font-size:9px;font-style:normal;
  font-family:'Inter',sans-serif;font-weight:600;
  letter-spacing:.3em;color:var(--rosso);
  margin-top:4px;
}
.btn{
  padding:12px 22px;border-radius:999px;
  font-weight:600;font-size:14px;
  border:none;cursor:pointer;
  text-decoration:none;display:inline-flex;align-items:center;gap:8px;
  transition:all .25s;
  font-family:inherit;
  letter-spacing:.01em;
}
.btn-primary{background:var(--rosso);color:var(--crema);box-shadow:0 4px 0 var(--rosso-deep)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--rosso-deep)}
.btn-primary:active{transform:translateY(2px);box-shadow:0 2px 0 var(--rosso-deep)}
.btn-ghost{background:transparent;color:var(--nero);border:1.5px solid var(--nero)}
.btn-ghost:hover{background:var(--nero);color:var(--crema)}
.location-pill{
  display:flex;align-items:center;gap:8px;
  padding:8px 14px;background:var(--bianco);
  border-radius:999px;font-size:13px;
  border:1px solid rgba(66,40,23,.1);
  cursor:pointer;
}
.location-pill svg{width:14px;height:14px}

/* ============ PAGE STRUCTURE ============ */
.page{display:none;position:relative;z-index:2}
.page.active{display:block}
.page.active.page--entering{animation:fadeIn .35s ease-out both}
@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}

/* ============ HERO ============ */
.hero{
  position:relative;
  background:var(--rosso);
  color:var(--crema);
  overflow:hidden;
  padding:80px var(--section-gutter) 100px;
  min-height:88vh;
  display:flex;align-items:center;
}
.hero::before{
  content:'';position:absolute;
  width:140%;height:140%;
  top:-20%;left:-20%;
  background:radial-gradient(circle at 70% 50%, rgba(232,163,60,.4), transparent 50%);
  pointer-events:none;
  z-index:0;
}
.hero-video{
  display:none;
}
#page-home .hero{
  background:var(--nero);
}
#page-home .hero::before{
  background:
    radial-gradient(ellipse 68% 54% at 28% 42%, rgba(66,40,23,.44) 0%, rgba(66,40,23,.28) 36%, rgba(66,40,23,0) 72%),
    linear-gradient(
      180deg,
      rgba(66,40,23,.74) 0%,
      rgba(66,40,23,.68) 26%,
      rgba(66,40,23,.38) 42%,
      rgba(66,40,23,.12) 52%,
      rgba(66,40,23,0) 60%
    );
  height:auto;
  inset:0;
  width:auto;
  z-index:1;
}
#page-home .hero-video{
  display:block;
  height:100%;
  inset:0;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
  position:absolute;
  -webkit-user-select:none;
  user-select:none;
  transform:translateZ(0);
  width:100%;
  z-index:0;
}
#page-home .hero.has-game{
  align-items:stretch;
  background:var(--page-background);
  height:max(320px, calc(100dvh - var(--site-header-height, 76px) - var(--mobile-dock-height, 0px)));
  isolation:isolate;
  min-height:0;
  padding:0;
}
#page-home .hero.has-game::before{
  display:none;
}
#page-home .hero-game{
  background:var(--page-background);
  border:0;
  display:block;
  height:100%;
  inset:0;
  position:absolute;
  width:100%;
  z-index:2;
}
.site-game-fallback{
  align-items:center;
  background:var(--crema) url("../webgame/assets/kbb-paper.jpg") center / cover;
  color:var(--nero);
  display:flex;
  flex-direction:column;
  inset:0;
  justify-content:center;
  padding:clamp(24px, 6vw, 72px);
  position:absolute;
  text-align:center;
  z-index:3;
}
.site-game-fallback[hidden]{display:none}
.site-game-fallback > span{
  color:var(--rosso);
  font-family:var(--font-montserrat);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
}
.site-game-fallback > strong{
  font-family:var(--font-title);
  font-size:clamp(44px, 7vw, 96px);
  font-style:normal;
  font-weight:var(--font-title-weight);
  letter-spacing:-.04em;
  line-height:.92;
  margin-top:10px;
  text-transform:var(--font-title-case);
}
.site-game-fallback > p{
  color:rgba(66,40,23,.7);
  font-size:14px;
  line-height:1.55;
  margin:18px 0 0;
}
.site-game-fallback__actions{
  display:flex;
  gap:12px;
  margin-top:28px;
}
.site-game-fallback__actions button,
.site-game-fallback__actions a{
  align-items:center;
  border:2px solid var(--nero);
  border-radius:999px;
  display:inline-flex;
  font-family:var(--font-montserrat);
  font-size:12px;
  font-weight:900;
  justify-content:center;
  min-height:48px;
  padding:0 22px;
  text-decoration:none;
}
.site-game-fallback__actions button{
  background:var(--rosso);
  border-color:var(--rosso);
  color:var(--bianco);
}
.site-game-fallback__actions a{
  background:transparent;
  color:var(--nero);
}
.site-game-fallback__actions button:hover,
.site-game-fallback__actions button:focus-visible{
  background:var(--nero);
  border-color:var(--nero);
}
.site-game-fallback__actions button:focus-visible,
.site-game-fallback__actions a:focus-visible{
  outline:3px solid var(--oro);
  outline-offset:4px;
}
@media (max-width:760px){
  .site-game-fallback > strong{font-size:clamp(40px, 12vw, 58px)}
  .site-game-fallback > p{max-width:280px}
  .site-game-fallback__actions{flex-direction:column;width:min(260px, 100%)}
  .site-game-fallback__actions button,
  .site-game-fallback__actions a{width:100%}
}
#page-home .hero-grid{
  grid-template-columns:minmax(0, 760px);
  justify-content:start;
}
@media (min-width: 761px){
  #page-home .hero-grid{
    transform:translateY(clamp(-96px, -8vh, -64px));
  }
}
#page-home .hero-text{
  max-width:760px;
  text-shadow:0 3px 18px rgba(66,40,23,.34);
}
.hero-grid{
  margin:0 var(--content-inset);
  display:grid;grid-template-columns:1.1fr 1fr;gap:60px;
  align-items:center;
  position:relative;z-index:2;
  width:calc(100% - (var(--content-inset) * 2));
}
.hero-text{position:relative}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--nero);color:var(--oro);
  padding:8px 18px;border-radius:999px;
  font-size:12px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;margin-bottom:24px;
}
.hero h1{

  font-weight:800;
  font-size:clamp(56px, 8vw, 124px);
  line-height:.92;letter-spacing:-.04em;
  margin-bottom:28px;
}
.hero h1 em{
  font-style:italic;color:var(--oro);
  display:inline-block;
  position:relative;
}
.hero h1 em::after{
  content:'';position:absolute;
  bottom:8px;left:0;right:0;height:8px;
  background:var(--nero);z-index:-1;
  transform:skew(-6deg);
}
.hero-tag{
  font-family:'Caveat',cursive;
  font-size:32px;
  color:var(--oro);
  transform:rotate(-3deg);
  display:inline-block;
  margin-bottom:16px;
}
.hero p.lead{
  font-size:19px;line-height:1.5;
  max-width:480px;margin-bottom:0;
  color:rgba(252,236,219,.92);
}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.btn-cream{background:var(--crema);color:var(--rosso);box-shadow:0 4px 0 rgba(0,0,0,.3)}
.btn-cream:hover{transform:translateY(-2px);box-shadow:0 6px 0 rgba(0,0,0,.3)}
.btn-outline-cream{background:transparent;color:var(--crema);border:1.5px solid var(--crema)}
.btn-outline-cream:hover{background:var(--crema);color:var(--rosso)}

/* hero visual - oversized mascot only */
.hero-visual{
  position:relative;
  height:560px;
  max-width:100%;
  display:flex;align-items:center;justify-content:center;
}
.mascot-stage{
  position:relative;
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
}
.hero-mascot{
  position:relative;z-index:2;
  width:min(700px, 56vw);height:auto;
  max-width:105%;
  filter:drop-shadow(0 28px 34px rgba(0,0,0,.28));
  animation:mascotHeroWave 3.2s ease-in-out infinite;
  object-fit:contain;
  display:block;
  transform-origin:bottom center;
  pointer-events:none;
}
@keyframes mascotHeroWave{
  0%,100%{transform:rotate(-5deg) translateY(0) scale(1)}
  50%{transform:rotate(4deg) translateY(-10px) scale(1.03)}
}

@keyframes mascotMobileSlingIn{
  0%{opacity:0;transform:translateX(72vw) rotate(18deg) scale(1)}
  58%{opacity:1;transform:translateX(3vw) rotate(-7deg) scale(1)}
  78%{transform:translateX(6vw) rotate(4deg) scale(.99)}
  100%{opacity:1;transform:translateX(0) rotate(-2deg) scale(1)}
}

@keyframes mascotMobileWobble{
  0%,100%{transform:translateX(0) rotate(-2deg) translateY(0) scale(1)}
  50%{transform:translateX(-2px) rotate(3deg) translateY(-7px) scale(1.02)}
}

/* quality stamps — for Promessa section */
.quality-stamps{
  position:relative;
  width:100%;height:480px;
  display:flex;align-items:center;justify-content:center;
}
.stamp{
  position:absolute;
  width:200px;height:200px;
  border-radius:50%;
  background:var(--crema);
  border:5px solid var(--rosso);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 28px rgba(0,0,0,.3);
}
.stamp::before{
  content:'';position:absolute;inset:10px;
  border:2px dashed var(--rosso);
  border-radius:50%;
  animation:spin 30s linear infinite;
}
.stamp-inner{
  position:relative;z-index:2;
  text-align:center;

  color:var(--rosso);
}
.stamp-num{
  font-size:54px;font-weight:800;font-style:italic;
  line-height:1;
}
.stamp-num small{font-size:24px;font-weight:700}
.stamp-label{
  font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.15em;
  color:var(--nero);
  margin-top:6px;line-height:1.2;
  font-family:'Inter',sans-serif;
}
.stamp.s1{
  top:0;left:10%;
  transform:rotate(-12deg);
  animation:floatStamp 5s ease-in-out infinite;
}
.stamp.s2{
  bottom:8%;left:35%;
  background:var(--oro);border-color:var(--nero);
  transform:rotate(8deg);
  animation:floatStamp 6s ease-in-out infinite .8s;
}
.stamp.s2 .stamp-num,.stamp.s2 .stamp-label{color:var(--nero)}
.stamp.s2::before{border-color:var(--nero)}
.stamp.s3{
  top:18%;right:5%;
  background:var(--nero);border-color:var(--oro);
  transform:rotate(-6deg);
  animation:floatStamp 7s ease-in-out infinite .4s;
}
.stamp.s3 .stamp-num{color:var(--oro);font-size:84px}
.stamp.s3 .stamp-label{color:var(--crema)}
.stamp.s3::before{border-color:var(--oro)}
@keyframes floatStamp{
  0%,100%{transform:translateY(0) rotate(var(--r,-12deg))}
  50%{transform:translateY(-10px) rotate(var(--r,-12deg))}
}
.stamp.s1{--r:-12deg}
.stamp.s2{--r:8deg}
.stamp.s3{--r:-6deg}
.floating-tag{
  position:absolute;
  background:var(--nero);color:var(--crema);
  padding:14px 22px;border-radius:999px;
  font-family:'Caveat',cursive;font-size:24px;
  box-shadow:0 6px 0 rgba(0,0,0,.3);
}
.floating-tag.t1{top:5%;right:0;transform:rotate(8deg)}
.floating-tag.t2{bottom:10%;left:-5%;transform:rotate(-8deg);background:var(--crema);color:var(--rosso)}
.price-badge{
  position:absolute;
  top:30px;left:0;
  width:140px;height:140px;
  background:var(--crema);color:var(--rosso);
  border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-weight:800;
  transform:rotate(-15deg);
  box-shadow:0 8px 0 rgba(0,0,0,.3);
}
.price-badge small{font-size:12px;letter-spacing:.1em}
.price-badge strong{font-size:42px;line-height:1;font-style:italic}
.price-badge span{font-size:11px;margin-top:4px}

/* ============ SECTION COMMON ============ */
section{padding:100px var(--section-gutter);position:relative;z-index:2}
.task-page-section{
  padding-bottom:72px;
  padding-top:56px;
}
.task-page-intro{
  max-width:760px;
  margin:0 auto 38px;
  text-align:center;
}
.task-page-kicker{
  color:var(--rosso);
  display:block;
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  margin-bottom:10px;
  text-transform:uppercase;
}
.task-page-intro h1{

  font-size:clamp(42px, 6vw, 68px);
  font-weight:800;
  letter-spacing:-.035em;
  line-height:1;
  margin:0;
}
.task-page-intro > p{
  color:rgba(66,40,23,.7);
  font-size:16px;
  line-height:1.6;
  margin:18px auto 0;
  max-width:660px;
}
.menu-page-lead{
  margin:18px auto 0;
  max-width:900px;
}
.task-page-intro .menu-page-lead > p{
  color:rgba(66,40,23,.7);
  font-size:16px;
  line-height:1.6;
  margin:0;
}
.menu-page-allergens{
  color:var(--verde-vege);
  font-family:var(--font-montserrat);
  font-size:13px;
  font-weight:700;
  letter-spacing:.025em;
  text-transform:uppercase;
  text-underline-offset:3px;
  white-space:nowrap;
}
.menu-page-allergens-footer{
  display:flex;
  justify-content:center;
  margin:clamp(32px, 4vw, 56px) auto 0;
}
.task-page-meta{
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  justify-content:center;
  margin-top:18px;
}
.task-page-meta strong{
  color:var(--nero);
  font-size:14px;
}
.task-page-meta a,
.order-page-note a{
  color:var(--rosso-deep);
  font-weight:800;
  text-underline-offset:3px;
}
.container{
  margin:0 var(--content-inset);
  max-width:none;
  width:calc(100% - (var(--content-inset) * 2));
}
.section-head{
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:60px;gap:40px;flex-wrap:wrap;
}
.section-eyebrow{
  font-family:'Caveat',cursive;font-size:28px;
  color:var(--rosso);transform:rotate(-2deg);display:inline-block;
  margin-bottom:8px;
}
/* 深色/红色背景下 section-eyebrow 自动变金色,保证可读 */
.locator-hero .section-eyebrow,
.promo-hero .section-eyebrow,
.app-section .section-eyebrow,
.testimonial .section-eyebrow,
[class*="bg-dark"] .section-eyebrow{
  color:var(--oro);
}
/* 红底上的 eyebrow 同样需要金色 */
.promo-hero .hero-eyebrow{
  background:var(--nero);
  color:var(--oro);
}
.section-title{
  font-weight:800;
  font-size:clamp(40px, 5vw, 72px);
  line-height:1;letter-spacing:-.03em;
}
.section-title em{font-style:italic;color:var(--rosso)}
.section-sub{
  max-width:420px;font-size:16px;color:rgba(66,40,23,.7);
}

/* ============ CATEGORIE ============ */
.cat-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);gap:16px;
}
.cat-card{
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.1);
  border-radius:24px;
  padding:24px 16px;
  text-align:center;cursor:pointer;
  transition:all .3s;
  position:relative;overflow:hidden;
  color:inherit;
  font-family:inherit;
}
.cat-card:hover{
  transform:translateY(-6px);
  border-color:var(--rosso);
  background:var(--rosso);color:var(--crema);
}
.cat-card:hover .cat-icon{transform:scale(1.15) rotate(-8deg)}
.cat-icon{
  font-size:54px;margin-bottom:12px;
  display:block;
  transition:transform .4s;
}
.cat-name{
  font-weight:700;
  font-size:16px;letter-spacing:-.01em;
}
.cat-count{
  font-size:12px;color:rgba(66,40,23,.5);
  margin-top:4px;
}
.cat-card:hover .cat-count{color:rgba(252,236,219,.7)}
.empty-state{
  background:var(--bianco);
  border:1.5px dashed rgba(66,40,23,.2);
  border-radius:18px;
  color:rgba(66,40,23,.7);
  font-weight:600;
  margin-top:24px;
  padding:22px;
  text-align:center;
}
.empty-state[hidden]{display:none}

/* ============ PRODOTTI / MENU ============ */
.menu-flavor-groups:empty{min-height:100vh}
.menu-flavor-groups{
  display:grid;
  gap:28px;
}
.menu-flavor-row{
  --menu-flavor-reveal-x:-24px;
  align-items:stretch;
  display:grid;
  gap:20px;
  grid-template-columns:minmax(0, 1fr) minmax(0, 9fr);
  margin:0 auto;
  padding:0;
  width:79%;
  z-index:auto;
}
.menu-flavor-row--label-right{
  --menu-flavor-reveal-x:24px;
  grid-template-columns:minmax(0, 9fr) minmax(0, 1fr);
}
.menu-flavor-row--label-right .menu-flavor-card{
  grid-column:2;
  grid-row:1;
}
.menu-products-track{
  display:flex;
  gap:20px;
  grid-column:2;
  grid-row:1;
  min-width:0;
}
.menu-flavor-row--label-right .menu-products-track{
  grid-column:1;
}
.menu-flavor-card{
  --menu-flavor-card-background:var(--rosso);
  --menu-flavor-label-rotation:90deg;
  --menu-flavor-label-size:clamp(54.4px, 4.32vw, 70.4px);
  align-items:center;
  background:var(--menu-flavor-card-background);
  border-radius:22px;
  display:flex;
  justify-content:center;
  min-width:0;
  overflow:hidden;
  padding:18px 10px;
}
.menu-flavor-card h2{
  --kbb-name-brown:#40210F;
  --kbb-name-orange:#FFFFFF;
  --kbb-name-dark:#231815;
  --kbb-name-truffle:#FFFFFF;
  --kbb-name-bbq:#FFFFFF;
  --kbb-name-hot:#FFFFFF;
  --kbb-name-vege:#FFFFFF;
  font-family:var(--font-impact);
  font-size:var(--menu-flavor-label-size);
  font-synthesis:none;
  font-weight:400;
  line-height:1;
  margin:0;
  max-width:none;
  text-align:center;
  transform:rotate(var(--menu-flavor-label-rotation));
  transform-origin:center;
  white-space:nowrap;
  width:max-content;
}
.menu-flavor-link{
  align-items:center;
  color:var(--bianco);
  display:flex;
  height:100%;
  justify-content:center;
  min-height:44px;
  position:relative;
  text-decoration:none;
  width:100%;
}
.menu-flavor-link h2{
  transition:opacity 180ms ease, transform 300ms cubic-bezier(.2,.7,.2,1);
}
.menu-flavor-link-discover{
  font-family:var(--font-impact);
  font-size:var(--menu-flavor-label-size);
  font-synthesis:none;
  font-weight:400;
  left:50%;
  letter-spacing:0;
  line-height:1;
  opacity:0;
  position:absolute;
  text-align:center;
  top:50%;
  transform:translate(-50%,-50%) rotate(90deg) translateY(8px);
  transition:opacity 180ms ease, transform 300ms cubic-bezier(.2,.7,.2,1);
  white-space:nowrap;
}
@media (hover:hover) and (pointer:fine){
  .menu-flavor-link:hover h2{
    opacity:0;
    transform:rotate(var(--menu-flavor-label-rotation)) scale(.88);
  }
  .menu-flavor-link:hover .menu-flavor-link-discover{
    opacity:1;
    transform:translate(-50%,-50%) rotate(90deg) translateY(0);
  }
}
.menu-flavor-link:focus-visible h2,
.menu-flavor-link:active h2{
  opacity:0;
  transform:rotate(var(--menu-flavor-label-rotation)) scale(.88);
}
.menu-flavor-link:focus-visible .menu-flavor-link-discover,
.menu-flavor-link:active .menu-flavor-link-discover{
  opacity:1;
  transform:translate(-50%,-50%) rotate(90deg) translateY(0);
}
.menu-flavor-link:focus-visible{
  box-shadow:inset 0 0 0 4px var(--nero),inset 0 0 0 7px var(--bianco);
  outline:0;
}
.menu-flavor-link:active{filter:brightness(.9)}
.menu-flavor-card[data-flavor="tartufo"]{
  --menu-flavor-card-background:#C79F62;
}
.menu-flavor-card[data-flavor="crispy-bbq"]{
  --menu-flavor-card-background:#844022;
}
.menu-flavor-card[data-flavor="spicy-hot"]{
  --menu-flavor-card-background:#D7261C;
}
.menu-flavor-card[data-flavor="feta-vege"],
.menu-flavor-card[data-flavor="fala-vege"]{
  --menu-flavor-card-background:var(--verde-vege);
}
.menu-flavor-card .menu-name-part--feta-outline{
  --menu-name-layer-fill:#FFFFFF;
  --menu-name-layer-stroke:#DC4D1F;
}
.menu-flavor-card .menu-name-part--layered{
  --menu-name-outline-stroke:clamp(5px, .08em, 7px);
}

.products{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:20px;
  align-items:stretch;
}
.menu-product-scope{
  display:grid;
}
.menu-product-scope .menu-products-track > .product{
  transition:
    opacity .2s cubic-bezier(.4,0,.2,1),
    translate .46s cubic-bezier(.2,.6,.2,1),
    flex-basis var(--menu-card-width-duration, .5s) cubic-bezier(.25,.1,.25,1),
    flex-grow var(--menu-bubble-flex-duration, .72s) cubic-bezier(.25,.1,.25,1),
    transform .35s cubic-bezier(.2,.6,.2,1),
    box-shadow .35s,
    border-color .25s;
}
.menu-product-scope .menu-flavor-row--reveal > .menu-flavor-card,
.menu-product-scope .menu-flavor-row--reveal > .menu-products-track > .product{
  opacity:0;
  transition:
    opacity .46s cubic-bezier(.2,.6,.2,1),
    translate .46s cubic-bezier(.2,.6,.2,1),
    flex-basis var(--menu-card-width-duration, .44s) cubic-bezier(.25,.1,.25,1),
    flex-grow var(--menu-bubble-flex-duration, .72s) cubic-bezier(.25,.1,.25,1),
    transform .35s cubic-bezier(.2,.6,.2,1),
    box-shadow .35s;
  transition-delay:
    calc(var(--menu-reveal-step, 0) * 120ms),
    calc(var(--menu-reveal-step, 0) * 120ms),
    0s,
    0s,
    0s,
    0s;
  translate:var(--menu-flavor-reveal-x) 0;
}
.menu-product-scope .menu-flavor-row--visible > .menu-flavor-card,
.menu-product-scope .menu-flavor-row--visible > .menu-products-track > .product{
  opacity:1;
  /* `none` is the same visual endpoint, but releases WebKit's identity transform layer. */
  translate:none;
}
@media (prefers-reduced-motion: reduce){
  .menu-product-scope .menu-flavor-row--reveal > .menu-flavor-card,
  .menu-product-scope .menu-flavor-row--reveal > .menu-products-track > .product{
    opacity:1;
    transition-delay:0s;
    translate:none;
  }
}
.menu-product-scope .menu-products-track > .product,
.menu-product-scope .menu-flavor-card{
  height:clamp(500px, 35.5vw, 560px);
}
.menu-product-scope .menu-products-track > .product{
  flex-basis:0;
  flex-grow:1;
  flex-shrink:1;
  min-width:0;
  width:auto;
}
.menu-product-scope .product{
  background:transparent;
  isolation:auto;
  overflow:visible;
  width:100%;
}
.menu-product-scope .product-surface{
  background:var(--bianco);
  border-radius:22px;
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  grid-template-rows:minmax(0, 1fr) auto;
  inset:0;
  isolation:isolate;
  overflow:hidden;
  position:absolute;
  transition:
    transform .35s cubic-bezier(.2,.6,.2,1),
    box-shadow .35s;
}
@media (min-width: 761px) and (hover: hover) and (pointer: fine){
  .menu-product-scope .menu-products-track > .product:not(.is-inline-selected, .is-inline-expanded):hover > .product-surface{
    box-shadow:0 20px 40px -10px rgba(26,20,16,.15);
    transform:translateY(-6px);
  }
}
.menu-product-scope .product-img{
  aspect-ratio:auto;
  min-height:0;
  min-width:0;
  width:100%;
}
.menu-product-scope .product-info{
  padding:18px;
}
.menu-product-scope .product-name{
  font-size:clamp(36px, 2.7vw, 46px);
}
.product-name--wordmark .menu-name-format,
.product-name--wordmark .menu-name-flavor{
  display:block;
}
.product-name--wordmark .menu-name-gap{
  display:none;
}
.menu-product-scope .product-desc{
  -webkit-box-orient:initial;
  -webkit-line-clamp:unset;
  display:block;
  font-size:15px;
  min-width:0;
  overflow:visible;
}
.menu-product-scope .product-desc-summary{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.menu-product-scope .product-desc-full{
  display:none;
}
.product{
  background:var(--bianco);
  border-radius:22px;
  isolation:isolate;
  overflow:hidden;
  transform-style:flat;
  transition:
    transform .35s cubic-bezier(.2,.6,.2,1),
    box-shadow .35s,
    border-color .25s;
  position:relative;
  display:flex;flex-direction:column;
  cursor:pointer;
  min-width:0;
  height:100%;
}
.product[hidden]{display:none !important}
.product.filter-enter{
  animation:menuProductEnter .22s cubic-bezier(.2,.65,.25,1) both;
}
@keyframes menuProductEnter{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}
.product-img{
  aspect-ratio:1 / 1;
  height:auto;
  position:relative;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.menu-product-detail-link{
  cursor:pointer;
  inset:0;
  position:absolute;
  z-index:3;
}
.menu-product-detail-link[hidden]{display:none}
.menu-product-detail-link:focus-visible{
  box-shadow:inset 0 0 0 4px var(--rosso),inset 0 0 0 7px var(--bianco);
  outline:0;
}
.product-photo{
  --product-photo-hover-scale:1.65;
  --product-photo-hover-shift-x:0%;
  --product-photo-hover-rotate:-4deg;
  --product-photo-scale:1.5;
  --product-photo-shift-x:0%;
  width:88%;height:88%;
  object-fit:contain;
  position:relative;
  filter:none;
  transform:
    translateX(var(--product-photo-shift-x))
    scale(var(--product-photo-scale))
    rotate(0deg);
  transform-origin:center;
  transition:transform .4s cubic-bezier(.2,.6,.2,1);
}
.product[data-cat="piadine"] .product-photo{
  --product-photo-hover-scale:1.75;
  --product-photo-hover-shift-x:-17.5%;
  --product-photo-scale:1.6;
  --product-photo-shift-x:-16%;
}
.product-emoji{font-size:96px;filter:drop-shadow(0 8px 16px rgba(0,0,0,.2));position:relative}
.product-tag{
  position:absolute;top:14px;left:14px;
  background:var(--rosso);color:var(--crema);
  padding:6px 12px;border-radius:999px;
  font-size:11px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;
}
.product-tag.new{background:var(--nero)}
.product-tag.spicy{background:var(--rosso-deep)}
.product-info{padding:18px;flex:1;display:flex;flex-direction:column}
.product-name{

  font-size:20px;
  font-weight:800;
  letter-spacing:0;
  line-height:1.1;
  margin:0 0 8px;
  overflow-wrap:anywhere;
}
.product-name--wordmark{
  --kbb-name-brown:#40210F;
  --kbb-name-orange:#DC4D1F;
  --kbb-name-dark:#231815;
  --kbb-name-truffle:#C79F62;
  --kbb-name-bbq:#844022;
  --kbb-name-hot:#D7261C;
  --kbb-name-vege:var(--verde-vege);
  font-family:var(--font-impact);
  font-size:20px;
  font-synthesis:none;
  font-weight:400;
  letter-spacing:0;
  line-height:1;
  overflow-wrap:normal;
  text-transform:none;
  word-break:normal;
}
.menu-name-visual{
  color:var(--kbb-name-brown, #40210F);
  font:inherit;
  letter-spacing:inherit;
  line-height:inherit;
}
.menu-name-format,
.menu-name-flavor{
  display:inline-block;
}
.menu-name-flavor{
  white-space:nowrap;
}
.menu-name-part{
  display:inline;
}
.menu-name-format,
.menu-name-part--brown{
  color:var(--kbb-name-brown, #40210F);
}
.menu-name-part--orange{
  color:var(--kbb-name-orange, #DC4D1F);
}
.menu-name-part--dark{
  color:var(--kbb-name-dark, #231815);
}
.menu-name-part--bbq{
  color:var(--kbb-name-bbq, #844022);
}
.menu-name-part--hot{
  color:var(--kbb-name-hot, #D7261C);
}
.menu-name-part--vege{
  color:var(--kbb-name-vege, #0E8A3B);
}
.menu-name-part--truffle{
  color:var(--kbb-name-truffle, #C79F62);
}
.menu-name-part--feta-outline{
  --menu-name-layer-fill:#FFFFFF;
  --menu-name-layer-stroke:var(--kbb-name-orange, #DC4D1F);
}
.menu-name-part--layered{
  --menu-name-outline-stroke:clamp(2px, .064em, 4px);
  color:transparent;
  display:inline-grid;
  isolation:isolate;
  text-shadow:none;
  -webkit-text-stroke:0 transparent;
  vertical-align:baseline;
}
.menu-name-layer{
  grid-area:1 / 1;
  font:inherit;
  letter-spacing:inherit;
  line-height:inherit;
  pointer-events:none;
  text-shadow:none;
  white-space:nowrap;
}
.menu-name-layer--outline{
  color:var(--menu-name-layer-stroke);
  -webkit-text-stroke-color:var(--menu-name-layer-stroke);
  -webkit-text-stroke-width:var(--menu-name-outline-stroke);
  z-index:0;
}
.menu-name-layer--fill{
  color:var(--menu-name-layer-fill);
  -webkit-text-stroke:0 transparent;
  z-index:1;
}
@media (max-width: 560px){
  .menu-product-scope .product-name .menu-name-part--layered{
    --menu-name-outline-stroke:2px;
  }

  .product-name--modal .menu-name-part--layered{
    --menu-name-outline-stroke:2px;
  }
}

.product-desc{
  font-size:14px;color:rgba(66,40,23,.65);
  line-height:1.5;margin-bottom:16px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.product-desc-summary{display:block}
.product-desc-full{display:none}
.product-ingredients{
  font-size:12.5px;color:rgba(66,40,23,.58);
  line-height:1.45;margin-bottom:18px;flex:1;
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.product-foot{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:0;
}
.product-category{
  display:inline-flex;align-items:center;
  min-height:34px;padding:7px 12px;
  border-radius:999px;background:var(--crema);
  color:rgba(66,40,23,.72);
  font-size:12px;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;
}

.product-price,
.modal-product-price{
  color:var(--rosso-deep);
  font-size:16px;
  font-weight:900;
  white-space:nowrap;
}

.modal-product-price{
  font-size:22px;
  margin:4px 0 12px;
}

@media (max-width: 760px) and (orientation: portrait){
  .menu-flavor-row{
    --menu-bubble-flex-duration:.72s;
    --menu-mobile-card-height:clamp(240px, 50.667vw, 280px);
    --menu-mobile-label-grow:1;
    --menu-mobile-collapsed-grow:2;
    --menu-mobile-expanded-grow:4;
    align-items:stretch;
    display:flex;
    gap:8px;
    width:100%;
  }

  .menu-flavor-row.is-touch-interacting{
    --menu-bubble-flex-duration:.36s;
  }

  .menu-flavor-row--label-right .menu-flavor-card{
    order:1;
  }

  .menu-products-track{
    flex:8 1 0;
    gap:8px;
    min-width:0;
    width:0;
  }

  .menu-flavor-card{
    --menu-flavor-label-rotation:90deg;
    --menu-flavor-label-size:clamp(26.88px, 5.12vw, 38.4px);
    flex:var(--menu-mobile-label-grow) 1 0;
    padding:10px 0;
    width:0;
  }

  .menu-flavor-link-discover{font-size:var(--menu-flavor-label-size)}

  .menu-product-scope .menu-flavor-card,
  .menu-product-scope .menu-products-track > .product{
    height:var(--menu-mobile-card-height);
  }

  .menu-product-scope .menu-products-track > .product{
    flex-basis:0;
    flex-grow:var(--menu-mobile-collapsed-grow);
    flex-shrink:1;
    touch-action:pan-y;
    width:0;
  }

  .menu-product-scope .menu-products-track > .product.is-mobile-expanded{
    flex-grow:var(--menu-mobile-expanded-grow);
  }

  .menu-product-scope .product-img{
    overflow:visible;
  }

  .menu-product-scope .product-photo{
    height:clamp(108px, 28vw, 190px);
    max-width:none;
    width:clamp(108px, 28vw, 190px);
  }

  .menu-product-scope .product-info{
    flex:0 0 auto;
    min-width:clamp(150px, 38vw, 220px);
    width:clamp(150px, 38vw, 220px);
  }

  .menu-product-scope .product-name{
    font-size:clamp(16px, 3.6vw, 21px);
  }

  .menu-product-scope .product-desc{
    display:none;
  }

  .menu-product-scope .menu-flavor-row:is(.is-inline-clearing, .is-inline-expanded, .is-inline-restoring, .is-inline-revealing){
    --menu-bubble-flex-duration:.5s;
  }

  .menu-product-scope .menu-products-track{
    --menu-card-width-duration:.5s;
    transition:gap var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1);
  }

  .menu-product-scope .menu-products-track > .product{
    --menu-collapsed-info-height:clamp(62px, 14vw, 76px);
    --menu-detail-copy-width:54%;
    --menu-detail-image-width:56%;
    display:block;
  }

  .menu-product-scope .menu-products-track > .product > :where(.product-surface) > .product-img{
    bottom:var(--menu-collapsed-info-height);
    height:auto;
    left:0;
    position:absolute;
    right:0;
    top:0;
    transition:
      bottom var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1),
      left var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1),
      right var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1);
    width:auto;
  }

  .menu-product-scope .menu-products-track > .product > :where(.product-surface) > .product-info{
    bottom:0;
    height:auto;
    left:0;
    min-width:0;
    position:absolute;
    right:0;
    top:calc(100% - var(--menu-collapsed-info-height));
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
    width:auto;
    z-index:1;
  }

  .menu-product-scope .menu-flavor-row.is-inline-clearing > .menu-products-track > .product.is-inline-dismissed{
    opacity:0;
    pointer-events:none;
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
  }

  .menu-product-scope .menu-flavor-row.is-inline-clearing > .menu-products-track > .product.is-inline-selected > :where(.product-surface) > .product-info{
    opacity:0;
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
  }

  .menu-product-scope .menu-flavor-row.is-inline-expanded > .menu-products-track{
    gap:0;
  }

  .menu-product-scope .menu-flavor-row.is-inline-expanded > .menu-products-track > .product.is-inline-dismissed{
    flex-basis:0;
    flex-grow:0;
    opacity:0;
    pointer-events:none;
    transition:
      flex-basis var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1),
      flex-grow var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1),
      visibility 0s linear;
    visibility:hidden;
  }

  .menu-product-scope .menu-flavor-row.is-inline-restoring > .menu-products-track > .product.is-inline-dismissed{
    opacity:0;
    pointer-events:none;
    transition:
      flex-basis var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1),
      flex-grow var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1);
    visibility:visible;
  }

  .menu-product-scope .menu-flavor-row.is-inline-restoring > .menu-products-track > .product.is-inline-selected > :where(.product-surface) > .product-info{
    opacity:0;
  }

  .menu-product-scope .menu-flavor-row.is-inline-revealing > .menu-products-track > .product.is-inline-dismissed{
    opacity:1;
    pointer-events:none;
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
    visibility:visible;
  }

  .menu-product-scope .menu-flavor-row.is-inline-revealing > .menu-products-track > .product.is-inline-selected > :where(.product-surface) > .product-info{
    opacity:1;
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
  }

  .menu-product-scope .menu-products-track > .product.is-inline-expanded{
    box-shadow:none;
    cursor:default;
    flex-basis:100%;
    flex-grow:1;
    opacity:1;
    overflow:hidden;
    transform:none;
    translate:none;
    z-index:2;
  }

  .menu-product-scope .product:is(.is-inline-selected, .is-inline-expanded) > .product-surface{
    box-shadow:none;
    transform:none;
  }

  .menu-product-scope .product.is-inline-content-layout .product-info{
    align-items:flex-start;
    display:flex;
    justify-content:flex-start;
    min-width:0;
    opacity:0;
    padding:clamp(46px, 10vw, 54px) 12px 12px 0;
    right:calc(100% - var(--menu-detail-copy-width));
    top:0;
    transform:translateX(20px);
  }

  .menu-product-scope .product.is-inline-content-layout.is-inline-content-visible .product-info{
    opacity:1;
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
  }

  .menu-product-scope .product.is-inline-content-layout.is-inline-content-hiding .product-info{
    opacity:0;
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
  }

  .menu-product-scope .menu-flavor-row--label-right > .menu-products-track > .product.is-inline-content-layout .product-info{
    align-items:flex-end;
    left:calc(100% - var(--menu-detail-copy-width));
    padding-left:12px;
    padding-right:0;
    right:0;
    text-align:right;
    transform:translateX(-20px);
  }

  .menu-product-scope .product.is-inline-expanded .product-img{
    bottom:0;
    left:calc(100% - var(--menu-detail-image-width));
    min-width:0;
    overflow:visible;
  }

  .menu-product-scope .menu-flavor-row--label-right > .menu-products-track > .product.is-inline-expanded .product-img{
    left:0;
    right:calc(100% - var(--menu-detail-image-width));
  }

  .menu-product-scope .menu-products-track > .product .product-photo{
    transition:transform .5s cubic-bezier(.25,.1,.25,1);
  }

  .menu-product-scope .product.is-inline-content-layout .product-name{
    font-size:clamp(25px, 7vw, 34px);
    line-height:.96;
    margin:0 0 6px;
    max-width:100%;
  }

  .menu-product-scope .product.is-inline-content-layout .product-desc{
    color:rgba(66,40,23,.75);
    display:block;
    font-size:clamp(11.5px, 2.8vw, 12px);
    line-height:1.25;
    margin:0;
    max-width:calc(100% - 32px);
    min-height:0;
    overflow:visible;
    width:calc(100% - 32px);
  }

  .menu-product-scope .product.is-inline-content-layout .product-desc-summary{
    display:none;
  }

  .menu-product-scope .product.is-inline-content-layout .product-desc-full{
    display:block;
    overflow:visible;
  }

  .menu-product-scope .product.is-inline-content-layout .menu-inline-close{
    appearance:none;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
    color:var(--crema);
    cursor:pointer;
    display:inline-flex;
    font-family:var(--font-impact);
    font-size:clamp(18px, 5vw, 24px);
    font-weight:400;
    left:0;
    letter-spacing:.035em;
    line-height:1;
    min-height:0;
    padding:3px 0;
    position:absolute;
    text-transform:uppercase;
    top:11px;
    transition:color 90ms ease;
  }

  .menu-product-scope .menu-flavor-row--label-right > .menu-products-track > .product.is-inline-content-layout .menu-inline-close{
    left:auto;
    right:0;
  }

  .menu-product-scope .product.is-inline-content-layout .menu-inline-close:active{
    color:var(--nero);
  }

  .menu-product-scope .product.is-inline-content-layout .menu-inline-order{
    align-items:center;
    background:transparent;
    border:0;
    border-radius:0;
    color:var(--rosso);
    display:inline-flex;
    font-size:clamp(10px, 2.35vw, 12px);
    font-weight:1000;
    justify-content:flex-start;
    letter-spacing:.01em;
    bottom:8px;
    left:0;
    margin-top:0;
    position:absolute;
    min-height:36px;
    padding:6px 0;
    text-align:center;
    text-decoration:underline;
    text-transform:uppercase;
    text-underline-offset:4px;
    width:auto;
  }

  .menu-product-scope .menu-flavor-row--label-right > .menu-products-track > .product.is-inline-content-layout .menu-inline-order{
    left:auto;
    right:0;
  }
}

/* ============ MENU INLINE DETAIL ============ */
.menu-inline-close,
.menu-inline-order{
  display:none;
}

.menu-inline-order:focus-visible{
  outline:3px solid var(--oro);
  outline-offset:3px;
}

@media (min-width: 761px){
  .menu-product-scope .product-desc-summary{
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    display:-webkit-box;
    white-space:normal;
  }

  .menu-product-scope .menu-products-track{
    --menu-card-width-duration:.5s;
    --menu-bubble-flex-duration:.5s;
    transition:gap var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1);
  }

  .menu-product-scope .menu-products-track > .product{
    --menu-collapsed-info-height:clamp(160px, 11vw, 176px);
    --menu-detail-copy-width:38%;
    display:block;
  }

  .menu-product-scope .menu-products-track > .product > :where(.product-surface) > .product-img{
    bottom:var(--menu-collapsed-info-height);
    height:auto;
    left:0;
    position:absolute;
    right:0;
    top:0;
    transition:
      bottom var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1),
      left var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1),
      right var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1);
    width:auto;
  }

  .menu-product-scope .menu-products-track > .product > :where(.product-surface) > .product-info{
    bottom:0;
    height:auto;
    left:0;
    position:absolute;
    right:0;
    top:calc(100% - var(--menu-collapsed-info-height));
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
    width:auto;
    z-index:1;
  }

  .menu-product-scope .menu-flavor-row.is-inline-clearing > .menu-products-track > .product.is-inline-dismissed{
    opacity:0;
    pointer-events:none;
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
  }

  .menu-product-scope .menu-flavor-row.is-inline-clearing > .menu-products-track > .product.is-inline-selected > :where(.product-surface) > .product-info{
    opacity:0;
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
  }

  .menu-product-scope .menu-flavor-row.is-inline-expanded > .menu-products-track{
    gap:0;
  }

  .menu-product-scope .menu-flavor-row.is-inline-expanded > .menu-products-track > .product.is-inline-dismissed{
    flex-basis:0;
    flex-grow:0;
    opacity:0;
    pointer-events:none;
    transition:
      flex-basis var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1),
      flex-grow var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1),
      visibility 0s linear;
    visibility:hidden;
  }

  .menu-product-scope .menu-flavor-row.is-inline-restoring > .menu-products-track > .product.is-inline-dismissed{
    opacity:0;
    pointer-events:none;
    transition:
      flex-basis var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1),
      flex-grow var(--menu-card-width-duration) cubic-bezier(.25,.1,.25,1);
    visibility:visible;
  }

  .menu-product-scope .menu-flavor-row.is-inline-restoring > .menu-products-track > .product.is-inline-selected > :where(.product-surface) > .product-info{
    opacity:0;
  }

  .menu-product-scope .menu-flavor-row.is-inline-revealing > .menu-products-track > .product.is-inline-dismissed{
    opacity:1;
    pointer-events:none;
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
    visibility:visible;
  }

  .menu-product-scope .menu-flavor-row.is-inline-revealing > .menu-products-track > .product.is-inline-selected > :where(.product-surface) > .product-info{
    opacity:1;
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
  }

  .menu-product-scope .menu-products-track > .product.is-inline-expanded{
    box-shadow:none;
    cursor:default;
    flex-basis:100%;
    flex-grow:1;
    opacity:1;
    overflow:hidden;
    transform:none;
    translate:none;
    z-index:2;
  }

  .menu-product-scope .product:is(.is-inline-selected, .is-inline-expanded) > .product-surface{
    box-shadow:none;
    transform:none;
  }

  .menu-product-scope .product.is-inline-content-layout .product-info{
    align-items:flex-start;
    display:flex;
    justify-content:center;
    min-width:0;
    opacity:0;
    padding:clamp(42px, 4.4vw, 70px) clamp(30px, 3.4vw, 54px);
    right:calc(100% - var(--menu-detail-copy-width));
    top:0;
  }

  .menu-product-scope .product.is-inline-content-layout.is-inline-content-visible .product-info{
    opacity:1;
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
  }

  .menu-product-scope .product.is-inline-content-layout.is-inline-content-hiding .product-info{
    opacity:0;
    transition:opacity .2s cubic-bezier(.4,0,.2,1);
  }

  .menu-product-scope .menu-flavor-row--label-right > .menu-products-track > .product.is-inline-content-layout .product-info{
    left:calc(100% - var(--menu-detail-copy-width));
    right:0;
  }

  .menu-product-scope .product.is-inline-expanded .product-img{
    bottom:0;
    left:var(--menu-detail-copy-width);
    min-width:0;
    overflow:visible;
  }

  .menu-product-scope .menu-flavor-row.is-inline-restoring > .menu-products-track > .product.is-inline-selected > :where(.product-surface) > .product-img{
    overflow:visible;
  }

  .menu-product-scope .menu-flavor-row--label-right > .menu-products-track > .product.is-inline-expanded .product-img{
    left:0;
    right:var(--menu-detail-copy-width);
  }

  .flavor-detail-products-row.menu-flavor-row--label-right > .menu-products-track > .product[data-cat="piadine"] .product-photo{
    --product-photo-hover-shift-x:-9%;
    --product-photo-shift-x:-9%;
  }

  .menu-product-scope .menu-products-track > .product .product-photo{
    transition:transform .5s cubic-bezier(.25,.1,.25,1);
  }

  .menu-product-scope .menu-flavor-row--label-right > .menu-products-track > .product[data-cat="piadine"].is-inline-expanded .product-photo{
    translate:clamp(16px, 2vw, 32px) 0;
  }

  .menu-product-scope .product.is-inline-expanded .product-photo{
    height:88%;
    max-width:none;
    width:88%;
  }

  .menu-product-scope .product.is-inline-content-layout .product-name{
    font-size:clamp(44px, 4vw, 64px);
    line-height:.96;
    margin:0 0 16px;
    max-width:360px;
  }

  .menu-product-scope .product.is-inline-content-layout .product-desc{
    color:rgba(66,40,23,.75);
    display:block;
    font-size:clamp(15px, 1.28vw, 18px);
    line-height:1.5;
    margin:0;
    max-width:390px;
    overflow:visible;
  }

  .menu-product-scope .product.is-inline-content-layout .product-desc-summary{
    display:none;
  }

  .menu-product-scope .product.is-inline-content-layout .product-desc-full{
    display:block;
  }

  .menu-product-scope .product.is-inline-content-layout .menu-inline-close{
    align-items:center;
    appearance:none;
    background:transparent;
    border:0;
    border-radius:0;
    box-shadow:none;
    color:var(--crema);
    cursor:pointer;
    display:inline-flex;
    font-family:var(--font-impact);
    font-size:clamp(22px, 2vw, 30px);
    font-weight:400;
    left:clamp(30px, 3.4vw, 54px);
    letter-spacing:.035em;
    line-height:1;
    min-height:0;
    padding:4px 0;
    position:absolute;
    text-transform:uppercase;
    top:clamp(24px, 2.4vw, 38px);
    transition:color 90ms ease;
    -webkit-appearance:none;
  }

  .menu-product-scope .menu-flavor-row--label-right > .menu-products-track > .product.is-inline-content-layout .menu-inline-close{
    left:clamp(30px, 3.4vw, 54px);
  }

  .menu-product-scope .product.is-inline-content-layout .menu-inline-close:hover{
    color:var(--nero);
  }

  .menu-product-scope .product.is-inline-content-layout .menu-inline-close:active{
    color:var(--nero);
  }

  .menu-product-scope .product.is-inline-content-layout .menu-inline-order{
    align-items:center;
    background:transparent;
    border:0;
    border-radius:0;
    color:var(--rosso);
    display:inline-flex;
    font-size:14px;
    font-weight:900;
    justify-content:flex-start;
    letter-spacing:.035em;
    margin-top:28px;
    min-height:54px;
    padding:10px 0;
    text-decoration:underline;
    text-transform:uppercase;
    text-underline-offset:4px;
    transition:color 160ms ease, transform 160ms cubic-bezier(.2,.7,.2,1);
    width:auto;
  }

  .menu-product-scope .product.is-inline-content-layout .menu-inline-order:hover{
    color:var(--nero);
    transform:translateY(-1px);
  }

  .menu-product-scope .product.is-inline-content-layout .menu-inline-order:active{
    color:var(--nero);
    transform:translateY(1px);
    transition-duration:80ms;
  }

}

@media (min-width: 761px) and (max-width: 980px){
  .menu-product-scope .menu-products-track > .product{
    --menu-detail-copy-width:44%;
  }

  .menu-product-scope .product.is-inline-content-layout .product-info{
    padding-inline:24px;
  }

  .menu-product-scope .product.is-inline-content-layout .menu-inline-close{
    left:24px;
  }

  .menu-product-scope .product.is-inline-content-layout .product-name{
    font-size:clamp(36px, 5.2vw, 50px);
  }
}

@media (prefers-reduced-motion: reduce){
  .menu-product-scope .menu-products-track,
  .menu-product-scope .menu-products-track > .product,
  .menu-product-scope .menu-products-track > .product > .product-surface,
  .menu-product-scope .menu-products-track > .product > :where(.product-surface) > .product-img,
  .menu-product-scope .menu-products-track > .product > :where(.product-surface) > .product-info{
    transition-duration:.01ms !important;
  }

}

@media (max-width: 560px){
  .menu-flavor-groups{
    gap:12px;
  }

  .menu-flavor-row{
    gap:8px;
  }

  .menu-product-scope .menu-flavor-card{
    --menu-flavor-label-size:clamp(26.88px, 6.72vw, 37.12px);
    padding:8px 0;
  }

  .menu-product-scope .menu-flavor-card,
  .menu-product-scope .product,
  .menu-product-scope .product-surface{
    border-radius:16px;
  }

  .menu-product-scope .product-info{
    padding:10px 8px;
  }

  .menu-product-scope .product-name{
    font-size:clamp(16px, 3.8vw, 21px);
    margin-bottom:7px;
  }

  .menu-product-scope .product-desc{
    display:none;
  }

}

/* ============ FLAVOR DETAIL ============ */
#page-menu-flavor{
  background:var(--crema);
  color:var(--nero);
  overflow:hidden;
}
.flavor-detail{
  --flavor-color:#C79F62;
  --flavor-deep:#6F4B24;
  --flavor-soft:#F2E4CE;
  --flavor-detail-column-gap:clamp(44px,7vw,96px);
  --flavor-detail-columns:minmax(280px,.78fr) minmax(0,1.22fr);
  --flavor-detail-seam-half:clamp(42px,3.4vw,52px);
  background:var(--flavor-color);
  min-height:100vh;
}
.flavor-detail-intro{
  display:block;
  scroll-snap-align:start;
}
.flavor-detail-hero{
  align-items:center;
  background:var(--flavor-color);
  color:var(--nero);
  display:grid;
  grid-template-columns:1fr;
  min-height:calc(100svh - var(--header-height,76px));
  overflow:hidden;
  padding:clamp(28px,5vw,72px);
  position:relative;
}
.flavor-detail-hero-copy{
  align-content:center;
  color:var(--nero);
  display:grid;
  margin:0 auto;
  max-width:1240px;
  padding:clamp(44px,6vw,96px) 0;
  position:relative;
  width:100%;
  z-index:2;
}
.flavor-detail:is([data-media-mode="image"],[data-media-mode="video"]) .flavor-detail-hero{
  grid-template-columns:minmax(390px,.88fr) minmax(0,1.12fr);
  padding:24px;
}
.flavor-detail:is([data-media-mode="image"],[data-media-mode="video"]) .flavor-detail-hero-copy{
  margin:0;
  max-width:none;
  padding:clamp(44px,6vw,96px);
}
.flavor-detail-hero-art{inset:0;overflow:hidden;pointer-events:none;position:absolute}
.flavor-detail-hero-art-layer{inset:-12%;position:absolute}
.flavor-detail-hero-art-layer img{
  filter:drop-shadow(0 38px 36px rgba(66,40,23,.23));
  left:63%;
  object-fit:contain;
  position:absolute;
  top:48%;
  transform:translate(-50%,-50%) rotate(-7deg);
  width:min(1500px,110vw);
}
.flavor-detail-hero-art-layer--sharp{opacity:1}
.flavor-detail-back{
  border:0;
  color:var(--crema);
  display:inline-flex;
  font-family:var(--font-impact);
  font-size:clamp(20px,1.65vw,26px);
  font-synthesis:none;
  font-weight:400;
  justify-self:start;
  line-height:.9;
  margin-bottom:clamp(28px,4vw,52px);
  padding:0;
  text-decoration:none;
  transition:color .16s ease;
}
.flavor-detail-back:hover{color:var(--bianco)}
.flavor-detail-back:active{color:var(--crema)}
.flavor-detail-back:focus-visible,
.flavor-detail-order:focus-visible,
.flavor-related-link:focus-visible,
.flavor-location-jump > a:focus-visible{
  outline:3px solid var(--oro);
  outline-offset:4px;
}
.flavor-detail-hero h1{
  color:var(--nero);
  font-family:var(--font-impact);
  font-size:clamp(118px,17vw,250px);
  font-synthesis:none;
  font-weight:400;
  letter-spacing:-.015em;
  line-height:.78;
  margin:0;
}
.flavor-detail-title-part--light{color:var(--nero)}
.flavor-detail-title-part--truffle{color:var(--crema)}
.flavor-detail-identity > p{
  font-size:clamp(20px,1.8vw,27px);
  font-weight:700;
  letter-spacing:-.02em;
  line-height:1.25;
  margin:clamp(26px,3vw,40px) 0 0;
  max-width:660px;
}
.flavor-detail-hero-copy .brand-wordmark{font-size:.94em}
.flavor-detail-hero-media{
  background:var(--flavor-soft);
  border-radius:28px;
  box-shadow:0 30px 70px -52px rgba(66,40,23,.52);
  min-width:0;
  overflow:hidden;
  position:relative;
}
.flavor-detail-hero-media--image > img,
.flavor-detail-video{height:100%;object-fit:cover;width:100%}
.flavor-detail-order{
  align-items:center;
  background:var(--rosso);
  border-radius:18px;
  color:var(--bianco);
  display:inline-flex;
  font-size:14px;
  font-weight:900;
  justify-content:center;
  letter-spacing:.055em;
  min-height:58px;
  padding:16px 34px;
  text-decoration:none;
  transition:filter 160ms ease,transform 160ms cubic-bezier(.2,.7,.2,1);
}
.flavor-detail-order--primary{background:var(--rosso);color:var(--bianco)}
.flavor-detail-order--secondary{background:var(--nero);color:var(--crema)}
.flavor-detail-order:hover{filter:brightness(1.06);transform:translateY(-2px)}
.flavor-detail-order:active{filter:brightness(.9);transform:translateY(2px) scale(.98)}
.flavor-detail-story{
  align-items:center;
  background:var(--page-background);
  color:var(--nero);
  display:grid;
  gap:clamp(32px,5vw,72px);
  grid-template-columns:minmax(150px,.45fr) minmax(360px,1.1fr) minmax(300px,.85fr);
  padding:clamp(64px,7vw,104px) max(var(--content-inset),calc((100vw - 1240px)/2));
}
.flavor-detail-story-label{
  color:var(--flavor-deep);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  margin:0;
  text-transform:uppercase;
}
.flavor-detail-story-rule{display:none}
.flavor-detail-story h2{
  font-size:clamp(42px,4.8vw,68px);
  font-weight:900;
  letter-spacing:-.06em;
  line-height:.94;
  margin:0;
  text-transform:uppercase;
}
.flavor-detail-story-title-part{display:inline}
.flavor-detail-story-title-part:not(:last-child)::after{content:" "}
.flavor-detail-story > div{
  border-left:1px solid rgba(66,40,23,.2);
  padding-left:clamp(24px,3vw,42px);
}
.flavor-detail-story strong{
  display:block;
  font-size:clamp(17px,1.4vw,21px);
  line-height:1.35;
}
.flavor-detail-story > div p{
  color:rgba(66,40,23,.68);
  font-size:14px;
  line-height:1.75;
  margin:18px 0 0;
}
.flavor-detail-formats{
  background:var(--flavor-color);
  color:var(--nero);
  display:grid;
  gap:clamp(28px,4vw,44px);
  padding:clamp(64px,7vw,104px) max(var(--content-inset),calc((100vw - 1240px)/2)) var(--flavor-detail-seam-half);
}
.flavor-detail-formats > header{align-items:center;display:flex;gap:24px;justify-content:space-between;text-align:left}
.flavor-detail-formats > header h2{font-size:clamp(36px,4vw,54px);font-weight:900;letter-spacing:-.045em;line-height:1;margin:0}
.flavor-detail-formats:has(> .flavor-detail-order){column-gap:24px;grid-template-columns:minmax(0,1fr) auto}
.flavor-detail-formats > .flavor-detail-order{align-self:center;grid-column:2;grid-row:1;min-width:300px}
.flavor-detail-formats > .flavor-detail-products-row{grid-column:1 / -1;grid-row:2}
.flavor-detail-products-row{
  grid-template-columns:minmax(0,1fr);
  width:100%;
}
.flavor-detail-products-row > .menu-products-track{grid-column:1}
.flavor-detail-description{
  align-items:start;
  background:var(--flavor-color);
  color:var(--nero);
  display:grid;
  gap:var(--flavor-detail-column-gap);
  grid-template-columns:var(--flavor-detail-columns);
  padding:var(--flavor-detail-seam-half) max(var(--content-inset),calc((100vw - 1240px)/2)) clamp(64px,7vw,104px);
}
.flavor-detail-description header > span{
  color:var(--flavor-deep);
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.flavor-detail-description h2{
  font-size:clamp(44px,5.5vw,76px);
  font-weight:900;
  letter-spacing:-.06em;
  line-height:.88;
  margin:16px 0 0;
  text-transform:uppercase;
}
.flavor-detail-inline-wordmark{
  display:inline-block;
  font-family:var(--font-impact);
  font-synthesis:none;
  font-weight:400;
  letter-spacing:-.02em;
  text-transform:none;
  white-space:nowrap;
}
.flavor-detail-story .flavor-detail-inline-wordmark .flavor-detail-title-part--truffle{color:var(--flavor-color)}
.flavor-detail:is([data-flavor="classica"],[data-flavor="feta"]) .flavor-detail-story .flavor-detail-inline-wordmark > .flavor-detail-title-part--light{color:var(--flavor-color)}
.flavor-detail[data-flavor="feta-vege"] .flavor-detail-inline-wordmark > .flavor-detail-title-part--light{color:var(--bianco);-webkit-text-stroke:clamp(2px,.064em,4px) var(--rosso);paint-order:stroke fill}
.flavor-detail-description .flavor-detail-inline-wordmark .flavor-detail-title-part--truffle{color:var(--crema)}
.flavor-detail-description > div{
  border-left:1px solid rgba(66,40,23,.22);
  display:grid;
  gap:22px;
  padding-left:clamp(28px,4vw,54px);
}
.flavor-detail-description p{
  color:rgba(66,40,23,.72);
  font-size:clamp(15px,1.3vw,18px);
  line-height:1.72;
  margin:0;
  max-width:650px;
}
.flavor-detail-description .flavor-detail-description-lead{
  color:var(--nero);
  font-size:clamp(19px,1.9vw,26px);
  font-weight:750;
  line-height:1.42;
}
.flavor-detail-discovery{
  background:var(--page-background);
  display:grid;
  gap:var(--flavor-detail-column-gap);
  grid-template-columns:var(--flavor-detail-columns);
  padding:clamp(54px,6vw,88px) max(var(--content-inset),calc((100vw - 1240px)/2));
}
.flavor-related{display:grid;gap:28px}
.flavor-related header > span,
.flavor-location-jump > div > span{color:var(--flavor-deep);font-size:10px;font-weight:900;letter-spacing:.14em}
.flavor-related h2,
.flavor-location-jump h2{font-size:clamp(34px,3.7vw,54px);font-weight:900;letter-spacing:-.05em;line-height:.94;margin:12px 0 0}
.flavor-related nav{display:grid}
.flavor-related-link{
  --kbb-name-brown:#40210F;
  --kbb-name-orange:#DC4D1F;
  --kbb-name-dark:#231815;
  --kbb-name-truffle:#C79F62;
  --kbb-name-bbq:#844022;
  --kbb-name-hot:#D7261C;
  --kbb-name-vege:var(--verde-vege);
  border:0;
  color:var(--nero);
  display:flex;
  font-family:var(--font-impact);
  font-size:clamp(42px,5vw,72px);
  font-synthesis:none;
  font-weight:400;
  line-height:.82;
  padding:18px 0 15px;
  position:relative;
  text-decoration:none;
}
.flavor-related-link::before{background:var(--related-flavor-color,var(--rosso));content:"";height:.82em;left:0;position:absolute;top:50%;transform:translateY(-50%);transition:width .22s cubic-bezier(.22,1,.36,1);width:6px}
.flavor-related-link > span{display:inline-flex;min-width:0;padding-left:22px;transition:transform .22s cubic-bezier(.22,1,.36,1)}
.flavor-related-link:is(:hover,:focus-visible) > span{transform:translateX(10px)}
.flavor-related-link:is(:hover,:focus-visible)::before{width:16px}
.flavor-location-jump{align-content:start;border-left:1px solid rgba(66,40,23,.22);color:var(--nero);display:grid;padding-left:clamp(30px,4vw,56px)}
.flavor-location-jump p{color:rgba(66,40,23,.68);font-size:14px;line-height:1.65;margin:18px 0 0}
.flavor-location-jump > a{
  gap:10px;
  justify-self:center;
  margin-top:28px;
  min-width:300px;
}
.flavor-location-jump > a span{color:inherit;font:inherit;letter-spacing:inherit}
.flavor-location-jump > a svg{fill:none;height:21px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:21px}
.flavor-detail-note{
  background:var(--flavor-color);
  padding:clamp(42px,5vw,64px) var(--content-inset);
}
.flavor-detail-note > div{margin:0 auto;max-width:1180px}
.flavor-detail-note span{
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
}
.flavor-detail-note p{
  color:rgba(66,40,23,.68);
  font-size:14px;
  line-height:1.7;
  margin:14px 0 0;
  max-width:760px;
}
.flavor-detail-allergens{
  align-items:center;
  color:var(--nero);
  display:inline-flex;
  margin-top:6px;
  min-height:44px;
  text-decoration:underline;
}
.flavor-detail-allergens:focus-visible{
  outline:3px solid var(--oro);
  outline-offset:3px;
}

@media (max-width:980px){
  .flavor-detail-story{align-items:start;grid-template-columns:1fr 1.6fr}
  .flavor-detail-story > div{border-left:0;border-top:1px solid rgba(66,40,23,.2);grid-column:1/-1;padding:26px 0 0}
  .flavor-detail:is([data-media-mode="image"],[data-media-mode="video"]) .flavor-detail-hero{grid-template-columns:minmax(310px,.82fr) minmax(0,1.18fr)}
  .flavor-detail-discovery{grid-template-columns:1fr}
  .flavor-location-jump{border:0;padding:0}
}

@media (min-width:981px){
  .flavor-related h2{font-size:clamp(32px,3.15vw,48px);white-space:nowrap}
}

@media (max-width:760px) and (orientation:portrait){
  /* Keep body scroll chaining enabled so touch/wheel input reaches the root. */
  html[data-active-page="menu-flavor"]{
    overscroll-behavior-y:none;
    scroll-snap-type:none;
  }
  /* Keep the same Dock clearance inside the flavor-colored surface. */
  .flavor-detail{padding-bottom:var(--mobile-dock-space);}
  html[data-active-page="menu-flavor"] #site-footer{display:none;}
  /* Keep the hero fixed; let the story grow when text exceeds its 42% minimum. */
  .flavor-detail-intro{
    --flavor-detail-intro-height:calc(var(--app-viewport-height,100svh) - var(--site-header-height,62px) - var(--mobile-dock-height,68px));
    display:grid;
    grid-template-rows:calc(var(--flavor-detail-intro-height) * .58) minmax(calc(var(--flavor-detail-intro-height) * .42),auto);
    height:auto;
    isolation:isolate;
    min-height:var(--flavor-detail-intro-height);
    overflow:hidden;
    position:relative;
  }
  .flavor-detail-hero{
    align-items:start;
    background:var(--nero);
    grid-template-columns:1fr;
    min-height:0;
    overflow:visible;
    padding:0 9vw;
  }
  .flavor-detail-hero-copy{--mobile-subtitle-gap:clamp(18px,2.4svh,24px);align-content:start;color:var(--crema);margin:0;padding:clamp(30px,3.5svh,38px) 0 0;z-index:2}
  .flavor-detail:is([data-media-mode="image"],[data-media-mode="video"]) .flavor-detail-hero{
    grid-template-columns:1fr;
    grid-template-rows:minmax(0,1.08fr) minmax(0,.92fr);
    padding:14px 16px 0;
  }
  .flavor-detail:is([data-media-mode="image"],[data-media-mode="video"]) .flavor-detail-hero-copy{grid-row:2;padding:22px 4px 28px}
  .flavor-detail-hero-media{border-radius:22px;grid-row:1}
  .flavor-detail-hero-art{overflow:visible;z-index:1}
  .flavor-detail-hero-art-layer{inset:0}
  .flavor-detail-hero-art-layer img{left:59%;max-width:none;top:86%;transform:translate(-50%,-50%) rotate(-2deg);width:118%}
  .flavor-detail-back{color:color-mix(in srgb,var(--crema) 45%,var(--nero));font-size:clamp(20px,5.6vw,25px);margin-bottom:clamp(32px,3.5svh,38px)}
  .flavor-detail-back:hover{color:color-mix(in srgb,var(--crema) 58%,var(--nero))}
  .flavor-detail-back:active{color:color-mix(in srgb,var(--crema) 45%,var(--nero))}
  .flavor-detail-identity{position:relative}
  .flavor-detail-identity::before{background:var(--flavor-color);bottom:11px;content:"";left:-9vw;position:absolute;top:5px;width:clamp(16px,4.2vw,22px)}
  .flavor-detail-hero h1{color:var(--crema);font-size:clamp(94px,26vw,126px);line-height:.74}
  .flavor-detail--long-title .flavor-detail-hero h1{font-size:clamp(68px,20vw,96px)}
  .flavor-detail-hero .flavor-detail-title-part--light{color:var(--crema)}
  .flavor-detail-hero .flavor-detail-title-part--truffle{color:var(--flavor-color)}
  /* These hero identities differ from the shared light/accent title treatment. */
  .flavor-detail:is([data-flavor="classica"],[data-flavor="feta"]) .flavor-detail-hero h1 > .flavor-detail-title-part--light{color:var(--flavor-color)}
  .flavor-detail[data-flavor="feta-vege"] .flavor-detail-hero h1 > .flavor-detail-title-part--light{-webkit-text-stroke:clamp(5px,.08em,7px) var(--rosso);paint-order:stroke fill}
  .flavor-detail-identity > p{color:var(--crema);font-size:clamp(14px,3.7vw,17px);line-height:1.22;margin-top:var(--mobile-subtitle-gap);max-width:290px}
  .flavor-detail-order{min-height:56px}
  /* Let story text share the intro stacking context above the overlapping hero art. */
  .flavor-detail-story{align-content:start;align-items:start;background:var(--page-background);column-gap:12px;grid-template-columns:max-content 3px minmax(0,1fr);grid-template-rows:auto auto;min-height:0;padding:clamp(48px,calc(30svh - 172px),136px) 18px clamp(12px,2.2svh,24px) 24px;position:relative;row-gap:0;z-index:auto}
  .flavor-detail-story-label{align-self:stretch;border:0;color:var(--nero);grid-column:1;grid-row:1/3;justify-self:start;padding:0;position:relative;text-align:right;transform:rotate(180deg);writing-mode:vertical-rl;z-index:2}
  .flavor-detail-story-rule{align-self:stretch;background:var(--flavor-color);display:block;grid-column:2;grid-row:1/3}
  .flavor-detail-story h2{font-family:var(--font-impact);font-size:clamp(38px,min(12vw,5.4svh),57px);font-synthesis:none;font-weight:400;grid-column:3;grid-row:1;letter-spacing:-.025em;line-height:.98;position:relative;z-index:2}
  .flavor-detail-story-title-part{display:block;white-space:nowrap}
  .flavor-detail-story-title-part:not(:last-child)::after{content:none}
  .flavor-detail-story > div{border:0;grid-column:3;grid-row:2;margin-top:clamp(14px,1.8svh,18px);padding:0;position:relative;z-index:2}
  .flavor-detail-story strong{font-size:clamp(13px,3.45vw,16px);line-height:1.28}
  .flavor-detail-story > div p{font-size:clamp(11.5px,1.55svh,13px);line-height:1.45;margin-top:clamp(6px,1svh,10px)}
  .flavor-detail{--flavor-detail-seam-half:28px}
  .flavor-detail-formats{gap:26px;padding:50px 16px var(--flavor-detail-seam-half)}
  .flavor-detail-formats > header{align-items:stretch;flex-direction:column}
  .flavor-detail-formats > header h2{font-size:clamp(32px,9vw,40px)}
  .flavor-detail-formats:has(> .flavor-detail-order){grid-template-columns:minmax(0,1fr)}
  .flavor-detail-formats > .flavor-detail-order{grid-column:1;grid-row:3;min-width:0;width:100%}
  .flavor-detail-products-row > .menu-products-track > .product{--menu-detail-copy-width:58%;--menu-detail-image-width:42%}
  .flavor-detail-products-row.menu-flavor-row--label-right > .menu-products-track > .product[data-cat="piadine"].is-inline-expanded .product-photo{--product-photo-hover-shift-x:-14%;--product-photo-shift-x:-14%}
  /* Keep the enlarged image clear of copy, including the 108px image minimum on narrow phones. */
  .flavor-detail-products-row.menu-flavor-row--label-right > .menu-products-track > .product.is-inline-content-layout .product-info{align-items:flex-start;justify-content:center;left:max(48%,calc(21% + 96px));min-width:0;padding:16px 0 16px 20px;right:0;text-align:left;transform:translateX(4px);width:auto}
  .flavor-detail-products-row.menu-flavor-row--label-right > .menu-products-track > .product.is-inline-content-layout .menu-inline-close{flex-shrink:0;left:auto;margin:0 0 6px;position:static;right:auto;top:auto}
  .flavor-detail-products-row.menu-flavor-row--label-right > .menu-products-track > .product.is-inline-content-layout .menu-inline-order{left:20px;right:auto}
  .flavor-detail-products-row .product.is-inline-content-layout .product-desc{display:block;font-size:clamp(11.5px,2.8vw,12px);line-height:1.25;max-width:calc(100% - 20px);min-height:0;overflow:visible;width:calc(100% - 20px)}
  .flavor-detail-products-row .product.is-inline-expanded .product-photo{--flavor-detail-expanded-photo-scale:1.98;transform:translateX(var(--product-photo-shift-x)) scale(var(--flavor-detail-expanded-photo-scale)) rotate(-4deg);translate:8px 0}
  .flavor-detail-products-row .product[data-cat="piadine"].is-inline-expanded .product-photo{--flavor-detail-expanded-photo-scale:2.1}
  .flavor-detail-description{gap:30px;grid-template-columns:1fr;padding:var(--flavor-detail-seam-half) 20px 46px}
  .flavor-detail-description h2{font-size:clamp(42px,12vw,58px)}
  .flavor-detail-description > div{border-left:0;border-top:1px solid rgba(66,40,23,.22);gap:18px;padding:26px 0 0}
  .flavor-detail-description p{font-size:14px;line-height:1.65}
  .flavor-detail-description .flavor-detail-description-lead{font-size:19px;line-height:1.4}
  .flavor-detail-discovery{gap:36px;grid-template-columns:1fr;padding:44px 16px}
  .flavor-related-link{font-size:44px}
  .flavor-location-jump{border:0;padding:0}
  .flavor-location-jump > .flavor-location-link{min-width:0;width:100%}
  .flavor-detail-note{padding:42px 20px}
}

@media (prefers-reduced-motion:reduce){
  html[data-active-page="menu-flavor"]{scroll-snap-type:none}
  .flavor-related-link::before,
  .flavor-related-link > span{transition:none}
}
/* ============ PROMO BANNER ============ */
.promo-strip{
  display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px;
}
.promo-card{
  border-radius:28px;
  padding:40px;
  position:relative;overflow:hidden;
  cursor:pointer;
  transition:transform .3s;
  min-height:340px;
  display:flex;flex-direction:column;justify-content:flex-end;
}
.promo-card:hover{transform:translateY(-6px)}
.promo-big{
  background:var(--nero);color:var(--crema);
  grid-row:span 2;
}
.promo-big::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 80% 20%, var(--rosso-deep), transparent 60%);
}
.promo-yellow{background:var(--oro);color:var(--nero)}
.promo-red{background:var(--rosso);color:var(--crema)}
.promo-card .day{
  font-family:'Caveat',cursive;font-size:24px;
  margin-bottom:8px;position:relative;
}
.promo-card h3{
  font-weight:800;
  font-size:36px;line-height:1;letter-spacing:-.02em;
  margin-bottom:12px;position:relative;
}
.promo-big h3{font-size:56px}
.promo-card p{font-size:14px;opacity:.85;margin-bottom:20px;position:relative}
.promo-card .promo-cta{
  display:inline-flex;align-items:center;gap:8px;
  font-weight:600;font-size:14px;
  position:relative;
  border-bottom:1.5px solid currentColor;
  padding-bottom:2px;width:fit-content;
}
.promo-bg-emoji{
  position:absolute;
  font-size:200px;
  opacity:.15;
  top:-20px;right:-20px;
  transform:rotate(15deg);
}
.promo-big .promo-bg-emoji{font-size:280px;opacity:.2}

/* ============ APP SECTION ============ */
.app-section{
  background:var(--nero);color:var(--crema);
  border-radius:40px;
  margin:0 var(--content-inset) 100px;
  overflow:hidden;
  position:relative;
}
.app-grid{
  display:grid;grid-template-columns:1fr 1fr;
  align-items:center;
  max-width:1400px;margin:0 auto;
  padding:80px 60px;gap:60px;
  position:relative;z-index:2;
}
.app-section::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 80% 50%, rgba(220,77,31,.5), transparent 50%);
}
.app-section h2{
  font-weight:800;
  font-size:64px;line-height:1;letter-spacing:-.03em;
  margin-bottom:20px;
}
.app-section h2 em{font-style:italic;color:var(--oro)}
.app-section p{font-size:18px;opacity:.85;margin-bottom:28px;max-width:440px}
.app-features{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:36px;max-width:440px}
.app-feature{display:flex;align-items:center;gap:10px;font-size:14px}
.app-feature svg{width:20px;height:20px;color:var(--oro);flex-shrink:0}
.app-stores{display:flex;gap:14px;flex-wrap:wrap}
.store-btn{
  background:var(--crema);color:var(--nero);
  padding:12px 20px;border-radius:14px;
  display:flex;align-items:center;gap:12px;
  text-decoration:none;font-weight:600;
  transition:transform .2s;
}
.store-btn:hover{transform:translateY(-3px)}
.store-btn small{display:block;font-size:11px;font-weight:500;opacity:.7}
.store-btn strong{font-size:16px;display:block}
.phone-mockup{
  position:relative;
  display:flex;justify-content:center;align-items:center;
}
.phone{
  width:280px;height:560px;
  background:var(--crema);
  border-radius:48px;
  border:12px solid #422817;
  box-shadow:0 30px 60px -10px rgba(0,0,0,.5),
             inset 0 0 0 2px rgba(255,255,255,.1);
  position:relative;
  display:flex;flex-direction:column;
  overflow:hidden;
  transform:rotate(-4deg);
}
.phone::before{
  content:'';position:absolute;top:8px;left:50%;
  transform:translateX(-50%);
  width:80px;height:20px;background:#422817;
  border-radius:0 0 14px 14px;z-index:5;
}
.phone-screen{
  flex:1;padding:36px 16px 16px;
  display:flex;flex-direction:column;gap:10px;
}
.phone-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 4px;
}
.phone-greet{font-weight:800;font-size:16px}
.phone-card{
  background:var(--rosso);color:var(--crema);
  border-radius:18px;padding:14px;
}
.phone-card-title{font-size:11px;opacity:.8;margin-bottom:4px}
.phone-card-big{font-weight:800;font-size:22px;font-style:italic}
.phone-list{display:flex;flex-direction:column;gap:8px}
.phone-item{
  background:white;border-radius:14px;padding:10px;
  display:flex;gap:10px;align-items:center;
  font-size:11px;
}
.phone-item-img{
  width:40px;height:40px;border-radius:10px;
  background:var(--oro);display:flex;align-items:center;justify-content:center;
  font-size:22px;
}
.phone-item-name{font-weight:700;font-size:12px}
.phone-item-price{margin-left:auto;color:var(--rosso);font-weight:700}

.phone-decoration{
  position:absolute;
  font-family:'Caveat',cursive;font-size:30px;color:var(--oro);
}
.phone-decoration.d1{top:10%;left:0;transform:rotate(-12deg)}
.phone-decoration.d2{bottom:10%;right:0;transform:rotate(8deg);color:var(--crema)}

/* ============ STORY SECTION ============ */
.story{
  background:var(--bianco);
  border-radius:40px;
  padding:80px 60px;
  display:grid;grid-template-columns:1fr 1fr;gap:60px;
  align-items:center;
  border:1.5px solid rgba(66,40,23,.06);
}
.story-img{
  aspect-ratio:1;
  background:var(--rosso);
  border-radius:32px;
  position:relative;
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.story-img::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 30% 30%, var(--oro), transparent 60%);
}
.story-img-emoji{font-size:200px;position:relative;z-index:2}
.story-stamp{
  position:absolute;
  width:130px;height:130px;
  background:var(--crema);color:var(--rosso);
  border-radius:50%;
  bottom:-30px;right:-30px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-weight:800;
  font-style:italic;
  border:3px solid var(--rosso);
  transform:rotate(15deg);
  z-index:3;
}
.story-stamp small{font-size:11px;letter-spacing:.1em;font-style:normal;font-family:'Inter',sans-serif;font-weight:600}
.story-stamp strong{font-size:32px}

.story-content h2{
  font-weight:800;
  font-size:64px;line-height:1;letter-spacing:-.03em;
  margin-bottom:24px;
}
.story-content h2 em{font-style:italic;color:var(--rosso)}
.story-content p{margin-bottom:18px;font-size:16px;line-height:1.7;color:rgba(66,40,23,.78)}
.story-stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:24px;margin-top:36px;
  padding-top:36px;border-top:1.5px solid rgba(66,40,23,.1);
}
.stat strong{
  display:block;
  font-weight:800;
  font-size:48px;font-style:italic;
  color:var(--rosso);line-height:1;
}
.stat span{font-size:13px;color:rgba(66,40,23,.6)}
/* 深色容器内的 stat 文字覆盖 */
.story[style*="--nero"] .stat strong,
[style*="background:var(--nero)"] .stat strong{
  color:var(--oro);
}
.story[style*="--nero"] .stat span,
[style*="background:var(--nero)"] .stat span{
  color:rgba(252,236,219,.7);
}

/* ============ STORE LOCATOR ============ */
.locator-hero{
  background:var(--nero);color:var(--crema);
  padding:60px 0 100px;
  text-align:center;
  position:relative;overflow:hidden;
}
.locator-hero::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 50% 0%, rgba(220,77,31,.4), transparent 60%);
}
.locator-search{
  max-width:600px;margin:30px auto 0;
  display:flex;gap:8px;background:var(--crema);
  border-radius:999px;padding:6px;
  position:relative;z-index:2;
}
.locator-search input{
  flex:1;border:none;background:transparent;
  padding:14px 20px;font-family:inherit;font-size:15px;
  outline:none;color:var(--nero);
}
.store-list{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  margin-top:60px;
}
.store-card{
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:24px;
  padding:28px;
  transition:all .3s;cursor:pointer;
  display:flex;flex-direction:column;
}
.store-card:hover{
  border-color:var(--rosso);
  transform:translateY(-4px);
  box-shadow:0 16px 32px -8px rgba(66,40,23,.12);
}
.store-tags{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap}
.store-tag{
  font-size:11px;padding:4px 10px;border-radius:999px;
  background:var(--crema);font-weight:600;
  letter-spacing:.04em;
}
.store-tag.open{background:var(--verde);color:var(--bianco)}
.store-tag.delivery{background:var(--oro);color:var(--nero)}
.store-card-marker{
  align-items:center;
  aspect-ratio:1 / 1;
  background:var(--rosso);
  border-radius:999px;
  box-shadow:none;
  color:#fff;
  display:inline-flex;
  flex:0 0 38px;
  font-family:var(--font-montserrat);
  font-size:18px;
  font-weight:900;
  height:38px;
  justify-content:center;
  line-height:1;
  margin-bottom:18px;
  min-height:38px;
  min-width:38px;
  padding:0;
  width:38px;
}
.store-name{
  font-weight:800;
  font-size:24px;letter-spacing:-.02em;margin-bottom:6px;
}
.store-fixed-brand{
  color:var(--nero);
  display:block;
  font-size:clamp(12px, 1.25vw, 15px);
  line-height:1;
  margin-bottom:7px;
}
.store-fixed-brand .brand-wordmark{
  font-size:inherit;
}
.store-addr{font-size:14px;color:rgba(66,40,23,.65);margin-bottom:6px;line-height:1.5}

.store-status{
  align-items:center;
  border:1px solid rgba(66,40,23,.12);
  border-radius:999px;
  display:inline-flex;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  margin:8px 0 10px;
  padding:6px 10px;
  text-transform:uppercase;
  width:max-content;
}

.store-status-open{
  background:rgba(107,138,69,.12);
  color:var(--verde);
}

.store-status-coming-soon{
  background:rgba(218,164,64,.14);
  color:var(--rosso-deep);
}
.store-actions{display:flex;gap:8px;margin-top:auto}
.store-actions button{
  flex:1;padding:10px;border-radius:12px;
  border:1.5px solid var(--nero);background:transparent;
  font-family:inherit;font-weight:600;font-size:13px;
  cursor:pointer;transition:all .2s;
}
.store-actions button:hover{background:var(--nero);color:var(--crema)}
.store-actions button.primary{background:var(--rosso);color:var(--crema);border-color:var(--rosso)}
.store-actions button.primary:hover{background:var(--rosso-deep);border-color:var(--rosso-deep)}

/* ============ PROMOZIONI ============ */
.promo-hero{
  background:var(--rosso);color:var(--crema);
  padding:80px 0 60px;
  text-align:center;
  position:relative;overflow:hidden;
}
.promo-hero h1{
  font-weight:800;font-style:italic;
  font-size:clamp(60px,9vw,140px);letter-spacing:-.04em;line-height:.9;
}
.promo-hero p{font-size:20px;margin-top:16px;opacity:.9}
.coupons-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:24px;
  margin-top:60px;
}
.coupon{
  background:var(--bianco);
  border-radius:24px;
  display:grid;grid-template-columns:1fr 220px;
  overflow:hidden;
  border:1.5px solid rgba(66,40,23,.08);
  position:relative;
}
.coupon::before, .coupon::after{
  content:'';position:absolute;
  width:30px;height:30px;
  background:var(--crema);
  border-radius:50%;
  left:calc(100% - 235px);
}
.coupon::before{top:-15px}
.coupon::after{bottom:-15px}
.coupon-info{padding:32px;display:flex;flex-direction:column}
.coupon-eyebrow{
  font-family:'Caveat',cursive;font-size:22px;color:var(--rosso);margin-bottom:8px;
}
.coupon h3{
  font-weight:800;
  font-size:32px;letter-spacing:-.02em;margin-bottom:12px;line-height:1;
}
.coupon p{font-size:14px;color:rgba(66,40,23,.7);margin-bottom:16px;flex:1}
.coupon-meta{font-size:12px;color:rgba(66,40,23,.5);margin-bottom:14px}
.coupon-side{
  background:var(--rosso);color:var(--crema);
  padding:32px;display:flex;flex-direction:column;justify-content:center;align-items:center;
  border-left:2px dashed rgba(252,236,219,.3);
  text-align:center;
}
.coupon-discount{
  font-weight:800;font-style:italic;
  font-size:64px;line-height:1;color:var(--oro);
}
.coupon-code{
  background:var(--nero);padding:8px 16px;border-radius:8px;
  font-family:monospace;font-size:14px;letter-spacing:.2em;
  margin-top:14px;font-weight:600;
}

/* ============ JOIN SECTION (career CTA) ============ */
.join{
  background:var(--oro);
  border-radius:40px;
  padding:80px 60px;
  display:grid;grid-template-columns:1.4fr 1fr;gap:40px;
  align-items:center;
  position:relative;overflow:hidden;
}
.join-bg{
  position:absolute;
  font-weight:800;font-style:italic;
  font-size:340px;color:rgba(0,0,0,.05);
  bottom:-100px;right:-40px;line-height:1;letter-spacing:-.05em;
  pointer-events:none;
}
.join h2{
  font-weight:800;
  font-size:64px;line-height:.95;letter-spacing:-.03em;
  margin-bottom:20px;color:var(--nero);
}
.join p{font-size:18px;color:rgba(66,40,23,.85);max-width:480px;margin-bottom:28px}
.join-cta{display:flex;gap:14px;flex-wrap:wrap}
.join .btn-primary{background:var(--rosso);box-shadow:0 4px 0 var(--rosso-deep)}

.testimonial{
  background:var(--nero);color:var(--crema);
  padding:32px;border-radius:24px;
  position:relative;
  transform:rotate(2deg);
}
.testimonial::before{
  content:'"';position:absolute;top:-30px;left:20px;
  font-size:140px;
  color:var(--rosso);line-height:1;
}
.testimonial p{
  font-style:italic;
  font-size:20px;line-height:1.4;
  margin-bottom:20px;color:var(--crema);
}
.testimonial-author{display:flex;align-items:center;gap:12px}
.testimonial-avatar{
  width:48px;height:48px;border-radius:50%;
  background:var(--rosso);display:flex;align-items:center;justify-content:center;
  font-weight:800;
}
.testimonial-name strong{display:block;font-weight:700;font-size:14px}
.testimonial-name span{font-size:12px;opacity:.7}

/* ============ FOOTER ============ */
#site-footer[hidden]{
  display:none;
}

footer{
  background:var(--nero);color:var(--crema);
  align-items:center;
  display:flex;
  min-height:42px;
  padding:0 var(--section-gutter);
  position:relative;
  z-index:2;
}
.footer-inner{
  align-items:center;
  display:flex;
  justify-content:center;
  margin:0;
  max-width:none;
  width:100%;
}
.footer-top{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;
  gap:40px;padding-bottom:60px;
  border-bottom:1px solid rgba(252,236,219,.15);
}
.footer-brand .logo{
  align-items:center;
  display:inline-flex;
  gap:12px;
}
.footer-brand .logo-mark{
  height:48px;
  width:48px;
}
.footer-brand .logo-text{
  color:var(--crema);
  font-size:clamp(24px, 2.4vw, 34px);
  line-height:1;
}
.footer-brand p{
  margin:20px 0;font-size:14px;
  color:rgba(252,236,219,.7);max-width:340px;
}
.footer-col h4{
  font-weight:800;
  font-size:18px;margin-bottom:18px;
  color:var(--oro);
}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:10px}
.footer-col a{
  color:rgba(252,236,219,.7);text-decoration:none;
  font-size:14px;transition:color .2s;
}
.footer-col a:hover{color:var(--oro)}
.footer-bot{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding-top:0;
  flex-wrap:wrap;
  gap:16px;
  text-align:center;
  width:100%;
}
.footer-bot p{
  color:rgba(252,236,219,.5);
  font-size:13px;
  margin:0;
}
.socials{display:flex;gap:10px}
.socials a{
  width:40px;height:40px;border-radius:50%;
  background:transparent;
  display:flex;align-items:center;justify-content:center;
  color:var(--crema);text-decoration:none;
  transition:all .2s;
}
.socials a:hover{background:var(--rosso);transform:translateY(-3px)}
.footer-instagram-icon{
  display:block;
  height:26px;
  width:26px;
}
.big-mark{
  font-weight:800;font-style:italic;
  font-size:clamp(80px,14vw,220px);
  line-height:.9;letter-spacing:-.04em;
  color:rgba(252,236,219,.06);
  text-align:center;
  margin-top:60px;user-select:none;
}

/* ============ RESPONSIVE ============ */
@media (max-width: 980px){
  :root{
    --section-gutter:20px;
    --content-inset:16px;
  }

  .nav{padding:12px 16px;gap:8px;flex-wrap:nowrap}
  .logo-mark{width:38px;height:38px}
  .logo-text{font-size:18px}
  .logo-text small{font-size:8px;letter-spacing:.2em}
  .hero{padding:50px var(--section-gutter) 80px;min-height:auto}
  .hero-grid{grid-template-columns:1fr;gap:40px}
  .hero h1{font-size:clamp(38px,9vw,60px);letter-spacing:-.03em}
  .hero h1 em::after{display:none}
  .hero-visual{height:420px;width:100%}
  .hero-mascot{width:min(520px, 92vw);max-width:100%}
  .quality-stamps{height:380px}
  .stamp{width:140px;height:140px;border-width:4px}
  .stamp-num{font-size:38px}
  .stamp.s3 .stamp-num{font-size:54px}
  .stamp-num small{font-size:18px}
  .stamp-label{font-size:9px;letter-spacing:.1em}
  .price-badge{width:90px;height:90px;top:10px;left:10px}
  .price-badge strong{font-size:28px}
  .price-badge small{font-size:9px}
  .price-badge span{font-size:9px}
  .floating-tag{font-size:16px;padding:10px 16px}
  .floating-tag.t1{top:0;right:5px}
  .floating-tag.t2{bottom:5%;left:5px}
  section{padding:60px var(--section-gutter)}
  .cat-grid{grid-template-columns:repeat(3,1fr)}
  .products{grid-template-columns:repeat(auto-fill, minmax(210px, 1fr))}
  .promo-strip{grid-template-columns:1fr}
  .promo-big{grid-row:auto}
  .app-grid{grid-template-columns:1fr;padding:50px 24px;gap:40px}
  .app-section{margin-bottom:60px;border-radius:28px}
  .app-section h2{font-size:42px}
  .phone{transform:rotate(0) scale(.85)}
  .phone-decoration{display:none}
  .story{grid-template-columns:1fr;padding:50px 24px;gap:40px;border-radius:28px}
  .story-content h2{font-size:38px}
  .story-stamp{width:100px;height:100px;bottom:-20px;right:-20px}
  .store-list{grid-template-columns:1fr}
  .compact-store-list{grid-template-columns:1fr}
  .coupons-grid{grid-template-columns:1fr}
  .coupon{grid-template-columns:1fr;}
  .coupon::before,.coupon::after{display:none}
  .coupon-side{border-left:none;border-top:2px dashed rgba(252,236,219,.3)}
  .join{grid-template-columns:1fr;padding:50px 24px;border-radius:28px}
  .join h2{font-size:38px}
  .join-bg{font-size:200px;bottom:-60px}
  .testimonial{transform:rotate(0)}
  .footer-top{grid-template-columns:1fr 1fr;gap:30px}
  .section-head{margin-bottom:40px;flex-direction:column;align-items:flex-start}
  .section-title{font-size:36px}
  .promo-hero h1{font-size:clamp(48px,12vw,80px)}
  .locator-hero h1{font-size:clamp(44px,11vw,72px)}
}
@media (max-width: 560px){
  :root{
    --section-gutter:16px;
    --content-inset:16px;
  }

  .products{grid-template-columns:repeat(auto-fill, minmax(170px, 1fr));gap:16px}
  .cat-grid{grid-template-columns:repeat(2,1fr)}
  .footer-top{grid-template-columns:1fr}
  .story-stats{grid-template-columns:1fr;gap:16px}
  .location-pill{display:none}
  /* 超窄屏:进一步缩 logo 和 hero,确保横向永远不溢出 */
  .logo-text{font-size:16px}
  .logo-text small{font-size:7px}
  .logo-mark{width:34px;height:34px}
  .nav{padding:10px 12px;gap:6px}
  .hero h1{font-size:clamp(34px,9vw,48px)}
  .hero{padding:36px var(--section-gutter) 60px}
  section{padding:48px var(--section-gutter)}
}

/* ============ MOBILE NAV ============ */
.mobile-menu{
  background:var(--nero);
  border:0;
  border-radius:24px;
  box-shadow:0 24px 58px rgba(66,40,23,.34);
  color:var(--crema);
  max-height:none;
  opacity:0;
  overflow:hidden;
  padding:28px;
  pointer-events:none;
  position:fixed;
  right:18px;
  top:86px;
  transform:translateY(-14px) scale(.94);
  transform-origin:top right;
  transition:opacity .24s ease, transform .28s cubic-bezier(.2,.82,.22,1), visibility 0s linear .28s;
  visibility:hidden;
  width:min(340px, calc(100vw - 32px));
  z-index:130;
}
.mobile-menu.open{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0) scale(1);
  transition-delay:0s;
  visibility:visible;
}
.mobile-menu > :not(.mobile-menu-mascot){
  position:relative;
  z-index:1;
}
.mobile-menu-mascot{
  aspect-ratio:170 / 195;
  opacity:0;
  overflow:visible;
  pointer-events:none;
  position:absolute;
  right:0;
  top:112px;
  transform:translate3d(calc(100% + 56px), -10px, 0) rotate(12deg) scale(1.2);
  transform-origin:center;
  user-select:none;
  width:min(50%, 170px);
  z-index:0;
}
.mobile-menu.open .mobile-menu-mascot{
  animation:mobileMenuMascotEntrance .72s cubic-bezier(.2,.82,.22,1) both;
}
.mobile-menu-mascot img{
  display:block;
  filter:drop-shadow(0 6px 8px rgba(0,0,0,.16));
  height:auto;
  left:50%;
  max-width:none;
  position:absolute;
  top:50%;
  transform:translate(-50%, -50%);
  width:154%;
}
@keyframes mobileMenuMascotEntrance{
  0%{
    opacity:0;
    transform:translate3d(calc(100% + 56px), -10px, 0) rotate(12deg) scale(1.2);
  }
  58%{
    opacity:1;
    transform:translate3d(-8px, -12px, 0) rotate(-5deg) scale(1.2);
  }
  80%{
    opacity:1;
    transform:translate3d(3px, -10px, 0) rotate(2.5deg) scale(1.2);
  }
  100%{
    opacity:1;
    transform:translate3d(0, -10px, 0) rotate(0) scale(1.2);
  }
}
.mobile-menu ul{
  display:grid;
  gap:0;
  list-style:none;
  padding-right:44px;
}
.mobile-menu li{border-bottom:0}
.mobile-menu a{
  color:var(--crema);text-decoration:none;
  display:block;padding:4px 0;
  font-family:var(--font-bebas-neue);font-size:clamp(40px, 10vw, 54px);
  font-weight:400;line-height:.92;text-transform:uppercase;
  cursor:pointer;
  transition:color .2s, transform .2s;
}
.mobile-menu a:hover,
.mobile-menu a:focus-visible{
  color:#fff;
  transform:translateX(5px);
}
.mobile-menu a.active{color:var(--oro)}
.mobile-menu-help{
  display:grid;
  margin-top:6px;
  padding-top:0;
}
.mobile-menu .mobile-menu-help-list{
  display:grid;
  gap:0;
  grid-template-columns:1fr;
  padding:0;
}
.mobile-menu .mobile-menu-help-list li{
  min-width:0;
  opacity:0;
  transform:translateY(6px);
  transition:opacity .24s ease, transform .24s ease;
}
.mobile-menu.open .mobile-menu-help-list li{
  opacity:1;
  transform:translateY(0);
}
.mobile-menu.open .mobile-menu-help-list li:nth-child(1){transition-delay:.05s}
.mobile-menu.open .mobile-menu-help-list li:nth-child(2){transition-delay:.08s}
.mobile-menu.open .mobile-menu-help-list li:nth-child(3){transition-delay:.11s}
.mobile-menu.open .mobile-menu-help-list li:nth-child(4){transition-delay:.14s}
.mobile-menu .mobile-menu-help-list a,
.mobile-menu-help-button{
  align-items:center;
  background:transparent;
  border:0;
  color:rgba(252,236,219,.82);
  cursor:pointer;
  display:flex;
  font-family:var(--font-montserrat);
  font-size:13px;
  font-weight:700;
  justify-content:flex-start;
  line-height:1.2;
  min-height:32px;
  padding:4px 0;
  text-align:left;
  text-transform:none;
  transition:color .2s, transform .2s;
  width:100%;
}
.mobile-menu .mobile-menu-help-list a:hover,
.mobile-menu .mobile-menu-help-list a:focus-visible,
.mobile-menu-help-button:hover,
.mobile-menu-help-button:focus-visible{
  color:var(--rosso);
  transform:translateX(3px);
}
.mobile-menu .mobile-menu-help-list a.active{
  color:var(--oro);
}
.mobile-menu-note{
  border-bottom:0;
  color:#0E8A3B;
  font-size:17px;
  font-style:italic;
  font-weight:800;
  line-height:1.05;
  margin:18px 0 12px;
  padding:0;
}
.mobile-menu .mobile-menu-social{
  align-items:center;
  background:transparent;
  border:0;
  border-radius:0;
  display:flex;
  font-family:var(--font-montserrat);
  font-size:13px;
  font-weight:900;
  gap:9px;
  letter-spacing:0;
  line-height:1;
  margin-top:0;
  padding:0;
  text-transform:none;
  width:100%;
}

.mobile-menu-social-icon{
  align-items:center;
  background:transparent;
  color:var(--crema);
  display:flex;
  flex:0 0 28px;
  height:28px;
  justify-content:center;
  width:28px;
}

.mobile-menu-social-icon svg{
  display:block;
  fill:none;
  height:26px;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:1.9;
  width:26px;
}
.overlay{
  -webkit-backdrop-filter:blur(9px);
  backdrop-filter:blur(9px);
  position:fixed;inset:0;background:rgba(66,40,23,.28);
  z-index:120;opacity:0;pointer-events:none;
  transition:opacity .24s ease;
  border:0;
  cursor:pointer;
}
.overlay.active{opacity:1;pointer-events:auto}
.site-toast{
  position:fixed;
  left:50%;
  bottom:24px;
  z-index:120;
  transform:translate(-50%, 18px);
  background:var(--nero);
  color:var(--crema);
  border:1px solid rgba(252,236,219,.18);
  border-radius:999px;
  box-shadow:0 14px 30px rgba(0,0,0,.24);
  font-size:14px;
  font-weight:600;
  max-width:min(520px, calc(100vw - 32px));
  opacity:0;
  padding:12px 18px;
  pointer-events:none;
  text-align:center;
  transition:opacity .25s, transform .25s;
}
.site-toast.show{
  opacity:1;
  transform:translate(-50%, 0);
}

html.page-scroll-locked,
body.page-scroll-locked{
  overflow:hidden !important;
  overscroll-behavior:none !important;
}

body.page-scroll-locked{
  inset-inline:0;
  position:fixed;
  top:var(--page-scroll-lock-offset, 0);
  width:100% !important;
}

.footer-cookie-button{
  background:none;
  border:0;
  color:rgba(252,236,219,.75);
  cursor:pointer;
  font:inherit;
  padding:0;
  text-align:left;
  transition:color .2s;
}

.footer-cookie-button:hover,
.footer-cookie-button:focus-visible{
  color:var(--oro);
}

.policy-list{
  display:grid;
  gap:12px;
  list-style:none;
  margin:24px 0;
}

.policy-list li{
  background:rgba(255,255,255,.72);
  border:1px solid rgba(66,40,23,.1);
  border-radius:18px;
  color:rgba(66,40,23,.82);
  padding:16px 18px;
}

.policy-list strong{
  color:var(--nero);
}

.policy-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:24px;
}

.cookie-consent[hidden]{
  display:none !important;
}

.cookie-consent{
  bottom:24px;
  left:50%;
  max-width:calc(100vw - 32px);
  opacity:0;
  position:fixed;
  transform:translate(-50%, 18px);
  transition:opacity .26s ease, transform .26s ease;
  width:min(760px, calc(100vw - 32px));
  z-index:1100;
}

.cookie-consent.visible{
  opacity:1;
  transform:translate(-50%, 0);
}

.cookie-card{
  background:rgba(255,255,255,.96);
  border:0;
  border-radius:26px;
  box-shadow:0 22px 54px rgba(66,40,23,.22);
  color:var(--nero);
  overflow:hidden;
  padding:24px;
  position:relative;
}

.cookie-close{
  align-items:center;
  background:transparent;
  border:0;
  border-radius:0;
  color:var(--nero);
  cursor:pointer;
  display:flex;
  font-size:30px;
  font-weight:800;
  height:38px;
  justify-content:center;
  line-height:1;
  padding:0;
  position:absolute;
  right:18px;
  top:18px;
  transition:color .2s, opacity .2s;
  width:38px;
}

.cookie-close:hover{
  color:var(--rosso);
}

.cookie-card-head{
  align-items:center;
  display:flex;
  gap:16px;
  padding-right:48px;
}

.cookie-kicker{
  color:var(--rosso);
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  margin-bottom:4px;
  text-transform:uppercase;
}

.cookie-card h2{

  font-size:clamp(24px, 3.2vw, 42px);
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1;
}

.cookie-card > p{
  color:rgba(66,40,23,.78);
  font-size:16px;
  margin:18px 0 20px;
  max-width:620px;
}

.cookie-actions{
  display:flex;
  justify-content:flex-end;
}

.cookie-btn{
  align-items:center;
  background:rgba(66,40,23,.08);
  border:0;
  border-radius:999px;
  box-shadow:none;
  color:var(--nero);
  cursor:pointer;
  display:flex;
  font-weight:900;
  justify-content:center;
  min-height:48px;
  padding:12px 18px;
  text-align:center;
  text-transform:uppercase;
  transition:background .2s, color .2s, transform .2s;
  width:100%;
}

.cookie-btn:hover{
  background:rgba(66,40,23,.14);
  transform:translateY(-1px);
}

.cookie-btn:focus-visible{
  background:var(--oro);
  outline:0;
  transform:translateY(-1px);
}

.cookie-btn-primary{
  background:var(--nero);
  color:var(--crema);
}

.cookie-btn-primary:hover,
.cookie-btn-primary:focus-visible{
  background:var(--rosso);
  color:#fff;
}

.cookie-actions .cookie-btn{
  min-width:190px;
  width:auto;
}

.cookie-policy-link{
  color:rgba(66,40,23,.72);
  display:inline;
  font-size:inherit;
  font-weight:800;
  margin-left:.25em;
  margin-top:0;
  text-decoration:none;
}

.cookie-policy-link:hover{
  color:var(--rosso);
}

/* ============ MVP BRAND SYSTEM OVERRIDES ============ */
:root{
  --rosso:#DC4D1F;
  --rosso-deep:#DC4D1F;
  --nero:#422817;
  --oro:#E2A93B;
  --verde:#6B8A45;
  --bianco:#FFFFFF;
}

body{
  color:var(--nero);
}

main{
  position:relative;
  z-index:2;
}

.section-tight{
  padding-top:0;
}

.home-featured-section,
.home-gallery-section{
  --home-section-gap:clamp(34px, 4vw, 64px);
  padding-top:var(--home-section-gap);
}

.home-gallery-section{
  overflow:visible !important;
  padding-bottom:clamp(30px, 4vw, 58px);
}

.home-gallery-section .container{
  overflow:visible !important;
}

.home-card-deck{
  --card-frame:0px;
  --card-width:clamp(520px, 46vw, 600px);
  --card-radius:clamp(28px, 2.7vw, 40px);
  min-height:clamp(760px, 62vw, 860px);
  overflow:visible !important;
  perspective:1200px;
  position:relative;
  touch-action:pan-y;
}

.home-deck-card{
  --card-x:0px;
  --card-y:0px;
  --card-rotate:0deg;
  --card-scale:1;
  --card-opacity:1;
  --card-z:1;
  --drag-x:0px;
  --drag-y:0px;
  --drag-rotate:0deg;
  --tilt-x:0deg;
  --tilt-y:0deg;
  appearance:none;
  aspect-ratio:4 / 5;
  background:transparent;
  border:0;
  border-radius:var(--card-radius);
  box-sizing:border-box;
  box-shadow:0 22px 46px rgba(66,40,23,.18);
  cursor:pointer;
  left:50%;
  margin:0;
  opacity:0;
  overflow:hidden;
  padding:0;
  position:absolute;
  top:50%;
  transform:
    translate(-50%, -50%)
    translate3d(var(--card-x), var(--card-y), 0)
    translate3d(var(--drag-x), var(--drag-y), 0)
    rotate(var(--card-rotate))
    rotateX(var(--tilt-y))
    rotateY(var(--tilt-x))
    rotate(var(--drag-rotate))
    scale(var(--card-scale));
  transform-origin:center;
  transition:
    opacity .42s ease,
    transform .72s cubic-bezier(.18, 1.22, .24, 1),
    box-shadow .28s ease;
  transition-delay:calc(var(--enter-delay, 0) * 70ms);
  width:var(--card-width);
  will-change:transform, opacity;
  z-index:var(--card-z);
}

.home-card-deck.is-visible .home-deck-card{
  opacity:1;
}

.home-card-deck:not(.is-visible) .home-deck-card{
  transform:
    translate(-50%, -44%)
    translate3d(var(--card-x), calc(var(--card-y) + 58px), 0)
    rotate(var(--card-rotate))
    scale(.84);
}

.home-deck-card:hover,
.home-deck-card:focus-visible{
  box-shadow:0 28px 56px rgba(66,40,23,.22);
}

.home-deck-card:focus-visible{
  outline:4px solid var(--oro);
  outline-offset:6px;
}

.home-deck-card.is-active{
  box-shadow:0 30px 64px rgba(66,40,23,.24);
}

.home-deck-card.is-dragging{
  cursor:grabbing;
  transition:none;
}

.home-deck-card.is-swiping-out{
  transition:transform .2s ease, opacity .2s ease;
}

.home-deck-card img{
  border-radius:var(--card-radius);
  display:block;
  height:100%;
  object-fit:cover;
  pointer-events:none;
  transform:none;
  user-select:none;
  width:100%;
}

@media (prefers-reduced-motion: reduce){
  .home-deck-card{
    opacity:1;
    transition:none !important;
  }
}

@media (max-width: 760px) and (orientation: portrait){
  .home-gallery-section{
    --home-section-gap:24px;
    overflow:visible !important;
    padding-bottom:48px;
  }

  .home-card-deck{
    --card-frame:0px;
    --card-width:min(86vw, 450px);
    --card-radius:28px;
    height:min(calc(96.75vw + 118px), 624px);
    min-height:0;
  }

  .home-deck-card{
    box-shadow:0 18px 38px rgba(66,40,23,.2);
    top:0;
    transform:
      translate(-50%, 0)
      translate3d(var(--card-x), var(--card-y), 0)
      translate3d(var(--drag-x), var(--drag-y), 0)
      rotate(var(--card-rotate))
      rotateX(var(--tilt-y))
      rotateY(var(--tilt-x))
      rotate(var(--drag-rotate))
      scale(var(--card-scale));
  }

  .home-card-deck:not(.is-visible) .home-deck-card{
    transform:
      translate(-50%, 0)
      translate3d(var(--card-x), calc(var(--card-y) + 42px), 0)
      rotate(var(--card-rotate))
      scale(.84);
  }

  .home-deck-card.is-active{
    box-shadow:0 22px 48px rgba(66,40,23,.23);
  }
}

.nav{
  max-width:1280px;
  width:100%;
  display:grid;
  grid-template-columns:max-content minmax(0, 1fr);
  align-items:center;
  column-gap:clamp(14px, 1.6vw, 24px);
  padding:
    14px
    max(clamp(16px, 2vw, 28px), var(--safe-area-right))
    14px
    max(clamp(16px, 2vw, 28px), var(--safe-area-left));
}

header .nav > .logo{
  min-width:max-content;
}

header .nav > .logo .logo-text{
  font-size:clamp(24px, 5.6vw, 34px);
}

header .nav > nav{
  min-width:0;
  justify-self:end;
  text-align:right;
  width:min(100%, 700px);
}

header .nav > nav ul{
  align-items:center;
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  list-style:none;
  width:100%;
}

header .nav > nav li{
  display:flex;
  justify-content:center;
  min-width:0;
}

header .nav > nav a{
  color:var(--nero);
  cursor:pointer;
  font-family:var(--font-montserrat);
  font-size:14px;
  font-weight:800;
  letter-spacing:.025em;
  line-height:1;
  padding:10px 0;
  position:relative;
  text-decoration:none;
  text-transform:uppercase;
  white-space:nowrap;
}

header .nav > nav a:hover,
header .nav > nav a.active{
  color:var(--rosso);
}

header .nav > nav a.nav-link--cta,
header .nav > nav a.nav-link--cta:hover,
header .nav > nav a.nav-link--cta.active{
  background:var(--rosso);
  border-radius:999px;
  color:var(--crema);
  padding:12px 18px;
}

.logo-text small{
  color:var(--rosso);
  letter-spacing:.16em;
}

.location-pill{
  color:var(--nero);
  text-decoration:none;
  min-height:44px;
  white-space:nowrap;
}

@media (max-width: 1180px) and (min-width: 761px){
  .nav{
    column-gap:12px;
  }

  header .nav > nav a{
    font-size:13px;
  }

  header .nav > nav{
    width:min(100%, 620px);
  }

}

@media (max-width: 760px) and (orientation: portrait){
  header .nav > nav{
    display:none;
  }
}

@media (max-width: 380px){
  header .nav > .logo .logo-text{
    font-size:22px;
  }
}

.btn{
  min-height:44px;
  justify-content:center;
}

.btn-primary{
  background:var(--rosso);
  color:#fff;
  box-shadow:0 4px 0 var(--rosso-deep);
}

.btn-primary:hover{
  background:#DC4D1F;
}

.btn-cream{
  color:var(--nero);
}

.btn-disabled,
.btn-disabled:hover{
  background:rgba(66,40,23,.14);
  color:rgba(66,40,23,.56);
  box-shadow:none;
  cursor:not-allowed;
  transform:none;
}

.hero{
  min-height:78vh;
  background:var(--rosso);
}

.hero p.lead{
  font-size:clamp(17px, 2vw, 22px);
  max-width:560px;
}

.locator-hero{
  padding:90px 32px 100px;
}

.locator-hero h1{

  font-size:clamp(52px, 8vw, 112px);
  font-style:italic;
  font-weight:800;
  letter-spacing:-.04em;
  line-height:.9;
  margin:0 auto;
  max-width:1050px;
}

.locator-hero h1 span{
  color:var(--oro);
}

.locator-hero p{
  color:rgba(252,236,219,.88);
  font-size:clamp(17px, 2vw, 22px);
  margin:22px auto 0;
  max-width:720px;
}

.page-note,
.legal-note{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  color:inherit;
  display:inline-flex;
  font-size:14px !important;
  font-weight:700;
  margin-top:18px !important;
  padding:9px 14px;
}

.format-grid .cat-card{
  align-items:flex-start;
  display:flex;
  flex-direction:column;
  min-height:190px;
  text-align:left;
}

.format-grid .cat-card.featured-format{
  background:var(--nero);
  color:var(--crema);
}

.format-grid .cat-card.featured-format .cat-count{
  color:rgba(252,236,219,.72);
}

.format-grid .cat-name{
  font-size:24px;
  line-height:1;
}

.format-grid .cat-count{
  color:rgba(66,40,23,.66);
  font-size:14px;
  line-height:1.45;
  margin-top:14px;
}

.cat-cta{
  color:var(--rosso);
  font-size:14px;
  font-weight:800;
  margin-top:auto;
}

.cat-card:hover .cat-cta,
.featured-format .cat-cta{
  color:var(--oro);
}

.product-badges{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 16px;
}

.product-badges span{
  background:rgba(107,138,69,.14);
  border:1px solid rgba(107,138,69,.24);
  border-radius:999px;
  color:var(--verde);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  padding:5px 9px;
}

.product-detail{
  background:transparent;
  border:1.5px solid var(--nero);
  border-radius:999px;
  color:var(--nero);
  cursor:pointer;
  font-size:13px;
  font-weight:800;
  min-height:36px;
  padding:7px 12px;
  transition:all .2s;
  white-space:nowrap;
}

.product-detail:hover{
  background:var(--rosso);
  border-color:var(--rosso);
  color:#fff;
}

.product-foot{
  gap:10px;
}

.brand-education{
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:32px;
  display:grid;
  gap:42px;
  grid-template-columns:1fr 1.15fr;
  padding:58px;
}

.brand-education.dark{
  background:var(--nero);
  color:var(--crema);
}

.brand-education h2,
.store-feature h2,
.home-store-section h2,
.order-band h2,
.faq-layout h2,
.policy-copy h2{

  font-size:clamp(38px, 5vw, 68px);
  font-weight:800;
  letter-spacing:-.03em;
  line-height:1;
  margin-bottom:18px;
}

.brand-education p,
.store-feature p,
.order-band p,
.policy-copy p{
  color:rgba(66,40,23,.72);
  font-size:17px;
  line-height:1.7;
  max-width:620px;
}

.brand-education.dark p{
  color:rgba(252,236,219,.78);
}

.compare-grid{
  display:grid;
  gap:18px;
  grid-template-columns:1fr 1fr;
}

.compare-card{
  background:var(--crema);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:24px;
  padding:28px;
}

.compare-card.kebabbiamo-card{
  background:var(--rosso);
  color:#fff;
}

.compare-card h3,
.info-card h3,
.info-card h2{

  font-size:28px;
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1.05;
  margin:8px 0 14px;
}

.compare-card ul,
.modal-product-content ul{
  display:grid;
  gap:10px;
  padding-left:20px;
}

.store-feature{
  align-items:start;
  display:grid;
  gap:28px;
  grid-template-columns:minmax(320px, .9fr) 1.2fr;
}

.store-copy{
  align-items:flex-start;
  display:flex;
  flex-direction:column;
}

.store-card-feature{
  cursor:default;
  height:auto;
  width:100%;
}

.compact-store-list{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  margin-top:26px;
  width:100%;
}

.location-map-wrap{
  margin:28px auto 0;
  max-width:calc(100vw - (var(--content-inset) * 2));
  width:calc(100% - (var(--content-inset) * 2));
}

.container .location-map-wrap{
  max-width:none;
  width:100%;
}

.store-page-layout{
  display:grid;
  gap:34px;
}

.order-store-list{
  display:grid;
  gap:24px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  margin-bottom:22px;
}

.order-location-card,
.order-location-card .order-store{
  height:100%;
}

.home-store-section .store-card-feature.reveal{
  opacity:1;
  transform:none;
  will-change:auto;
}

.store-card-feature p{
  margin:18px 0;
}

.store-card-feature .store-actions{
  margin-top:22px;
}

.store-actions a,
.store-actions button{
  align-items:center;
  background:transparent;
  border:1.5px solid var(--nero);
  border-radius:12px;
  color:var(--nero);
  display:flex;
  flex:1;
  font-size:13px;
  font-weight:800;
  justify-content:center;
  min-height:44px;
  padding:10px;
  text-decoration:none;
  transition:all .2s;
}

.store-actions a:hover,
.store-actions button:hover{
  background:var(--nero);
  color:var(--crema);
}

.store-actions a.primary{
  background:var(--rosso);
  border-color:var(--rosso);
  color:#fff;
}

.store-actions a.primary:hover{
  background:var(--rosso-deep);
  border-color:var(--rosso-deep);
}

#locations-page-list .location-card{
  align-items:center;
  border:2px solid transparent;
  box-shadow:none;
  display:grid;
  gap:24px;
  grid-template-columns:minmax(0, 1fr);
  height:100%;
  min-height:144px;
  padding:26px;
  transform:none;
  transition:border-color 160ms ease;
}

#locations-page-list .location-card.is-map-pinned{
  border-color:var(--nero);
}

@media (hover:hover) and (pointer:fine){
  #locations-page-list .location-card-open{
    cursor:pointer;
  }
}

#locations-page-list .location-card-coming-soon{
  cursor:default;
}

.location-card-header{
  align-items:center;
  align-self:center;
  display:grid;
  gap:18px;
  grid-template-columns:48px minmax(0, 1fr);
}

.location-card-header .store-card-marker{
  height:48px;
  margin:0;
  min-height:48px;
  min-width:48px;
  width:48px;
}

.location-card-header .store-card-marker-construction{
  background:var(--oro);
  color:var(--nero);
}

.location-card-header .store-card-marker-construction svg{
  fill:none;
  height:27px;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:2.2;
  width:27px;
}

.location-card-heading{
  min-width:0;
}

.location-card-heading .store-name{
  font-size:clamp(22px, 2.3vw, 28px);
  line-height:1.08;
  margin:0;
}

.location-card-heading .store-fixed-brand{
  margin-bottom:8px;
}

.location-card-heading .location-card-city{
  color:var(--rosso);
}

.location-card-heading .store-status{
  margin:10px 0 0;
}

.location-card-coming-soon .location-card-heading .store-status-coming-soon{
  background:transparent;
  border:0;
  border-radius:0;
  padding:0;
}

.location-card-heading .store-addr{
  font-size:14px;
  line-height:1.45;
  margin:8px 0 0;
  white-space:nowrap;
}

.store-card-feature .location-card-actions{
  align-items:center;
  display:flex;
  flex:0 0 auto;
  justify-content:flex-end;
  margin:0;
  width:100%;
}

#locations-page-list .store-action-button,
#locations-page-list .store-actions a.store-action-button{
  align-items:center;
  border:0;
  border-radius:18px;
  box-shadow:none;
  display:flex;
  flex:1 1 0;
  font-family:var(--font-montserrat);
  font-size:12px;
  font-weight:800;
  justify-content:center;
  letter-spacing:.01em;
  max-width:210px;
  min-height:54px;
  min-width:0;
  padding:12px 18px;
  text-align:center;
  text-transform:uppercase;
  transform-origin:center;
  transition:filter 160ms ease, transform 160ms cubic-bezier(.2,.7,.2,1);
  white-space:nowrap;
  width:100%;
}

@media (min-width:761px){
  #locations-page-list .location-card{
    grid-template-columns:minmax(0, 1fr) minmax(160px, 180px);
  }

  #locations-page-list .location-card-header{
    align-self:center;
  }

  #locations-page-list .location-card-actions{
    align-self:center;
    justify-self:end;
    width:100%;
  }

  #locations-page-list .location-card-actions .store-action-button{
    max-width:none;
  }
}

#locations-page-list .store-action-button.store-action-order{
  background:var(--rosso);
  color:#fff;
}

@media (hover:hover) and (pointer:fine){
  #locations-page-list .store-action-button:hover,
  #locations-page-list .store-action-button:focus-visible{
    filter:brightness(1.06);
    transform:translateY(-2px) scale(1.01);
  }
}

#locations-page-list .store-action-button:active{
  filter:brightness(.9);
  transform:translateY(2px) scale(.97);
  transition-duration:80ms;
}

#locations-page-list .store-action-button:focus-visible{
  outline:3px solid var(--oro);
  outline-offset:2px;
}

.map-frame{
  background:var(--bianco);
  border:0;
  border-radius:32px;
  min-height:420px;
  width:100%;
}

.locations-map{
  color:var(--nero);
  overflow:hidden;
  position:relative;
  z-index:1;
}

.locations-map .leaflet-control-zoom{
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  display:grid;
  gap:8px;
}

.locations-map .leaflet-control-zoom a,
.locations-map .leaflet-control-zoom a:first-child,
.locations-map .leaflet-control-zoom a:last-child{
  align-items:center;
  background:var(--nero);
  border:2px solid var(--crema);
  border-radius:999px;
  box-shadow:none;
  color:var(--oro);
  display:flex;
  font-family:var(--font-montserrat);
  font-size:24px;
  font-weight:800;
  height:40px;
  justify-content:center;
  line-height:1;
  width:40px;
}

.locations-map .leaflet-control-zoom a:hover,
.locations-map .leaflet-control-zoom a:focus-visible{
  background:var(--rosso);
  color:#fff;
}

.locations-map .leaflet-control-zoom a:focus-visible{
  outline:3px solid var(--oro);
  outline-offset:2px;
}

.locations-map .leaflet-control-zoom a.leaflet-disabled{
  background:rgba(66,40,23,.58);
  color:rgba(252,236,219,.62);
}

.locations-map-shell{
  width:100%;
}

.location-pin-icon span{
  align-items:center;
  background:var(--rosso);
  border:3px solid var(--bianco);
  border-radius:999px;
  box-shadow:0 6px 12px rgba(66,40,23,.24);
  color:#fff;
  display:flex;
  font-family:'Inter',sans-serif;
  font-size:13px;
  font-style:normal;
  font-weight:900;
  height:34px;
  justify-content:center;
  transition:box-shadow 180ms ease, transform 180ms cubic-bezier(.2,.7,.2,1);
  width:34px;
}

.location-pin-icon.is-card-active span{
  box-shadow:0 10px 18px rgba(66,40,23,.3);
  transform:translateY(-2px) scale(1.08);
}

.location-pin-icon{
  align-items:center;
  display:flex;
  justify-content:center;
}

.leaflet-popup-content{
  color:var(--nero);
  font-family:'Inter',sans-serif;
  line-height:1.35;
  margin:12px 14px;
}

.location-popup-copy > strong,
.location-popup-copy > span{
  display:block;
}

.location-popup-copy > strong{
  font-family:var(--font-montserrat);
  font-size:18px;
  font-weight:800;
  line-height:1.15;
}

.location-popup-title > span{
  display:block;
}

.location-popup-place{
  margin-top:2px;
}

.location-popup-row{
  align-items:center;
  display:flex;
  gap:12px;
}

.location-popup-copy{
  min-width:0;
}

.locations-map .location-popup-leading{
  align-items:center;
  border:0;
  border-radius:999px;
  box-shadow:none;
  display:flex;
  flex:0 0 44px;
  height:44px;
  justify-content:center;
  text-decoration:none;
  transition:background-color .2s, color .2s, transform .2s;
  width:44px;
}

.locations-map .location-popup-directions{
  background:var(--verde-vege);
  color:var(--bianco);
}

.locations-map .location-popup-construction{
  background:var(--oro);
  color:var(--nero);
}

.locations-map .location-popup-directions:hover,
.locations-map .location-popup-directions:focus-visible{
  background:var(--rosso);
  color:#fff;
  transform:translateY(-1px);
}

.locations-map .location-popup-directions:focus-visible{
  outline:3px solid var(--oro);
  outline-offset:2px;
}

.locations-map .location-popup-directions .directions-explore-glyph{
  height:23px;
  width:23px;
}

.locations-map .location-popup-construction svg{
  fill:none;
  height:25px;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:2.2;
  width:25px;
}

.delivery-section{
  margin-bottom:0;
}

.home-store-section{
  padding-bottom:76px;
}

.home-store-section .store-feature{
  align-items:stretch;
  display:grid;
  gap:22px;
  grid-template-columns:minmax(360px, 380px) minmax(0, 1fr);
  margin-top:28px;
}

.home-store-section .store-copy{
  max-width:none;
  width:100%;
}

.home-store-section .compact-store-list{
  gap:20px;
  grid-template-columns:minmax(0, 1fr);
  margin-top:0;
}

.home-store-section .location-map-wrap{
  align-self:stretch;
  display:flex;
  margin:0;
  max-width:none;
  width:100%;
}

.home-store-section .locations-map-shell{
  display:flex;
  width:100%;
}

.home-store-section .map-frame{
  display:block;
  flex:1;
  height:100%;
  min-height:520px;
}

.home-order-store-card{
  align-content:start;
  cursor:default;
  display:grid;
  gap:22px;
}

.home-order-store-card:hover{
  border-color:rgba(66,40,23,.08);
  box-shadow:none;
  transform:none;
}

.home-order-store-heading{
  align-items:center;
  display:flex;
  gap:14px;
  justify-content:center;
  margin-inline:auto;
  max-width:min(100%, 360px);
  width:100%;
}

.home-order-store-heading .store-card-marker{
  margin:0;
}

.home-order-store-copy{
  min-width:0;
  text-align:center;
}

.home-order-store-copy .store-fixed-brand{
  text-align:center;
}

.home-store-section .home-order-store-card .store-name{
  margin:0 0 4px;
  text-align:center;
}

.home-store-section .home-order-store-card .store-addr{
  font-size:clamp(12px, 2.8vw, 14px);
  margin:0;
  text-align:center;
  white-space:nowrap;
}

.home-order-store-card .order-platform-tray{
  width:100%;
}

.home-delivery-section{
  padding-top:0;
}

.delivery-card{
  align-items:flex-start;
  background:var(--bianco);
  border-radius:28px;
  color:var(--nero);
  display:flex;
  flex-direction:column;
  gap:12px;
  justify-content:center;
  min-height:300px;
  padding:36px;
}

.delivery-card strong{

  font-size:42px;
  font-style:italic;
  line-height:1;
}

.platform-grid{
  display:grid;
  gap:14px;
  grid-template-columns:1fr;
  margin-top:32px;
}

.platform-grid.compact{
  grid-template-columns:1fr;
  margin-top:0;
}

.platform-card{
  align-items:center;
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:22px;
  color:var(--nero);
  display:flex;
  gap:16px;
  justify-content:space-between;
  min-height:96px;
  padding:18px;
}

.platform-card.compact-card{
  min-height:88px;
  padding:16px;
}

.platform-head{
  align-items:center;
  display:flex;
  gap:14px;
  min-width:0;
}

.platform-logo-wrap{
  align-items:center;
  background:transparent;
  border:0;
  border-radius:50%;
  display:flex;
  flex:0 0 52px;
  height:52px;
  justify-content:center;
  overflow:hidden;
  padding:0;
  width:52px;
}

.platform-logo{
  display:block;
  height:52px;
  max-height:none;
  max-width:none;
  object-fit:cover;
  width:52px;
}

.platform-logo-justeat .platform-logo{
  max-height:none;
}

.platform-name{
  color:var(--nero);

  font-size:clamp(24px, 2.4vw, 30px);
  font-weight:800;
  line-height:1;
  min-width:0;
}

.platform-card p{
  color:rgba(66,40,23,.65);
  font-size:14px;
  line-height:1.35;
  margin-bottom:0;
  margin-top:8px;
  max-width:none;
  opacity:1;
}

.platform-card .btn{
  flex:0 0 auto;
  min-width:104px;
  padding-inline:20px;
  width:auto;
}

.order-band{
  align-items:center;
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:32px;
  display:flex;
  gap:24px;
  justify-content:space-between;
  padding:36px;
}

.order-store{
  align-items:stretch;
  cursor:default;
  display:grid;
  gap:20px;
  margin-bottom:0;
}

.order-store:hover{
  border-color:rgba(66,40,23,.08);
  box-shadow:none;
  transform:none;
}

.order-store-main{
  align-items:center;
  display:flex;
  gap:16px;
  justify-content:center;
  text-align:center;
  width:100%;
}

.order-store-copy{
  min-width:0;
  text-align:center;
}

.order-store-copy .store-name{
  margin:0;
}

.order-store-copy .store-fixed-brand{
  margin-bottom:9px;
  text-align:center;
}

.order-directions-btn{
  align-items:center;
  border:1.5px solid var(--nero);
  border-radius:12px;
  color:var(--nero);
  display:inline-flex;
  flex:0 0 auto;
  font-size:13px;
  font-weight:800;
  justify-content:center;
  min-height:44px;
  min-width:112px;
  padding:10px 16px;
  text-decoration:none;
  transition:all .2s;
}

.order-directions-btn:hover{
  background:var(--nero);
  color:var(--crema);
}

.order-platform-tray{
  display:grid;
  gap:14px;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  justify-items:center;
  padding-top:0;
}

.order-platform-tray.is-pending{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  margin-inline:auto;
  max-width:280px;
  width:min(100%, 280px);
}

.order-platform-logo-link,
.order-platform-pending{
  align-items:center;
  color:var(--nero);
  display:flex;
  flex-direction:column;
  gap:10px;
  justify-content:center;
  min-height:auto;
  padding:0;
  text-align:center;
  text-decoration:none;
}

.order-platform-logo-link{
  touch-action:manipulation;
}

button.order-platform-logo-link{
  background:transparent;
  border:0;
  cursor:pointer;
  font:inherit;
}

.order-platform-logo-link .platform-logo-wrap{
  transform-origin:center;
  transition:filter 160ms ease, transform 160ms cubic-bezier(.2,.7,.2,1);
  will-change:transform;
}

@media (min-width:761px) and (hover:hover) and (pointer:fine){
  .order-platform-logo-link:hover .platform-logo-wrap{
    filter:brightness(1.06);
    transform:translateY(-3px) scale(1.05);
  }
}

.order-platform-logo-link:active .platform-logo-wrap{
  filter:brightness(.9);
  transform:translateY(2px) scale(.9);
  transition-duration:80ms;
}

.order-platform-open{
  display:none;
}

.order-page-note{
  color:rgba(66,40,23,.66);
  margin:4px 0 0;
  text-align:center;
}

#page-ordina{
  --order-preflight-gap:clamp(48px, 4.4vw, 72px);
}

#page-ordina .task-page-section{
  padding-bottom:var(--order-preflight-gap);
}

#page-ordina .order-store-list{
  margin-bottom:var(--order-preflight-gap);
}

#page-ordina .order-page-note{
  margin:0;
}

.page-end-prompt,
.page-end-prompt a{
  font-family:var(--font-montserrat);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
}

.page-end-prompt__line{
  display:block;
}

#page-franchising .order-page-note,
#page-contatti .order-page-note{
  margin-top:24px;
}

#page-contatti .brand-wordmark-biamo{
  color:var(--nero);
}

.order-platform-logo-link .platform-logo-wrap,
.order-platform-logo-link .platform-logo{
  flex-basis:54px;
  height:54px;
  width:54px;
}

.order-directions-icon{
  align-items:center;
  background:var(--rosso);
  border-radius:999px;
  color:var(--crema);
  display:flex;
  flex:0 0 54px;
  height:54px;
  justify-content:center;
  width:54px;
}

.directions-explore-glyph{
  -webkit-mask:url('../assets/icons/explore.svg') center / contain no-repeat;
  background-color:currentColor;
  display:block;
  height:28px;
  mask:url('../assets/icons/explore.svg') center / contain no-repeat;
  transform:translateY(-5%);
  width:28px;
}

.order-directions-number-icon{
  font-family:var(--font-montserrat);
  font-size:18px;
  font-weight:900;
  line-height:1;
}

.order-platform-logo-label{
  color:rgba(66,40,23,.72);
  font-family:var(--font-montserrat);
  font-size:12px;
  font-weight:800;
  line-height:1.2;
}

.order-platform-pending{
  cursor:default;
  max-width:180px;
  min-width:150px;
}

.order-platform-pending-icon{
  align-items:center;
  background:var(--oro);
  border-radius:999px;
  color:var(--nero);
  display:flex;
  height:54px;
  justify-content:center;
  width:54px;
}

/* Order page: selected brand top-band store panels. */
#page-ordina .order-store-list{
  align-items:start;
  gap:clamp(24px, 3vw, 42px);
}

#page-ordina .order-location-card,
#page-ordina .order-location-card .order-store{
  height:auto;
}

#page-ordina .order-store{
  background:var(--bianco);
  border:0;
  border-radius:30px;
  box-shadow:none;
  gap:0;
  overflow:hidden;
  padding:0;
}

#page-ordina .order-store:hover{
  border:0;
  box-shadow:none;
  transform:none;
}

#page-ordina .order-store-main{
  padding:40px 26px;
}

#page-ordina .order-location-card{
  --order-card-band-background:var(--nero);
  --order-card-city-color:var(--rosso);
  --order-card-area-color:var(--crema);
}

#page-ordina .order-location-card .order-store-main{
  background:var(--order-card-band-background);
  color:var(--bianco);
}

#page-ordina .order-store-copy .store-name{
  font-family:var(--font-montserrat);
  font-size:clamp(24px, 2.3vw, 32px);
  font-weight:800;
  letter-spacing:-.025em;
  line-height:1.05;
}

#page-ordina .order-location-card .store-name{
  color:var(--crema);
}

#page-ordina .order-location-card .store-fixed-brand{
  color:var(--crema);
}

#page-ordina .order-location-card .order-store-city{
  color:var(--order-card-city-color);
}

#page-ordina .order-location-card .order-store-area{
  color:var(--order-card-area-color);
}

#page-ordina .order-store .store-addr{
  color:rgba(66,40,23,.68);
  font-size:15px;
  line-height:1.45;
  margin:16px 0 0;
}

#page-ordina .order-location-card .store-addr{
  color:rgba(252,236,219,.86);
}

#page-ordina .order-store .store-status{
  border:0;
  border-radius:999px;
  margin:12px auto 0;
  padding:7px 14px;
}

#page-ordina .order-store .store-status-open{
  background:var(--verde-vege);
  color:var(--bianco);
}

#page-ordina .order-store .store-status-coming-soon{
  background:var(--oro);
  color:var(--bianco);
}

#page-ordina .order-platform-tray{
  background:var(--bianco);
  gap:clamp(10px, 1.5vw, 20px);
  grid-template-columns:repeat(5, minmax(0, 1fr));
  margin-inline:auto;
  max-width:none;
  padding:32px 22px 30px;
  width:100%;
}

#page-ordina .order-platform-tray.has-delivery{
  display:block;
  justify-items:stretch;
}

#page-ordina .order-platform-primary{
  align-items:start;
  display:grid;
  gap:clamp(10px, 1.5vw, 20px);
  grid-template-columns:repeat(4, minmax(0, 1fr));
}

#page-ordina .order-platform-primary > .order-platform-logo-link{
  gap:8px;
  justify-self:center;
  width:auto;
}

#page-ordina .order-platform-primary .order-platform-logo-label{
  max-width:none;
  overflow-wrap:normal;
  white-space:nowrap;
}

#page-ordina .order-platform-secondary{
  display:flex;
  justify-content:center;
  margin-top:24px;
}

#page-ordina .order-location-card.is-open .order-pickup-logo-link{
  background:var(--rosso);
  border-radius:18px;
  color:var(--bianco);
  flex-direction:row;
  justify-content:center;
  max-width:210px;
  min-height:54px;
  padding:12px 18px;
  text-align:center;
  transform-origin:center;
  transition:filter 160ms ease, transform 160ms cubic-bezier(.2,.7,.2,1);
  width:100%;
  will-change:transform;
}

@media (min-width:761px) and (hover:hover) and (pointer:fine){
  #page-ordina .order-location-card.is-open .order-pickup-logo-link:hover{
    filter:brightness(1.06);
    transform:translateY(-2px) scale(1.01);
  }

  #page-ordina .order-platform-primary .order-directions-logo-link:hover .order-directions-icon{
    filter:brightness(1.06);
    transform:translateY(-3px) scale(1.05);
  }
}

#page-ordina .order-location-card.is-open .order-pickup-logo-link:active{
  filter:brightness(.9);
  transform:translateY(2px) scale(.97);
  transition-duration:80ms;
}

#page-ordina .order-platform-primary .order-directions-logo-link:active .order-directions-icon{
  filter:brightness(.9);
  transform:translateY(2px) scale(.9);
  transition-duration:80ms;
}

#page-ordina .order-platform-primary .order-directions-icon{
  transform-origin:center;
  transition:filter 160ms ease, transform 160ms cubic-bezier(.2,.7,.2,1);
  will-change:transform;
}

#page-ordina .order-location-card.is-open .order-pickup-icon{
  display:none;
}

#page-ordina .order-location-card.is-open .order-pickup-logo-link .order-platform-logo-label{
  color:var(--bianco);
  font-size:14px;
  letter-spacing:.035em;
  line-height:1;
  max-width:none;
  text-align:center;
  text-transform:uppercase;
  width:100%;
}

#page-ordina .order-platform-tray.is-pending{
  grid-template-columns:minmax(0, 1fr);
  max-width:none;
  padding:24px 22px 30px;
  place-content:center;
}

#page-ordina .order-platform-tray.is-pending .store-status{
  margin:0 auto;
}

@media (min-width:1081px){
  #page-ordina .order-store-list{
    align-items:stretch;
  }

  #page-ordina .order-location-card,
  #page-ordina .order-location-card .order-store{
    height:100%;
  }

  #page-ordina .order-store{
    grid-template-rows:auto 1fr;
  }
}

#page-ordina .order-platform-logo-link,
#page-ordina .order-platform-pending{
  appearance:none;
  background:transparent;
  border:0;
  border-radius:0;
  color:var(--nero);
  cursor:pointer;
  font:inherit;
  gap:10px;
  min-width:0;
  padding:0;
  width:100%;
}

#page-ordina .order-platform-logo-link:focus-visible{
  outline:3px solid var(--oro);
  outline-offset:6px;
}

#page-ordina .order-platform-open{
  display:none;
}

#page-ordina .order-platform-logo-label{
  color:var(--nero);
  font-size:12px;
  font-weight:900;
  line-height:1.15;
  max-width:102px;
}

#page-ordina .order-directions-icon{
  background:var(--verde-vege);
  color:var(--bianco);
}

#page-ordina .order-directions-icon .directions-explore-glyph{
  height:40px;
  width:40px;
}

#page-ordina .order-pickup-icon{
  align-items:center;
  background:var(--rosso);
  border-radius:999px;
  color:#fff;
  display:flex;
  flex:0 0 54px;
  height:54px;
  justify-content:center;
  width:54px;
}

#page-ordina .order-pickup-icon svg{
  fill:currentColor;
  height:25px;
  width:25px;
}

#page-ordina .order-platform-logo-link .platform-logo-wrap,
#page-ordina .order-platform-logo-link .platform-logo,
#page-ordina .order-directions-icon,
#page-ordina .order-pickup-icon{
  flex-basis:60px;
  height:60px;
  width:60px;
}

.order-platform-pending-icon svg{
  display:block;
  fill:none;
  height:30px;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:2.2;
  width:30px;
}

.legal-note{
  color:rgba(66,40,23,.68);
  margin-top:20px;
}

.visual-board img{
  filter:drop-shadow(0 18px 24px rgba(66,40,23,.18));
  max-height:90%;
  object-fit:contain;
  position:relative;
  z-index:2;
}

.info-products{
  grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
}

.info-card{
  min-height:230px;
}

.info-card .product-info{
  justify-content:flex-start;
}

.info-card p{
  color:rgba(66,40,23,.68);
  font-size:15px;
  line-height:1.65;
}

.identity-grid{
  display:grid;
  gap:12px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.identity-grid span{
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  color:var(--crema);
  font-size:14px;
  font-weight:800;
  padding:12px 16px;
}

.cta-row{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}

.instagram-link{
  color:var(--rosso);
  display:inline-flex;
  font-weight:800;
  margin-top:18px;
}

.centered{
  justify-content:center;
}

.steps{
  display:grid;
  gap:14px;
  grid-template-columns:repeat(6, minmax(0, 1fr));
}

.step-card{
  background:var(--nero);
  border-radius:24px;
  color:var(--crema);
  min-height:150px;
  padding:22px;
}

.step-card span{
  color:var(--oro);
  display:block;

  font-size:34px;
  font-style:italic;
  font-weight:800;
  line-height:1;
  margin-bottom:18px;
}

.step-card strong{
  display:block;
  line-height:1.25;
}

.lead-form-layout{
  align-items:start;
  display:grid;
  gap:42px;
  grid-template-columns:.8fr 1.2fr;
}

.lead-form{
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:32px;
  display:grid;
  gap:16px;
  grid-template-columns:1fr 1fr;
  padding:32px;
}

.franchise-contact-panel > *{
  grid-column:1 / -1;
}

.franchise-contact-panel h3{

  font-size:clamp(30px, 4vw, 48px);
  line-height:1.05;
}

.franchise-contact-panel p{
  color:rgba(66,40,23,.72);
  line-height:1.65;
}

.franchise-contact-panel .btn{
  justify-self:start;
}

.franchise-faq-link{
  color:var(--rosso-deep);
  font-size:14px;
  font-weight:800;
  justify-self:start;
  text-underline-offset:3px;
}

/* Franchising + contatti: visual system shared with task pages */
#page-franchising,
#page-contatti{
  background:var(--crema);
}

.franchise-section-intro h2 em,
.franchise-contact-copy h2 em{
  color:var(--rosso);
  font-style:italic;
}

.franchise-intro-actions{
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  justify-content:center;
  margin-top:18px;
}

#page-franchising .franchise-principles{
  gap:18px;
  grid-template-columns:repeat(4, minmax(0, 1fr));
}

#page-franchising .franchise-principle-card{
  border-radius:24px;
  min-height:220px;
}

#page-franchising .franchise-principle-card:hover,
#page-franchising .franchise-profile-card:hover{
  border-color:rgba(66,40,23,.08);
  box-shadow:none;
  transform:none;
}

#page-franchising .franchise-principle-card .product-info{
  padding:26px;
}

#page-franchising .franchise-principle-card .product-category{
  align-items:center;
  background:var(--rosso);
  border:0;
  border-radius:50%;
  color:#fff;
  display:flex;
  font-size:12px;
  height:44px;
  justify-content:center;
  letter-spacing:0;
  padding:0;
  width:44px;
}

#page-franchising .franchise-principle-card h3{
  font-size:31px;
  margin-top:22px;
}

.franchise-discovery-note{
  margin-top:22px !important;
}

.franchise-system-section{
  padding-bottom:62px;
  padding-top:8px;
}

.franchise-system-panel{
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:28px;
  display:grid;
  grid-template-columns:minmax(300px, .78fr) minmax(0, 1.22fr);
  overflow:hidden;
}

.franchise-system-heading{
  background:var(--rosso);
  color:#fff;
  padding:48px;
}

.franchise-system-heading .task-page-kicker{
  color:var(--crema);
}

.franchise-system-heading h2{

  font-size:clamp(42px, 4.4vw, 64px);
  font-weight:800;
  letter-spacing:-.035em;
  line-height:.98;
  margin:14px 0 22px;
}

.franchise-system-heading p{
  color:rgba(255,255,255,.82);
  font-size:16px;
  line-height:1.65;
}

.franchise-system-panel .identity-grid{
  align-content:center;
  gap:0 28px;
  padding:40px 44px;
}

.franchise-system-panel .identity-grid span{
  align-items:center;
  background:transparent;
  border:0;
  border-bottom:1px solid rgba(66,40,23,.12);
  border-radius:0;
  color:var(--nero);
  display:flex;
  font-size:14px;
  gap:12px;
  min-height:58px;
  padding:12px 0;
}

.franchise-system-panel .identity-grid span::before{
  background:var(--oro);
  border-radius:50%;
  content:'';
  flex:0 0 9px;
  height:9px;
  width:9px;
}

.franchise-partner-section,
.franchise-process-section{
  padding-bottom:68px;
  padding-top:54px;
}

.franchise-section-intro{
  margin:0 auto 34px;
  max-width:760px;
  text-align:center;
}

.franchise-section-intro h2,
.franchise-contact-copy h2{

  font-size:clamp(42px, 5vw, 66px);
  font-weight:800;
  letter-spacing:-.035em;
  line-height:1;
}

#page-franchising .franchise-profile-grid{
  gap:18px;
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

#page-franchising .franchise-profile-card{
  border-radius:24px;
  border-top:6px solid var(--rosso);
  min-height:220px;
}

#page-franchising .franchise-profile-card .product-info{
  padding:28px;
}

.franchise-profile-index{
  color:var(--rosso);
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
}

#page-franchising .franchise-profile-card h3{
  font-size:30px;
  margin-top:20px;
}

#page-franchising .steps{
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:24px;
  gap:0;
  overflow:hidden;
}

#page-franchising .step-card{
  background:transparent;
  border-radius:0;
  border-right:1px solid rgba(66,40,23,.1);
  color:var(--nero);
  min-height:142px;
  padding:26px 22px;
}

#page-franchising .step-card:last-child{
  border-right:0;
}

#page-franchising .step-card span{
  color:var(--rosso);
  font-family:var(--font-montserrat);
  font-size:18px;
  font-style:normal;
  margin-bottom:24px;
}

#page-franchising .step-card strong{

  font-size:20px;
  line-height:1.15;
}

#franchising-form{
  padding-bottom:88px;
  padding-top:54px;
}

.franchise-contact-layout{
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:28px;
  display:grid;
  grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr);
  overflow:hidden;
}

.franchise-contact-copy{
  align-self:center;
  padding:50px;
}

.franchise-contact-copy .section-sub{
  font-size:16px;
  line-height:1.65;
  margin-top:20px;
  max-width:510px;
}

.franchise-contact-panel{
  align-content:center;
  background:var(--rosso);
  color:#fff;
  display:grid;
  gap:16px;
  padding:48px;
}

.franchise-contact-label{
  color:var(--crema);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.franchise-contact-panel h3{
  font-size:clamp(34px, 4vw, 50px);
  margin:0;
}

.franchise-contact-panel p{
  color:rgba(255,255,255,.84);
  margin:0;
}

.franchise-contact-panel .page-note{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.22);
  color:#fff;
  justify-self:start;
  margin:0 !important;
}

.franchise-contact-panel .btn{
  background:#fff;
  color:var(--nero);
  justify-self:start;
  margin-top:4px;
}

.franchise-contact-panel .btn:hover{
  background:var(--nero);
  color:#fff;
}

.franchise-contact-panel .franchise-faq-link{
  color:#fff;
}

.contact-channel-grid{
  display:grid;
  gap:18px;
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.contact-channel-card{
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:24px;
  display:grid;
  gap:20px;
  grid-template-columns:auto minmax(0, 1fr);
  min-height:264px;
  padding:28px;
}

.contact-channel-index{
  align-items:center;
  background:var(--rosso);
  border-radius:50%;
  color:#fff;
  display:flex;
  flex:0 0 44px;
  font-size:12px;
  font-weight:900;
  height:44px;
  justify-content:center;
  width:44px;
}

.contact-channel-copy{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.contact-channel-label{
  color:rgba(66,40,23,.62);
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.contact-channel-card h2{

  font-size:clamp(27px, 2.5vw, 34px);
  font-weight:800;
  letter-spacing:-.025em;
  line-height:1.04;
  margin:13px 0;
}

.contact-channel-card p{
  color:rgba(66,40,23,.68);
  font-size:14px;
  line-height:1.55;
  margin:0 0 20px;
}

.contact-channel-link{
  align-items:center;
  color:var(--rosso-deep);
  display:flex;
  font-size:14px;
  font-weight:900;
  gap:9px;
  justify-content:space-between;
  margin-top:auto;
  text-decoration:none;
}

.contact-channel-link span{
  font-size:20px;
  line-height:1;
  transition:transform .2s ease;
}

.contact-channel-link:hover span{
  transform:translateX(3px);
}

.lead-form label{
  color:rgba(66,40,23,.78);
  display:grid;
  font-size:13px;
  font-weight:800;
  gap:8px;
}

.lead-form label:nth-last-of-type(-n+4),
.lead-form .checkbox-label,
.lead-form .form-status,
.lead-form button{
  grid-column:1 / -1;
}

.lead-form input,
.lead-form select,
.lead-form textarea{
  background:#fff;
  border:1.5px solid rgba(66,40,23,.15);
  border-radius:14px;
  color:var(--nero);
  font:inherit;
  min-height:46px;
  padding:12px 14px;
  width:100%;
}

.lead-form textarea{
  resize:vertical;
}

.lead-form [aria-invalid="true"]{
  border-color:var(--rosso);
}

.checkbox-label{
  align-items:start;
  display:flex !important;
  gap:10px !important;
}

.checkbox-label input{
  min-height:auto;
  width:auto;
  margin-top:3px;
}

.form-status{
  color:var(--rosso);
  font-size:14px;
  font-weight:800;
  min-height:22px;
}

.faq-layout{
  display:grid;
  gap:48px;
  grid-template-columns:1fr 1fr;
}

.faq-item{
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:20px;
  margin-bottom:12px;
  padding:20px 22px;
}

.faq-item summary{
  cursor:pointer;
  font-weight:900;
}

.faq-item p{
  color:rgba(66,40,23,.72);
  margin-top:12px;
}

.policy-copy{
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:32px;
  padding:42px;
}

.policy-copy h2{
  font-size:clamp(26px, 3vw, 38px);
  margin:32px 0 12px;
}

.policy-copy p{
  line-height:1.7;
}

.footer-top{
  align-items:center;
  gap:clamp(28px, 5vw, 72px);
  grid-template-columns:minmax(0, 1fr) auto;
  padding-bottom:30px;
}

footer{
  align-items:stretch;
  min-height:auto;
  padding:48px var(--section-gutter) 22px;
}

.footer-inner{
  display:block;
  margin:0 auto;
  max-width:1280px;
}

.footer-links{
  align-items:start;
  display:grid;
  gap:clamp(36px, 4vw, 64px);
  grid-template-columns:max-content minmax(0, 1fr);
}

.footer-col{
  align-content:start;
  align-items:start;
  display:grid;
  gap:10px;
}

.footer-col h4{
  flex:0 0 auto;
  font-size:16px;
  margin:0;
}

.footer-col ul{
  align-items:baseline;
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
}

.footer-col li{
  margin:0;
}

.footer-col a,
.footer-cookie-button{
  display:block;
  font-size:13px;
  line-height:1.4;
}

.footer-bot{
  justify-content:space-between;
  padding-top:20px;
  text-align:left;
}

.socials a{
  border-radius:50%;
  height:40px;
  padding:0;
  width:40px;
}

.mobile-dock{
  display:none;
}
.mobile-viewport-chrome{display:contents}

.product-modal{
  background:var(--crema);
  border:2px solid var(--nero);
  border-radius:26px;
  box-shadow:0 28px 70px rgba(66,40,23,.38);
  color:var(--nero);
  margin:auto;
  max-width:min(820px, calc(100vw - 32px));
  overflow:hidden;
  padding:0;
  width:100%;
}

.product-modal::backdrop{
  background:rgba(66,40,23,.62);
  backdrop-filter:blur(4px);
}

.product-modal[open]{
  animation:productModalIn .24s cubic-bezier(.2,.72,.24,1) both;
}

.product-modal[open]::backdrop{
  animation:productBackdropIn .2s ease both;
}

@keyframes productModalIn{
  from{opacity:0;transform:translateY(18px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

@keyframes productBackdropIn{
  from{opacity:0}
  to{opacity:1}
}

.modal-close{
  align-items:center;
  background:var(--rosso);
  border:0;
  border-radius:50%;
  color:var(--crema);
  cursor:pointer;
  display:flex;
  font:700 24px/1 var(--font-montserrat);
  height:40px;
  justify-content:center;
  position:absolute;
  right:14px;
  top:14px;
  width:40px;
  z-index:2;
}

.modal-product{
  display:grid;
  grid-template-columns:minmax(0, 1.08fr) minmax(0, .92fr);
  min-height:420px;
}

.modal-product-media{
  align-items:center;
  background:var(--bianco);
  display:flex;
  justify-content:center;
  min-height:420px;
  overflow:hidden;
  padding:0;
}

.modal-product-media img{
  filter:none;
  height:100%;
  max-height:none;
  object-fit:contain;
  transform:scale(1.24);
  width:100%;
}

.modal-product-content{
  align-self:stretch;
  background:var(--bianco);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:42px 36px 34px;
}

.modal-product-content h2{

  font-size:clamp(36px, 5vw, 58px);
  font-weight:800;
  letter-spacing:-.03em;
  line-height:1;
  margin:0 0 14px;
}
.modal-product-content h2.product-name--wordmark{
  font-family:var(--font-impact);
  font-synthesis:none;
  font-weight:400;
  letter-spacing:0;
}
.product-name--modal .menu-name-visual{
  white-space:nowrap;
}
.product-name--modal .menu-name-format,
.product-name--modal .menu-name-flavor{
  display:inline-block;
}
.product-name--modal .menu-name-gap{
  display:inline;
}

@media (min-width:761px){
  .modal-product-content h2{
    font-size:clamp(38px, 3.4vw, 48px);
  }

  .product-name--modal .menu-name-visual{
    white-space:normal;
  }

  .product-name--modal .menu-name-format,
  .product-name--modal .menu-name-flavor{
    display:block;
  }

  .product-name--modal .menu-name-gap{
    display:none;
  }
}

.modal-product-description{
  color:rgba(66,40,23,.78);
  font-size:16px;
  line-height:1.5;
  margin:0;
}

.modal-actions{
  display:flex;
  justify-content:center;
  margin-top:24px;
}

.modal-actions .order-pickup-logo-link{
  background:var(--rosso);
  border:0;
  border-radius:18px;
  box-shadow:none;
  color:var(--bianco);
  display:flex;
  flex-direction:row;
  gap:0;
  justify-content:center;
  max-width:210px;
  min-height:54px;
  padding:12px 18px;
  transform-origin:center;
  transition:filter 160ms ease, transform 160ms cubic-bezier(.2,.7,.2,1);
  width:100%;
}

.modal-actions .order-pickup-logo-link .order-platform-logo-label{
  color:var(--bianco);
  font-size:14px;
  font-weight:900;
  letter-spacing:.035em;
  line-height:1;
  max-width:none;
  text-align:center;
  text-transform:uppercase;
  width:100%;
}

.modal-actions .order-pickup-logo-link:focus-visible{
  outline:3px solid var(--oro);
  outline-offset:6px;
}

@media (min-width:761px) and (hover:hover) and (pointer:fine){
  .modal-actions .order-pickup-logo-link:hover{
    filter:brightness(1.06);
    transform:translateY(-2px) scale(1.01);
  }
}

.modal-actions .order-pickup-logo-link:active{
  filter:brightness(.9);
  transform:translateY(2px) scale(.97);
  transition-duration:80ms;
}

.site-game-preloader{
  --preloader-pan-x:0vmax;
  --preloader-pan-y:0vmax;
  background:#422817;
  display:grid;
  inset:0;
  opacity:0;
  overflow:hidden;
  place-items:center;
  pointer-events:none;
  position:fixed;
  visibility:hidden;
  z-index:1000;
}

.site-game-preloader::before{
  background:#422817 url("../webgame/assets/kbb-pattern.svg?v=3") center / cover no-repeat;
  content:'';
  inset:-10vmax;
  position:absolute;
  transform:translate3d(0,0,0);
  will-change:transform;
}

.site-game-preloader__content{
  display:grid;
  justify-items:center;
  position:relative;
  z-index:1;
}

html.site-game-initial-preload .site-game-preloader::before,
.site-game-preloader.is-active::before{
  animation:site-game-preloader-background-drift 8s ease-in-out infinite alternate;
}

.site-game-preloader__logo-stage{
  display:grid;
  place-items:center;
  position:relative;
  transform-origin:center;
  width:clamp(288px, 28vw, 416px);
  will-change:transform;
}

.site-game-preloader__logo{
  display:block;
  height:auto;
  transform-origin:center;
  width:100%;
  will-change:transform;
}

.site-game-preloader__menu-link{
  background:transparent;
  border:0;
  box-shadow:none;
  color:var(--crema);
  display:block;
  font-family:var(--font-montserrat);
  font-size:clamp(22px, 2.5vw, 36px);
  font-style:normal;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1;
  left:50%;
  padding:0;
  position:absolute;
  text-decoration:none;
  text-transform:uppercase;
  touch-action:manipulation;
  top:calc(100% + clamp(42px, 4vw, 60px));
  transform:translateX(-50%);
  white-space:nowrap;
}

.site-game-preloader__menu-link::before{
  content:'';
  inset:-14px -24px;
  position:absolute;
}

html.site-game-initial-preload .cookie-consent,
body.site-game-preloading .cookie-consent{
  visibility:hidden;
  pointer-events:none;
}

.site-game-preloader__menu-link:focus-visible{
  outline:3px solid var(--oro);
  outline-offset:6px;
}

html.site-game-initial-preload .site-game-preloader__logo-stage,
.site-game-preloader.is-active .site-game-preloader__logo-stage{
  animation:site-game-preloader-logo-stage-intro 400ms cubic-bezier(.2,.72,.24,1) both;
}

html.site-game-initial-preload .site-game-preloader__logo,
.site-game-preloader.is-active .site-game-preloader__logo{
  animation:site-game-preloader-logo-spin 3.2s linear infinite;
}

html.site-game-initial-preload .site-game-preloader,
body.site-game-preloading .site-game-preloader,
.site-game-preloader.is-active{
  opacity:1;
  pointer-events:auto;
  visibility:visible;
}

.site-game-preloader.is-leaving{
  animation:site-game-preloader-exit 180ms linear both;
  pointer-events:none;
  will-change:opacity;
}

.site-game-preloader.is-leaving .site-game-preloader__logo-stage{
  animation:site-game-preloader-logo-stage-exit-reduced 180ms ease both;
}

body.site-game-preloading{
  overflow:hidden;
}

html.site-game-initial-preload,
html.site-game-initial-preload body,
body.site-game-preloading{
  background:var(--nero) !important;
}

@keyframes site-game-preloader-background-drift{
  to{
    transform:translate3d(
      var(--preloader-pan-x),
      var(--preloader-pan-y),
      0
    );
  }
}

@keyframes site-game-preloader-logo-stage-intro{
  from{
    opacity:.72;
    transform:scale(.9);
  }

  to{
    opacity:1;
    transform:scale(1);
  }
}

@keyframes site-game-preloader-logo-spin{
  from{
    transform:rotate(-45deg);
  }

  to{
    transform:rotate(315deg);
  }
}

@keyframes site-game-preloader-logo-stage-exit{
  from{
    transform:scale(1) rotate(0deg);
  }

  to{
    transform:scale(.82) rotate(-604deg);
  }
}

@keyframes site-game-preloader-logo-pulse{
  0%,
  100%{
    opacity:.84;
    transform:scale(.96);
  }

  50%{
    opacity:1;
    transform:scale(1);
  }
}

@keyframes site-game-preloader-logo-stage-exit-reduced{
  from{
    opacity:1;
    transform:scale(1);
  }

  to{
    opacity:0;
    transform:scale(.82);
  }
}

@keyframes site-game-preloader-exit{
  to{
    opacity:0;
  }
}

@media (prefers-reduced-motion:reduce){
  html.site-game-initial-preload .site-game-preloader::before,
  .site-game-preloader.is-active::before{
    animation:none;
  }

  html.site-game-initial-preload .site-game-preloader__logo,
  .site-game-preloader.is-active .site-game-preloader__logo{
    animation:site-game-preloader-logo-pulse 1.6s ease-in-out infinite;
  }

  .site-game-preloader.is-leaving{
    animation:site-game-preloader-exit 180ms ease both;
  }

  .site-game-preloader.is-leaving .site-game-preloader__logo-stage{
    animation:site-game-preloader-logo-stage-exit-reduced 180ms ease both;
  }
}

@media (max-width: 1080px){
  .platform-grid,
  .steps{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .order-store-list{
    grid-template-columns:1fr;
  }

  .store-feature,
  .brand-education,
  .lead-form-layout{
    grid-template-columns:1fr;
  }

  .footer-top{
    grid-template-columns:minmax(0, 1fr) auto;
  }
}

@media (max-width: 760px) and (orientation: portrait){
  :root{
    --mobile-dock-visible:68px;
    --mobile-dock-space:calc(var(--mobile-dock-visible) + var(--safe-area-bottom));
    --mobile-dock-height:var(--mobile-dock-space);
  }
  /* Stop document rubberbanding at its source, while body and content keep scrolling. */
  html{overscroll-behavior-y:none}

  header .nav{
    grid-template-columns:1fr;
    justify-items:center;
  }

  header .nav > .logo{
    justify-self:center;
  }

  .task-page-section{
    padding:26px 0 24px;
  }

  .task-page-intro{
    margin-bottom:24px;
    padding:0 2px;
    text-align:left;
  }

  .task-page-kicker{
    font-size:10px;
    margin-bottom:7px;
  }

  .task-page-intro h1{
    font-size:clamp(34px, 10vw, 44px);
    line-height:1.02;
  }

  .task-page-intro > p{
    font-size:13px;
    line-height:1.55;
    margin-top:12px;
  }

  .menu-page-lead{
    margin-top:12px;
    max-width:none;
    width:100%;
  }

  .task-page-intro .menu-page-lead > p{
    font-size:13px;
    line-height:1.45;
  }

  .task-page-meta{
    justify-content:space-between;
    margin-top:14px;
  }

  .task-page-meta strong,
  .task-page-meta a{
    font-size:12px;
  }

  .product-modal{
    border-radius:24px;
    margin:auto 12px calc(var(--mobile-dock-space) + 8px);
    max-height:calc(var(--app-viewport-height) - var(--mobile-dock-space) - 24px);
    max-width:none;
    overflow:hidden;
    width:calc(100% - 24px);
  }

  .product-modal .modal-product{
    grid-template-columns:1fr;
    grid-template-rows:clamp(210px, 25dvh, 245px) auto;
    min-height:0;
  }

  .product-modal .modal-product-media{
    height:100%;
    min-height:0;
    padding:0;
  }

  .product-modal .modal-product-content{
    padding:20px 20px 18px;
  }

  .product-modal .modal-product-content h2{
    font-size:clamp(34px, 9vw, 42px);
    margin-bottom:8px;
  }

  .product-modal .modal-product-description{
    font-size:14px;
    line-height:1.42;
  }

  .product-modal .modal-actions{
    margin-top:16px;
  }

  .product-modal .modal-actions .order-pickup-logo-link{
    border-radius:16px;
    min-height:52px;
    padding:10px 14px;
  }

  .product-modal .modal-close{
    height:38px;
    right:12px;
    top:12px;
    width:38px;
  }

  #page-home.active{
    animation:none;
  }

  .site-game-preloader__logo-stage{
    width:clamp(201.6px, 60.2vw, 336px);
  }

  html,
  body{
    background-color:var(--page-background) !important;
    padding-bottom:0;
  }

  main{
    background-color:transparent;
  }

  #site-footer{
    background:var(--crema);
    display:block;
    min-height:var(--mobile-dock-space);
    padding:0;
  }

  #site-footer .footer-inner{
    display:none;
  }

  .cookie-consent{
    bottom:calc(var(--mobile-dock-space) + 12px);
    max-width:calc(100vw - 24px);
    width:calc(100vw - 24px);
  }

  .cookie-card{
    border-radius:22px;
    padding:22px 18px 18px;
  }

  .cookie-card-head{
    align-items:flex-start;
    gap:12px;
    padding-right:38px;
  }

  .cookie-close{
    height:34px;
    right:12px;
    top:12px;
    width:34px;
  }

  .cookie-card > p{
    font-size:14px;
    margin:14px 0 16px;
  }

  .cookie-actions{
    justify-content:stretch;
  }

  .cookie-btn{
    min-height:46px;
    padding:11px 14px;
  }

  .cookie-actions .cookie-btn{
    font-size:12px;
    min-height:44px;
    min-width:0;
    padding:9px 18px;
    white-space:nowrap;
    width:100%;
  }

  .mobile-menu{
    border-radius:24px;
    bottom:calc(var(--mobile-dock-space) + 17px);
    max-height:none;
    overflow:hidden;
    padding:28px;
    right:12px;
    top:auto;
    transform:translateY(18px) scale(.92);
    transform-origin:bottom right;
    width:min(342px, calc(100vw - 24px));
  }

  .mobile-menu.open{
    transform:translateY(0) scale(1);
  }

  .mobile-menu::after{
    display:none;
  }

  #page-home .hero{
    align-items:stretch;
    height:max(420px, calc(var(--app-viewport-height) - var(--site-header-height, 63px) - var(--mobile-dock-height)));
    min-height:0;
    padding:30px 0 0;
  }

  #page-home .hero.has-game{
    padding:0;
  }

  #page-home .hero::before{
    background:linear-gradient(
      180deg,
      rgba(66,40,23,.76) 0%,
      rgba(66,40,23,.68) 24%,
      rgba(66,40,23,.34) 36%,
      rgba(66,40,23,.1) 44%,
      rgba(66,40,23,0) 50%
    );
  }

  #page-home .hero-video{
    object-position:center;
  }

  #page-home .hero-grid{
    display:block;
    gap:10px;
    height:100%;
    margin:0;
    min-height:0;
    overflow:visible;
    position:relative;
    transform:none;
    width:100%;
  }

  #page-home .hero h1{
    margin-bottom:18px;
  }

  #page-home .hero-text{
    padding:0 calc(var(--section-gutter) + var(--content-inset));
    position:relative;
    z-index:3;
  }

  #page-home .hero p.lead{
    font-size:clamp(17px, 4.4vw, 22px);
    max-width:100%;
  }

  #page-home .hero-visual{
    --mobile-mascot-size:min(784px, calc(140vw - 62px));
    align-items:flex-end;
    bottom:12px;
    height:62%;
    left:0;
    min-height:310px;
    overflow:visible;
    position:absolute;
    transform:none;
    width:100vw;
  }

  #page-home .hero-mascot{
    animation:mascotMobileSlingIn .88s cubic-bezier(.2,.82,.22,1) both,
              mascotMobileWobble 2.8s ease-in-out .9s infinite;
    flex:0 0 auto;
    height:auto;
    max-width:none;
    margin-left:0;
    object-fit:contain;
    width:var(--mobile-mascot-size);
  }

  .hero{
    min-height:auto;
    padding-bottom:44px;
  }

  .hero-visual{
    display:flex;
    height:300px;
    margin-top:-8px;
    order:2;
    width:100%;
  }

  .hero-mascot{
    width:min(340px, 88vw);
    max-width:100%;
  }

  #page-home .hero-mascot{
    flex:0 0 auto;
    height:auto;
    max-width:none;
    margin-left:0;
    object-fit:contain;
    width:var(--mobile-mascot-size);
  }

  .locator-hero{
    padding:64px 18px 70px;
  }

  .locator-hero h1{
    font-size:clamp(42px, 12vw, 62px);
  }

  .locator-hero p{
    font-size:16px;
  }

  .format-grid,
  .platform-grid,
  .platform-grid.compact,
  .steps,
  .faq-layout,
  .compare-grid,
  .identity-grid,
  .lead-form,
  .modal-product,
  .footer-top{
    grid-template-columns:1fr;
  }

  .footer-links{
    display:block;
  }

  .footer-col{
    display:block;
    min-width:0;
  }

  .footer-col h4{
    font-size:clamp(15px, 4vw, 18px);
    margin-bottom:12px;
  }

  .footer-col ul{
    align-items:center;
    display:flex;
    flex-wrap:wrap;
    gap:10px 16px;
  }

  .footer-col a,
  .footer-cookie-button{
    display:block;
    font-size:clamp(12px, 3vw, 14px);
    line-height:1.35;
    white-space:nowrap;
  }

  .format-grid{
    gap:12px;
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  .format-grid .cat-card{
    border-radius:22px;
    min-height:168px;
    padding:20px 14px;
  }

  .format-grid .cat-name{
    font-size:clamp(17px, 3.4vw, 22px);
    overflow-wrap:anywhere;
  }

  .format-grid .cat-count{
    font-size:13px;
    line-height:1.35;
    margin-top:10px;
  }

  .format-grid .cat-cta{
    font-size:13px;
  }

  .brand-education,
  .order-band,
  .policy-copy{
    border-radius:24px;
    padding:28px;
  }

  footer{
    margin-bottom:0;
    padding-top:40px;
    padding-bottom:calc(var(--mobile-dock-space) - 2px);
  }

  .footer-top{
    gap:26px;
    padding-bottom:28px;
  }

  .footer-bot{
    gap:14px;
    padding-top:18px;
  }

  .order-band,
  .order-store{
    align-items:stretch;
    flex-direction:column;
  }

  .order-store{
    gap:18px;
  }

  .order-store-main{
    gap:12px;
  }

  .order-directions-btn{
    min-width:96px;
    padding-inline:14px;
  }

  .order-platform-tray{
    gap:8px;
    grid-template-columns:1fr;
    padding-top:0;
  }

  .order-platform-tray.is-pending{
    grid-template-columns:1fr;
    width:100%;
  }

  .order-platform-logo-link,
  .order-platform-pending{
    background:var(--crema);
    border:1px solid rgba(66,40,23,.09);
    border-radius:16px;
    display:grid;
    gap:12px;
    grid-template-columns:44px minmax(0, 1fr) auto;
    justify-content:stretch;
    min-height:58px;
    padding:7px 12px 7px 8px;
    text-align:left;
    width:100%;
  }

  .order-platform-logo-link .platform-logo-wrap,
  .order-platform-logo-link .platform-logo,
  .order-platform-pending-icon,
  .order-directions-icon{
    flex-basis:44px;
    height:44px;
    width:44px;
  }

  .order-platform-logo-label{
    font-size:13px;
    font-weight:900;
  }

  .order-platform-open{
    color:var(--rosso-deep);
    display:block;
    font-size:11px;
    font-weight:900;
  }

  .order-location-card.is-coming-soon .order-store{
    gap:14px;
    padding-block:22px;
  }

  .order-location-card.is-coming-soon .order-store-main{
    justify-content:flex-start;
    text-align:left;
  }

  .order-location-card.is-coming-soon .order-store-copy{
    text-align:left;
  }

  #page-ordina .order-store-list{
    gap:26px;
    margin-bottom:var(--order-preflight-gap);
  }

  #page-ordina{
    --order-preflight-gap:36px;
  }

  #page-ordina .task-page-section{
    padding-bottom:var(--order-preflight-gap);
  }

  #page-ordina .task-page-intro{
    margin-bottom:39px;
  }

  #page-ordina .order-store{
    border-radius:26px;
    box-shadow:none;
    gap:0;
    padding:0;
  }

  #page-ordina .order-store:hover{
    box-shadow:none;
  }

  #page-ordina .order-store-main{
    padding:38px 20px;
  }

  #page-ordina .order-location-card.is-open .order-store-main{
    padding:38px 20px;
  }

  #page-ordina .order-store-copy .store-name{
    font-size:clamp(22px, 6vw, 27px);
  }

  #page-ordina .order-store .store-addr{
    font-size:13px;
  }

  #page-ordina .order-location-card.is-coming-soon .order-store{
    gap:0;
    padding:0;
  }

  #page-ordina .order-location-card.is-coming-soon .order-store-main{
    justify-content:center;
    padding:38px 20px;
    text-align:center;
  }

  #page-ordina .order-location-card.is-coming-soon .order-store-copy{
    text-align:center;
  }

  #page-ordina .order-platform-tray{
    gap:6px;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    padding:26px 12px 24px;
    width:100%;
  }

  #page-ordina .order-platform-tray.has-delivery{
    padding:30px 12px 28px;
  }

  #page-ordina .order-platform-primary{
    gap:6px;
  }

  #page-ordina .order-platform-secondary{
    margin-top:22px;
  }

  #page-ordina .order-platform-tray.is-pending{
    grid-template-columns:minmax(0, 1fr);
    max-width:none;
    padding:20px 12px 24px;
  }

  #page-ordina .order-platform-logo-link,
  #page-ordina .order-platform-pending{
    background:transparent;
    border:0;
    border-radius:0;
    display:flex;
    flex-direction:column;
    gap:8px;
    justify-content:flex-start;
    min-height:0;
    padding:0;
    text-align:center;
    width:100%;
  }

  #page-ordina .order-location-card.is-open .order-pickup-logo-link{
    border-radius:16px;
    flex-direction:row;
    min-height:52px;
    padding:10px 14px;
  }

  #page-ordina .order-platform-logo-link .platform-logo-wrap,
  #page-ordina .order-platform-logo-link .platform-logo,
  #page-ordina .order-platform-pending-icon,
  #page-ordina .order-directions-icon,
  #page-ordina .order-pickup-icon{
    flex-basis:clamp(56px, 12.3vw, 68px);
    height:clamp(56px, 12.3vw, 68px);
    width:clamp(56px, 12.3vw, 68px);
  }

  #page-ordina .order-platform-logo-label{
    font-size:clamp(9px, 2.2vw, 11px);
    line-height:1.15;
    overflow-wrap:anywhere;
  }

  #page-ordina .order-platform-open{
    display:none;
  }

  @media (max-width:430px){
    #page-ordina .order-platform-primary{
      gap:4px;
    }
  }

  .home-delivery-section .app-grid{
    padding-left:16px;
    padding-right:16px;
  }

  .platform-grid,
  .platform-grid.compact{
    width:100%;
  }

  .platform-card,
  .platform-card.compact-card{
    gap:10px;
    max-width:100%;
    min-width:0;
    width:100%;
  }

  .platform-card.compact-card{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(78px, 88px);
    min-height:76px;
    padding:12px;
  }

  .platform-head{
    min-width:0;
  }

  .platform-card.compact-card .platform-head{
    gap:12px;
  }

  .platform-card.compact-card .platform-logo-wrap,
  .platform-card.compact-card .platform-logo{
    flex-basis:46px;
    height:46px;
    width:46px;
  }

  .platform-card.compact-card .platform-name{
    font-size:clamp(22px, 5.8vw, 27px);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .platform-card.compact-card .btn{
    font-size:14px;
    justify-content:center;
    min-width:0;
    padding-inline:10px;
    width:100%;
  }

  .store-feature{
    gap:18px;
  }

  #page-dove-siamo #locations-page-list{
    display:none;
  }

  #page-dove-siamo .location-page-section{
    height:calc(var(--mobile-shell-viewport-height) - var(--site-header-height, 62px) - var(--mobile-dock-height));
  }

  #page-dove-siamo .location-page-section > .container{
    display:flex;
    flex-direction:column;
    height:100%;
  }

  #page-dove-siamo .task-page-intro{
    flex:0 0 auto;
    width:100%;
  }

  #page-dove-siamo .store-page-layout{
    flex:1 1 auto;
    gap:0;
    grid-template-rows:minmax(0, 1fr);
    min-height:0;
  }

  #page-dove-siamo .location-map-wrap,
  #page-dove-siamo .locations-map-shell{
    height:100%;
    min-height:0;
  }

  #page-dove-siamo .location-map-wrap{
    margin:0;
    max-width:none;
    width:100%;
  }

  #page-dove-siamo .map-frame{
    border-radius:24px;
    height:100%;
    min-height:0;
  }

  .location-page-section .locations-map .leaflet-top.leaflet-left{
    bottom:0;
    top:auto;
  }

  .location-page-section .locations-map .leaflet-top.leaflet-left .leaflet-control{
    margin-bottom:10px;
    margin-top:0;
  }

  .home-store-section .store-feature{
    grid-template-columns:1fr;
  }

  .home-store-section{
    padding-bottom:48px;
  }

  .home-store-section .compact-store-list{
    gap:16px;
    grid-template-columns:minmax(0, 1fr);
    margin-top:0;
  }

  .home-store-section .store-card-feature{
    border-radius:24px;
    padding:26px;
  }

  .home-store-section .store-name{
    font-size:clamp(26px, 6vw, 32px);
    line-height:1.14;
  }

  .home-store-section .store-actions{
    gap:10px;
  }

  .home-store-section .location-map-wrap{
    margin-top:4px;
  }

  .home-store-section .map-frame{
    height:auto;
    min-height:330px;
  }

  .map-frame{
    border-radius:24px;
    min-height:330px;
  }

  .modal-product-media{
    min-height:0;
    padding:0;
  }

  .modal-product-media img{
    height:100%;
    max-height:none;
    transform:scale(1.38);
    width:100%;
  }

  .modal-product-content{
    padding:20px 20px 18px;
  }

  /* Top-anchored visual viewport; children do not use WebKit's fixed-bottom anchor. */
  .mobile-viewport-chrome{
    display:block;
    height:var(--mobile-chrome-height,100vh);
    height:var(--mobile-chrome-height,100dvh);
    left:0;
    pointer-events:none;
    position:fixed;
    right:0;
    top:var(--mobile-chrome-top,0px);
    z-index:70;
  }
  body.menu-open .mobile-viewport-chrome{z-index:135}
  .mobile-viewport-chrome > .overlay,
  .mobile-viewport-chrome > .mobile-menu{position:absolute}

  .mobile-dock{
    --mobile-dock-gutter:10px;
    --mobile-dock-icon-top:9px;
    --mobile-dock-icon-size:22px;
    --mobile-dock-label-bottom:20px;
    --mobile-dock-order-rise:12px;
    --mobile-dock-order-flat-bottom-radius:4.67px;
    --mobile-dock-order-logo-lift:10px;
    --mobile-dock-order-wordmark-height:39px;
    --mobile-dock-order-raised-padding:calc(var(--mobile-dock-icon-top) + var(--mobile-dock-order-rise) - var(--mobile-dock-order-logo-lift));
    --mobile-dock-order-raised-height:calc(var(--mobile-dock-order-wordmark-height) + var(--mobile-dock-order-raised-padding) + var(--mobile-dock-order-raised-padding));
    --mobile-dock-order-flat-height:calc(var(--mobile-dock-order-wordmark-height) + var(--mobile-dock-icon-top) + var(--mobile-dock-icon-top));
    background:var(--nero);
    bottom:0;
    display:grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    height:var(--mobile-dock-space);
    left:0;
    overflow:visible;
    padding:
      0
      max(var(--mobile-dock-gutter), var(--safe-area-right))
      var(--safe-area-bottom)
      max(var(--mobile-dock-gutter), var(--safe-area-left));
    pointer-events:auto;
    position:absolute;
    right:0;
    z-index:70;
  }

  body.menu-open .mobile-dock{
    z-index:135;
  }

  @media (display-mode: standalone){
    /* Locking scroll takes body out of flow. Keep the root independently
       sized so opening ALTRO cannot collapse its clipping area to zero. */
    html,
    body{
      min-height:var(--mobile-shell-viewport-height);
    }

    @supports (overflow:clip){
      /* The root scrolls the page. A hidden/auto body captures sticky
         positioning and lets the header scroll into the status-bar area. */
      body{
        overflow-x:clip !important;
        overflow-y:visible;
      }

      /* Root overflow plus fixed body still lock the background. Keeping
         body non-scrollable here preserves the sticky header's position. */
      body.page-scroll-locked{
        overflow-x:clip !important;
        overflow-y:visible !important;
      }
    }

    /* The running game has a more specific rule than the mobile .hero.
       Its shell must have the same extent as the root and the map page. */
    #page-home .hero.has-game{
      height:max(320px, calc(var(--mobile-shell-viewport-height) - var(--site-header-height, 76px) - var(--mobile-dock-height, 0px)));
    }
  }

  body.menu-open .mobile-menu{
    z-index:140;
  }

  .mobile-dock__item{
    appearance:none;
    background:transparent;
    border:0;
    color:var(--crema);
    cursor:pointer;
    display:block;
    font-family:var(--font-montserrat);
    font-size:10px;
    font-weight:700;
    height:var(--mobile-dock-visible);
    letter-spacing:.06em;
    line-height:1;
    min-width:0;
    padding:0;
    position:relative;
    text-decoration:none;
    text-transform:uppercase;
    transition:color .2s;
  }

  .mobile-dock__item:focus-visible{
    outline:0;
    outline-offset:0;
  }

  .mobile-dock__label{
    bottom:var(--mobile-dock-label-bottom);
    display:block;
    left:2px;
    line-height:10px;
    max-width:calc(100% - 4px);
    overflow:hidden;
    position:absolute;
    right:2px;
    text-align:center;
    text-overflow:ellipsis;
    white-space:nowrap;
    z-index:3;
  }

  .mobile-dock__icon{
    color:currentColor;
    height:var(--mobile-dock-icon-size);
    left:50%;
    position:absolute;
    top:var(--mobile-dock-icon-top);
    transform:translateX(-50%);
    width:var(--mobile-dock-icon-size);
  }

  .mobile-dock__icon--menu{
    -webkit-mask:url('../assets/icons/menu-book.svg') center / contain no-repeat;
    background-color:currentColor;
    mask:url('../assets/icons/menu-book.svg') center / contain no-repeat;
  }

  .mobile-dock__icon--map{
    -webkit-mask:url('../assets/icons/location-on.svg') center / contain no-repeat;
    background-color:currentColor;
    mask:url('../assets/icons/location-on.svg') center / contain no-repeat;
  }

  .mobile-dock__icon--more{
    -webkit-mask:url('../assets/icons/more-horiz.svg') center / contain no-repeat;
    background-color:currentColor;
    mask:url('../assets/icons/more-horiz.svg') center / contain no-repeat;
  }

  body.menu-open .mobile-dock__icon--more{
    -webkit-mask:url('../assets/icons/close.svg') center / contain no-repeat;
    mask:url('../assets/icons/close.svg') center / contain no-repeat;
  }

  .mobile-dock__icon--doner{
    -webkit-mask:url('../assets/images/kebab.png') center / contain no-repeat;
    background-color:currentColor;
    height:24px;
    mask:url('../assets/images/kebab.png') center / contain no-repeat;
    width:24px;
  }

  .mobile-dock__item--featured{
    background:transparent;
    height:var(--mobile-dock-visible);
    isolation:isolate;
    margin-top:0;
    z-index:1;
  }

  .mobile-dock__item--featured::before{
    background:var(--rosso);
    border-radius:14px;
    content:"";
    height:var(--mobile-dock-order-raised-height);
    left:0;
    pointer-events:none;
    position:absolute;
    right:0;
    top:calc(var(--mobile-dock-order-rise) * -1);
    transition:
      top 320ms cubic-bezier(.22, 1, .36, 1),
      height 320ms cubic-bezier(.22, 1, .36, 1),
      border-radius 600ms cubic-bezier(.22, 1, .36, 1);
    z-index:0;
  }

  .mobile-dock__brand{
    aspect-ratio:1000 / 706;
    height:var(--mobile-dock-order-wordmark-height);
    left:50%;
    position:absolute;
    top:calc(var(--mobile-dock-icon-top) - var(--mobile-dock-order-logo-lift));
    transform:translateX(-50%);
    transition:top 320ms cubic-bezier(.22, 1, .36, 1);
    width:auto;
    z-index:2;
  }

  .mobile-dock__item--featured.active::before{
    border-radius:0 0 var(--mobile-dock-order-flat-bottom-radius) var(--mobile-dock-order-flat-bottom-radius);
    height:var(--mobile-dock-order-flat-height);
    top:0;
  }

  .mobile-dock__item--featured.active .mobile-dock__brand{
    top:var(--mobile-dock-icon-top);
  }

  .mobile-dock__item.active{
    color:var(--rosso);
  }

  .mobile-dock__item--featured.active{
    color:var(--nero);
  }

  body.menu-open .mobile-dock__item[data-page].active{
    color:var(--crema);
  }

  .mobile-dock__item--featured:not(.active),
  body.menu-open .mobile-dock__item--featured[data-page].active{
    color:var(--bianco);
  }

}

@media (max-width: 760px) and (orientation: portrait) and (prefers-reduced-motion: reduce){
  .mobile-dock__item--featured::before,
  .mobile-dock__brand{
    transition-duration:1ms;
  }

}

@media (max-width: 560px){
  .products{
    grid-template-columns:1fr;
  }

  #featured-products{
    gap:12px;
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  #featured-products .product{
    border-radius:18px;
  }

  #featured-products .product-info{
    padding:12px;
  }

  #featured-products .product-name{
    font-size:16px;
  }

  #featured-products .product-desc{
    font-size:12px;
    line-height:1.4;
  }

  #featured-products .product-foot{
    align-items:center;
    justify-content:flex-end;
  }

  #featured-products .product-detail{
    font-size:11px;
    min-height:30px;
    padding:5px 9px;
  }

  .cat-grid{
    grid-template-columns:1fr;
  }

  .format-grid{
    gap:8px;
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  .format-grid .cat-card{
    border-radius:18px;
    min-height:154px;
    padding:16px 10px;
  }

  .format-grid .cat-name{
    font-size:16px;
  }

  .format-grid .cat-count,
  .format-grid .cat-cta{
    font-size:11px;
  }

  .home-store-section .store-card-feature{
    border-radius:22px;
    padding:24px;
  }

  .home-store-section .store-name{
    font-size:22px;
    line-height:1.12;
    margin-bottom:10px;
  }

  .home-store-section .store-addr{
    font-size:14px;
    line-height:1.42;
    margin-bottom:6px;
  }

  .home-store-section .store-card-feature .store-actions{
    gap:10px;
    margin-top:14px;
  }

  .home-store-section .store-actions a{
    border-radius:11px;
    min-height:42px;
    padding:9px 12px;
  }

  .hero-cta,
  .store-actions{
    flex-direction:column;
  }

  .store-actions a,
  .hero-cta .btn{
    width:100%;
  }
}

@media (max-width: 1080px){
  #page-franchising .franchise-principles{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .franchise-system-panel,
  .franchise-contact-layout{
    grid-template-columns:1fr;
  }

  .franchise-system-heading,
  .franchise-contact-copy,
  .franchise-contact-panel{
    padding:40px;
  }

  .contact-channel-grid{
    grid-template-columns:1fr;
  }

  .contact-channel-card{
    min-height:0;
  }
}

@media (max-width: 760px) and (orientation: portrait){
  .franchise-intro-actions{
    flex-direction:column;
    margin-top:18px;
  }

  .franchise-intro-actions .btn{
    width:100%;
  }

  #page-franchising .franchise-principles{
    grid-template-columns:1fr;
  }

  #page-franchising .franchise-principle-card{
    min-height:0;
  }

  #page-franchising .franchise-principle-card .product-info{
    padding:24px;
  }

  #page-franchising .franchise-principle-card h3{
    margin-top:16px;
  }

  .franchise-discovery-note{
    font-size:13px;
    line-height:1.55;
    text-align:left;
  }

  .franchise-system-section{
    padding-bottom:40px;
  }

  .franchise-system-panel,
  .franchise-contact-layout{
    border-radius:24px;
  }

  .franchise-system-heading,
  .franchise-contact-copy,
  .franchise-contact-panel{
    padding:28px;
  }

  .franchise-system-heading h2{
    font-size:40px;
  }

  .franchise-system-panel .identity-grid{
    grid-template-columns:1fr;
    padding:18px 24px 24px;
  }

  .franchise-partner-section,
  .franchise-process-section{
    padding-bottom:44px;
    padding-top:38px;
  }

  .franchise-section-intro{
    margin:0 0 24px;
    text-align:left;
  }

  .franchise-section-intro h2,
  .franchise-contact-copy h2{
    font-size:40px;
  }

  #page-franchising .franchise-profile-grid{
    grid-template-columns:1fr;
  }

  #page-franchising .franchise-profile-card{
    min-height:0;
  }

  #page-franchising .steps{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  #page-franchising .step-card{
    border-bottom:1px solid rgba(66,40,23,.1);
    min-height:132px;
    padding:22px 18px;
  }

  #page-franchising .step-card:nth-child(2n){
    border-right:0;
  }

  #page-franchising .step-card:nth-last-child(-n+2){
    border-bottom:0;
  }

  #franchising-form{
    padding-bottom:54px;
    padding-top:34px;
  }

  .franchise-contact-copy .section-sub{
    font-size:14px;
  }

  .franchise-contact-panel h3{
    font-size:34px;
  }

  .franchise-contact-panel .btn{
    justify-self:stretch;
    width:100%;
  }

  .contact-channel-grid{
    gap:14px;
  }

  .contact-channel-card{
    border-radius:20px;
    gap:16px;
    padding:22px;
  }

  .contact-channel-card h2{
    font-size:28px;
  }

}

@media (max-width: 420px){
  .contact-channel-card{
    grid-template-columns:1fr;
  }
}

/* Single site-wide display-title typography role. */
.hero h1,
.stamp-inner,
.price-badge,
.task-page-intro h1,
.section-title,
.cat-name,
.product-name:not(.product-name--wordmark),
.promo-card h3,
.app-section h2,
.phone-greet,
.phone-card-big,
.story-stamp,
.story-content h2,
.stat strong,
.store-name,
.promo-hero h1,
.coupon h3,
.coupon-discount,
.join-bg,
.join h2,
.testimonial::before,
.testimonial p,
.testimonial-avatar,
.footer-col h4,
.big-mark,
.mobile-menu-note,
.cookie-card h2,
.locator-hero h1,
.brand-education h2,
.store-feature h2,
.home-store-section h2,
.order-band h2,
.faq-layout h2,
.policy-copy h2,
.compare-card h3,
.info-card h3,
.info-card h2,
.delivery-card strong,
.platform-name,
.step-card span,
.franchise-contact-panel h3,
.franchise-system-heading h2,
.franchise-section-intro h2,
.franchise-contact-copy h2,
#page-franchising .step-card strong,
.contact-channel-card h2,
.modal-product-content h2:not(.product-name--wordmark){
  font-family:var(--font-title);
  font-synthesis:none;
  font-style:normal;
  font-weight:var(--font-title-weight);
  text-transform:var(--font-title-case);
}

/* Use one Montserrat ExtraBold type system across the desktop help footer. */
@media (min-width:761px){
  .footer-col li:first-child a{
    font-family:var(--font-montserrat);
    font-style:normal;
    font-weight:800;
    letter-spacing:-.01em;
    line-height:1;
    text-transform:uppercase;
  }

  .footer-col h4{
    font-family:var(--font-sans);
    font-size:10px;
    font-style:normal;
    font-weight:400;
    letter-spacing:.08em;
    line-height:1.2;
    text-transform:uppercase;
  }

  .footer-col li:first-child a{
    color:var(--crema);
    font-size:22px;
  }

  .footer-col li:not(:first-child) a,
  .footer-cookie-button{
    font-family:var(--font-montserrat);
    font-size:13px;
    font-style:normal;
    font-weight:800;
  }
}

/* ============ UTILITY PAGES: FAQ + PRIVACY + COOKIE ============ */
.utility-page{
  background:var(--crema);
}

.utility-page-section{
  padding:56px 0 88px;
}

.utility-page-intro{
  margin-bottom:42px;
  max-width:900px;
}

.utility-page-intro h1{
  font-size:clamp(48px, 6vw, 76px);
}

.utility-page-intro > p{
  max-width:700px;
}

.support-faq-shell,
.legal-page-layout{
  background:var(--bianco);
  border:1.5px solid rgba(66,40,23,.08);
  border-radius:28px;
  display:grid;
  grid-template-columns:minmax(280px, .72fr) minmax(0, 1.28fr);
  overflow:hidden;
}

.support-faq-intro,
.legal-page-aside{
  background:var(--rosso);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:520px;
  padding:44px;
}

.utility-card-number{
  align-items:center;
  align-self:flex-start;
  background:var(--crema);
  border-radius:999px;
  color:var(--nero);
  display:inline-flex;
  font-family:var(--font-montserrat);
  font-size:15px;
  font-weight:900;
  justify-content:center;
  min-height:52px;
  min-width:52px;
  padding:0 16px;
}

.utility-card-label{
  color:rgba(255,255,255,.76);
  display:block;
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  margin-bottom:12px;
  text-transform:uppercase;
}

.support-faq-intro h2,
.legal-page-aside h2{
  font-family:var(--font-title);
  font-size:clamp(38px, 4vw, 58px);
  font-synthesis:none;
  font-weight:var(--font-title-weight);
  letter-spacing:-.035em;
  line-height:.98;
  margin:0 0 18px;
  text-transform:var(--font-title-case);
}

.support-faq-intro p,
.legal-page-aside p{
  color:rgba(255,255,255,.8);
  font-size:15px;
  line-height:1.65;
  margin:0;
}

.support-faq-list{
  align-self:center;
  padding:24px 30px;
}

.support-faq-list .faq-item{
  background:transparent;
  border:0;
  border-bottom:1px solid rgba(66,40,23,.1);
  border-radius:0;
  margin:0;
  overflow:hidden;
  padding:0;
  transition:background .2s, border-color .2s, border-radius .2s;
}

.support-faq-list .faq-item:last-child{
  border-bottom:0;
}

.support-faq-list .faq-item[open]{
  background:var(--crema);
  border-color:transparent;
  border-radius:18px;
}

.support-faq-list .faq-item[open] + .faq-item[open]{
  margin-top:12px;
}

.support-faq-list .faq-item summary{
  align-items:center;
  display:grid;
  gap:16px;
  grid-template-columns:44px minmax(0, 1fr) 36px;
  list-style:none;
  padding:20px 12px;
}

.support-faq-list .faq-item summary::-webkit-details-marker{
  display:none;
}

.faq-item-index{
  color:var(--rosso);
  font-family:var(--font-montserrat);
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
}

.faq-question{
  font-family:var(--font-montserrat);
  font-size:15px;
  font-weight:800;
  line-height:1.35;
}

.faq-toggle{
  align-items:center;
  background:var(--crema);
  border-radius:50%;
  color:var(--nero);
  display:flex;
  height:36px;
  justify-content:center;
  transition:background .2s, color .2s, transform .25s;
  width:36px;
}

.faq-toggle svg{
  fill:none;
  height:17px;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-width:2;
  width:17px;
}

.faq-item[open] .faq-toggle{
  background:var(--rosso);
  color:#fff;
  transform:rotate(45deg);
}

.faq-answer{
  padding:0 64px 22px 72px;
}

.faq-answer__link{
  color:var(--rosso);
  display:inline-flex;
  font-size:12px;
  font-weight:900;
  margin-top:12px;
  text-transform:uppercase;
  text-underline-offset:3px;
}

.support-faq-list .faq-item p{
  color:rgba(66,40,23,.7);
  font-size:14px;
  line-height:1.65;
  margin:0;
}

.legal-page-aside{
  background:var(--nero);
  gap:64px;
  justify-content:flex-start;
}

.legal-page-aside-cookie{
  background:var(--rosso);
}

.legal-page-aside .utility-card-number{
  min-width:70px;
}

.legal-page-cta{
  align-self:flex-start;
  background:#fff;
  border:0;
  color:var(--nero);
  font-family:var(--font-sans);
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  min-height:46px;
  text-transform:uppercase;
}

.legal-page-cta:hover,
.legal-page-cta:focus-visible{
  background:var(--oro);
  color:var(--nero);
}

.legal-page-content{
  padding:18px 36px 28px;
}

.legal-section{
  align-items:start;
  border-bottom:1px solid rgba(66,40,23,.1);
  display:grid;
  gap:20px;
  grid-template-columns:48px minmax(0, 1fr);
  padding:26px 0;
}

.legal-section:last-of-type{
  border-bottom:0;
}

.legal-section-index{
  align-items:center;
  background:var(--crema);
  border-radius:50%;
  color:var(--rosso);
  display:flex;
  font-family:var(--font-montserrat);
  font-size:12px;
  font-weight:900;
  height:40px;
  justify-content:center;
  width:40px;
}

.legal-section h2{
  font-family:var(--font-title);
  font-size:clamp(24px, 2.2vw, 34px);
  font-synthesis:none;
  font-weight:var(--font-title-weight);
  letter-spacing:-.025em;
  line-height:1.05;
  margin:2px 0 10px;
  text-transform:var(--font-title-case);
}

.legal-section p{
  color:rgba(66,40,23,.7);
  font-size:15px;
  line-height:1.68;
  margin:0;
}

.legal-section p a{
  color:var(--rosso);
  font-weight:800;
  text-underline-offset:3px;
}

.legal-section p code,
.legal-tool-row code{
  font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.legal-section p code{
  background:var(--crema);
  border-radius:7px;
  color:var(--nero);
  font-size:.85em;
  padding:.18em .42em;
  overflow-wrap:anywhere;
}

.legal-tool-table{
  border:1px solid rgba(66,40,23,.1);
  border-radius:16px;
  margin-top:16px;
  overflow:hidden;
}

.legal-tool-row{
  align-items:center;
  display:grid;
  gap:14px;
  grid-template-columns:minmax(190px, .9fr) minmax(260px, 1.7fr) minmax(90px, .5fr);
  padding:15px 16px;
}

.legal-tool-row > *{
  min-width:0;
}

.legal-tool-row code{
  overflow-wrap:anywhere;
}

.legal-tool-row-head{
  background:var(--crema);
  color:rgba(66,40,23,.62);
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.legal-tool-row:not(.legal-tool-row-head){
  background:var(--bianco);
  color:rgba(66,40,23,.76);
  font-size:13px;
  line-height:1.45;
}

.legal-tool-row strong{
  color:var(--nero);
  font-family:var(--font-montserrat);
  font-size:12px;
  font-weight:900;
}

.cookie-type-grid{
  display:grid;
  gap:10px;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  padding:24px 0 12px;
}

.cookie-type-card{
  background:var(--crema);
  border:1px solid rgba(66,40,23,.08);
  border-radius:18px;
  min-height:154px;
  padding:18px;
}

.cookie-type-card > span{
  color:var(--rosso);
  display:block;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  margin-bottom:14px;
}

.cookie-type-card strong{
  display:block;
  font-family:var(--font-montserrat);
  font-size:16px;
  font-weight:900;
  line-height:1.2;
  margin-bottom:8px;
}

.cookie-type-card p{
  color:rgba(66,40,23,.66);
  font-size:13px;
  line-height:1.5;
  margin:0;
}

.legal-inline-link{
  align-items:center;
  color:var(--rosso);
  display:inline-flex;
  font-size:12px;
  font-weight:900;
  gap:8px;
  letter-spacing:.06em;
  margin-top:18px;
  text-decoration:none;
}

.legal-inline-link span{
  font-size:18px;
  transition:transform .2s;
}

.legal-inline-link:hover span{
  transform:translateX(4px);
}

@media (max-width: 760px) and (orientation: portrait){
  .utility-page-section{
    padding:26px 0 36px;
  }

  .utility-page-intro{
    margin-bottom:24px;
  }

  .utility-page-intro h1{
    font-size:clamp(36px, 10.5vw, 48px);
  }

  .support-faq-shell,
  .legal-page-layout{
    border-radius:24px;
    grid-template-columns:1fr;
  }

  .support-faq-intro,
  .legal-page-aside{
    min-height:0;
    padding:28px;
  }

  .support-faq-intro{
    gap:42px;
  }

  .support-faq-intro h2,
  .legal-page-aside h2{
    font-size:clamp(34px, 10vw, 46px);
  }

  .support-faq-list{
    padding:12px 16px 18px;
  }

  .support-faq-list .faq-item summary{
    gap:10px;
    grid-template-columns:34px minmax(0, 1fr) 32px;
    padding:18px 8px;
  }

  .faq-question{
    font-size:13px;
  }

  .faq-toggle{
    height:32px;
    width:32px;
  }

  .faq-answer{
    padding:0 14px 18px 52px;
  }

  .legal-page-aside{
    gap:36px;
  }

  .legal-page-content{
    padding:8px 18px 24px;
  }

  .legal-section{
    gap:12px;
    grid-template-columns:38px minmax(0, 1fr);
    padding:22px 0;
  }

  .legal-section-index{
    height:34px;
    width:34px;
  }

  .legal-section h2{
    font-size:22px;
  }

  .legal-section p{
    font-size:13px;
  }

  .legal-tool-row{
    align-items:start;
    gap:5px;
    grid-template-columns:1fr;
    padding:14px;
  }

  .legal-tool-row-head{
    display:none;
  }

  .legal-tool-row code{
    color:var(--nero);
    font-size:11px;
    overflow-wrap:anywhere;
  }

  .cookie-type-grid{
    grid-template-columns:1fr;
  }

  .cookie-type-card{
    min-height:0;
  }

}

/* Keep complete mobile copy clear of the fixed order action on narrow phones. */
@media (max-width: 380px){
  .menu-product-scope .product.is-inline-content-layout .product-desc{
    font-size:clamp(10.75px, 3vw, 11.4px);
    line-height:1.2;
    max-width:calc(100% - 28px);
    width:calc(100% - 28px);
  }
  .flavor-detail-products-row .product.is-inline-content-layout .product-desc{
    max-width:calc(100% - 20px);
    width:calc(100% - 20px);
  }
}

@media (max-width: 340px) and (orientation: portrait){
  .menu-flavor-row{
    --menu-mobile-card-height:270px;
  }
}
