@font-face {
  font-family: 'Anton';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/anton-400-normal-1.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;
}
@font-face {
  font-family: 'Baloo 2';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/baloo-2-600-normal-2.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;
}
@font-face {
  font-family: 'Baloo 2';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/baloo-2-700-normal-3.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;
}
@font-face {
  font-family: 'Baloo 2';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/baloo-2-800-normal-4.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;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/barlow-400-normal-5.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;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/barlow-500-normal-6.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;
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/barlow-600-normal-7.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;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/barlow-condensed-500-normal-8.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;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/barlow-condensed-600-normal-9.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;
}
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/barlow-condensed-700-normal-10.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;
}
@font-face {
  font-family: 'Big Shoulders Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/big-shoulders-display-700-normal-11.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;
}
@font-face {
  font-family: 'Big Shoulders Display';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/big-shoulders-display-800-normal-12.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;
}
@font-face {
  font-family: 'Bodoni Moda';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url('../fonts/bodoni-moda-400-600-italic-13.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;
}
@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('../fonts/bodoni-moda-400-600-normal-14.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;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 500 800;
  font-stretch: 100%;
  font-display: swap;
  src: url('../fonts/bricolage-grotesque-500-800-normal-15.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;
}
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/caveat-600-normal-16.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;
}
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/caveat-700-normal-17.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;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-500-italic-18.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;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-600-italic-19.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;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-500-normal-20.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;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/cormorant-garamond-600-normal-21.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;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dm-sans-400-normal-22.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;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dm-sans-500-normal-23.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;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/dm-sans-600-normal-24.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;
}
@font-face {
  font-family: 'DM Serif Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dm-serif-display-400-normal-25.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;
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/fraunces-500-italic-26.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;
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/fraunces-600-italic-27.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;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/fraunces-500-normal-28.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;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/fraunces-600-normal-29.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;
}
@font-face {
  font-family: 'Gilda Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/gilda-display-400-normal-30.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;
}
@font-face {
  font-family: 'Gloock';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/gloock-400-normal-31.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;
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/hanken-grotesk-400-normal-32.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;
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/hanken-grotesk-500-normal-33.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;
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/hanken-grotesk-600-normal-34.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;
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/hanken-grotesk-700-normal-35.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;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url('../fonts/ibm-plex-sans-400-normal-36.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;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url('../fonts/ibm-plex-sans-500-normal-37.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;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url('../fonts/ibm-plex-sans-600-normal-38.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;
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url('../fonts/instrument-sans-400-normal-39.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;
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url('../fonts/instrument-sans-500-normal-40.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;
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url('../fonts/instrument-sans-600-normal-41.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;
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/instrument-serif-400-italic-42.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;
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/instrument-serif-400-normal-43.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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/inter-400-normal-44.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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/inter-500-normal-45.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;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/inter-600-normal-46.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;
}
@font-face {
  font-family: 'Italiana';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/italiana-400-normal-47.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;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/jost-300-normal-48.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;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/jost-400-normal-49.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;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/jost-500-normal-50.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;
}
@font-face {
  font-family: 'Karla';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/karla-400-normal-51.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;
}
@font-face {
  font-family: 'Karla';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/karla-500-normal-52.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;
}
@font-face {
  font-family: 'Karla';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/karla-700-normal-53.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;
}
@font-face {
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/league-spartan-700-normal-54.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;
}
@font-face {
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/league-spartan-800-normal-55.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;
}
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/libre-baskerville-400-normal-56.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;
}
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/libre-baskerville-700-normal-57.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;
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/lora-400-normal-58.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;
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/lora-500-normal-59.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;
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/lora-600-normal-60.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;
}
@font-face {
  font-family: 'Marcellus';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/marcellus-400-normal-61.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;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/mulish-400-normal-62.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;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/mulish-500-normal-63.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;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/mulish-600-normal-64.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;
}
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url('../fonts/newsreader-400-600-italic-65.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;
}
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('../fonts/newsreader-400-600-normal-66.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;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/playfair-display-700-italic-67.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;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/playfair-display-700-normal-68.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;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/playfair-display-900-normal-69.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;
}
@font-face {
  font-family: 'Poiret One';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/poiret-one-400-normal-70.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;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/space-grotesk-500-normal-71.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;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/space-grotesk-700-normal-72.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;
}
@font-face {
  font-family: 'Work Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/work-sans-400-normal-73.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;
}
@font-face {
  font-family: 'Work Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/work-sans-500-normal-74.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;
}
@font-face {
  font-family: 'Work Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/work-sans-600-normal-75.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;
}
@font-face {
  font-family: 'Young Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/young-serif-400-normal-76.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 {
  --demo-h: 46px;
  --ink: #1c201e;
  --muted: #69706b;
  --line: #e2e0d8;
  --line-strong: #cbc8bd;
  --surface: #ffffff;
  --bg: #f4f3ee;
  --brand: #1f4d3f;
  --brand-dark: #173a30;
  --brand-soft: #e5eee9;
  --danger: #a83232;
  --font-ui: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; padding-top: var(--demo-h); font-family: var(--font-ui); font-size: 15px; line-height: 1.5; color: var(--ink); background: var(--bg); -webkit-font-smoothing: antialiased; }
body.demo-hidden { --demo-h: 0px; }
body.modal-open, body.drawer-open { overflow: hidden; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button { font: inherit; color: inherit; cursor: pointer; background: none; border: 0; padding: 0; }
button:disabled { cursor: not-allowed; }
input, select, textarea { font: inherit; color: inherit; }
address { font-style: normal; }
code { font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace; font-size: .9em; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.muted { color: var(--muted); }
.ic { flex: none; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.img { position: relative; display: block; overflow: hidden; background: #e9e6dd; }
.img > img { width: 100%; height: 100%; object-fit: cover; }
.img.is-broken { background: repeating-linear-gradient(135deg, rgba(0,0,0,.035) 0 8px, rgba(0,0,0,.06) 8px 9px), #e6e2d8; }
#demo { position: relative; z-index: 1000; }
.demo-bar { position: fixed; top: 0; left: 0; right: 0; height: 46px; background: #121513; color: #e6e9e5; font-size: 13px; line-height: 1; border-bottom: 1px solid #2a302c; }
.demo-in { display: flex; align-items: center; gap: 22px; height: 46px; padding: 0 16px; max-width: 1600px; margin: 0 auto; }
.demo-tag { color: #9aa39d; letter-spacing: .02em; white-space: nowrap; }
.demo-tag b { color: #fff; font-weight: 600; margin-right: 2px; }
.demo-summary { display: none; }
.demo-controls { display: flex; align-items: center; gap: 22px; flex: 1; min-width: 0; }
.demo-group { display: flex; align-items: center; gap: 8px; }
.demo-lbl { color: #8c958f; text-transform: uppercase; font-size: 10.5px; letter-spacing: .08em; }
.seg { display: inline-flex; border: 1px solid #38403b; border-radius: 4px; overflow: hidden; }
.seg button { padding: 7px 11px; color: #cfd5d0; border-right: 1px solid #38403b; display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.seg button:last-child { border-right: 0; }
.seg button small { font-size: 11px; color: #8c958f; }
.seg button:hover { background: #1d221f; }
.seg button.is-on { background: #f4f3ee; color: #121513; font-weight: 600; }
.seg button.is-on small { color: #4d564f; }
.demo-select { height: 32px; padding: 0 28px 0 10px; background: #1d221f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' stroke='%23cfd5d0' stroke-width='1.6'%3E%3Cpath d='M1 1l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 10px center; color: #f1f3ef; border: 1px solid #38403b; border-radius: 4px; font: inherit; appearance: none; -webkit-appearance: none; cursor: pointer; min-width: 170px; }
.demo-select:hover { border-color: #5a635d; }
.demo-select option { background: #1d221f; color: #f1f3ef; }
.demo-tools { margin-left: auto; gap: 4px; }
.demo-tool { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border-radius: 4px; color: #cfd5d0; }
.demo-tool:hover { background: #1d221f; }
.demo-tool.is-on { color: #fff; background: #26312b; }
.demo-reveal { position: fixed; left: 12px; bottom: 12px; z-index: 1000; background: #121513; color: #e6e9e5; font-size: 12px; padding: 8px 12px; border-radius: 999px; border: 1px solid #38403b; box-shadow: 0 4px 16px rgba(0,0,0,.25); }
@media (max-width: 1180px) {
  .demo-lbl { display: none; }
  .demo-controls, .demo-in { gap: 12px; }
}
@media (max-width: 899px) {
  :root { --demo-h: 42px; }
  body[data-view="customer"] .demo-reveal { bottom: 78px; }
  .demo-bar, .demo-in { height: 42px; }
  .demo-in { gap: 10px; }
  .demo-summary { display: flex; align-items: center; justify-content: flex-end; flex: 1; gap: 10px; color: #fff; font-weight: 500; }
  .demo-change { color: #121513; background: #f4f3ee; padding: 6px 10px; border-radius: 4px; font-weight: 600; }
  .demo-controls { display: none; position: fixed; top: 42px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 14px; padding: 14px 16px 18px; background: #121513; border-bottom: 1px solid #2a302c; max-height: calc(100vh - 42px); overflow: auto; }
  .demo-bar.is-open .demo-controls { display: flex; }
  .demo-group { flex-direction: column; align-items: stretch; gap: 6px; }
  .demo-lbl { display: block; }
  .demo-select { height: 40px; width: 100%; }
  .seg { display: flex; }
  .seg button { flex: 1; justify-content: center; padding: 10px 6px; }
  .demo-tools { flex-direction: row; margin-left: 0; gap: 8px; }
  .demo-tool { border: 1px solid #38403b; padding: 10px 12px; flex: 1; justify-content: center; }
}
.is-phone-stage { background: #d8d5cc; }
.phone-stage { min-height: calc(100vh - var(--demo-h)); display: flex; flex-direction: column; align-items: center; padding: 22px 16px 40px; }
.phone-note { font-size: 12px; color: #6a6f69; margin-bottom: 12px; letter-spacing: .02em; }
.phone { position: relative; width: 402px; height: min(820px, calc(100vh - var(--demo-h) - 90px)); background: #111; border-radius: 46px; padding: 12px; box-shadow: 0 30px 60px -20px rgba(0,0,0,.4), 0 0 0 2px #2b2b2b inset; }
.phone iframe { width: 100%; height: 100%; border: 0; border-radius: 34px; background: #fff; display: block; }
.phone-notch { position: absolute; top: 20px; left: 50%; width: 84px; height: 22px; margin-left: -42px; background: #111; border-radius: 12px; z-index: 2; pointer-events: none; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 38px; padding: 8px 15px; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--surface); color: var(--ink); font-weight: 500; font-size: 14px; line-height: 1.2; text-decoration: none; white-space: nowrap; transition: background .12s, border-color .12s; }
.btn:hover { background: #f1efe8; border-color: #b9b5a8; }
.btn:disabled { opacity: .45; }
.btn:disabled:hover { background: var(--surface); border-color: var(--line-strong); }
.btn-primary { background: var(--brand); border-color: var(--brand); color: #fff; }
.btn-primary:hover { background: var(--brand-dark); border-color: var(--brand-dark); }
.btn-danger { background: var(--danger); border-color: var(--danger); color: #fff; }
.btn-danger:hover { background: #8c2929; border-color: #8c2929; }
.btn-sm { min-height: 32px; padding: 5px 11px; font-size: 13px; }
.btn-block { width: 100%; }
.icon-btn { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 4px; color: var(--muted); }
.icon-btn:hover:not(:disabled) { background: #eceae2; color: var(--ink); }
.icon-btn:disabled { opacity: .3; }
.icon-btn-sm { width: 28px; height: 28px; }
.link-btn { color: inherit; text-decoration: underline; text-underline-offset: 3px; font-size: inherit; }
.link { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; font-size: 13px; }
.field, .select { width: 100%; min-height: 40px; padding: 8px 11px; border: 1px solid var(--line-strong); border-radius: 4px; background: #fff; }
textarea.field { resize: vertical; min-height: 72px; }
.field:focus, .select:focus { outline: 2px solid var(--brand); outline-offset: -1px; border-color: var(--brand); }
.field.has-error { border-color: var(--danger); }
.field-sm { max-width: 150px; min-height: 36px; }
.select-sm { min-height: 32px; padding: 4px 8px; font-size: 13px; width: auto; }
.lbl { display: block; font-size: 13px; font-weight: 500; margin-bottom: 5px; color: #343a37; }
.opt { color: var(--muted); font-weight: 400; }
.hint { font-size: 12.5px; color: var(--muted); margin-top: 5px; }
.err { font-size: 12.5px; color: var(--danger); margin-top: 5px; }
.fld { margin-bottom: 14px; }
.fld-inline { display: flex; align-items: flex-start; gap: 12px; }
.fld-inline > span { font-size: 14px; }
.sw { position: relative; display: inline-block; width: 36px; height: 20px; flex: none; vertical-align: middle; }
.sw input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.sw-track { position: absolute; inset: 0; border-radius: 999px; background: #c9c6bb; transition: background .15s; }
.sw-track::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .15s; box-shadow: 0 1px 2px rgba(0,0,0,.25); }
.sw input:checked + .sw-track { background: var(--brand); }
.sw input:checked + .sw-track::after { transform: translateX(16px); }
.sw input:focus-visible + .sw-track { outline: 2px solid var(--brand); outline-offset: 2px; }
.sw-label { margin-left: 8px; font-size: 13px; color: var(--muted); vertical-align: middle; }
#modal-root { position: relative; z-index: 1100; }
.modal-backdrop { position: fixed; inset: 0; background: rgba(18,21,19,.52); display: flex; align-items: center; justify-content: center; padding: 16px; animation: fade .15s ease-out; }
.modal { background: #fff; border-radius: 8px; width: 100%; max-width: 560px; max-height: calc(100vh - 32px); display: flex; flex-direction: column; box-shadow: 0 24px 60px rgba(0,0,0,.3); color: var(--ink); font-family: var(--font-ui); }
.modal-sm { max-width: 440px; }
.modal-xl { max-width: 1180px; height: calc(100vh - 32px); }
.modal-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 14px 20px; border-bottom: 1px solid var(--line); }
.modal-head h2 { font-size: 17px; font-weight: 600; }
.modal-body { padding: 20px; overflow: auto; flex: 1; min-height: 0; }
.modal-text { font-size: 15px; }
.modal-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 20px; border-top: 1px solid var(--line); background: #faf9f6; border-radius: 0 0 8px 8px; }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 600px) {
  .modal-backdrop { align-items: flex-end; padding: 0; }
  .modal, .modal-lg, .modal-sm { max-width: none; min-width: 0; border-radius: 12px 12px 0 0; max-height: 92vh; }
  .modal-xl { height: 92vh; }
  .modal-foot { border-radius: 0; padding-bottom: calc(12px + env(safe-area-inset-bottom)); }
}
#toast-root { position: fixed; right: 16px; bottom: 16px; z-index: 1200; display: flex; flex-direction: column; gap: 8px; align-items: flex-end; pointer-events: none; max-width: calc(100vw - 32px); }
.toast { display: flex; gap: 10px; align-items: flex-start; background: #1c201e; color: #fff; padding: 11px 14px; border-radius: 6px; box-shadow: 0 10px 30px rgba(0,0,0,.28); font-size: 14px; max-width: 380px; opacity: 0; transform: translateY(8px); transition: opacity .25s, transform .25s; pointer-events: auto; font-family: var(--font-ui); }
.toast.in { opacity: 1; transform: none; }
.toast-error { background: #7c2424; }
.toast-sub { font-size: 12px; color: #b9c2bc; margin-top: 2px; }
.toast-sms { background: #f8f7f2; color: var(--ink); border: 1px solid var(--line-strong); border-left: 4px solid var(--brand); }
.toast-sms .toast-sub { color: var(--muted); }
.toast-ic { color: var(--brand); margin-top: 1px; }
@media (max-width: 899px) { #toast-root { right: 12px; left: 12px; bottom: 12px; align-items: stretch; } .toast { max-width: none; } body[data-view="customer"] #toast-root { bottom: 82px; } }
@media print { .demo-bar, .demo-reveal, #toast-root, .adm-side, .adm-top, .page-head, .tabs, .panel-head, .hint, .btn-row, .steps { display: none !important; } body { padding: 0; background: #fff; } .qr-box { border: 0; } }
.crop-ov { z-index: 3000; }
.crop-box { max-width: 560px; }
.crop-body { display: flex; flex-direction: column; gap: 12px; overflow: auto; }
.crop-help { margin: 0; font-size: 13px; color: var(--muted); }
.crop-stage { position: relative; width: 100%; overflow: hidden; border-radius: 6px; background: #1c201e; touch-action: none; cursor: grab; outline-offset: 2px; user-select: none; }
.crop-stage.is-drag { cursor: grabbing; }
.crop-stage img { position: absolute; left: 0; top: 0; max-width: none; pointer-events: none; transform-origin: 0 0; }
.crop-grid { position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 0 1px rgba(255,255,255,.7); background:
  linear-gradient(to right, transparent 33.2%, rgba(255,255,255,.35) 33.3%, rgba(255,255,255,.35) 33.5%, transparent 33.6%, transparent 66.5%, rgba(255,255,255,.35) 66.6%, rgba(255,255,255,.35) 66.8%, transparent 66.9%),
  linear-gradient(to bottom, transparent 33.2%, rgba(255,255,255,.35) 33.3%, rgba(255,255,255,.35) 33.5%, transparent 33.6%, transparent 66.5%, rgba(255,255,255,.35) 66.6%, rgba(255,255,255,.35) 66.8%, transparent 66.9%); }
.crop-zoom { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--muted); }
.crop-zoom input { flex: 1; accent-color: var(--brand); }
.crop-warn { margin: 0; padding: 8px 10px; border-radius: 6px; background: #fbefd5; color: #6d4b00; font-size: 13px; }
body[data-view="customer"] { background: var(--site-bg, #fff); }
.site {
  --bg: #fff; --bg-alt: #f6f6f4; --text: #1d1d1b; --muted: #6b6b66; --line: #e4e4df; --card: #fff;
  --font-body: system-ui, sans-serif; --font-head: var(--font-body);
  --radius: 4px; --btn-radius: 4px; --btn-track: 0; --btn-transform: none; --btn-weight: 500;
  --accent: var(--primary); --on-accent: var(--on-primary);
  --top: var(--demo-h);
  position: relative; min-height: 100vh; background: var(--bg); color: var(--text); font-family: var(--font-body); font-size: 16px; line-height: 1.55;
  overflow-x: clip;
}
body.is-embed .site { --top: 0px; }
.site h1, .site h2, .site h3, .site h4 { font-family: var(--font-head); font-weight: 500; }
.site [id] { scroll-margin-top: calc(var(--top) + 76px); }
.site .cart-btn, .site .cat-link, .site .link-btn { font-family: inherit; }
.site [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.site [data-reveal].is-in { opacity: 1; transform: none; }
.site [data-reveal="up-sm"] { transform: translateY(12px); }
.site [data-reveal="scale"] { transform: scale(.96); }
@media (prefers-reduced-motion: reduce) { .site [data-reveal] { opacity: 1; transform: none; transition: none; } }
.site .btn { min-height: 46px; padding: 11px 22px; border-radius: var(--btn-radius); border: 1px solid var(--text); background: transparent; color: var(--text); font-family: var(--font-body); font-weight: var(--btn-weight); font-size: 15px; letter-spacing: var(--btn-track); text-transform: var(--btn-transform); }
.site .btn:hover { background: var(--bg-alt); border-color: var(--text); }
.site .btn-primary { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.site .btn-primary:hover { background: var(--accent); border-color: var(--accent); filter: brightness(.92); }
.site .btn:disabled { opacity: .4; }
.site .field { min-height: 46px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); color: var(--text); font-family: var(--font-body); font-size: 16px; padding: 10px 12px; }
.site .field:focus { outline: 2px solid var(--accent); outline-offset: -1px; border-color: var(--accent); }
.site .field.has-error { border-color: #b3261e; }
.site .lbl { color: var(--text); font-weight: 500; font-size: 14px; }
.site .opt { color: var(--muted); }
.site .err { color: #b3261e; font-size: 13.5px; }
.site .err-block { margin: 6px 0 12px; padding: 10px 12px; border: 1px solid #e5b4b0; background: #fdf1f0; border-radius: var(--radius); }
.site .muted, .site .hint { color: var(--muted); }
.site .hint { font-size: 14px; }
.site .link-btn { text-decoration: underline; text-underline-offset: 3px; color: inherit; opacity: .85; }
.site .link-btn:hover { opacity: 1; }
.site .price { font-variant-numeric: tabular-nums; white-space: nowrap; }
.site .eyebrow { font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.site .soldout { font-size: 13px; color: var(--muted); border: 1px solid var(--line); padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.is-off .price, .is-off h4, .is-off p { opacity: .55; }
.add-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 14px; border: 1px solid var(--text); border-radius: var(--btn-radius); font-size: 14px; font-weight: var(--btn-weight); letter-spacing: var(--btn-track); text-transform: var(--btn-transform); background: transparent; color: var(--text); }
.add-btn:hover { background: var(--text); color: var(--bg); }
.stepper { display: inline-flex; align-items: center; border: 1px solid var(--text); border-radius: var(--btn-radius); overflow: hidden; }
.stepper button { width: 38px; height: 38px; display: grid; place-items: center; color: inherit; }
.stepper button:hover:not(:disabled) { background: var(--text); color: var(--bg); }
.stepper button:disabled { opacity: .3; }
.stepper output { min-width: 34px; text-align: center; font-variant-numeric: tabular-nums; font-weight: 500; }
.stepper-lg { border-color: var(--line); background: var(--card); }
.stepper-lg button { width: 48px; height: 48px; }
.stepper-lg output { min-width: 130px; font-size: 17px; }
.c-plus, .c-step { --s: var(--plus-size, 42px); }
.c-plus { width: var(--s); height: var(--s); display: grid; place-items: center; flex: none; border-radius: var(--plus-radius, 50%); background: var(--plus-bg, var(--card)); color: var(--plus-fg, var(--text)); border: 1px solid var(--plus-line, var(--line)); box-shadow: var(--plus-shadow, 0 2px 8px rgba(0,0,0,.14)); transition: background .15s, color .15s, transform .12s; }
.c-plus:hover { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.c-plus:active { transform: scale(.94); }
.c-step { display: inline-flex; align-items: center; height: var(--s); border-radius: var(--plus-radius, 999px); background: var(--accent); color: var(--on-accent); flex: none; box-shadow: var(--plus-shadow, 0 2px 8px rgba(0,0,0,.2)); }
.c-step button { width: calc(var(--s) * .9); height: var(--s); display: grid; place-items: center; color: inherit; }
.c-step output { min-width: 20px; text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }
.takeaway-note { display: flex; justify-content: space-between; align-items: center; gap: 8px 28px; flex-wrap: wrap; padding: 10px 0; margin-bottom: 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 14.5px; }
.tn-main { display: flex; flex-direction: column; gap: 2px; max-width: 58ch; }
.tn-main strong { font-size: 15px; }
.tn-main span { color: var(--muted); font-size: 13.5px; line-height: 1.45; }
.tn-closed { display: flex !important; gap: 8px; align-items: flex-start; margin-top: 6px; padding: 7px 10px; border-radius: 8px; background: rgba(214,69,69,.12); color: var(--text); font-size: 13.5px; }
.tn-closed .ic { margin-top: 2px; flex: none; color: #d64545; }
.tn-closed span { color: var(--text); }
.tn-steps { display: flex; gap: 6px 14px; align-items: center; color: var(--muted); font-size: 12.5px; counter-reset: t; flex-wrap: wrap; }
.tn-steps li { counter-increment: t; display: flex; gap: 6px; align-items: center; }
.tn-steps li::before { content: counter(t); width: 18px; height: 18px; display: grid; place-items: center; border: 1px solid var(--line-strong, var(--line)); border-radius: 50%; font-size: 11px; color: var(--text); }
.cat-nav { display: flex; gap: 6px 22px; overflow-x: auto; scrollbar-width: none; margin: 4px 0 24px; }
.cat-nav::-webkit-scrollbar { display: none; }
.cat-link { white-space: nowrap; padding: 8px 0; font-size: 15px; color: var(--muted); border-bottom: 2px solid transparent; }
.cat-link:hover { color: var(--text); border-bottom-color: var(--text); }
.offers { display: contents; }
.offer { display: flex; gap: 16px; align-items: flex-start; }
.offer-value { flex: none; min-width: 64px; font-family: var(--font-head); font-size: 26px; line-height: 1.1; }
.offer-value-none { display: grid; place-items: center; color: var(--muted); }
.offer-name { font-size: 18px; line-height: 1.25; margin-bottom: 3px; }
.offer-text { font-size: 15px; color: var(--muted); }
.offer-meta { font-size: 13.5px; color: var(--muted); margin-top: 8px; }
.offer-meta code { background: var(--bg-alt); border: 1px solid var(--line); padding: 1px 6px; border-radius: 3px; color: var(--text); letter-spacing: .04em; }
.offer-meta .link-btn { color: var(--text); }
.offer-paused { opacity: .55; }
.offer-tag { display: inline-block; font-size: 10.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--line); border-radius: 999px; padding: 2px 8px; vertical-align: middle; margin-left: 4px; }
.c-stamp { --stamp: 42px; }
.stamp-title { font-size: 26px; line-height: 1.15; }
.stamp-sub { color: var(--muted); margin-top: 3px; }
.stamp-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--stamp), 1fr)); gap: 10px; margin: 20px 0 14px; max-width: calc(var(--n) * (var(--stamp) + 10px)); }
.stamp { aspect-ratio: 1; display: grid; place-items: center; border: 1.5px solid var(--line); color: var(--muted); font-size: 14px; border-radius: 50%; max-width: 54px; background: var(--card); }
.stamp.is-filled { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.stamp.is-reward { border-style: dashed; }
.stamp.is-reward.is-filled { border-style: solid; }
.stamp span { display: grid; place-items: center; }
.stamp-foot { display: flex; gap: 10px; flex-wrap: wrap; font-size: 14px; color: var(--muted); align-items: baseline; }
.stamp-form { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; max-width: 460px; }
.stamp-form .field { flex: 1; min-width: 200px; }
.stamp-desc { font-size: 14px; color: var(--muted); margin-top: 12px; max-width: 56ch; }
.hours { max-width: 340px; }
.hours-row { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.hours-row dt { color: var(--muted); }
.hours-row dd { font-variant-numeric: tabular-nums; }
.hours-row.is-today dt, .hours-row.is-today dd { color: var(--text); font-weight: 600; }
.contact { display: flex; flex-direction: column; gap: 12px; font-size: 15.5px; }
.contact-row { display: flex; gap: 10px; align-items: flex-start; text-decoration: none; }
.contact-row .ic { margin-top: 4px; color: var(--muted); }
a.contact-row:hover span { text-decoration: underline; }
.open-now { display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; }
.open-now i { width: 8px; height: 8px; border-radius: 50%; background: #2b8a5c; }
.open-now.is-closed i { background: #b3261e; }
.legal { font-size: 13px; color: var(--muted); }
.cart-btn { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border: 1px solid currentColor; border-radius: var(--btn-radius); font-size: 14px; font-weight: var(--btn-weight); letter-spacing: var(--btn-track); text-transform: var(--btn-transform); white-space: nowrap; }
.cart-count { min-width: 22px; height: 22px; padding: 0 6px; display: inline-grid; place-items: center; border-radius: 11px; font-size: 12px; font-weight: 600; background: currentColor; }
.cart-count { color: var(--bg); }
.cart-count:not(.has-items) { display: none; }
.order-banner { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 10px 16px; background: var(--accent); color: var(--on-accent); font-size: 14.5px; }
.order-banner strong { font-weight: 600; }
.order-banner.is-notice { background: var(--bg-alt); color: var(--text); border-bottom: 1px solid var(--line); font-size: 14px; }
.sheet-root { position: fixed; inset: var(--top) 0 0 0; z-index: 890; visibility: hidden; pointer-events: none; }
.sheet-root.is-open { visibility: visible; pointer-events: auto; }
.sheet-backdrop { position: absolute; inset: 0; background: rgba(10,10,10,.5); opacity: 0; transition: opacity .25s; }
.sheet-root.is-open .sheet-backdrop { opacity: 1; }
.sheet { position: absolute; top: 0; right: 0; bottom: 0; width: min(560px, 100%); background: var(--bg); color: var(--text); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .28s cubic-bezier(.2,.7,.2,1); font-family: var(--font-body); box-shadow: -20px 0 50px rgba(0,0,0,.2); }
.sheet-root.is-open .sheet { transform: none; }
body.is-embed .sheet-root { top: 0; }
.sheet-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.sheet-head h2 { font-size: 24px; }
.sheet-body { flex: 1; overflow-y: auto; padding: 20px 22px 40px; overscroll-behavior: contain; }
.sheet-body .c-res { max-width: none; }
.sheet-body .c-res-head { display: none; }
@media (max-width: 640px) { .sheet { width: 100%; } }
.drawer-root { position: fixed; inset: var(--top) 0 0 0; z-index: 900; visibility: hidden; pointer-events: none; }
.drawer-root.is-open { visibility: visible; pointer-events: auto; }
.drawer-backdrop { position: absolute; inset: 0; background: rgba(10,10,10,.5); opacity: 0; transition: opacity .25s; }
.drawer-root.is-open .drawer-backdrop { opacity: 1; }
.drawer { position: absolute; top: 0; right: 0; bottom: 0; width: min(460px, 100%); background: var(--bg); color: var(--text); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .28s cubic-bezier(.2,.7,.2,1); font-family: var(--font-body); box-shadow: -20px 0 50px rgba(0,0,0,.18); }
.drawer-root.is-open .drawer { transform: none; }
body.is-embed .drawer, body.is-embed .drawer-root { top: 0; }
.drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.drawer-head h2 { font-size: 22px; }
.drawer-x { width: 40px; height: 40px; display: grid; place-items: center; margin-right: -8px; }
.drawer-body { flex: 1; overflow-y: auto; padding: 8px 20px 24px; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.drawer-foot { padding: 14px 20px calc(16px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--bg); }
.pay-note { font-size: 13.5px; color: var(--muted); margin-bottom: 10px; text-align: center; }
.cart-empty { padding: 36px 0; text-align: center; display: flex; flex-direction: column; gap: 6px; align-items: center; }
.cart-empty .btn { margin-top: 14px; }
.cart-lines { margin-bottom: 8px; }
.cart-line { display: grid; grid-template-columns: 1fr auto auto 28px; gap: 4px 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); }
.cl-main { display: flex; flex-direction: column; min-width: 0; }
.cl-name { font-weight: 500; line-height: 1.3; }
.cl-unit { font-size: 13.5px; color: var(--muted); }
.cl-total { min-width: 64px; text-align: right; font-variant-numeric: tabular-nums; font-weight: 500; }
.cl-remove { width: 28px; height: 28px; display: grid; place-items: center; color: var(--muted); }
.cl-remove:hover { color: var(--text); }
.cart-line.is-off .cl-unit { color: #b3261e; }
.cart-line .stepper button { width: 32px; height: 32px; }
.cart-line .stepper output { min-width: 28px; }
.code-block { margin: 18px 0 6px; }
.code-row { display: flex; gap: 8px; }
.code-row .field { flex: 1; text-transform: uppercase; }
.code-row .field::placeholder { text-transform: none; }
.code-row .btn { min-height: 46px; padding: 0 18px; }
.code-msg { font-size: 13.5px; margin-top: 6px; }
.code-msg.ok { color: #1f6b43; }
.code-msg.bad { color: #b3261e; }
.totals { margin: 16px 0 22px; padding: 4px 0 0; display: flex; flex-direction: column; gap: 6px; font-size: 15px; }
.totals div { display: flex; justify-content: space-between; }
.totals dd { font-variant-numeric: tabular-nums; }
.totals-final { padding-top: 10px; margin-top: 4px; border-top: 1px solid var(--text); font-size: 19px; font-weight: 600; }
.co-form .fld { margin-bottom: 14px; }
.order-done { padding: 22px 0 4px; display: flex; flex-direction: column; gap: 8px; }
.done-mark { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--accent); color: var(--on-accent); margin-bottom: 6px; }
.order-done h3, .res-done h3 { font-size: 26px; line-height: 1.15; }
.done-lead { font-size: 16.5px; }
.done-status { padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius); }
.done-status.is-rejected { border-color: #e5b4b0; background: #fdf1f0; color: #7a1f19; }
.track { display: flex; flex-direction: column; gap: 0; margin: 12px 0 10px; padding-left: 4px; }
.track li { display: flex; align-items: center; gap: 12px; padding: 5px 0; color: var(--muted); font-size: 15px; position: relative; }
.track li i { width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--line); background: var(--bg); flex: none; position: relative; z-index: 1; }
.track li:not(:last-child)::after { content: ''; position: absolute; left: 6.5px; top: 22px; bottom: -6px; width: 1.5px; background: var(--line); }
.track li.is-past i { background: var(--accent); border-color: var(--accent); }
.track li.is-past::after { background: var(--accent); }
.track li.is-past { color: var(--text); }
.track li.is-now { color: var(--text); font-weight: 600; }
.track li.is-now i { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 0 4px var(--primary-soft); }
.done-items { margin-top: 8px; border-top: 1px solid var(--line); }
.done-items li, .done-row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.done-total { font-weight: 600; font-size: 17px; border-bottom: 0; }
.done-note { font-size: 14px; color: var(--muted); }
.c-res { max-width: 760px; }
.c-res-head { margin-bottom: 22px; }
.sec-title { font-size: 34px; line-height: 1.15; }
.res-form { display: flex; flex-direction: column; gap: 6px; }
.res-step { border: 0; padding: 0 0 18px; margin: 0 0 4px; min-width: 0; }
.res-step legend { display: flex; align-items: center; gap: 10px; padding: 0; margin-bottom: 12px; font-weight: 500; font-size: 16px; float: left; width: 100%; }
.res-step legend + * { clear: both; }
.step-n { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; font-size: 12.5px; color: var(--muted); }
.legend-date { margin-left: auto; font-weight: 400; color: var(--muted); font-size: 14px; }
.date-strip { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 8px; margin: 0 -2px; scrollbar-width: thin; }
.date-chip { flex: none; width: 62px; padding: 8px 0 9px; display: flex; flex-direction: column; align-items: center; gap: 0; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); line-height: 1.25; }
.date-chip:hover:not(:disabled) { border-color: var(--text); }
.dc-dow { font-size: 12px; color: var(--muted); }
.dc-day { font-size: 21px; font-family: var(--font-head); font-weight: 500; }
.dc-mon { font-size: 12px; color: var(--muted); }
.date-chip.is-selected { background: var(--text); color: var(--bg); border-color: var(--text); }
.date-chip.is-selected .dc-dow, .date-chip.is-selected .dc-mon { color: inherit; opacity: .75; }
.date-chip.is-closed { opacity: .35; text-decoration: line-through; }
.slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: 8px; }
.slot { padding: 11px 6px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); display: flex; flex-direction: column; align-items: center; line-height: 1.2; font-variant-numeric: tabular-nums; }
.slot:hover:not(:disabled) { border-color: var(--text); }
.slot-time { font-size: 17px; font-weight: 500; }
.slot-note { font-size: 12px; color: var(--muted); margin-top: 1px; }
.slot.is-selected { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.slot.is-off { background: transparent; border-style: dashed; color: var(--muted); }
.slot.is-off .slot-time { text-decoration: line-through; opacity: .7; }
.hint-warn { padding: 10px 12px; border: 1px solid var(--line); border-left: 3px solid #d98a1c; border-radius: var(--radius); margin-top: 12px; color: var(--text); }
.res-step .fld { margin-bottom: 12px; }
.res-submit { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 16px 0; border-top: 1px solid var(--line); }
.res-summary { font-weight: 500; }
.fine { font-size: 13.5px; color: var(--muted); }
.res-done { display: flex; flex-direction: column; gap: 10px; padding: 8px 0; align-items: flex-start; }
.res-facts { width: 100%; max-width: 420px; border-top: 1px solid var(--line); margin: 8px 0; }
.res-facts div { display: flex; justify-content: space-between; gap: 20px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.res-facts dt { color: var(--muted); }
.res-facts dd { text-align: right; font-weight: 500; }
.res-st-bekreftet { color: #1f6b43; }
.res-st-avslatt { color: #b3261e; }
.sms-note { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg-alt); max-width: 480px; }
.sms-note .ic { margin-top: 3px; flex: none; }
.sms-note em { font-style: normal; color: var(--muted); }
.preview-site { min-height: 0; padding: 22px; border-radius: 4px; border: 1px solid var(--line); }
.preview-site .stamp-foot { display: none; }
@media (max-width: 640px) {
  .site { font-size: 16px; }
  .sec-title { font-size: 29px; }
  .drawer { width: 100%; }
  .cart-line { grid-template-columns: 1fr auto 28px; }
  .cl-total { grid-column: 1; grid-row: 2; text-align: left; }
  .cart-line .stepper { grid-column: 2; grid-row: 1 / 3; }
  .cl-remove { grid-column: 3; grid-row: 1 / 3; }
  .date-chip { width: 58px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
.closed-page { display: grid; place-items: center; min-height: 100vh; text-align: center; }
.closed-in { max-width: 460px; padding: 32px 24px; }
.closed-in h1 { font-size: clamp(30px, 6vw, 44px); line-height: 1.15; margin: 4px 0 14px; letter-spacing: -.02em; }
.closed-text { font-size: 17px; }
.closed-text a { text-decoration: underline; text-underline-offset: 3px; }
.tabbar { display: none; }
.cat-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 6px 0 26px; }
.cat-tab { padding: 10px 18px; border: 1px solid var(--line); background: var(--card); color: var(--text); font-size: 15px; font-family: inherit; }
.cat-tab:hover { border-color: var(--text); }
.cat-tab.is-on { background: var(--text); color: var(--bg); border-color: var(--text); }
@media (max-width: 899px) {
  .tabbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: var(--bg); border-top: 1px solid var(--line); padding: 4px 4px calc(4px + env(safe-area-inset-bottom)); }
  .tabbar button { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 7px 2px 5px; font-size: 12px; color: var(--muted); font-family: inherit; }
  .tabbar button:active { color: var(--text); }
}
.pay-choice { border: 0; padding: 0; margin: 4px 0 2px; display: grid; gap: 8px; min-width: 0; }
.pay-choice .lbl { padding: 0; margin-bottom: 2px; }
.pay-opt { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1.5px solid var(--line, #d8d8d0); border-radius: var(--radius, 6px); cursor: pointer; background: var(--card, #fff); transition: border-color .15s; }
.pay-opt:hover { border-color: var(--muted, #888); }
.pay-opt.is-on { border-color: var(--accent, var(--primary-ink, #2d5a4c)); box-shadow: 0 0 0 1px var(--accent, var(--primary-ink, #2d5a4c)); }
.pay-opt input { margin: 3px 0 0; accent-color: var(--accent, var(--primary-ink, #2d5a4c)); flex: none; }
.pay-opt span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pay-opt strong { font-size: 15px; font-weight: 600; }
.pay-opt small { color: var(--muted, #6b6b63); font-size: 13px; line-height: 1.4; }
.done-mark.is-pay { background: var(--primary-soft, #e8f0ed); color: var(--accent, var(--primary-ink, #2d5a4c)); }
.pay-demo { margin: 16px 0 4px; padding: 14px; border: 1.5px dashed var(--muted, #888); border-radius: var(--radius, 6px); }
.pay-demo-tag { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted, #6b6b63); margin-bottom: 10px; }
.pay-demo-card { display: grid; gap: 4px; font-variant-numeric: tabular-nums; }
.pay-demo-card span { font-size: 12.5px; color: var(--muted, #6b6b63); }
.pay-demo-card strong { font-size: 18px; letter-spacing: .06em; }
.legal-page { min-height: 100vh; background: #fbfaf7; color: #22201c; padding: 32px 16px 56px; font: 16px/1.65 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
.legal-in { max-width: 720px; margin: 0 auto; }
.legal-page h1 { font-size: 30px; line-height: 1.2; margin: 14px 0 18px; letter-spacing: -.01em; }
.legal-page h2 { font-size: 19px; margin: 28px 0 8px; }
.legal-page p, .legal-page li { max-width: 68ch; }
.legal-page ul { padding-left: 20px; display: grid; gap: 6px; margin: 8px 0; }
.legal-page a { color: #1d4d3d; text-decoration: underline; }
.legal-back { display: inline-block; font-size: 14px; text-decoration: none !important; }
.legal-note { background: #f0ede4; border-radius: 6px; padding: 10px 14px; font-size: 14.5px; }
.legal-foot { margin-top: 36px; padding-top: 14px; border-top: 1px solid #e3dfd3; font-size: 13.5px; color: #6b665c; }
.legal-todo { background: #ffe58a; padding: 0 4px; border-radius: 3px; }
.legal-links { text-align: center; font-size: 12.5px; opacity: .7; padding: 14px 16px 90px; }
.legal-links a { color: inherit; text-decoration: underline; }
.takeaway-note .tn-steps li::before { background: transparent; }
@keyframes cart-bump { 0% { transform: scale(1); } 35% { transform: scale(1.09); } 100% { transform: scale(1); } }
.is-bump { animation: cart-bump .45s cubic-bezier(.2,.8,.3,1); }
@keyframes pop-in { from { transform: scale(.82); opacity: .35; } to { transform: none; opacity: 1; } }
.c-step, .nt-step, .menu-cat .stepper { animation: pop-in .18s ease-out; }
@keyframes view-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.site main > .page-view, .site main > section.ol-sec, .site main > .wk-page, .site main > .wk-hero { animation: view-in .22s ease-out; }
@media (prefers-reduced-motion: reduce) { .is-bump, .c-step, .nt-step, .menu-cat .stepper, .site main > * { animation: none !important; } }
.menu-search { display: flex; align-items: center; gap: 10px; height: 52px; padding: 0 16px; border-radius: 999px; background: var(--card); border: 1px solid var(--line); color: var(--muted); }
.menu-search:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent); }
.menu-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--text); font: inherit; font-size: 16px; height: 100%; }
.menu-search input::placeholder { color: var(--muted); }
.menu-search-x { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; color: inherit; }
.menu-empty { padding: 36px 0; color: var(--muted); text-align: center; }
.order-track { display: block; width: 100%; text-align: left; padding: 16px 18px; border-radius: 18px; background: var(--card); border: 1px solid var(--line); }
.ot-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 14px; }
.ot-head em { font-style: normal; font-size: 14px; color: var(--accent); font-weight: 700; }
.ot-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.ot-step { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; color: var(--muted); font-size: 12.5px; }
.ot-step i { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--line-strong, var(--line)); background: var(--card); position: relative; z-index: 1; }
.ot-step::before { content: ''; position: absolute; top: 8px; left: -50%; width: 100%; height: 2px; background: var(--line-strong, var(--line)); }
.ot-step:first-child::before { display: none; }
.ot-step.is-past i, .ot-step.is-now i { background: var(--accent); border-color: var(--accent); }
.ot-step.is-past::before, .ot-step.is-now::before { background: var(--accent); }
.ot-step.is-now { color: var(--text); font-weight: 700; }
.ot-step.is-now i { box-shadow: 0 0 0 5px color-mix(in srgb, var(--accent) 28%, transparent); }
.site .legal { background: none; min-height: 0; padding: 0; text-align: center; font-size: 13px; }
@keyframes fx-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes fx-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes fx-bar { from { opacity: 0; transform: translateY(26px) scale(.96); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
  .site .img > img { animation: fx-fade .6s ease both; }
  .site [class*="-hero-t"] > *, .site .ku-hero-in > *, .site .wk-hero-in > *, .site .ol-hero-text > *, .site .cd-hero > * { animation: fx-rise .75s cubic-bezier(.2, .7, .2, 1) backwards; }
  .site [class*="-hero-t"] > :nth-child(1), .site .ku-hero-in > :nth-child(1), .site .wk-hero-in > :nth-child(1), .site .ol-hero-text > :nth-child(1), .site .cd-hero > :nth-child(1) { animation-delay: .05s; }
  .site [class*="-hero-t"] > :nth-child(2), .site .ku-hero-in > :nth-child(2), .site .wk-hero-in > :nth-child(2), .site .ol-hero-text > :nth-child(2), .site .cd-hero > :nth-child(2) { animation-delay: .13s; }
  .site [class*="-hero-t"] > :nth-child(3), .site .ku-hero-in > :nth-child(3), .site .wk-hero-in > :nth-child(3), .site .ol-hero-text > :nth-child(3), .site .cd-hero > :nth-child(3) { animation-delay: .21s; }
  .site [class*="-hero-t"] > :nth-child(4), .site .ku-hero-in > :nth-child(4), .site .wk-hero-in > :nth-child(4), .site .ol-hero-text > :nth-child(4), .site .cd-hero > :nth-child(4) { animation-delay: .29s; }
  .site [class*="-hero-t"] > :nth-child(n+5), .site .ol-hero-text > :nth-child(n+5), .site .cd-hero > :nth-child(n+5) { animation-delay: .37s; }
  .site [class*="-btn"], .site .btn, .site .c-plus, .site .c-step, .site [class*="-chip"] { transition: transform .12s ease, filter .18s ease, box-shadow .25s ease, background .2s ease, color .2s ease, border-color .2s ease; }
  .site [class*="-btn"]:active, .site .btn:active, .site .c-plus:active { transform: scale(.96); }
  .is-scrolled .site header { box-shadow: 0 14px 30px -20px rgba(0, 0, 0, .65); transition: box-shadow .3s ease; }
  .site [class$="-bar"][data-act="cart.open"], .site .c-bar { animation: fx-bar .4s cubic-bezier(.2, .9, .3, 1.15) backwards; }
}
.site .news { padding: 64px 20px 48px; background: var(--bg-alt, transparent); color: var(--text, inherit); border-top: 1px solid var(--line, rgba(128,128,128,.28)); position: relative; z-index: 1; }
.site .news-in { max-width: 1080px; margin: 0 auto; }
.site .news-head { margin: 0 0 28px; }
.site .news-eyebrow { margin: 0 0 6px; font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: color-mix(in srgb, var(--primary, currentColor) 55%, var(--text, currentColor)); }
.site .news h2 { margin: 0; font-size: clamp(28px, 4.8vw, 42px); line-height: 1.1; }
.site .news-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; grid-template-columns: 1fr; }
.site .news-n2, .site .news-n3 { grid-template-columns: repeat(2, 1fr); }
.site .news-n4 { grid-template-columns: repeat(3, 1fr); }
.site .news-card { position: relative; display: flex; flex-direction: column; overflow: hidden; background: var(--card, rgba(255,255,255,.05)); border: 1px solid var(--line, rgba(128,128,128,.28)); border-radius: 18px; box-shadow: 0 10px 30px -18px rgba(0,0,0,.45); transition: transform .25s ease, box-shadow .25s ease; }
.site .news-card:not(.has-img) { border-top: 4px solid var(--primary, currentColor); }
.site .news-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: rgba(128,128,128,.16); }
.site .news-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.site .news-media::after { content: ''; position: absolute; inset: auto 0 0 0; height: 38%; background: linear-gradient(to top, rgba(0,0,0,.28), transparent); pointer-events: none; }
.site .news-media .news-tile { position: absolute; top: 14px; left: 14px; z-index: 1; background: #fff; color: #161616; box-shadow: 0 6px 18px rgba(0,0,0,.28); border: 0; }
.site .news-tile { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 58px; padding: 7px 0 6px; border: 1.5px solid var(--primary, currentColor); border-radius: 12px; line-height: 1; margin-bottom: 12px; color: var(--text, inherit); }
.site .news-tile b { font-size: 24px; font-weight: 800; }
.site .news-tile i { margin-top: 3px; font-size: 11.5px; font-style: normal; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.site .news-media .news-tile { margin: 0; }
.site .news-body { position: relative; display: flex; flex-direction: column; align-items: flex-start; padding: 20px 22px 24px; flex: 1; }
.site .news-soon { align-self: flex-start; margin: 0 0 12px; padding: 5px 12px; border-radius: 999px; background: var(--text, #111); color: var(--bg, #fff); font-size: 12px; font-weight: 700; letter-spacing: .03em; line-height: 1; }
.site .news-body h3 { margin: 0 0 6px; font-size: clamp(19px, 2.4vw, 24px); line-height: 1.2; }
.site .news-day { margin: 0 0 10px; font-size: 14px; font-weight: 600; color: color-mix(in srgb, var(--primary, currentColor) 55%, var(--text, currentColor)); }
.site .news-text, .site .news-more p { margin: 0; color: var(--muted, inherit); line-height: 1.6; overflow-wrap: anywhere; }
.site .news-more { margin: 0; }
.site .news-more summary { list-style: none; cursor: pointer; color: var(--muted, inherit); line-height: 1.6; }
.site .news-more summary::-webkit-details-marker { display: none; }
.site .news-read { display: inline-block; margin-left: 6px; font-weight: 700; color: var(--text, inherit); text-decoration: underline; text-underline-offset: 3px; }
.site .news-more[open] summary { display: none; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .site .news-card:hover { box-shadow: 0 18px 40px -18px rgba(0,0,0,.55); }
}
@media (min-width: 900px) {
  .site .news-n1 .news-card.is-lead, .site .news-n3 .news-card.is-lead, .site .news-n4 .news-card.is-lead { grid-column: 1 / -1; }
  .site .news-n1 { max-width: 820px; }
  .site .news-card.is-lead.has-img { display: grid; grid-template-columns: 1.15fr 1fr; }
  .site .news-card.is-lead.has-img .news-media { aspect-ratio: auto; min-height: 320px; }
  .site .news-card.is-lead.has-img .news-body { justify-content: center; padding: 30px 34px; }
  .site .news-card.is-lead .news-body h3 { font-size: clamp(24px, 3vw, 32px); }
}
@media (max-width: 899px) { .site .news-n2, .site .news-n3, .site .news-n4 { grid-template-columns: repeat(2, 1fr); } .site .news-n3 .news-card.is-lead, .site .news-n4 .news-card.is-lead { grid-column: 1 / -1; } }
.site .news-cta { margin-top: 16px; padding: 11px 20px; border: 0; border-radius: 999px; background: var(--text, #111); color: var(--bg, #fff); font: inherit; font-size: 14.5px; font-weight: 700; cursor: pointer; transition: transform .15s ease, opacity .15s ease; }
.site .news-cta:hover { opacity: .88; transform: translateY(-1px); }
.site .news-cta:focus-visible { outline: 3px solid var(--primary, currentColor); outline-offset: 3px; }
.site .news-card.is-locked { border-style: dashed; box-shadow: none; }
.site .news-card.is-locked .news-media img { filter: blur(14px) saturate(.8) brightness(.78); transform: scale(1.12); }
.site .news-card.is-locked .news-media::after { height: 100%; background: rgba(0,0,0,.18); }
.site .news-lock { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; pointer-events: none; }
.site .news-lock svg { width: 54px; height: 54px; padding: 12px; border-radius: 50%; color: #161616; background: rgba(255,255,255,.92); box-shadow: 0 8px 24px rgba(0,0,0,.35); }
.site .news-soon-lock { display: inline-flex; align-items: center; gap: 6px; }
.site .news-soon-lock svg { width: 13px; height: 13px; }
.site .news-card.is-locked:not(.has-img) { background: repeating-linear-gradient(135deg, transparent 0 14px, rgba(128,128,128,.07) 14px 28px), var(--card, rgba(255,255,255,.05)); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) { .site .news-card.is-locked:hover { transform: none; } .site .news-card.is-locked:hover .news-media img { transform: scale(1.12); } }
@media (max-width: 620px) { .site .news { padding: 44px 16px 36px; } .site .news-n2, .site .news-n3, .site .news-n4 { grid-template-columns: 1fr; } .site .news-body { padding: 18px 18px 22px; } }
.c-bar { display: none; }
@media (max-width: 899px) {
  .c-bar { display: flex; align-items: center; gap: 12px; position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 60; height: 58px; padding: 0 16px 0 12px; border-radius: var(--bar-radius, 16px); background: var(--bar-bg, var(--accent)); color: var(--bar-fg, var(--on-accent)); font-weight: 700; font-size: 16px; box-shadow: 0 16px 34px -12px rgba(0,0,0,.55); }
  .c-bar-n { min-width: 32px; height: 32px; padding: 0 8px; display: grid; place-items: center; border-radius: calc(var(--bar-radius, 16px) * .6); background: var(--bar-fg, var(--on-accent)); color: var(--bar-bg, var(--accent)); font-size: 15px; font-variant-numeric: tabular-nums; }
  .c-bar-t { flex: 1; text-align: left; }
  .c-bar-p { font-variant-numeric: tabular-nums; }
}
.c-burger, .c-navpanel { display: none; }
@media (max-width: 899px) {
  .c-burger { display: inline-flex; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; padding: 0 11px; flex: none; color: var(--burger, currentColor); border-radius: var(--burger-radius, 8px); }
  .c-burger span { display: block; height: 2px; background: currentColor; border-radius: 2px; transition: transform .2s ease, opacity .15s ease; }
  .c-burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .c-burger.is-open span:nth-child(2) { opacity: 0; }
  .c-burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .c-navpanel { display: flex; flex-direction: column; position: absolute; left: 0; right: 0; top: 100%; z-index: 50; padding: 6px 16px 14px; background: var(--nav-bg, var(--bg)); color: var(--nav-fg, var(--text)); border-bottom: 1px solid var(--nav-line, var(--line)); box-shadow: 0 24px 40px -22px rgba(0,0,0,.5); }
  .c-navlink { display: flex; align-items: center; min-height: 52px; padding: 0 4px; text-align: left; font-size: 17px; font-weight: 600; border-bottom: 1px solid var(--nav-line, var(--line)); color: inherit; }
  .c-navlink:last-child { border-bottom: 0; }
  .c-navlink:hover { color: var(--nav-hover, var(--accent)); }
}
.ph-ic { display: block; flex: none; opacity: .9; }
@media (max-width: 899px) {
  .site header [class*="-brand"], .site header .brand { min-width: 0; max-width: 100%; overflow: hidden; }
  .site header .logo-text { display: block; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-block: .14em; margin-block: -.14em; }
}
@media (max-width: 560px) {
  .site header:has(.c-burger) .cart-btn .cart-label { display: none; }
}
.menu-search-al { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line-strong, var(--line)); background: transparent; color: var(--text); font: inherit; font-size: 13px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.menu-search-al svg { flex: none; }
.menu-search-al b { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: currentColor; display: inline-grid; place-items: center; font-size: 11px; line-height: 1; }
.menu-search-al b { color: inherit; position: relative; }
.menu-search-al.is-on { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.menu-search-al.is-on b { background: var(--on-accent); color: var(--accent); }
@media (max-width: 380px) { .menu-search-al { padding: 0 9px; gap: 4px; font-size: 12.5px; } }
.al-lead { margin: 0 0 14px; }
.al-list { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.al-opt { display: flex; gap: 12px; align-items: center; padding: 11px 14px; border: 1px solid var(--line); border-radius: var(--radius, 10px); cursor: pointer; background: var(--card, transparent); }
.al-opt.is-on { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, transparent); }
.al-opt input { width: 20px; height: 20px; flex: none; accent-color: var(--accent); }
.al-opt small { display: block; color: var(--muted); font-size: 12.5px; line-height: 1.35; }
.al-note { margin: 0; font-size: 13px; color: var(--muted); line-height: 1.5; }
.drawer-foot .btn + .btn { margin-top: 8px; }
.legal-al { max-width: 62ch; margin-inline: auto; }
.order-banner.is-table { background: var(--accent); color: var(--on-accent); }
.takeaway-note.is-table .link-btn { color: inherit; text-decoration: underline; }
.co-optout { display: flex; gap: 10px; align-items: flex-start; margin: 4px 0 12px; font-size: 13.5px; line-height: 1.4; color: var(--muted); cursor: pointer; }
.co-optout input { width: 20px; height: 20px; flex: none; margin-top: 1px; accent-color: var(--accent, currentColor); }
.table-chip { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 10px 12px; border-radius: var(--radius, 10px); background: color-mix(in srgb, var(--accent) 12%, transparent); font-size: 14px; }
.table-chip span { flex: 1; }
.table-chip svg { flex: none; }
.bill { margin-top: 18px; padding: 16px; border: 1px solid var(--line, #e2e2dc); border-radius: var(--radius, 12px); background: var(--card, #fff); }
.bill-h { margin: 0 0 10px; font-size: 16px; }
.bill-list { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 6px; font-size: 14.5px; }
.bill-list li { display: flex; justify-content: space-between; gap: 12px; }
.bill-list li.is-paid { color: var(--muted, #6b6b66); }
.bill .btn { margin-top: 10px; }
.tpl-kurban {
  --bg: #0e0d0c; --bg-alt: #181615; --card: #1a1816; --text: #f6efe4; --muted: #ab9f90; --line: #2c2825; --line-strong: #433d38;
  --font-body: 'Barlow', system-ui, sans-serif; --font-head: 'League Spartan', 'Barlow', sans-serif; --hand: 'Caveat', cursive;
  --radius: 16px; --btn-radius: 14px; --btn-track: .02em; --btn-transform: uppercase; --btn-weight: 700;
  --accent: #ff6a14; --on-accent: #16100b; --primary-soft: #3a2415; --orange: #ff6a14;
  --plus-radius: 50%; --plus-size: 44px; --plus-bg: #ff6a14; --plus-fg: #16100b; --plus-line: #ff6a14; --plus-shadow: 0 6px 14px -4px rgba(255,106,20,.55);
}
.tpl-kurban h1, .tpl-kurban h2, .tpl-kurban h3 { font-family: var(--font-head); font-weight: 800; letter-spacing: -.005em; line-height: 1.02; }
.tpl-kurban h4 { font-family: var(--font-body); font-weight: 700; font-size: 17px; line-height: 1.25; }
.tpl-kurban .btn { background: #232120; border-color: var(--line-strong); color: var(--text); }
.tpl-kurban .btn:hover { background: #2d2926; border-color: var(--accent); }
.tpl-kurban .btn-primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.tpl-kurban .field { background: #232120; border-color: var(--line-strong); color: var(--text); }
.tpl-kurban .field::placeholder { color: #8c8276; }
.tpl-kurban .drawer, .tpl-kurban .drawer-foot, .tpl-kurban .sheet { background: #151413; }
.tpl-kurban .stepper { border-color: var(--line-strong); }
.tpl-kurban .stepper button:hover:not(:disabled) { background: var(--accent); color: var(--on-accent); }
.tpl-kurban .pay-opt { background: #232120; }
.tpl-kurban .err-block { background: #3a1613; border-color: #7a2a24; }
.tpl-kurban .stamp.is-filled { color: var(--on-accent); }
.tpl-kurban .date-chip, .tpl-kurban .slot { background: #232120; }
.tpl-kurban .date-chip.is-selected { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.tpl-kurban .slot.is-selected { color: var(--on-accent); }
.tpl-kurban .sms-note { background: #232120; }
.tpl-kurban .takeaway-note { border: 1px solid var(--line); border-radius: 14px; padding: 12px 16px; margin: 4px 0 8px; background: #151413; }
.tpl-kurban [id] { scroll-margin-top: calc(var(--top) + 130px); }
.ku-top { position: sticky; top: var(--top); z-index: 40; background: #0e0d0c; border-bottom: 1px solid var(--line); }
.ku-top-in { max-width: 1120px; margin: 0 auto; height: 66px; padding: 0 20px; display: flex; align-items: center; gap: 16px; }
.ku-brand .logo-text { font-family: var(--font-head); font-weight: 800; font-size: 23px; text-transform: uppercase; }
.ku-brand .logo-img { height: 32px; width: auto; }
.ku-open { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; font-weight: 700; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.07); white-space: nowrap; }
.ku-open i { width: 8px; height: 8px; border-radius: 50%; background: #3ddc84; }
.ku-open.is-closed i { background: #ff5a4d; }
.ku-open em { font-style: normal; color: var(--muted); font-weight: 500; }
.ku-tabs { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.ku-tab { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 16px; border-radius: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 14px; color: var(--muted); }
.ku-tab:hover { color: var(--text); background: #1d1b19; }
.ku-tab.is-on { background: var(--accent); color: var(--on-accent); }
.ku-fab-slot { display: contents; }
.ku-order { display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 18px; border-radius: 999px; background: #232120; border: 1px solid var(--line-strong); font-weight: 800; font-size: 14.5px; margin: 0 6px; text-transform: uppercase; letter-spacing: .03em; position: relative; }
.ku-order.has-items { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.ku-order b { min-width: 22px; height: 22px; padding: 0 6px; display: grid; place-items: center; border-radius: 11px; background: var(--on-accent); color: var(--accent); font-size: 12.5px; }
.ku-main { max-width: 1120px; margin: 0 auto; padding: 0 20px; min-height: 70vh; }
.ku-view { animation: ku-in .2s ease-out; padding-bottom: 20px; }
@keyframes ku-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.ku-h2 { font-size: 34px; margin: 26px 0 16px; text-transform: uppercase; }
.ku-empty { color: var(--muted); padding: 30px 0; }
.ku-gap { margin-top: 24px; }
.ku-about { color: #d6cdc0; font-size: 17px; max-width: 60ch; margin-bottom: 26px; }
.ku-photo { margin-top: 22px; border-radius: 20px; overflow: hidden; aspect-ratio: 16 / 7; }
.ku-photo-img { width: 100%; height: 100%; }
.ku-find-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.ku-find-grid h3 { font-size: 18px; margin-bottom: 10px; text-transform: uppercase; }
.ku-res .c-res { max-width: 720px; margin-top: 22px; background: var(--card); border: 1px solid var(--line); border-radius: 20px; padding: 26px; }
.ku-res .eyebrow { color: var(--accent); }
.ku-hero { position: relative; margin-top: 18px; border-radius: 26px; overflow: hidden; min-height: 330px; display: flex; align-items: flex-end; background: #1c1917; }
.ku-hero-bg { position: absolute; inset: 0; }
.ku-hero-bg, .ku-hero-bg img { width: 100%; height: 100%; }
.ku-hero-veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,13,12,.94) 8%, rgba(14,13,12,.55) 55%, rgba(14,13,12,.1)); }
.ku-hero-in { position: relative; padding: 34px; max-width: 640px; }
.ku-script { display: inline-block; font-family: var(--hand); font-weight: 700; font-size: clamp(26px, 3vw, 36px); color: #ff9a52; line-height: 1; padding: 6px 14px 8px; border-radius: 10px; background: rgba(14,10,8,.74); transform: rotate(-2deg); transform-origin: left; }
.ku-hero h1 { font-size: clamp(44px, 7vw, 86px); text-transform: uppercase; margin-top: 8px; overflow-wrap: anywhere; }
.ku-sub { color: #e0d6c8; font-size: 17px; margin-top: 12px; max-width: 46ch; line-height: 1.5; }
.ku-search { margin: 18px 0 4px; }
.ku-sf { background: #1d1b19; border-color: var(--line-strong); height: 56px; }
.ku-sf .ic { color: var(--orange); }
.ku-tiles { display: flex; gap: 12px; overflow-x: auto; scrollbar-width: none; padding: 14px 2px 6px; }
.ku-tiles::-webkit-scrollbar { display: none; }
.ku-tile { flex: none; width: 92px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.ku-tile-pic { width: 82px; height: 82px; border-radius: 22px; overflow: hidden; border: 2px solid var(--line-strong); background: #26221f; display: grid; place-items: center; font-family: var(--font-head); font-size: 30px; color: var(--orange); transition: border-color .15s, transform .15s; }
.ku-tile:hover .ku-tile-pic { border-color: var(--orange); transform: translateY(-3px); }
.ku-tile-img { width: 100%; height: 100%; }
.ku-tile-t { font-weight: 700; font-size: 14px; text-align: center; line-height: 1.2; }
.ku-track { margin: 18px 0 0; background: #1d1b19; border-color: var(--line-strong); }
.ku-sec-h { margin: 30px 0 14px; display: flex; align-items: baseline; justify-content: space-between; }
.ku-sec-h h2 { font-size: 26px; text-transform: uppercase; }
.ku-sec-h h2::after { content: ''; display: inline-block; width: 28px; height: 4px; background: var(--orange); border-radius: 2px; margin-left: 12px; vertical-align: middle; }
.ku-sigs { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 2px 2px 10px; margin: 0 -2px; }
.ku-sigs::-webkit-scrollbar { display: none; }
.ku-sig { flex: 0 0 min(220px, 62vw); scroll-snap-align: start; background: var(--card); border: 1px solid var(--line); border-radius: 20px; overflow: hidden; }
.ku-sig-pic { position: relative; aspect-ratio: 1 / .82; background: #26221f; }
.ku-sig-img { width: 100%; height: 100%; }
.ku-badge { position: absolute; top: 10px; left: 10px; background: #c8f04a; color: #1a2100; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; padding: 4px 9px; border-radius: 7px; }
.ku-sig-b { padding: 12px 14px 14px; }
.ku-sig-b h4 { min-height: 2.5em; }
.ku-sig-f { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }
.ku-plus-s { --plus-size: 44px; }
.ku-offers { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.ku-offers-w { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.ku-offer { background: var(--card); border: 1px solid var(--line); border-radius: 20px; padding: 18px 20px; display: flex; flex-direction: column; justify-content: space-between; gap: 14px; }
.ku-offer.is-hot { background: linear-gradient(135deg, #ff6a14, #ff8a3d); color: #1c0f05; border-color: transparent; }
.ku-offer-v { display: block; font-family: var(--font-head); font-weight: 800; font-size: 34px; color: var(--orange); line-height: 1; margin-bottom: 6px; }
.ku-offer.is-hot .ku-offer-v { color: #1c0f05; }
.ku-offer p { color: var(--muted); font-size: 14.5px; margin-top: 4px; }
.ku-offer.is-hot p { color: #3b1d08; }
.ku-offer-c { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.ku-offer-c code { background: rgba(0,0,0,.28); padding: 6px 10px; border-radius: 8px; font-size: 14px; letter-spacing: .08em; color: inherit; }
.ku-use { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; text-transform: uppercase; font-size: 13.5px; letter-spacing: .04em; padding: 11px 16px; border-radius: 999px; background: #0e0d0c; color: #fff; }
.ku-stamp { background: var(--card); border: 1px solid var(--line); border-radius: 20px; padding: 20px; }
.ku-cat { margin: 30px 0 12px; font-size: 26px; text-transform: uppercase; display: flex; align-items: center; gap: 12px; }
.ku-cat::before { content: ''; width: 8px; height: 26px; background: var(--orange); border-radius: 2px; }
.ku-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
.ku-row { display: grid; grid-template-columns: 76px 1fr auto; gap: 14px; align-items: center; background: var(--card); border: 1px solid var(--line); border-radius: 18px; padding: 10px 14px 10px 10px; }
.ku-thumb { width: 76px; height: 76px; border-radius: 14px; overflow: hidden; background: #2a2623; display: grid; place-items: center; }
.ku-img { width: 100%; height: 100%; }
.ku-noimg { font-family: var(--font-head); font-weight: 800; font-size: 28px; color: var(--orange); }
.ku-info { min-width: 0; }
.ku-info p { color: var(--muted); font-size: 14px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 2px; }
.ku-end { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.ku-price { font-family: var(--font-head); font-weight: 800; font-size: 17px; color: var(--orange); white-space: nowrap; }
.ku-row.is-off, .ku-sig.is-off { opacity: .55; }
.ku-foot { padding: 36px 20px 60px; text-align: center; color: var(--muted); }
@media (max-width: 899px) {
  .ku-top-in { height: 56px; padding: 0 14px; gap: 10px; }
  .ku-open em { display: none; }
  .ku-main { padding: 0 14px; }
  .ku-hero { min-height: 300px; border-radius: 22px; }
  .ku-hero-in { padding: 24px 20px; }
  .ku-hero-veil { background: linear-gradient(0deg, rgba(14,13,12,.95) 12%, rgba(14,13,12,.3) 80%); }
  .ku-list { grid-template-columns: 1fr; }
  .ku-find-grid { grid-template-columns: 1fr; gap: 24px; }
  .ku-photo { aspect-ratio: 16 / 9; }
  .ku-res .c-res { padding: 18px 14px; }
  .ku-foot { padding-bottom: 130px; }
  .ku-tabs { position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); margin: 0; z-index: 50; background: #181615; border: 1px solid var(--line-strong); border-radius: 26px; padding: 8px; gap: 0; box-shadow: 0 16px 36px -12px rgba(0,0,0,.8); justify-content: space-around; }
  .ku-tab { flex: 1; flex-direction: column; gap: 3px; height: 54px; padding: 0; font-size: 12px; letter-spacing: .02em; border-radius: 16px; }
  .ku-fab-slot { display: block; flex: 0 0 86px; position: relative; height: 54px; }
  .ku-order { position: absolute; left: 50%; bottom: 6px; transform: translateX(-50%); width: 74px; height: 74px; border-radius: 50%; padding: 0; flex-direction: column; justify-content: center; gap: 2px; margin: 0; background: var(--accent); border: 5px solid #0e0d0c; color: var(--on-accent); font-size: 12px; box-shadow: 0 12px 24px -8px rgba(255,106,20,.6); }
  .ku-order b { position: absolute; top: -2px; right: -2px; background: #fff; color: #16100b; }
  .ku-order span { font-size: 12px; letter-spacing: 0; }
}
.tpl-sflame {
  --bg: #fff7dc; --bg-alt: #ffeeb0; --card: #ffffff; --text: #141414; --muted: #55504a; --line: #141414; --line-strong: #141414;
  --font-body: 'Karla', system-ui, sans-serif; --font-head: 'Barlow Condensed', 'Karla', sans-serif;
  --radius: 14px; --btn-radius: 12px; --btn-track: .04em; --btn-transform: uppercase; --btn-weight: 700;
  --accent: #e5321b; --on-accent: #ffffff; --yellow: #ffd60a; --primary-soft: #ffe3dc;
  --hard: 4px 4px 0 #141414;
}
.tpl-sflame h1, .tpl-sflame h2, .tpl-sflame h3 { font-family: var(--font-head); font-weight: 700; text-transform: uppercase; line-height: .95; letter-spacing: .005em; }
.tpl-sflame h4 { font-family: var(--font-head); font-weight: 700; text-transform: uppercase; font-size: 23px; line-height: 1; letter-spacing: .01em; }
.tpl-sflame .btn { border: 3px solid #141414; background: #fff; color: #141414; box-shadow: var(--hard); text-transform: uppercase; letter-spacing: .04em; font-weight: 700; }
.tpl-sflame .btn:hover { background: var(--yellow); }
.tpl-sflame .btn:active { transform: translate(2px, 2px); box-shadow: 2px 2px 0 #141414; }
.tpl-sflame .btn-primary { background: var(--accent); border-color: #141414; color: #fff; }
.tpl-sflame .btn-primary:hover { background: var(--accent); filter: brightness(1.08); }
.tpl-sflame .field { border: 3px solid #141414; border-radius: 12px; background: #fff; }
.tpl-sflame .field:focus { outline: 3px solid var(--yellow); outline-offset: 0; }
.tpl-sflame .drawer { border-left: 4px solid #141414; background: #fff7dc; }
.tpl-sflame .drawer-head { border-bottom: 4px solid #141414; background: var(--yellow); }
.tpl-sflame .drawer-head h2 { font-size: 34px; }
.tpl-sflame .drawer-foot { border-top: 4px solid #141414; background: #fff7dc; }
.tpl-sflame .stepper { border: 3px solid #141414; border-radius: 12px; background: #fff; }
.tpl-sflame .stepper button:hover:not(:disabled) { background: var(--yellow); color: #141414; }
.tpl-sflame .totals-final { border-top: 3px solid #141414; font-family: var(--font-head); text-transform: uppercase; font-size: 24px; }
.tpl-sflame .pay-opt { border: 3px solid #141414; border-radius: 12px; background: #fff; }
.tpl-sflame .pay-opt.is-on { background: var(--yellow); box-shadow: var(--hard); }
.tpl-sflame .done-mark { background: var(--accent); border: 3px solid #141414; }
.tpl-sflame .cart-line, .tpl-sflame .done-items li { border-bottom-color: #141414; }
.tpl-sflame .offer { background: #fff; border: 3px solid #141414; border-radius: 14px; box-shadow: var(--hard); padding: 16px 18px; align-items: center; }
.tpl-sflame .offer-value { background: var(--accent); color: #fff; border: 3px solid #141414; border-radius: 50%; width: 76px; height: 76px; min-width: 76px; display: grid; place-items: center; font-size: 26px; transform: rotate(-8deg); font-family: var(--font-head); }
.tpl-sflame .offer-value-none { background: var(--yellow); color: #141414; }
.tpl-sflame .offer-name { font-family: var(--font-head); text-transform: uppercase; font-size: 22px; }
.tpl-sflame .offer-meta code { background: var(--yellow); border: 2px solid #141414; }
.tpl-sflame .date-chip, .tpl-sflame .slot { border: 3px solid #141414; border-radius: 12px; background: #fff; }
.tpl-sflame .date-chip.is-selected, .tpl-sflame .slot.is-selected { background: var(--accent); border-color: #141414; color: #fff; box-shadow: var(--hard); }
.tpl-sflame .step-n { border: 3px solid #141414; background: var(--yellow); color: #141414; font-weight: 700; }
.tpl-sflame .sms-note { border: 3px solid #141414; background: #fff; }
.tpl-sflame .tabbar { background: #141414; border-top: 0; }
.tpl-sflame .tabbar button { color: #fff; }
.tpl-sflame [id] { scroll-margin-top: calc(var(--top) + 76px); }
.sf-top { position: sticky; top: var(--top); z-index: 40; background: #141414; }
.sf-top-in { max-width: 1180px; margin: 0 auto; height: 62px; padding: 0 20px; display: flex; align-items: center; gap: 24px; }
.sf-brand .logo-text { font-family: var(--font-head); font-weight: 700; font-size: 30px; text-transform: uppercase; color: var(--yellow); letter-spacing: .02em; }
.sf-brand .logo-img { height: 32px; width: auto; }
.sf-nav { margin-left: auto; display: flex; gap: 4px; }
.sf-link { padding: 8px 12px; font-family: var(--font-head); font-weight: 700; font-size: 19px; text-transform: uppercase; color: #fff; }
.sf-link:hover { color: var(--yellow); }
.sf-cart { background: var(--accent); color: #fff; border: 3px solid #fff; border-radius: 12px; padding: 7px 14px; font-family: var(--font-head); font-weight: 700; font-size: 18px; text-transform: uppercase; }
.sf-cart .cart-count { background: var(--yellow); color: #141414; }
.sf-cart:not(.has-items) .cart-count { display: none; }
.sf-poster { background: var(--yellow); border-bottom: 5px solid #141414; padding: 26px 20px 6px; text-align: center; overflow: hidden; }
.sf-poster h1 { font-size: clamp(60px, 15vw, 210px); color: #141414; text-shadow: 5px 5px 0 #fff; overflow-wrap: anywhere; line-height: .9; padding-bottom: 14px; }
.sf-bento { max-width: 1180px; margin: 0 auto; padding: 22px 20px 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 150px; gap: 14px; }
.sf-t { position: relative; border: 3px solid #141414; border-radius: 20px; box-shadow: var(--hard); background: #fff; padding: 16px 18px; display: flex; flex-direction: column; justify-content: space-between; text-align: left; overflow: hidden; color: #141414; text-decoration: none; }
.sf-t small { font-family: var(--font-head); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: 15px; }
.sf-t strong { font-family: var(--font-head); font-weight: 700; text-transform: uppercase; font-size: 34px; line-height: .95; }
.sf-t span { font-weight: 700; font-size: 14.5px; line-height: 1.25; }
.sf-t b { display: grid; place-items: center; }
a.sf-t:hover, button.sf-t:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 #141414; }
.sf-t-order { grid-column: span 2; grid-row: span 2; background: var(--accent); color: #fff; justify-content: flex-end; gap: 10px; }
.sf-t-order span { font-family: var(--font-head); font-weight: 700; text-transform: uppercase; font-size: clamp(38px, 5vw, 64px); line-height: .92; }
.sf-t-order b { align-self: flex-start; width: 58px; height: 58px; border-radius: 50%; background: #fff; color: #141414; border: 3px solid #141414; position: absolute; top: 16px; right: 16px; }
.sf-t-photo { grid-column: span 2; grid-row: span 2; padding: 0; background: #fff0b0; display: block; transform: rotate(1.2deg); }
.sf-t-photo .img { display: block; width: 100%; height: 100%; }
.sf-t-ph { display: grid; place-items: center; height: 100%; color: var(--accent); }
.sf-t-img, .sf-t-img img { width: 100%; height: 100%; }
.sf-t-open.is-open { background: #26b35a; color: #fff; }
.sf-t-open.is-closed { background: #ff8a7a; }
.sf-t-offer { background: #ffd1c7; }
.sf-t-offer strong { font-size: 38px; }
.sf-t-loy { background: #cfe8ff; }
.sf-t-book { background: #141414; color: var(--yellow); justify-content: space-between; }
.sf-t-book b { width: 46px; height: 46px; border: 3px solid var(--yellow); border-radius: 50%; }
.sf-t-addr { background: #fff; grid-column: span 2; flex-direction: row; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: flex-start; }
.sf-t-addr b { width: 50px; height: 50px; background: var(--yellow); border: 3px solid #141414; border-radius: 50%; }
.sf-t-addr strong { font-size: 30px; }
.sf-t-addr span { flex-basis: 100%; }
.sf-sh { font-size: 26px; margin: 18px 0 10px; }
.sf-about { margin-top: 22px; color: var(--muted); }
.sf-gap { margin-top: 20px; }
.sf-sheet-offers { display: grid; gap: 14px; }
.sf-sec { max-width: 1180px; margin: 0 auto; padding: 44px 20px 0; }
.sf-h2 { font-size: 44px; margin-bottom: 18px; }
.sf-h2 span { background: #141414; color: var(--yellow); padding: 2px 12px 4px; display: inline-block; transform: rotate(-1.5deg); }
.sf-offer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; }
.sf-note { display: flex; gap: 10px; align-items: center; font-weight: 700; margin-bottom: 14px; }
.sf-note .ic { color: var(--accent); }
.sf-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 8px; }
.sf-tag { padding: 7px 16px; border: 3px solid #141414; border-radius: 999px; background: #fff; font-family: var(--font-head); font-weight: 700; font-size: 19px; text-transform: uppercase; }
.sf-tag:nth-child(3n+1) { background: var(--yellow); }
.sf-tag:nth-child(3n+2) { background: #fff; }
.sf-tag:nth-child(3n) { background: #ffd1c7; }
.sf-tag:hover { background: #141414; color: #fff; }
.sf-cat { margin: 40px 0 20px; font-size: 52px; }
.sf-cat span { display: inline-block; background: var(--accent); color: #fff; border: 4px solid #141414; padding: 4px 18px 6px; transform: skew(-6deg) rotate(-1deg); box-shadow: var(--hard); }
.sf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px 22px; }
.sf-card { display: flex; flex-direction: column; background: #fff; border: 3px solid #141414; border-radius: 18px; box-shadow: var(--hard); overflow: hidden; }
.sf-pic { position: relative; aspect-ratio: 4 / 3; background: var(--bg-alt); border-bottom: 3px solid #141414; display: grid; place-items: center; }
.sf-img { width: 100%; height: 100%; }
.sf-noimg { color: var(--accent); }
.sf-price { position: absolute; top: 10px; right: 10px; width: 66px; height: 66px; border-radius: 50%; background: var(--yellow); border: 3px solid #141414; display: grid; place-items: center; align-content: center; font-family: var(--font-head); font-weight: 700; font-size: 26px; line-height: .9; transform: rotate(8deg); }
.sf-price small { font-size: 14px; }
.sf-body { padding: 14px 16px 8px; flex: 1; }
.sf-body p { margin-top: 6px; font-size: 14.5px; color: var(--muted); line-height: 1.4; }
.sf-act { padding: 6px 14px 14px; }
.sf-act .add-btn, .sf-act .stepper { width: 100%; justify-content: center; min-height: 46px; border: 3px solid #141414; border-radius: 12px; background: #141414; color: #fff; font-family: var(--font-head); font-weight: 700; font-size: 19px; text-transform: uppercase; letter-spacing: .04em; }
.sf-act .add-btn:hover { background: var(--accent); color: #fff; }
.sf-act .stepper { background: #fff; color: #141414; justify-content: space-between; }
.sf-act .stepper button { width: 54px; height: 100%; }
.sf-act .stepper button:hover:not(:disabled) { background: var(--yellow); }
.sf-act .stepper output { font-size: 22px; font-family: var(--font-head); }
.sf-card.is-off { opacity: .6; }
.sf-foot { padding: 44px 20px 60px; text-align: center; font-weight: 700; }
.sf-bar { display: none; }
@media (max-width: 899px) {
  .sf-top-in { height: 56px; padding: 0 14px; }
  .sf-nav { display: none; }
  .sf-cart.has-items { display: none; }
  .sf-cart { margin-left: auto; }
  .sf-sec { padding: 34px 14px 0; }
  .sf-h2 { font-size: 36px; }
  .sf-cat { font-size: 40px; }
  .sf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
  .sf-body { padding: 10px 10px 6px; }
  .sf-body p { display: none; }
  .tpl-sflame h4 { font-size: 20px; }
  .sf-price { width: 54px; height: 54px; font-size: 21px; top: 6px; right: 6px; }
  .sf-act { padding: 4px 10px 10px; }
      .sf-foot { padding-bottom: 150px; }
  .sf-bar { display: flex; align-items: center; gap: 12px; position: fixed; left: 12px; right: 12px; bottom: calc(68px + env(safe-area-inset-bottom)); z-index: 60; height: 58px; padding: 0 16px; background: var(--accent); color: #fff; border: 3px solid #141414; border-radius: 14px; box-shadow: var(--hard); font-family: var(--font-head); font-weight: 700; font-size: 22px; text-transform: uppercase; }
  .sf-bar span { min-width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--yellow); color: #141414; border: 2px solid #141414; font-size: 18px; }
  .sf-bar strong { margin-left: auto; font-weight: 700; }
}
.tpl-sflame .sheet { border-left: 4px solid #141414; background: #fff7dc; }
.tpl-sflame .sheet-head { background: var(--yellow); border-bottom: 4px solid #141414; }
.tpl-sflame .sheet-head h2 { font-size: 34px; text-transform: uppercase; }
.tpl-sflame .sheet-body .c-res { background: #fff; border: 3px solid #141414; border-radius: 16px; padding: 20px; box-shadow: var(--hard); }
@media (max-width: 899px) {
  .sf-poster { padding: 16px 12px 2px; }
  .sf-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 132px; padding: 16px 14px 0; gap: 10px; }
  .sf-t-order, .sf-t-photo { grid-column: span 2; grid-row: span 1; }
  .sf-t-photo { transform: none; }
  .sf-t-addr { grid-column: span 2; }
  .sf-t strong { font-size: 28px; }
}
.sf-tn { border: 3px solid #141414; border-radius: 14px; background: #fff; padding: 12px 16px; margin: 0 0 18px; box-shadow: var(--hard); }
.sf-tn .tn-main strong { font-family: var(--font-head); font-size: 20px; text-transform: uppercase; }
.sf-t-hours { background: #fff7dc; }
.sf-t-hours span { display: inline-flex; gap: 6px; align-items: center; }
.sf-photo { border: 3px solid #141414; border-radius: 16px; overflow: hidden; aspect-ratio: 16 / 10; margin-bottom: 14px; box-shadow: var(--hard); }
.sf-photo .img { display: block; width: 100%; height: 100%; }
.sf-tag-line { font-weight: 700; margin: 0 0 6px; color: var(--text); }
.sf-card.no-pic .sf-pic { aspect-ratio: auto; height: 84px; background: var(--yellow); }
.sf-card.no-pic .sf-noimg { color: #141414; }
.sf-brand { display: inline-flex; align-items: center; gap: 10px; }
.sf-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--yellow); color: #141414; }
.sf-mark-t { font-family: var(--font-head); font-weight: 700; text-transform: uppercase; font-size: 17px; color: #fff; letter-spacing: .04em; }
.sf-find-row { display: grid; gap: 14px; padding-top: 28px; }
.sf-search { border: 3px solid #141414; border-radius: 16px; background: #fff; box-shadow: var(--hard); height: 58px; }
.sf-search .ic { color: var(--accent); }
.sf-search input { font-weight: 700; }
.sf-track { border: 3px solid #141414; border-radius: 16px; background: #fff; box-shadow: var(--hard); }
.sf-track .ot-head em { color: var(--accent); }
.sf-track .ot-step i { border-width: 3px; border-color: #141414; background: #fff; }
.sf-track .ot-step.is-past i, .sf-track .ot-step.is-now i { background: var(--yellow); border-color: #141414; }
.sf-track .ot-step::before { height: 3px; background: #141414; }
.sf-rail { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 6px 26px; margin: 0 -6px; scrollbar-width: none; }
.sf-rail::-webkit-scrollbar { display: none; }
.sf-rail .sf-card { flex: 0 0 min(250px, 66vw); scroll-snap-align: start; }
.sf-offer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; }
.sf-stamp-card { border: 3px solid #141414; border-radius: 18px; background: #fff; box-shadow: var(--hard); padding: 20px; }
.sf-tn { margin-top: 0; }
.tpl-nbite {
  --bg: #08080d; --bg-alt: #12121b; --card: #101018; --text: #f2f2f8; --muted: #9a9ab0; --line: #26263a; --line-strong: #3a3a55;
  --font-body: 'Inter', system-ui, sans-serif; --font-head: 'Space Grotesk', 'Inter', sans-serif;
  --radius: 12px; --btn-radius: 10px; --btn-track: .06em; --btn-transform: uppercase; --btn-weight: 600;
  --accent: #ff2e93; --on-accent: #12010a; --pink: #ff2e93; --cyan: #22e6ff; --primary-soft: #2a0b1c;
}
.tpl-nbite h1, .tpl-nbite h2, .tpl-nbite h3 { font-family: var(--font-head); font-weight: 700; letter-spacing: -.01em; line-height: 1; }
.tpl-nbite h4 { font-family: var(--font-head); font-weight: 700; font-size: 19px; letter-spacing: 0; }
.tpl-nbite .btn { background: transparent; border: 1.5px solid var(--cyan); color: var(--cyan); text-shadow: 0 0 8px rgba(34,230,255,.5); box-shadow: 0 0 14px -4px rgba(34,230,255,.55), inset 0 0 12px -8px rgba(34,230,255,.6); }
.tpl-nbite .btn:hover { background: rgba(34,230,255,.1); border-color: var(--cyan); }
.tpl-nbite .btn-primary { border-color: var(--pink); color: #fff; background: var(--pink); text-shadow: none; box-shadow: 0 0 22px -4px rgba(255,46,147,.7); }
.tpl-nbite .btn-primary:hover { background: var(--pink); filter: brightness(1.1); }
.tpl-nbite .field { background: #0d0d15; border-color: var(--line-strong); color: var(--text); }
.tpl-nbite .field:focus { outline-color: var(--cyan); border-color: var(--cyan); }
.tpl-nbite .field::placeholder { color: #6c6c84; }
.tpl-nbite .drawer, .tpl-nbite .drawer-foot { background: #0c0c13; }
.tpl-nbite .drawer { border-left: 1px solid var(--pink); box-shadow: -12px 0 40px -10px rgba(255,46,147,.35); }
.tpl-nbite .drawer-head h2 { text-shadow: 0 0 12px rgba(255,46,147,.6); }
.tpl-nbite .stepper { border-color: var(--cyan); border-radius: 10px; }
.tpl-nbite .stepper button:hover:not(:disabled) { background: var(--cyan); color: #00161a; }
.tpl-nbite .pay-opt { background: #0d0d15; }
.tpl-nbite .pay-opt.is-on { border-color: var(--pink); box-shadow: 0 0 0 1px var(--pink), 0 0 18px -4px rgba(255,46,147,.6); }
.tpl-nbite .err-block { background: #2a0a12; border-color: #7a1f33; }
.tpl-nbite .tabbar { background: #0a0a10; border-top: 1px solid var(--pink); }
.tpl-nbite .tabbar button { color: var(--muted); }
.tpl-nbite .tabbar button:active { color: var(--cyan); }
.tpl-nbite .offer { background: #101018; border: 1px solid var(--line-strong); border-radius: 14px; padding: 18px; box-shadow: inset 0 0 24px -16px var(--cyan); }
.tpl-nbite .offer-value { font-family: var(--font-head); color: var(--pink); text-shadow: 0 0 14px rgba(255,46,147,.7); }
.tpl-nbite .offer-meta code { background: #1a1a28; border-color: var(--line-strong); color: var(--cyan); }
.tpl-nbite .stamp { background: transparent; }
.tpl-nbite .stamp.is-filled { background: var(--pink); border-color: var(--pink); color: #12010a; box-shadow: 0 0 12px rgba(255,46,147,.6); }
.tpl-nbite .date-chip, .tpl-nbite .slot { background: #0d0d15; border-color: var(--line-strong); }
.tpl-nbite .date-chip.is-selected, .tpl-nbite .slot.is-selected { background: var(--cyan); border-color: var(--cyan); color: #00161a; box-shadow: 0 0 18px -4px rgba(34,230,255,.7); }
.tpl-nbite .step-n { border-color: var(--cyan); color: var(--cyan); }
.tpl-nbite .sms-note { background: #0d0d15; }
.tpl-nbite [id] { scroll-margin-top: calc(var(--top) + 74px); }
.nb-top { position: sticky; top: var(--top); z-index: 40; background: rgba(8,8,13,.9); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.nb-top-in { max-width: 1080px; margin: 0 auto; height: 62px; padding: 0 20px; display: flex; align-items: center; gap: 22px; }
.nb-brand .logo-text { font-family: var(--font-head); font-weight: 700; font-size: 22px; color: var(--pink); text-shadow: 0 0 14px rgba(255,46,147,.8); }
.nb-brand .logo-img { height: 30px; width: auto; }
.nb-nav { margin-left: auto; display: flex; gap: 2px; }
.nb-link { padding: 8px 12px; font-size: 14px; font-weight: 500; color: var(--muted); letter-spacing: .02em; }
.nb-link:hover { color: var(--cyan); text-shadow: 0 0 10px rgba(34,230,255,.6); }
.nb-cart { border: 1.5px solid var(--cyan); color: var(--cyan); border-radius: 10px; padding: 8px 14px; font-weight: 600; box-shadow: 0 0 14px -4px rgba(34,230,255,.6); }
.nb-cart .cart-count { background: var(--cyan); color: #00161a; }
.nb-cart:not(.has-items) .cart-count { display: none; }
.nb-ticker { overflow: hidden; border-top: 1px solid var(--line); background: #0d0d14; }
.nb-ticker-in { display: inline-flex; gap: 22px; white-space: nowrap; padding: 8px 0; animation: nb-scroll 38s linear infinite; font-family: var(--font-head); font-weight: 700; font-size: 12.5px; letter-spacing: .16em; color: var(--cyan); text-shadow: 0 0 10px rgba(34,230,255,.5); }
.nb-ticker-in i { color: var(--pink); font-style: normal; text-shadow: 0 0 10px rgba(255,46,147,.8); }
@keyframes nb-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .nb-ticker-in { animation: none; } }
.nb-main { padding-top: 26px; }
.nb-chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 16px 0 4px; }
.nb-chips::-webkit-scrollbar { display: none; }
.nb-chip { flex: none; padding: 7px 14px; border: 1px solid var(--cyan); border-radius: 8px; color: var(--cyan); font-family: var(--font-head); font-weight: 700; font-size: 12.5px; letter-spacing: .1em; text-transform: uppercase; box-shadow: 0 0 12px -6px var(--cyan); }
.nb-chip:hover { background: rgba(34,230,255,.12); }
.nb-photo { border: 1.5px solid var(--cyan); border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 9; margin-bottom: 18px; box-shadow: 0 0 22px -8px var(--cyan); }
.nb-photo-img { width: 100%; height: 100%; }
.nb-about { color: #c8c8dc; }
.nb-sh { font-size: 15px; letter-spacing: .2em; text-transform: uppercase; color: var(--pink); margin: 22px 0 10px; }
.nb-sheet-offers { display: grid; gap: 12px; margin-bottom: 18px; }
.tpl-nbite .sheet { background: #0c0c13; border-left: 1px solid var(--pink); box-shadow: -12px 0 40px -10px rgba(255,46,147,.35); }
.tpl-nbite .sheet-head { border-bottom-color: var(--line-strong); }
.tpl-nbite .sheet-head h2 { text-shadow: 0 0 12px rgba(255,46,147,.6); }
.nb-menu { max-width: 860px; }
.nb-board { border: 1.5px solid var(--pink); border-radius: 18px; padding: 8px 28px 28px; box-shadow: 0 0 40px -14px rgba(255,46,147,.6), inset 0 0 40px -28px rgba(255,46,147,.7); background: #0b0b12; }
.nb-board-head { display: flex; align-items: baseline; justify-content: space-between; padding: 20px 0 12px; border-bottom: 1px dashed var(--line-strong); font-family: var(--font-head); font-weight: 700; font-size: 15px; letter-spacing: .3em; color: var(--pink); }
.nb-board-head small { font-family: var(--font-body); font-weight: 400; letter-spacing: .02em; color: var(--muted); font-size: 13.5px; }
.nb-cat { margin: 38px 0 6px; font-size: clamp(34px, 6vw, 54px); text-transform: uppercase; color: transparent; -webkit-text-stroke: 1.5px var(--cyan); text-shadow: 0 0 22px rgba(34,230,255,.55); letter-spacing: .01em; }
.nb-list { display: block; }
.nb-item { display: grid; grid-template-columns: 38px 1fr auto auto; gap: 14px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.nb-no { font-family: var(--font-head); font-weight: 700; font-size: 15px; color: var(--pink); letter-spacing: .06em; text-shadow: 0 0 10px rgba(255,46,147,.7); }
.nb-text { min-width: 0; }
.nb-text p { margin-top: 4px; color: var(--muted); font-size: 14.5px; line-height: 1.45; }
.nb-glow { width: 62px; height: 62px; border-radius: 50%; overflow: hidden; border: 1.5px solid var(--cyan); box-shadow: 0 0 16px -2px rgba(34,230,255,.6); }
.nb-img { width: 100%; height: 100%; }
.nb-buy { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; min-width: 96px; }
.nb-price { font-family: var(--font-head); font-weight: 700; font-size: 17px; color: #fff; white-space: nowrap; }
.nb-buy .add-btn { min-height: 36px; padding: 0 12px; border: 1.5px solid var(--pink); border-radius: 8px; color: var(--pink); background: transparent; font-family: var(--font-head); font-weight: 700; font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; box-shadow: 0 0 14px -4px rgba(255,46,147,.7); }
.nb-buy .add-btn:hover { background: var(--pink); color: #fff; }
.nb-buy .add-tx { display: none; }
.nb-buy .add-btn::after { content: 'ADD'; }
.nb-buy .stepper { border-color: var(--pink); }
.nb-buy .stepper button { width: 34px; height: 34px; }
.nb-item.is-off { opacity: .5; }
.nb-foot { padding: 44px 20px 60px; text-align: center; color: var(--muted); }
.nb-bar { display: none; }
@media (max-width: 899px) {
  .nb-top-in { height: 56px; padding: 0 14px; }
  .nb-nav { display: none; }
  .nb-cart.has-items { display: none; }
  .nb-cart { margin-left: auto; }
    .nb-sec { padding: 36px 14px 0; }
  .nb-board { padding: 4px 16px 18px; border-radius: 14px; }
  .nb-item { grid-template-columns: 30px 1fr auto; gap: 10px 12px; }
  .nb-glow { display: none; }
  .nb-buy { min-width: 0; }
      .nb-foot { padding-bottom: 150px; }
  .nb-bar { display: flex; align-items: center; gap: 10px; position: fixed; left: 12px; right: 12px; bottom: calc(70px + env(safe-area-inset-bottom)); z-index: 60; height: 56px; padding: 0 16px; border-radius: 12px; border: 1.5px solid var(--pink); background: #14070f; color: #fff; box-shadow: 0 0 28px -4px rgba(255,46,147,.7); font-size: 14.5px; }
  .nb-bar span { color: var(--muted); }
  .nb-bar strong { font-family: var(--font-head); font-weight: 700; color: var(--cyan); text-shadow: 0 0 10px rgba(34,230,255,.6); }
  .nb-bar em { margin-left: auto; font-style: normal; font-weight: 600; display: inline-flex; gap: 6px; align-items: center; color: var(--pink); }
}
.nb-tn { border-color: var(--line-strong); margin: 14px 0 0; }
@media (max-width: 899px) {
  .nb-top-in { flex-wrap: wrap; height: auto; padding: 8px 14px 6px; gap: 6px 10px; }
  .nb-nav { display: flex; order: 3; width: 100%; margin-left: 0; gap: 4px; padding-bottom: 4px; }
  .nb-link { flex: 1; text-align: center; border: 1px solid var(--line-strong); border-radius: 8px; padding: 9px 4px; font-size: 13px; }
  .nb-cart { margin-left: auto; }
  .nb-cart.has-items { display: inline-flex; }
}
.nb-buy .stepper button { width: 40px; height: 40px; }
.nb-buy .add-btn { min-height: 40px; }
.nb-buy .stepper button { width: 44px; height: 44px; }
.nb-buy .add-btn { min-height: 44px; }
.nb-hero { background: radial-gradient(60% 90% at 78% 40%, rgba(255,46,147,.2), transparent 70%), radial-gradient(40% 70% at 10% 100%, rgba(34,230,255,.12), transparent 70%); border-bottom: 1px solid var(--line); overflow: hidden; }
.nb-hero-in { max-width: 1120px; margin: 0 auto; padding: 48px 22px 54px; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 20px; align-items: center; }
.nb-sign { display: inline-flex; align-items: center; gap: 10px; border: 1.5px solid var(--cyan); border-radius: 8px; padding: 6px 14px; font-family: var(--font-head); font-weight: 700; font-size: 14px; letter-spacing: .14em; color: var(--cyan); text-shadow: 0 0 10px rgba(34,230,255,.7); box-shadow: 0 0 16px -6px var(--cyan); }
.nb-sign i { width: 9px; height: 9px; border-radius: 50%; background: #39ff88; box-shadow: 0 0 10px #39ff88; }
.nb-sign.is-closed i { background: #ff4d4d; box-shadow: 0 0 10px #ff4d4d; }
.nb-sign span { color: var(--text); font-family: var(--font-body); letter-spacing: .02em; text-shadow: none; font-weight: 500; }
.nb-hero h1 { margin-top: 22px; font-size: clamp(46px, 7vw, 100px); color: #fff; text-shadow: 0 0 10px rgba(255,255,255,.5), 0 0 30px rgba(255,46,147,.9), 0 0 64px rgba(255,46,147,.55); overflow-wrap: anywhere; }
.nb-tag { margin-top: 14px; color: #c8c8dc; font-size: 18px; max-width: 40ch; }
.nb-search { margin-top: 22px; max-width: 520px; }
.nb-sf { background: #0e0e18; border-color: var(--cyan); box-shadow: 0 0 18px -8px var(--cyan); height: 56px; border-radius: 12px; }
.nb-sf .ic { color: var(--cyan); }
.nb-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.nb-btn { min-height: 52px; padding: 0 26px; border-radius: 10px; font-family: var(--font-head); font-weight: 700; font-size: 14.5px; letter-spacing: .1em; text-transform: uppercase; border: 1.5px solid; display: inline-flex; align-items: center; justify-content: center; }
.nb-btn-pink { background: var(--pink); border-color: var(--pink); color: #fff; box-shadow: 0 0 26px -4px rgba(255,46,147,.8); }
.nb-btn-cyan { border-color: var(--cyan); color: var(--cyan); box-shadow: 0 0 18px -6px var(--cyan); }
.nb-btn:hover { filter: brightness(1.15); }
.nb-hero-art { display: grid; place-items: center; }
.nb-ring { padding: 12px; border-radius: 50%; border: 2px solid var(--pink); box-shadow: 0 0 40px -6px rgba(255,46,147,.8), inset 0 0 30px -10px rgba(255,46,147,.7); }
.nb-plate { width: min(420px, 78vw); aspect-ratio: 1; border-radius: 50%; overflow: hidden; border: 2px solid var(--cyan); box-shadow: 0 0 34px -6px rgba(34,230,255,.7); }
.nb-plate-img { width: 100%; height: 100%; }
.nb-wrap { max-width: 1120px; margin: 0 auto; padding: 26px 22px 0; }
.nb-h2 { margin-bottom: 16px; font-size: 26px; color: var(--cyan); text-shadow: 0 0 14px rgba(34,230,255,.55); text-transform: uppercase; letter-spacing: .1em; }
.nb-track { background: #0e0e18; border-color: var(--cyan); box-shadow: 0 0 20px -10px var(--cyan); }
.nb-sig-row { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 6px 4px 18px; }
.nb-sig-row::-webkit-scrollbar { display: none; }
.nb-sig { flex: 0 0 min(230px, 64vw); scroll-snap-align: start; border: 1.5px solid var(--line-strong); border-radius: 18px; overflow: hidden; background: #0e0e18; transition: border-color .2s, box-shadow .2s; }
.nb-sig:hover { border-color: var(--pink); box-shadow: 0 0 24px -8px var(--pink); }
.nb-sig-pic { aspect-ratio: 1 / .85; }
.nb-sig-img { width: 100%; height: 100%; }
.nb-sig-b { padding: 12px 14px 14px; }
.nb-sig-b h4 { font-size: 16px; min-height: 2.4em; }
.nb-sig-f { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }
.nb-p { --plus-size: 44px; --plus-bg: transparent; --plus-fg: var(--pink); --plus-line: var(--pink); --plus-radius: 10px; --plus-shadow: 0 0 14px -4px rgba(255,46,147,.7); }
.nb-promo { border: 1.5px solid var(--pink); border-radius: 22px; padding: 28px 30px; display: flex; justify-content: space-between; align-items: center; gap: 22px; flex-wrap: wrap; background: linear-gradient(135deg, rgba(255,46,147,.14), rgba(34,230,255,.06)); box-shadow: 0 0 40px -16px var(--pink); }
.nb-promo-k { font-family: var(--font-head); font-weight: 700; font-size: 13px; letter-spacing: .2em; color: var(--pink); }
.nb-promo h2 { font-size: clamp(28px, 4vw, 46px); margin-top: 6px; }
.nb-promo h2 em { font-style: normal; color: var(--cyan); text-shadow: 0 0 16px rgba(34,230,255,.6); }
.nb-promo p:not(.nb-promo-k) { color: #c8c8dc; margin-top: 8px; }
.nb-promo-c { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.nb-promo-c code { font-family: ui-monospace, Menlo, Consolas, monospace; letter-spacing: .1em; font-size: 20px; padding: 10px 16px; border: 1.5px dashed var(--cyan); border-radius: 10px; color: var(--cyan); }
.nb-stamp { border: 1.5px solid var(--line-strong); border-radius: 20px; padding: 22px; background: #0e0e18; }
@media (max-width: 899px) {
  .nb-hero-in { grid-template-columns: 1fr; padding: 30px 16px 38px; }
  .nb-hero-art { order: -1; }
  .nb-plate { width: min(280px, 70vw); }
  .nb-wrap { padding: 20px 14px 0; }
  .nb-promo { padding: 22px 18px; }
}
.tpl-hexpress {
  --bg: #f3f5f2; --bg-alt: #e8ede7; --card: #ffffff; --text: #14201a; --muted: #5c6b62; --line: #dce3dc; --line-strong: #c5d0c6;
  --font-body: 'Inter', system-ui, sans-serif; --font-head: 'Work Sans', 'Inter', sans-serif;
  --radius: 10px; --btn-radius: 8px; --btn-track: 0; --btn-transform: none; --btn-weight: 600;
  --accent: #0d6b3f; --on-accent: #ffffff; --gold: #e0b43c; --primary-soft: #e2f1e8; --head-h: 60px;
}
.tpl-hexpress h1, .tpl-hexpress h2, .tpl-hexpress h3 { font-family: var(--font-head); font-weight: 700; letter-spacing: -.01em; }
.tpl-hexpress h4 { font-family: var(--font-body); font-weight: 600; font-size: 16px; }
.tpl-hexpress .btn { border-color: var(--line-strong); background: #fff; }
.tpl-hexpress .btn:hover { border-color: var(--accent); background: var(--primary-soft); }
.tpl-hexpress .btn-primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.tpl-hexpress .btn-primary:hover { background: var(--accent); filter: brightness(.9); }
.tpl-hexpress .stepper { border-color: var(--line-strong); border-radius: 8px; }
.tpl-hexpress .stepper button:hover:not(:disabled) { background: var(--accent); color: #fff; }
.tpl-hexpress .date-chip.is-selected, .tpl-hexpress .slot.is-selected { background: var(--accent); border-color: var(--accent); color: #fff; }
.tpl-hexpress .step-n { background: var(--gold); border-color: var(--gold); color: #14201a; font-weight: 700; }
.tpl-hexpress .offer { background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 10px; padding: 14px 16px; align-items: center; }
.tpl-hexpress .offer-value { color: var(--accent); font-family: var(--font-head); font-weight: 700; }
.tpl-hexpress [id] { scroll-margin-top: 16px; }
.hx-top { position: sticky; top: var(--top); z-index: 40; background: #0d4a2d; color: #fff; }
.hx-top-in { max-width: 1480px; margin: 0 auto; height: var(--head-h); padding: 0 20px; display: flex; align-items: center; gap: 14px; }
.hx-brand .logo-text { font-family: var(--font-head); font-weight: 700; font-size: 21px; color: #fff; }
.hx-brand .logo-img { height: 30px; width: auto; }
.hx-halal { display: inline-flex; align-items: center; gap: 5px; background: var(--gold); color: #14201a; font-weight: 700; font-size: 12.5px; padding: 3px 9px; border-radius: 999px; }
.hx-open { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; font-weight: 600; color: #cfe4d6; white-space: nowrap; }
.hx-open i { width: 9px; height: 9px; border-radius: 50%; background: #3ddc84; }
.hx-open.is-closed i { background: #ff7b6e; }
.hx-nav { margin-left: auto; display: flex; gap: 2px; }
.hx-link { padding: 8px 12px; font-size: 14.5px; font-weight: 500; color: #cfe4d6; border-radius: 6px; }
.hx-link:hover { background: rgba(255,255,255,.1); color: #fff; }
.hx-cart { background: var(--gold); color: #14201a; border: 0; border-radius: 8px; padding: 8px 14px; font-weight: 700; }
.hx-cart .cart-count { background: #14201a; color: var(--gold); }
.hx-cart:not(.has-items) .cart-count { display: none; }
.hx-app { max-width: 1480px; margin: 0 auto; padding: 0 20px; display: grid; grid-template-columns: 230px minmax(0, 1fr) 360px; gap: 24px; height: calc(100vh - var(--top) - var(--head-h)); }
.hx-cats, .hx-items, .hx-panel { overflow-y: auto; padding: 20px 0 24px; scrollbar-width: thin; }
.hx-cats nav { display: flex; flex-direction: column; gap: 4px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 8px; }
.hx-cat { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; border-radius: 8px; font-weight: 600; font-size: 15px; text-align: left; }
.hx-cat em { font-style: normal; font-size: 12px; color: var(--muted); background: var(--bg-alt); padding: 1px 8px; border-radius: 999px; }
.hx-cat:hover { background: var(--primary-soft); color: var(--accent); }
.hx-side { margin-top: 16px; padding: 14px; background: #fff; border: 1px solid var(--line); border-radius: 12px; font-size: 14px; color: var(--muted); display: grid; gap: 10px; }
.hx-side p { display: flex; gap: 8px; align-items: flex-start; }
.hx-side .ic { color: var(--accent); margin-top: 2px; flex: none; }
.hx-steps { display: grid; gap: 8px; padding-top: 10px; border-top: 1px solid var(--line); }
.hx-steps li { display: flex; gap: 8px; align-items: center; }
.hx-steps b { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: var(--primary-soft); color: var(--accent); font-size: 12px; }
.hx-items-in { max-width: 820px; }
.hx-h3 { font-size: 22px; margin: 28px 0 12px; }
.hx-items .menu-cat:first-child .hx-h3 { margin-top: 0; }
.hx-list { display: flex; flex-direction: column; gap: 8px; }
.hx-item { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px 10px 10px; }
.hx-item:not(:has(.hx-pic)) { grid-template-columns: 1fr auto; padding-left: 16px; }
.hx-item:hover { border-color: var(--accent); }
.hx-pic { width: 76px; height: 76px; border-radius: 10px; overflow: hidden; background: var(--bg-alt); }
.hx-img { width: 100%; height: 100%; }
.hx-main p { color: var(--muted); font-size: 14px; margin-top: 2px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hx-buy { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.hx-price { font-weight: 700; font-family: var(--font-head); font-size: 16px; }
.hx-buy .add-btn { min-height: 36px; padding: 0 12px; border: 1.5px solid var(--accent); color: var(--accent); border-radius: 8px; font-size: 14px; font-weight: 600; }
.hx-buy .add-btn:hover { background: var(--accent); color: #fff; }
.hx-buy .stepper button { width: 34px; height: 34px; }
.hx-item.is-off { opacity: .55; }
.hx-foot { padding: 30px 0 20px; color: var(--muted); }
.hx-panel-in { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--gold); border-radius: 12px; padding: 18px; box-shadow: 0 8px 26px -18px rgba(13,74,45,.5); }
.hx-panel h3 { font-size: 19px; margin-bottom: 10px; }
.hx-empty { color: var(--muted); font-size: 14.5px; padding: 18px 0; }
.hx-line { display: grid; grid-template-columns: 1fr auto auto; gap: 8px 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.hx-line strong { display: block; font-size: 14.5px; font-weight: 600; line-height: 1.25; }
.hx-line span { font-size: 12.5px; color: var(--muted); }
.hx-line .stepper button { width: 28px; height: 28px; }
.hx-line .stepper output { min-width: 24px; font-size: 14px; }
.hx-line b { min-width: 58px; text-align: right; font-size: 14px; font-variant-numeric: tabular-nums; }
.hx-rm { grid-column: 2 / 4; text-decoration: underline; color: var(--muted); font-size: 13px; }
.hx-sum { margin-top: 10px; display: grid; gap: 4px; font-size: 14.5px; }
.hx-sum div { display: flex; justify-content: space-between; }
.hx-total { padding-top: 8px; margin-top: 4px; border-top: 1px solid var(--text); font-weight: 700; font-size: 18px; }
.hx-go { margin-top: 14px; width: 100%; height: 52px; background: var(--accent); color: #fff; border-radius: 10px; font-weight: 700; font-size: 16px; display: inline-flex; gap: 8px; align-items: center; justify-content: center; }
.hx-go:hover { filter: brightness(.9); }
.hx-sh { font-size: 17px; margin: 22px 0 8px; }
.hx-about { color: var(--muted); }
.hx-sheet-offers { display: grid; gap: 10px; }
.hx-gap { margin-top: 18px; }
.hx-bar { display: none; }
@media (max-width: 1100px) {
  .hx-app { display: block; height: auto; padding: 0 14px; }
  .hx-cats, .hx-items, .hx-panel { overflow: visible; padding: 0; }
  .hx-panel { display: none; }
  .hx-side { display: none; }
  .hx-cats { position: sticky; top: calc(var(--top) + var(--head-h)); z-index: 30; margin: 0 -14px 12px; background: var(--bg); border-bottom: 1px solid var(--line); }
  .hx-cats nav { flex-direction: row; overflow-x: auto; scrollbar-width: none; background: transparent; border: 0; border-radius: 0; padding: 0 14px; gap: 0; }
  .hx-cats nav::-webkit-scrollbar { display: none; }
  .hx-cat { flex: none; border-radius: 0; padding: 14px 14px 12px; border-bottom: 3px solid transparent; white-space: nowrap; }
  .hx-cat em { display: none; }
  .hx-cat:hover { background: transparent; border-bottom-color: var(--gold); }
  .hx-items-in { max-width: none; padding-top: 6px; }
  .hx-foot { padding-bottom: 130px; }
}
@media (max-width: 899px) {
  .tpl-hexpress { --head-h: 54px; }
  .hx-top-in { padding: 0 14px; }
  .hx-nav { display: none; }
  .hx-open { margin-left: auto; font-size: 12.5px; }
  .hx-cart { display: none; }
  .hx-bar { display: flex; align-items: center; gap: 10px; position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 60; height: 54px; padding: 0 14px; border-radius: 12px; background: var(--accent); color: #fff; font-weight: 700; box-shadow: 0 10px 24px -8px rgba(13,74,45,.7); }
  .hx-bar span { min-width: 26px; height: 26px; display: grid; place-items: center; border-radius: 8px; background: var(--gold); color: #14201a; font-size: 14px; }
  .hx-bar strong { margin-left: auto; }
}
.hx-tn { margin: 0 0 18px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; }
.hx-photo { border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 9; margin-bottom: 16px; border: 2px solid var(--gold); }
.hx-photo .img { display: block; width: 100%; height: 100%; }
@media (max-width: 899px) {
  .tpl-hexpress { --head-h: 96px; }
  .hx-top-in { flex-wrap: wrap; height: auto; padding: 8px 14px 6px; gap: 6px 10px; }
  .hx-nav { display: flex; order: 3; width: 100%; margin-left: 0; gap: 6px; padding-bottom: 2px; }
  .hx-link { flex: 1; text-align: center; background: rgba(255,255,255,.1); padding: 8px 4px; font-size: 13.5px; }
  .hx-open { margin-left: auto; }
  .hx-cart { display: inline-flex; margin-left: 0; }
  .hx-cart.has-items { display: inline-flex; }
}
@media (max-width: 899px) {
  .tpl-hexpress { --head-h: 0px; }
  .hx-top { position: static; }
  .hx-top-in { flex-wrap: wrap; }
  .hx-cart { order: 2; margin-left: auto; }
  .hx-nav { order: 3; }
  .hx-open { order: 4; width: 100%; margin: 0; justify-content: center; font-size: 12.5px; padding-bottom: 4px; }
  .hx-cats { top: var(--top); }
}
.hx-buy .stepper button { width: 40px; height: 40px; }
.hx-buy .add-btn { min-height: 40px; }
.hx-line .stepper button { width: 34px; height: 34px; }
.hx-buy .stepper button { width: 44px; height: 44px; }
.hx-buy .add-btn { min-height: 44px; }
.hx-intro { display: flex; gap: 18px; align-items: center; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--gold); border-radius: 16px; padding: 16px 18px; margin-bottom: 14px; }
.hx-avatar { width: 92px; height: 92px; border-radius: 18px; overflow: hidden; flex: none; border: 2px solid var(--gold); }
.hx-avatar-img { width: 100%; height: 100%; }
.hx-intro-t h1 { font-size: clamp(22px, 2.4vw, 30px); }
.hx-intro-t p { color: var(--muted); margin-top: 3px; }
.hx-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px !important; }
.hx-chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 999px; background: var(--bg-alt); color: var(--text) !important; font-size: 13.5px; font-weight: 600; }
.hx-chip i { width: 9px; height: 9px; border-radius: 50%; background: #1fa95b; }
.hx-chip i.is-closed { background: #d64545; }
.hx-chip-btn { background: var(--accent); color: #fff !important; }
.hx-searchrow { margin-bottom: 4px; }
.hx-sf { background: #fff; border-color: var(--line-strong); height: 52px; border-radius: 12px; }
.hx-sf .ic { color: var(--accent); }
.hx-track { margin-top: 12px; background: #fff; }
.hx-pop { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 12px; }
.hx-pop-c { background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.hx-pop-pic { aspect-ratio: 4 / 3; }
.hx-pop-img { width: 100%; height: 100%; }
.hx-pop-b { padding: 10px 12px 12px; }
.hx-pop-b strong { display: block; font-size: 14.5px; line-height: 1.25; min-height: 2.5em; }
.hx-pop-b > div { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; }
.hx-p { --plus-size: 44px; --plus-bg: var(--accent); --plus-fg: #fff; --plus-line: var(--accent); --plus-radius: 12px; --plus-shadow: none; }
.hx-offers { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 10px; }
.hx-stampcard { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 18px; }
@media (max-width: 899px) { .hx-intro { padding: 12px; gap: 12px; } .hx-avatar { width: 68px; height: 68px; border-radius: 14px; } }
.tpl-grillrush {
  --bg: #0b0b0b; --bg-alt: #151412; --card: #171513; --text: #fbf3e8; --muted: #b3a595; --line: #2a2522; --line-strong: #453d36;
  --font-body: 'Mulish', system-ui, sans-serif; --font-head: 'Baloo 2', 'Mulish', sans-serif;
  --radius: 18px; --btn-radius: 999px; --btn-track: 0; --btn-transform: none; --btn-weight: 800;
  --accent: #ff7a1a; --on-accent: #190d03; --primary-soft: #3a2008; --orange: #ff7a1a;
  --plus-size: 44px; --plus-bg: #ff7a1a; --plus-fg: #190d03; --plus-line: #ff7a1a;
}
.tpl-grillrush h1, .tpl-grillrush h2, .tpl-grillrush h3 { font-family: var(--font-head); font-weight: 800; line-height: 1.02; letter-spacing: -.01em; }
.tpl-grillrush h4 { font-family: var(--font-body); font-weight: 800; font-size: 17px; line-height: 1.25; }
.tpl-grillrush .btn { background: #26221f; border-color: var(--line-strong); color: var(--text); }
.tpl-grillrush .btn:hover { border-color: var(--accent); }
.tpl-grillrush .btn-primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.tpl-grillrush .field { background: #221f1c; border-color: var(--line-strong); color: var(--text); border-radius: 14px; }
.tpl-grillrush .field::placeholder { color: #8d7b69; }
.tpl-grillrush .drawer, .tpl-grillrush .drawer-foot, .tpl-grillrush .sheet { background: #131211; }
.tpl-grillrush .stepper { border-color: var(--line-strong); border-radius: 999px; }
.tpl-grillrush .stepper button:hover:not(:disabled) { background: var(--accent); color: var(--on-accent); }
.tpl-grillrush .pay-opt { background: #221f1c; border-radius: 16px; }
.tpl-grillrush .err-block { background: #3d1712; border-color: #7a2a24; }
.tpl-grillrush .offer { background: #1c1917; border: 1px solid var(--line-strong); border-radius: 18px; padding: 18px 20px; align-items: center; height: 100%; }
.tpl-grillrush .offer-value { font-family: var(--font-head); font-weight: 800; color: var(--accent); font-size: 32px; }
.tpl-grillrush .offer-meta code { background: #0b0b0b; border-color: var(--line-strong); color: var(--accent); }
.tpl-grillrush .stamp.is-filled { color: var(--on-accent); }
.tpl-grillrush .date-chip, .tpl-grillrush .slot { background: #221f1c; border-radius: 14px; }
.tpl-grillrush .date-chip.is-selected, .tpl-grillrush .slot.is-selected { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.tpl-grillrush .step-n { background: var(--accent); border-color: var(--accent); color: var(--on-accent); font-weight: 800; }
.tpl-grillrush .sms-note { background: #221f1c; }
.tpl-grillrush .takeaway-note { border: 1px solid var(--line); border-radius: 16px; padding: 12px 16px; background: #131211; margin: 10px auto 0; max-width: 1240px; }
.tpl-grillrush [id] { scroll-margin-top: calc(var(--top) + 80px); }
.gr-top { position: sticky; top: var(--top); z-index: 40; background: rgba(11,11,11,.94); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.gr-top-in { max-width: 1240px; margin: 0 auto; height: 70px; padding: 0 22px; display: flex; align-items: center; gap: 22px; }
.gr-brand .logo-text { font-family: var(--font-head); font-weight: 800; font-size: 27px; color: #fff; }
.gr-brand .logo-img { height: 34px; width: auto; }
.gr-nav { margin: 0 auto; display: flex; gap: 6px; }
.gr-link { padding: 9px 16px; font-weight: 700; font-size: 15.5px; color: #d9c8b5; border-bottom: 2px solid transparent; }
.gr-link:hover { color: #fff; border-bottom-color: var(--accent); }
.gr-cart { background: var(--accent); color: var(--on-accent); border: 0; border-radius: 999px; padding: 10px 20px; font-weight: 800; }
.gr-cart .cart-count { background: var(--on-accent); color: var(--accent); }
.gr-cart:not(.has-items) .cart-count { display: none; }
.gr-hero { background: radial-gradient(60% 100% at 80% 40%, #3a1a06, #0b0b0b 70%); border-bottom: 1px solid var(--line); overflow: hidden; }
.gr-hero-in { max-width: 1240px; margin: 0 auto; padding: 52px 22px 56px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 30px; align-items: center; }
.gr-kicker { font-size: 13px; letter-spacing: .18em; font-weight: 800; color: var(--orange); }
.gr-hero h1 { font-size: clamp(50px, 7.4vw, 104px); margin-top: 10px; overflow-wrap: anywhere; }
.gr-lead { font-size: 18px; line-height: 1.55; color: #e3d5c4; margin-top: 14px; max-width: 46ch; }
.gr-search { margin-top: 24px; max-width: 560px; }
.gr-sf { background: #fff; color: #5a5149; border-color: transparent; height: 58px; }
.gr-sf input { color: #1c1713; }
.gr-sf input::placeholder { color: #8a8077; }
.gr-sf .ic { color: var(--orange); }
.gr-pop { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 14px; color: var(--muted); }
.gr-chip { padding: 7px 14px; border-radius: 999px; background: rgba(255,255,255,.08); font-weight: 700; color: #f1e5d5; }
.gr-chip:hover { background: var(--accent); color: var(--on-accent); }
.gr-status { margin-top: 18px; display: inline-flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 700; color: #d9c8b5; }
.gr-dot { width: 10px; height: 10px; border-radius: 50%; background: #3ddc84; box-shadow: 0 0 0 4px rgba(61,220,132,.18); }
.gr-dot.is-closed { background: #ff5a4d; box-shadow: 0 0 0 4px rgba(255,90,77,.18); }
.gr-hero-art { display: grid; place-items: center; }
.gr-hero-pic { width: min(520px, 100%); aspect-ratio: 1 / .92; border-radius: 40% 60% 55% 45% / 50% 45% 55% 50%; overflow: hidden; box-shadow: 0 40px 80px -30px rgba(255,122,26,.45), 0 0 0 1px rgba(255,255,255,.06); }
.gr-hero-img { width: 100%; height: 100%; }
.gr-main { padding-bottom: 10px; }
.gr-row { margin-top: 34px; }
.gr-intro { max-width: 1240px; margin: 20px auto 0; padding: 0 22px; }
.gr-track { background: #151412; border-color: var(--line-strong); margin-bottom: 8px; }
.gr-circles { background: #fff7ee; margin-top: 26px; border-top: 1px solid var(--line); }
.gr-circles-in { max-width: 1240px; margin: 0 auto; padding: 24px 22px; display: flex; gap: 26px; overflow-x: auto; scrollbar-width: none; }
.gr-circles-in::-webkit-scrollbar { display: none; }
.gr-circle { flex: none; width: 104px; display: flex; flex-direction: column; align-items: center; gap: 10px; color: #1c1713; font-weight: 800; font-size: 14.5px; text-align: center; }
.gr-circle-pic { width: 94px; height: 94px; border-radius: 50%; overflow: hidden; background: #ffe7cf; display: grid; place-items: center; font-family: var(--font-head); font-size: 34px; color: var(--accent); box-shadow: 0 10px 20px -12px rgba(0,0,0,.5); border: 3px solid #fff; transition: transform .15s; }
.gr-circle:hover .gr-circle-pic { transform: translateY(-4px) scale(1.04); }
.gr-circle-img { width: 100%; height: 100%; }
.gr-cat-head { max-width: 1240px; margin: 0 auto; padding: 0 22px 14px; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.gr-cat-head h2, .gr-cat-head h3 { font-size: 30px; }
.gr-cat-head p, .gr-cat-head span { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 14px; font-weight: 700; }
.gr-main .menu-cat { margin-top: 34px; }
.gr-rail { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 4px max(22px, calc((100vw - 1240px) / 2 + 22px)) 16px; scroll-padding-inline: 22px; }
.gr-rail::-webkit-scrollbar { display: none; }
.gr-card { flex: 0 0 min(250px, 70vw); scroll-snap-align: start; background: var(--card); border: 1px solid var(--line); border-radius: 22px; overflow: hidden; display: flex; flex-direction: column; }
.gr-big { flex-basis: min(290px, 76vw); }
.gr-pic { aspect-ratio: 4 / 3; background: #26221f; display: grid; place-items: center; color: var(--accent); }
.gr-pic.no-pic { aspect-ratio: 4 / 2; background: radial-gradient(circle at 30% 20%, #6a3516, #231710); }
.gr-img { width: 100%; height: 100%; }
.gr-info { padding: 14px 16px 16px; display: flex; flex-direction: column; flex: 1; }
.gr-info p { color: var(--muted); font-size: 13.5px; line-height: 1.45; margin-top: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.gr-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: auto; padding-top: 14px; }
.gr-price { font-family: var(--font-head); font-weight: 800; font-size: 20px; color: #fff; }
.gr-add.add-btn { min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--accent); color: var(--on-accent); font-weight: 800; font-size: 14.5px; }
.gr-add.add-btn:hover { background: var(--accent); filter: brightness(1.1); }
.gr-add .add-tx, .gr-add .add-ic { display: none; }
.gr-add.add-btn::after { content: 'Legg til'; }
.gr-add.stepper { border: 0; background: var(--accent); color: var(--on-accent); }
.gr-add.stepper button { width: 40px; height: 44px; }
.gr-add.stepper button:hover:not(:disabled) { background: rgba(0,0,0,.15); color: var(--on-accent); }
.gr-card.is-off { opacity: .55; }
.gr-coupons .gr-coupon { flex: 0 0 min(380px, 86vw); scroll-snap-align: start; }
.gr-loy { max-width: 700px; margin-inline: auto; padding: 0 22px; }
.gr-stamp { background: var(--card); border: 1px solid var(--line-strong); border-radius: 24px; padding: 24px; }
.gr-offer { position: relative; margin-top: 44px; overflow: hidden; background: #130d07; }
.gr-offer-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.gr-offer-bg img { opacity: .5; }
.gr-offer::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #0b0b0b 25%, rgba(11,11,11,.35)); z-index: 1; }
.gr-offer-in { position: relative; z-index: 2; max-width: 1240px; margin: 0 auto; padding: 50px 22px; display: flex; justify-content: space-between; gap: 24px; align-items: center; flex-wrap: wrap; }
.gr-offer h2 { font-size: clamp(34px, 5vw, 62px); margin-top: 8px; }
.gr-offer h2 em { font-style: normal; color: var(--orange); }
.gr-offer p:not(.gr-kicker) { color: #e3d5c4; margin-top: 10px; max-width: 52ch; }
.gr-code { margin-top: 18px; display: inline-flex; align-items: center; gap: 12px; border: 1.5px dashed rgba(255,255,255,.45); border-radius: 14px; padding: 10px 16px; }
.gr-code span { font-size: 13px; color: var(--muted); }
.gr-code b { font-family: ui-monospace, Menlo, Consolas, monospace; letter-spacing: .1em; color: #fff; font-size: 18px; }
.gr-btn { min-height: 52px; padding: 0 26px; border-radius: 999px; border: 2px solid rgba(255,255,255,.4); font-weight: 800; font-size: 15.5px; color: #fff; display: inline-flex; align-items: center; gap: 8px; }
.gr-btn:hover { background: rgba(255,255,255,.1); }
.gr-btn-main { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.gr-btn-main:hover { background: var(--accent); filter: brightness(1.1); }
.gr-band { margin-top: 50px; background: #120e0a; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.gr-band-in { max-width: 1240px; margin: 0 auto; padding: 38px 22px; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.gr-band-card { background: var(--card); border: 1px solid var(--line-strong); border-radius: 22px; padding: 26px; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.gr-band-card h3 { font-size: 26px; }
.gr-band-card p { color: var(--muted); }
.gr-photo { border-radius: 18px; overflow: hidden; aspect-ratio: 16 / 9; margin-bottom: 16px; }
.gr-photo .img { display: block; width: 100%; height: 100%; }
.gr-gap { margin-top: 18px; }
.gr-about { color: var(--muted); margin-bottom: 16px; }
.gr-foot-note, footer.gr-foot { padding: 44px 20px 60px; text-align: center; color: var(--muted); }
.gr-bar { display: none; }
@media (max-width: 899px) {
  .gr-top-in { height: 58px; padding: 0 14px; gap: 10px; }
  .gr-nav { display: none; }
  .gr-cart { margin-left: auto; }
  .gr-hero-in { grid-template-columns: 1fr; padding: 30px 16px 36px; gap: 22px; }
  .gr-hero-art { order: -1; }
  .gr-hero-pic { width: min(340px, 86%); }
  .gr-hero h1 { font-size: 46px; }
  .gr-lead { font-size: 16px; }
  .gr-intro { padding: 0 14px; }
  .gr-circles-in { padding: 18px 14px; gap: 16px; }
  .gr-circle { width: 88px; }
  .gr-circle-pic { width: 80px; height: 80px; }
  .gr-cat-head { padding: 0 16px 12px; }
  .gr-cat-head h2, .gr-cat-head h3 { font-size: 24px; }
  .gr-rail { padding-left: 16px; padding-right: 16px; gap: 12px; }
  .gr-offer-in { padding: 36px 16px; }
  .gr-band-in { padding: 28px 14px; }
  footer.gr-foot { padding-bottom: 130px; }
  .gr-bar { display: flex; align-items: center; gap: 10px; position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 60; height: 58px; padding: 0 22px; border-radius: 999px; background: var(--accent); color: var(--on-accent); font-weight: 800; box-shadow: 0 14px 30px -10px rgba(255,122,26,.6); }
  .gr-bar strong { margin-left: auto; font-family: var(--font-head); font-size: 20px; }
}
@media (max-width: 520px) { .gr-cart .cart-label { display: none; } }
.tpl-ntable {
  --deep: color-mix(in srgb, var(--primary) 38%, #040906);
  --deep-2: color-mix(in srgb, var(--primary) 52%, #050b07);
  --lime: var(--primary-light);
  --on-lime: var(--on-primary-light);
  --bg: #f7f6f0; --bg-alt: #efeee6; --card: #ffffff; --text: #15201a; --muted: #5f6b63; --line: #e4e2d8; --line-strong: #cfcdc0;
  --font-body: 'Hanken Grotesk', system-ui, sans-serif; --font-head: 'Fraunces', Georgia, serif; --hand: 'Caveat', cursive;
  --radius: 14px; --btn-radius: 999px; --btn-track: 0; --btn-transform: none; --btn-weight: 700;
  --accent: var(--primary); --on-accent: var(--on-primary);
  --plus-size: 44px; --plus-bg: var(--primary); --plus-fg: var(--on-primary); --plus-line: var(--primary); --plus-shadow: none;
  -webkit-font-smoothing: antialiased;
}
.tpl-ntable h1, .tpl-ntable h2, .tpl-ntable h3 { font-family: var(--font-head); font-weight: 600; line-height: 1.08; letter-spacing: -.012em; }
.tpl-ntable h4 { font-family: var(--font-body); font-weight: 700; font-size: 16.5px; line-height: 1.3; letter-spacing: 0; }
.tpl-ntable [id] { scroll-margin-top: calc(var(--top) + 84px); }
.tpl-ntable .btn { border: 1px solid var(--line-strong); background: #fff; border-radius: 999px; min-height: 48px; }
.tpl-ntable .btn-primary { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
.tpl-ntable .field { border-radius: 12px; min-height: 48px; border-color: var(--line-strong); }
.tpl-ntable .drawer { border-radius: 24px 0 0 24px; }
.tpl-ntable .drawer-head h2 { font-size: 26px; }
.tpl-ntable .pay-opt { border-radius: 16px; padding: 14px 16px; }
.tpl-ntable .sheet { border-radius: 24px 0 0 24px; }
.tpl-ntable .date-chip.is-selected, .tpl-ntable .slot.is-selected { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
.tpl-ntable .step-n { background: var(--bg-alt); border-color: transparent; font-weight: 700; }
.ds-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border-radius: 999px; font-weight: 700; font-size: 15.5px; border: 1.5px solid transparent; white-space: nowrap; transition: filter .15s, background .15s, color .15s; }
.ds-btn-main { background: var(--lime); color: var(--on-lime); }
.ds-btn-main:hover { filter: brightness(1.07); }
.ds-btn-ghost { border-color: rgba(255,255,255,.55); color: #fff; }
.ds-btn-ghost:hover { background: rgba(255,255,255,.1); }
.ds-btn-dark { background: var(--deep); color: #fff; }
.ds-btn-dark:hover { filter: brightness(1.25); }
.ds-btn-lg { min-height: 58px; padding: 0 34px; font-size: 17px; }
.ds-top { position: sticky; top: var(--top); z-index: 40; background: var(--deep); color: #fff; border-bottom: 1px solid rgba(255,255,255,.08); }
.ds-top-in { max-width: 1240px; margin: 0 auto; height: 76px; padding: 0 28px; display: flex; align-items: center; gap: 28px; }
.ds-brand .logo-text { font-family: var(--font-head); font-weight: 600; font-size: 28px; color: #fff; letter-spacing: -.01em; }
.ds-brand .logo-img { height: 38px; width: auto; }
.ds-nav { display: flex; gap: 6px; margin: 0 auto; }
.ds-link { padding: 10px 16px; font-size: 15.5px; font-weight: 600; color: #d9e4dc; border-bottom: 2px solid transparent; }
.ds-link:hover { color: #fff; border-bottom-color: var(--lime); }
.ds-top-r { display: flex; align-items: center; gap: 12px; }
.ds-top-cta { min-height: 46px; padding: 0 20px; }
.ds-cart { border: 1.5px solid rgba(255,255,255,.4); color: #fff; border-radius: 999px; padding: 9px 16px; font-weight: 700; }
.ds-cart.has-items { background: var(--lime); border-color: var(--lime); color: var(--on-lime); }
.ds-cart .cart-count { background: var(--lime); color: var(--on-lime); }
.ds-cart.has-items .cart-count { background: var(--on-lime); color: var(--lime); }
.ds-cart:not(.has-items) .cart-count { display: none; }
.ds-hero { background: radial-gradient(70% 90% at 78% 40%, var(--deep-2), var(--deep) 70%); color: #fff; overflow: hidden; }
.ds-hero-in { max-width: 1240px; margin: 0 auto; padding: 56px 28px 64px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: center; min-height: 560px; }
.ds-tag { font-size: 17px; font-weight: 600; color: var(--lime); line-height: 1.3; }
.ds-hero h1 { font-size: clamp(46px, 6.6vw, 92px); line-height: 1.02; margin-top: 10px; color: #fff; overflow-wrap: anywhere; }
.ds-lead { margin-top: 20px; font-size: 18px; line-height: 1.6; color: #d3dfd7; max-width: 46ch; }
.ds-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
.ds-status { margin-top: 24px; display: inline-flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 600; color: #cfdcd3; }
.ds-dot { width: 10px; height: 10px; border-radius: 50%; background: #5ee08a; box-shadow: 0 0 0 4px rgba(94,224,138,.2); }
.ds-dot.is-closed { background: #ff7a6b; box-shadow: 0 0 0 4px rgba(255,122,107,.2); }
.ds-hero-art { position: relative; display: grid; align-items: center; }
.ds-dish { position: relative; margin: 0; width: 100%; aspect-ratio: 4 / 5; max-height: 600px; border-radius: 8px; overflow: hidden; background: #0f1a14; box-shadow: 0 30px 60px -34px rgba(0,0,0,.8); }
.ds-dish-img { position: absolute; inset: 0; width: 100%; height: 100%; }
.ds-dish-empty { display: grid; place-items: center; color: var(--lime); }
.ds-dish-cap { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 2px; padding: 96px 22px 20px; color: #fff; background: linear-gradient(to top, rgba(4,9,6,.94) 38%, rgba(4,9,6,.55) 70%, transparent); }
.ds-dish-lbl { font-size: 13.5px; font-weight: 600; color: #e3ece6; }
.ds-dish-row .ds-p { --plus-bg: var(--lime); --plus-fg: var(--on-lime); --plus-line: var(--lime); }
.ds-dish-cap strong { font-family: var(--font-head); font-size: clamp(24px, 2.6vw, 32px); font-weight: 600; line-height: 1.1; }
.ds-dish-row { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; }
.ds-dish-row .ds-price { font-size: 22px; color: #fff; }
.ds-hero.has-bg { position: relative; background: var(--deep); }
.ds-hero-bg { position: absolute; inset: 0; }
.ds-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; }
.ds-hero-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,12,8,.88) 0%, rgba(5,12,8,.7) 42%, rgba(5,12,8,.18) 100%), linear-gradient(to top, rgba(5,12,8,.5), transparent 38%); }
.ds-hero.has-bg .ds-hero-in { position: relative; z-index: 1; min-height: min(78vh, 700px); padding-top: 72px; padding-bottom: 80px; }
.ds-hero.has-bg .ds-hero-text { max-width: 640px; }
.ds-hero.has-bg .ds-hero-art { align-self: end; justify-self: end; width: min(100%, 320px); }
.ds-hero.has-bg .ds-dish { aspect-ratio: auto; max-height: none; background: transparent; box-shadow: none; border-radius: 10px; overflow: hidden; }
.ds-hero.has-bg .ds-dish-cap { position: static; padding: 16px 20px 18px; background: rgba(5,12,8,.66); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.14); border-radius: 10px; }
.ds-strip { background: var(--bg); border-bottom: 1px solid var(--line); }
.ds-strip-in { max-width: 1240px; margin: 0 auto; padding: 28px 28px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ds-feat { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 6px 18px; border-left: 1px solid var(--line); }
.ds-feat:first-child { border-left: 0; }
.ds-feat-ic { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; border: 1.5px solid var(--primary); color: var(--primary); margin-bottom: 8px; }
.ds-feat strong { font-size: 16.5px; }
.ds-feat small { font-size: 13.5px; color: var(--muted); line-height: 1.4; }
.ds-sec { padding: 72px 0 0; }
.ds-in { max-width: 1240px; margin: 0 auto; padding: 0 28px; }
.ds-c { text-align: center; }
.ds-h2 { font-size: clamp(32px, 4vw, 46px); }
.ds-circles { margin-top: 30px; display: flex; gap: 26px; overflow-x: auto; scrollbar-width: none; padding: 6px 4px 14px; }
.ds-circles::-webkit-scrollbar { display: none; }
.ds-circle { flex: none; width: 120px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.ds-circle-pic { width: 112px; height: 112px; border-radius: 50%; overflow: hidden; border: 3px solid var(--card); box-shadow: 0 0 0 1.5px var(--line-strong), 0 14px 26px -16px rgba(0,0,0,.45); background: var(--bg-alt); display: grid; place-items: center; font-family: var(--font-head); font-size: 38px; color: var(--primary); }
.ds-circle-img { width: 100%; height: 100%; }
.ds-circle:hover .ds-circle-pic { box-shadow: 0 0 0 2px var(--primary), 0 14px 26px -16px rgba(0,0,0,.45); }
.ds-circle-t { font-weight: 700; font-size: 15px; }
.ds-fav { margin-top: 30px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.ds-card { background: var(--card); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 1px 2px rgba(20,32,26,.04); }
.ds-photo { aspect-ratio: 4 / 3; background: var(--bg-alt); overflow: hidden; display: grid; place-items: center; color: var(--primary); }
.ds-photo.no-pic { aspect-ratio: 5 / 2; }
.ds-img { width: 100%; height: 100%; }
.ds-body { padding: 16px 18px 18px; display: flex; flex-direction: column; flex: 1; }
.ds-body p { color: var(--muted); font-size: 14px; line-height: 1.5; margin-top: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ds-cardfoot { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 14px; }
.ds-price { font-weight: 800; font-size: 17px; color: var(--primary); font-variant-numeric: tabular-nums; }
.ds-card.is-off { opacity: .55; }
.ds-more { margin-top: 34px; }
.ds-band { position: relative; overflow: hidden; margin: 72px 0 0; background: var(--deep); color: #fff; }
.ds-sec + .ds-band, .ds-band + .ds-band { margin-top: 28px; }
.ds-band-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.ds-band-bg img { opacity: .55; }
.ds-band-veil { position: absolute; inset: 0; background: linear-gradient(90deg, var(--deep) 18%, rgba(0,0,0,.35)); }
.ds-band-in { position: relative; max-width: 1240px; margin: 0 auto; padding: 48px 28px; display: grid; grid-template-columns: minmax(0, 1.4fr) auto; gap: 30px; align-items: center; }
.ds-band h2 { font-size: clamp(28px, 3.6vw, 44px); margin-top: 6px; }
.ds-band h2 em { font-style: normal; color: var(--lime); }
.ds-band p { color: #cfdcd3; margin-top: 10px; max-width: 54ch; }
.ds-band small { display: block; margin-top: 10px; color: #aebdb3; font-size: 13.5px; }
.ds-code { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: 18px; padding: 14px 18px; }
.ds-code span { font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: #aebdb3; }
.ds-code b { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 20px; letter-spacing: .08em; color: var(--lime); }
.ds-loy-in { max-width: 680px; }
.ds-stamp { background: var(--card); border: 1px solid var(--line); border-radius: 24px; padding: 26px; }
.ds-stamp .stamp.is-filled { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
.ds-tn { max-width: 760px; margin: 18px auto 0; border-color: var(--line); text-align: left; }
.ds-cat { margin: 54px 0 22px; font-size: 30px; display: flex; align-items: center; gap: 18px; }
.ds-cat::after { content: ''; flex: 1; height: 1px; background: var(--line-strong); }
.ds-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 430px), 1fr)); gap: 0 56px; }
.ds-grid .ds-card { flex-direction: row-reverse; align-items: flex-start; gap: 18px; padding: 20px 0; background: none; border: 0; border-bottom: 1px solid var(--line-strong); border-radius: 0; box-shadow: none; }
.ds-grid .ds-photo { width: 108px; height: 108px; flex: none; aspect-ratio: auto; border-radius: 8px; }
.ds-grid .ds-photo.no-pic { display: none; }
.ds-grid .ds-body { padding: 0; flex: 1; }
.ds-grid .ds-body p { -webkit-line-clamp: 3; }
.ds-grid .ds-price { font-size: 18px; }
.tpl-ntable .ds-btn:hover, .tpl-ntable .ds-cart:hover, .tpl-ntable .c-plus:hover, .tpl-ntable .ds-p:hover { transform: none !important; }
.tpl-ntable .ds-btn-main, .tpl-ntable .ds-btn-main:hover, .tpl-ntable .btn-primary { background-image: none; animation: none; }
.tpl-ntable article:hover .img > img, .tpl-ntable .ds-circle:hover .img > img { transform: none !important; }
footer.ds-foot { margin-top: 80px; background: var(--deep); color: #dde8e0; --text: #e8efe9; --muted: #a8b8ae; --line: rgba(255,255,255,.14); display: block; }
.ds-foot-in { max-width: 1240px; margin: 0 auto; padding: 56px 28px 36px; display: grid; grid-template-columns: 1.3fr 1fr 1.2fr 1.2fr; gap: 40px; }
footer.ds-foot h3 { font-size: 18px; margin-bottom: 16px; color: #fff; font-family: var(--font-body); font-weight: 700; }
.ds-foot-brand .logo-text { font-family: var(--font-head); font-size: 30px; color: #fff; }
.ds-foot-brand .logo-img { height: 40px; width: auto; }
.ds-foot-brand p { margin-top: 12px; color: #aebdb3; max-width: 32ch; }
.ds-links li + li { margin-top: 10px; }
.ds-links button { color: #d3dfd7; font-weight: 500; }
.ds-links button:hover { color: var(--lime); }
footer.ds-foot .hours { max-width: none; }
footer.ds-foot .hours-row dt { color: #aebdb3; }
footer.ds-foot .contact-row .ic { color: var(--lime); }
.ds-foot-bot { max-width: 1240px; margin: 0 auto; padding: 18px 28px 30px; border-top: 1px solid rgba(255,255,255,.12); color: #94a69b; }
.ds-foot-bot .legal { color: #94a69b; }
.ds-bar { display: none; }
@media (max-width: 1000px) {
  .ds-fav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-foot-in { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 899px) {
  .ds-top-in { height: 62px; padding: 0 16px; gap: 10px; }
  .ds-nav { display: none; }
  .ds-top-r { margin-left: auto; }
  .ds-top-cta { display: none; }
  .ds-brand .logo-text { font-size: 24px; }
  .ds-hero-in { grid-template-columns: 1fr; padding: 34px 18px 40px; min-height: 0; gap: 8px; }
  .ds-hero h1 { font-size: 46px; }
  .ds-lead { font-size: 16.5px; }
  .ds-cta .ds-btn { flex: 1 1 auto; }
  .ds-hero-art { margin: 20px 0 0; }
  .ds-dish { aspect-ratio: 4 / 3; }
  .ds-hero-bg::after { background: linear-gradient(to top, rgba(5,12,8,.92) 0%, rgba(5,12,8,.62) 55%, rgba(5,12,8,.45) 100%); }
  .ds-hero.has-bg .ds-hero-in { min-height: 560px; padding: 56px 18px 36px; align-content: end; }
  .ds-hero.has-bg .ds-hero-art { width: 100%; justify-self: stretch; }
  .ds-hero.has-bg .ds-dish { aspect-ratio: auto; }
  .ds-strip-in { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 18px 12px; row-gap: 18px; }
  .ds-feat:nth-child(3) { border-left: 0; }
  .ds-feat { padding: 6px 8px; }
  .ds-sec { padding-top: 52px; }
  .ds-in { padding: 0 16px; }
  .ds-circles { gap: 16px; }
  .ds-circle { width: 96px; }
  .ds-circle-pic { width: 92px; height: 92px; }
  .ds-fav { gap: 14px; }
  .ds-body { padding: 12px 12px 14px; }
  .ds-fav .ds-body p { display: none; }
  .ds-band-in { grid-template-columns: 1fr; padding: 36px 18px; }
  .ds-grid { grid-template-columns: 1fr; }
  .ds-grid .ds-photo { width: 96px; height: 96px; }
  .ds-foot-in { grid-template-columns: 1fr; padding: 40px 18px 26px; gap: 30px; }
  .ds-foot-bot { padding: 16px 18px 120px; }
  .ds-bar { display: flex; align-items: center; gap: 12px; position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 60; height: 58px; padding: 0 16px 0 12px; border-radius: 18px; background: var(--lime); color: var(--on-lime); font-weight: 800; font-size: 16px; box-shadow: 0 16px 34px -10px rgba(0,0,0,.55); }
  .ds-bar-n { min-width: 32px; height: 32px; padding: 0 8px; display: grid; place-items: center; border-radius: 10px; background: var(--on-lime); color: var(--lime); font-size: 15px; }
  .ds-bar-t { flex: 1; text-align: left; }
  .tpl-ntable .drawer, .tpl-ntable .sheet { border-radius: 0; }
}
.ds-search { max-width: 560px; margin: 22px auto 0; }
.ds-sf { background: #fff; border-color: var(--line-strong); height: 56px; }
.ds-sf .ic { color: var(--primary); }
.ds-track { max-width: 760px; margin: 16px auto 0; }
.tpl-wkitchen {
  --bg: #fff7ec; --bg-alt: #fbe9d3; --card: #ffffff; --text: #3a2418; --muted: #7d6150; --line: #f0dcc4; --line-strong: #e2c6a3;
  --font-body: 'Mulish', system-ui, sans-serif; --font-head: 'Lora', Georgia, serif;
  --radius: 22px; --btn-radius: 999px; --btn-track: 0; --btn-transform: none; --btn-weight: 700;
  --accent: #c4552f; --on-accent: #ffffff; --hand: 'Caveat', cursive; --primary-soft: #fbe3d6;
}
.tpl-wkitchen h1, .tpl-wkitchen h2, .tpl-wkitchen h3 { font-family: var(--font-head); font-weight: 600; letter-spacing: -.01em; line-height: 1.12; }
.tpl-wkitchen h4 { font-family: var(--font-head); font-weight: 600; font-size: 19px; line-height: 1.25; }
.tpl-wkitchen .btn { border: 2px solid var(--line-strong); background: #fff; border-radius: 999px; }
.tpl-wkitchen .btn:hover { border-color: var(--accent); background: var(--primary-soft); }
.tpl-wkitchen .btn-primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.tpl-wkitchen .btn-primary:hover { background: var(--accent); filter: brightness(.92); }
.tpl-wkitchen .field { border: 2px solid var(--line-strong); border-radius: 16px; background: #fff; }
.tpl-wkitchen .drawer { border-radius: 28px 0 0 28px; background: #fff7ec; }
.tpl-wkitchen .drawer-foot { background: #fff7ec; }
.tpl-wkitchen .drawer-head h2 { font-size: 28px; }
.tpl-wkitchen .stepper { border: 2px solid var(--line-strong); border-radius: 999px; background: #fff; }
.tpl-wkitchen .stepper button:hover:not(:disabled) { background: var(--accent); color: #fff; }
.tpl-wkitchen .pay-opt { border: 2px solid var(--line-strong); border-radius: 20px; }
.tpl-wkitchen .pay-opt.is-on { border-color: var(--accent); background: var(--primary-soft); box-shadow: none; }
.tpl-wkitchen .totals-final { border-top-color: var(--line-strong); }
.tpl-wkitchen .offer { background: #fff; border: 2px dashed var(--line-strong); border-radius: 24px; padding: 18px 20px; align-items: center; }
.tpl-wkitchen .offer-value { font-family: var(--font-head); font-weight: 600; color: #fff; background: var(--accent); border-radius: 50%; min-width: 70px; width: 70px; height: 70px; display: grid; place-items: center; font-size: 22px; }
.tpl-wkitchen .offer-value-none { background: var(--bg-alt); color: var(--accent); }
.tpl-wkitchen .offer-meta code { background: var(--bg-alt); border-color: var(--line-strong); }
.tpl-wkitchen .stamp.is-filled { background: var(--accent); border-color: var(--accent); }
.tpl-wkitchen .date-chip, .tpl-wkitchen .slot { border: 2px solid var(--line-strong); border-radius: 18px; }
.tpl-wkitchen .date-chip.is-selected, .tpl-wkitchen .slot.is-selected { background: var(--accent); border-color: var(--accent); color: #fff; }
.tpl-wkitchen .step-n { background: var(--primary-soft); border-color: transparent; color: var(--accent); font-weight: 800; }
.tpl-wkitchen .sms-note { border-radius: 18px; }
.tpl-wkitchen .tabbar { background: #fff; border-top: 0; box-shadow: 0 -8px 24px -12px rgba(58,36,24,.25); border-radius: 22px 22px 0 0; }
.tpl-wkitchen [id] { scroll-margin-top: calc(var(--top) + 70px); }
.wk-top { position: sticky; top: var(--top); z-index: 40; background: rgba(255,247,236,.94); backdrop-filter: blur(8px); }
.wk-top-in { max-width: 1160px; margin: 0 auto; height: 68px; padding: 0 22px; display: flex; align-items: center; gap: 22px; }
.wk-brand .logo-text { font-family: var(--font-head); font-weight: 600; font-size: 24px; color: var(--accent); }
.wk-brand .logo-img { height: 34px; width: auto; }
.wk-nav { margin-left: auto; display: flex; gap: 4px; }
.wk-link { padding: 9px 16px; border-radius: 999px; font-weight: 700; font-size: 15px; color: var(--muted); }
.wk-link:hover { background: var(--bg-alt); color: var(--text); }
.wk-cart { background: var(--accent); color: #fff; border: 0; border-radius: 999px; padding: 10px 18px; font-weight: 800; }
.wk-cart .cart-count { background: #fff; color: var(--accent); }
.wk-cart:not(.has-items) .cart-count { display: none; }
.wk-hero { text-align: center; padding: 34px 22px 0; background: linear-gradient(#fff7ec, #fbe9d3 80%); border-radius: 0 0 56px 56px; overflow: hidden; }
.wk-hero-in { max-width: 720px; margin: 0 auto; }
.wk-hand { font-family: var(--hand); font-weight: 700; font-size: 30px; color: var(--accent); line-height: 1; transform: rotate(-2deg); }
.wk-hero h1 { font-size: clamp(42px, 8vw, 84px); margin-top: 6px; overflow-wrap: anywhere; }
.wk-lead { font-size: 18px; line-height: 1.6; color: var(--muted); margin: 16px auto 0; max-width: 46ch; }
.wk-btn { min-height: 52px; padding: 0 26px; border-radius: 999px; border: 2px solid var(--accent); color: var(--accent); font-weight: 800; font-size: 16px; }
.wk-btn:hover { background: var(--primary-soft); }
.wk-btn-main { background: var(--accent); color: #fff; }
.wk-btn-main:hover { background: var(--accent); filter: brightness(.92); }
.wk-arch { position: relative; width: min(460px, 92%); margin: 38px auto 0; aspect-ratio: 4 / 4.6; border-radius: 999px 999px 0 0; overflow: visible; }
.wk-arch-img { width: 100%; height: 100%; border-radius: 999px 999px 0 0; overflow: hidden; display: block; }
.wk-open { display: inline-flex; align-items: center; gap: 8px; margin: 30px 0 40px; font-weight: 700; }
.wk-dot { width: 10px; height: 10px; border-radius: 50%; background: #2f9e5b; }
.wk-dot.is-closed { background: #c0392b; }
.wk-sec { max-width: 1160px; margin: 0 auto; padding: 60px 22px 0; }
.wk-h2 { font-size: clamp(30px, 4vw, 42px); }
.wk-offers { margin-top: 18px; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.wk-loy { max-width: 640px; }
.wk-stamp { background: #fff; border: 2px solid var(--line); border-radius: 28px; padding: 26px; }
.wk-menu-head { text-align: center; }
.wk-note { color: var(--muted); margin-top: 8px; }
.wk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.wk-card { background: #fff; border-radius: 28px; overflow: hidden; border: 2px solid var(--line); display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.wk-card:hover { transform: translateY(-3px); box-shadow: 0 18px 34px -20px rgba(58,36,24,.55); }
.wk-photo { aspect-ratio: 5 / 4; background: var(--bg-alt); overflow: hidden; display: grid; place-items: center; color: var(--accent); }
.wk-img { width: 100%; height: 100%; }
.wk-body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.wk-row { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.wk-tag { flex: none; background: var(--accent); color: #fff; font-weight: 800; font-size: 15px; padding: 5px 12px; border-radius: 999px 999px 999px 6px; transform: rotate(3deg); white-space: nowrap; }
.wk-body p { color: var(--muted); font-size: 15px; line-height: 1.5; margin-top: 8px; }
.wk-act { margin-top: auto; padding-top: 16px; }
.wk-act .add-btn, .wk-act .stepper { width: 100%; justify-content: center; min-height: 46px; border-radius: 999px; }
.wk-act .add-btn { background: var(--primary-soft); color: var(--accent); border: 2px solid transparent; font-weight: 800; }
.wk-act .add-btn:hover { background: var(--accent); color: #fff; }
.wk-act .stepper { justify-content: space-between; }
.wk-act .stepper button { width: 56px; height: 100%; }
.wk-card.is-off { opacity: .6; }
.wk-find-card { background: var(--bg-alt); border-radius: 36px; padding: 36px; display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.wk-find-card .hours-row { border-bottom-color: var(--line-strong); }
.wk-foot { padding: 48px 20px 60px; text-align: center; color: var(--muted); }
.wk-bar { display: none; }
@media (max-width: 899px) {
  .wk-top-in { height: 58px; padding: 0 14px; }
  .wk-nav { display: none; }
  .wk-cart.has-items { display: none; }
  .wk-cart { margin-left: auto; }
  .wk-hero { padding: 24px 16px 0; border-radius: 0 0 36px 36px; }
  .wk-hand { font-size: 26px; }
  .wk-lead { font-size: 16.5px; }
  .wk-btn { flex: 1 1 auto; justify-content: center; text-align: center; }
    .wk-sec { padding: 44px 14px 0; }
  .wk-grid { grid-template-columns: 1fr; gap: 18px; }
  .wk-find-card { grid-template-columns: 1fr; padding: 26px 20px; border-radius: 28px; }
    .wk-foot { padding-bottom: 150px; }
  .wk-bar { display: flex; align-items: center; gap: 10px; position: fixed; left: 14px; right: 14px; bottom: calc(72px + env(safe-area-inset-bottom)); z-index: 60; height: 56px; padding: 0 22px; border-radius: 999px; background: var(--accent); color: #fff; font-weight: 800; box-shadow: 0 14px 28px -10px rgba(58,36,24,.7); }
  .wk-bar span { flex: 1; text-align: left; }
}
.wk-c { text-align: center; }
.wk-h1 { font-family: var(--font-head); font-weight: 600; text-align: center; font-size: clamp(40px, 6vw, 68px); margin: 4px 0 30px; }
.wk-h3 { font-size: 24px; text-align: center; margin: 56px 0 18px; }
.wk-gap { margin-top: 16px; }
.wk-hero { padding-bottom: 0; }
.wk-arch { margin-top: 30px; }
.wk-menu { text-align: center; padding-top: 52px; }
.wk-cats { margin-top: 28px; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 22px; text-align: left; }
.wk-cats-sm { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.wk-cat-card { display: flex; flex-direction: column; background: #fff; border: 2px solid var(--line); border-radius: 30px; overflow: hidden; transition: transform .2s, box-shadow .2s; text-align: left; }
.wk-cat-card:hover { transform: translateY(-4px); box-shadow: 0 20px 36px -22px rgba(58,36,24,.6); }
.wk-cat-pic { aspect-ratio: 4 / 3; background: var(--bg-alt); display: grid; place-items: center; color: var(--accent); overflow: hidden; border-radius: 0 0 0 0; }
.wk-c0 .wk-cat-pic.no-pic { background: #fbe3d6; } .wk-c1 .wk-cat-pic.no-pic { background: #fdeabf; } .wk-c2 .wk-cat-pic.no-pic { background: #e6edcf; } .wk-c3 .wk-cat-pic.no-pic { background: #ffe0c2; }
.wk-cat-img { width: 100%; height: 100%; }
.wk-cat-t { padding: 16px 20px 18px; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.wk-cat-t strong { font-family: var(--font-head); font-weight: 600; font-size: 22px; }
.wk-cat-t small { display: inline-flex; align-items: center; gap: 6px; color: var(--accent); font-weight: 800; font-size: 13.5px; white-space: nowrap; }
.wk-page { max-width: 1160px; margin: 0 auto; padding: 22px 22px 0; }
.wk-crumb { margin-bottom: 14px; }
.wk-back { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; color: var(--accent); padding: 8px 14px; border-radius: 999px; background: var(--primary-soft); }
.wk-back .ic { transform: rotate(180deg); }
.wk-back:hover { background: var(--accent); color: #fff; }
.tpl-wkitchen .sheet { background: #fff7ec; border-radius: 28px 0 0 28px; }
@media (max-width: 899px) {
  .wk-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .wk-cat-card { border-radius: 24px; }
  .wk-cat-t { flex-direction: column; align-items: flex-start; padding: 12px 14px 14px; gap: 2px; }
  .wk-cat-t strong { font-size: 19px; }
  .wk-page { padding: 14px 14px 0; }
  .tpl-wkitchen .sheet { border-radius: 0; }
}
.wk-tn { margin: 22px auto 0; max-width: 760px; text-align: left; border: 2px dashed var(--line-strong); border-radius: 22px; padding: 14px 20px; }
@media (max-width: 899px) {
  .wk-top-in { flex-wrap: wrap; height: auto; padding: 8px 14px 6px; gap: 4px 10px; }
  .wk-nav { display: flex; order: 3; width: 100%; gap: 4px; overflow-x: auto; scrollbar-width: none; padding-bottom: 6px; }
  .wk-link { flex: none; padding: 7px 14px; font-size: 14px; background: var(--bg-alt); }
  .wk-cart { margin-left: auto; }
  .wk-cart.has-items { display: inline-flex; }
}
.tpl-wkitchen { --accent: #b24726; }
.wk-photo.no-pic { aspect-ratio: 5 / 2; }
.wk-find-row { display: grid; gap: 14px; max-width: 720px; padding-top: 34px; }
.wk-search { background: #fff; border: 2px solid var(--line-strong); height: 58px; }
.wk-search .ic { color: var(--accent); }
.wk-track { background: #fff; border: 2px solid var(--line-strong); }
.wk-favs { margin-top: 28px; }
.wk-h2.wk-c { text-align: center; }
.wk-cat { margin: 40px 0 18px; font-size: 28px; text-align: center; }
@media (max-width: 899px) { .wk-find-row { padding: 26px 14px 0; } }
.tpl-cdining {
  --bg: #fbf8f1; --bg-alt: #f2ecdd; --card: #fffdf8; --text: #1d2740; --muted: #5d6578; --line: #ddd3bd; --line-strong: #c9bc9c;
  --font-body: 'Libre Baskerville', Georgia, serif; --font-head: 'Cormorant Garamond', Georgia, serif;
  --radius: 2px; --btn-radius: 2px; --btn-track: .14em; --btn-transform: uppercase; --btn-weight: 400;
  --accent: #1d2740; --on-accent: #fbf8f1; --brass: #a68a4b; --primary-soft: #efe8d6;
}
.tpl-cdining { font-size: 15.5px; line-height: 1.7; }
.tpl-cdining h1, .tpl-cdining h2, .tpl-cdining h3 { font-family: var(--font-head); font-weight: 600; line-height: 1.1; }
.tpl-cdining h4 { font-family: var(--font-head); font-weight: 600; font-size: 22px; line-height: 1.2; }
.tpl-cdining .btn { border: 1px solid var(--text); background: transparent; font-size: 12px; font-weight: 700; border-radius: 0; font-family: var(--font-body); }
.tpl-cdining .btn:hover { background: var(--text); color: var(--bg); }
.tpl-cdining .btn-primary { background: var(--text); color: var(--bg); }
.tpl-cdining .btn-primary:hover { background: var(--brass); border-color: var(--brass); filter: none; }
.tpl-cdining .field { border-radius: 0; border: 1px solid var(--line-strong); background: var(--card); }
.tpl-cdining .drawer { background: var(--bg); border-left: 1px solid var(--brass); }
.tpl-cdining .drawer-head h2 { font-size: 30px; font-weight: 600; }
.tpl-cdining .stepper { border-radius: 0; border-color: var(--text); }
.tpl-cdining .stepper button:hover:not(:disabled) { background: var(--text); color: var(--bg); }
.tpl-cdining .pay-opt { border-radius: 0; background: var(--card); }
.tpl-cdining .pay-opt.is-on { border-color: var(--brass); box-shadow: 0 0 0 1px var(--brass); }
.tpl-cdining .totals-final { border-top: 1px solid var(--text); font-family: var(--font-head); font-size: 24px; }
.tpl-cdining .offer { background: var(--card); border: 1px solid var(--line-strong); padding: 22px; align-items: center; outline: 1px solid var(--line); outline-offset: -7px; }
.tpl-cdining .offer-value { font-family: var(--font-head); font-size: 32px; font-weight: 600; color: var(--brass); }
.tpl-cdining .offer-name { font-family: var(--font-head); font-size: 24px; font-weight: 600; }
.tpl-cdining .offer-meta code { background: var(--bg-alt); border-color: var(--line-strong); }
.tpl-cdining .stamp { border-color: var(--brass); }
.tpl-cdining .stamp.is-filled { background: var(--text); border-color: var(--text); }
.tpl-cdining .date-chip, .tpl-cdining .slot { border-radius: 0; border-color: var(--line-strong); background: var(--card); }
.tpl-cdining .date-chip.is-selected, .tpl-cdining .slot.is-selected { background: var(--text); border-color: var(--text); color: var(--bg); }
.tpl-cdining .step-n { border-color: var(--brass); color: var(--brass); font-family: var(--font-head); font-weight: 600; font-size: 15px; }
.tpl-cdining .dc-day { font-family: var(--font-head); }
.tpl-cdining .sms-note { border-radius: 0; }
.tpl-cdining [id] { scroll-margin-top: calc(var(--top) + 90px); }
.cd-top { border-bottom: 1px solid var(--line); background: var(--bg); position: sticky; top: var(--top); z-index: 40; }
.cd-top-in { max-width: 1100px; margin: 0 auto; padding: 0 24px; min-height: 78px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; }
.cd-nav { display: flex; gap: 22px; align-items: center; }
.cd-nav-r { justify-content: flex-end; }
.cd-link { font-family: var(--font-body); font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.cd-link:hover { color: var(--text); }
.cd-brand .logo-text { font-family: var(--font-head); font-weight: 600; font-size: 32px; letter-spacing: .02em; }
.cd-brand .logo-img { height: 40px; width: auto; }
.cd-cart { border: 1px solid var(--text); border-radius: 0; padding: 8px 14px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.cd-cart .cart-count { display: none; }
.cd-hero { max-width: 960px; margin: 0 auto; padding: 56px 24px 24px; text-align: center; }
.cd-over { font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--brass); }
.cd-hero h1 { font-size: clamp(50px, 9vw, 104px); margin-top: 14px; font-weight: 500; letter-spacing: -.01em; overflow-wrap: anywhere; }
.cd-orn { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 22px 0; }
.cd-orn span { width: 74px; height: 1px; background: var(--brass); }
.cd-orn i { width: 9px; height: 9px; background: var(--brass); transform: rotate(45deg); }
.cd-lead { font-family: var(--font-head); font-style: italic; font-size: 24px; line-height: 1.4; color: var(--muted); max-width: 34ch; margin: 0 auto; }
.cd-hours { margin-top: 22px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
.cd-note { text-align: center; font-style: italic; color: var(--muted); margin-top: -10px; }
.cd-offers { display: grid; gap: 16px; }
.cd-stamp { border: 1px solid var(--line-strong); padding: 28px; background: var(--card); }
.cd-stamp .stamp-row { justify-content: center; margin-inline: auto; }
.cd-cat { text-align: center; font-size: 17px; letter-spacing: .3em; text-transform: uppercase; color: var(--brass); margin: 54px 0 26px; font-weight: 600; }
.cd-cat span { display: inline-block; padding: 0 18px; position: relative; }
.cd-cat span::before, .cd-cat span::after { content: '◆'; font-size: 8px; position: absolute; top: 50%; transform: translateY(-50%); }
.cd-cat span::before { left: -10px; } .cd-cat span::after { right: -10px; }
.cd-list { display: flex; flex-direction: column; gap: 24px; }
.cd-line { display: flex; align-items: baseline; gap: 10px; }
.cd-dots { flex: 1; border-bottom: 2px dotted var(--line-strong); transform: translateY(-4px); min-width: 20px; }
.cd-price { font-family: var(--font-head); font-weight: 600; font-size: 21px; white-space: nowrap; }
.cd-desc { font-style: italic; color: var(--muted); font-size: 14.5px; margin-top: 2px; padding-right: 64px; }
.cd-act { margin-top: 4px; }
.cd-add.add-btn { min-height: 0; padding: 0; border: 0; background: none; color: var(--brass); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; border-bottom: 1px solid var(--brass); border-radius: 0; gap: 0; }
.cd-add.add-btn:hover { background: none; color: var(--text); border-bottom-color: var(--text); }
.cd-add .add-ic { display: none; }
.cd-add.stepper { border-radius: 0; }
.cd-add.stepper button { width: 30px; height: 30px; }
.cd-dish.is-off h4, .cd-dish.is-off .cd-price { opacity: .5; text-decoration: line-through; }
.cd-foot { padding: 70px 20px 80px; text-align: center; color: var(--muted); font-size: 12.5px; }
.cd-bar { display: none; }
@media (max-width: 899px) {
  .cd-top-in { grid-template-columns: 1fr; min-height: 0; padding: 14px 16px 10px; gap: 8px; justify-items: center; }
  .cd-brand { order: -1; }
  .cd-nav { gap: 6px 16px; flex-wrap: wrap; justify-content: center; }
  .cd-nav-r { justify-content: center; }
  .cd-cart { display: none; }
  .cd-brand .logo-text { font-size: 28px; }
  .cd-hero { padding: 36px 16px 8px; }
  .cd-lead { font-size: 21px; }
        .cd-desc { padding-right: 0; }
      .cd-foot { padding-bottom: 130px; }
  .cd-bar { display: flex; align-items: center; gap: 12px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: 16px 20px calc(16px + env(safe-area-inset-bottom)); background: var(--text); color: var(--bg); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
  .cd-bar strong { font-family: var(--font-head); font-size: 20px; letter-spacing: 0; text-transform: none; }
  .cd-bar em { margin-left: auto; font-style: normal; display: inline-flex; align-items: center; gap: 6px; color: var(--brass); }
}
.cd-hero { padding-bottom: 8px; }
.cd-link { background: none; }
.cd-book { max-width: 780px; margin: 38px auto 0; padding: 0 24px; border-top: 1px solid var(--line-strong); }
.cd-ch { border-bottom: 1px solid var(--line-strong); }
.cd-ch-head { width: 100%; display: grid; grid-template-columns: 54px 1fr 40px; align-items: center; gap: 8px; padding: 26px 0; text-align: left; }
.cd-ch-no { font-family: var(--font-head); font-size: 26px; color: var(--brass); font-weight: 600; }
.cd-ch-t strong { display: block; font-family: var(--font-head); font-weight: 600; font-size: clamp(26px, 4vw, 36px); letter-spacing: .02em; line-height: 1.1; }
.cd-ch-t small { font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: var(--muted); }
.cd-ch-pm { font-family: var(--font-head); font-size: 34px; color: var(--brass); text-align: center; }
.cd-ch-head:hover .cd-ch-t strong { color: var(--brass); }
.cd-ch-body { padding: 0 0 54px 0; animation: cd-open .22s ease-out; }
@keyframes cd-open { from { opacity: 0; } to { opacity: 1; } }
.cd-ch-body .cd-cat:first-of-type, .cd-ch-body .menu-cat:first-child .cd-cat { margin-top: 10px; }
.cd-offers { display: grid; gap: 16px; }
.cd-loy { margin-top: 28px; text-align: center; }
.cd-stamp { border: 1px solid var(--line-strong); padding: 28px; background: var(--card); }
.cd-stamp .stamp-row { justify-content: center; margin-inline: auto; }
.cd-photo { margin: 0 0 34px; aspect-ratio: 21 / 9; padding: 8px; border: 1px solid var(--line-strong); background: var(--card); }
.cd-photo-img { width: 100%; height: 100%; }
.cd-ch-body .c-res { max-width: none; border: 1px solid var(--line-strong); background: var(--card); padding: 32px; outline: 1px solid var(--line); outline-offset: -8px; }
.cd-ch-body .c-res-head { display: none; }
@media (max-width: 899px) {
  .cd-book { padding: 0 16px; margin-top: 26px; }
  .cd-ch-head { grid-template-columns: 40px 1fr 30px; padding: 20px 0; }
  .cd-ch-body .c-res { padding: 20px 14px; }
}
.cd-tn { margin: 0 0 34px; border-color: var(--line-strong); font-style: italic; }
.cd-add.add-btn { min-height: 44px; display: inline-flex; align-items: center; }
.cd-link { min-height: 44px; display: inline-flex; align-items: center; }
.cd-act { margin-top: 0; }
.cd-photo-top { margin: 34px auto 0; max-width: 1000px; aspect-ratio: 21 / 8; padding: 10px; border: 1px solid var(--line-strong); background: var(--card); }
.cd-search { margin: 6px 0 14px; }
.cd-sf { border-radius: 0; background: var(--card); border-color: var(--line-strong); height: 52px; }
.cd-sf .ic { color: var(--brass); }
.cd-track { border-radius: 0; background: var(--card); border-color: var(--line-strong); margin-bottom: 8px; }
.cd-meds { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; text-align: center; margin-bottom: 18px; }
.cd-med { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.cd-med-pic { width: 150px; height: 150px; border-radius: 50%; overflow: hidden; border: 1px solid var(--brass); padding: 6px; background: var(--card); display: block; }
.cd-med-img { width: 100%; height: 100%; border-radius: 50%; overflow: hidden; display: block; }
.cd-med h4 { font-size: 20px; }
@media (max-width: 899px) { .cd-meds { grid-template-columns: 1fr; } .cd-photo-top { aspect-ratio: 16 / 9; padding: 6px; } }
.tpl-olive {
  --bg: #f4f1e2; --bg-alt: #e9e5cf; --card: #fbf9ef; --text: #2c3316; --muted: #6a7152; --line: #dcd8be; --line-strong: #c3bf9f;
  --font-body: 'DM Sans', system-ui, sans-serif; --font-head: 'DM Serif Display', Georgia, serif; --hand: 'Caveat', cursive;
  --radius: 14px; --btn-radius: 12px; --btn-track: .01em; --btn-transform: none; --btn-weight: 700;
  --accent: #55662a; --on-accent: #fbf9ef; --terra: #c2663a; --primary-soft: #e4ead0;
  --plus-size: 40px; --plus-bg: #55662a; --plus-fg: #fbf9ef; --plus-line: #55662a; --plus-shadow: none; --plus-radius: 50%;
}
.tpl-olive h1, .tpl-olive h2, .tpl-olive h3 { font-family: var(--font-head); font-weight: 400; line-height: 1.05; letter-spacing: -.005em; }
.tpl-olive h4 { font-family: var(--font-head); font-weight: 400; font-size: 22px; line-height: 1.15; }
.tpl-olive .btn { background: var(--card); border: 1.5px solid var(--line-strong); }
.tpl-olive .btn:hover { border-color: var(--accent); background: var(--primary-soft); }
.tpl-olive .btn-primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.tpl-olive .field { background: var(--card); border-color: var(--line-strong); }
.tpl-olive .drawer, .tpl-olive .drawer-foot { background: #f4f1e2; }
.tpl-olive .drawer-head h2 { font-size: 30px; }
.tpl-olive .stepper { border-color: var(--line-strong); background: var(--card); }
.tpl-olive .stepper button:hover:not(:disabled) { background: var(--accent); color: var(--on-accent); }
.tpl-olive .pay-opt { background: var(--card); }
.tpl-olive .pay-opt.is-on { border-color: var(--accent); }
.tpl-olive .totals-final { font-family: var(--font-head); font-weight: 400; font-size: 24px; }
.tpl-olive .offer { background: var(--card); border: 1px solid var(--line-strong); border-radius: 18px; padding: 18px 20px; align-items: center; }
.tpl-olive .offer-value { font-family: var(--font-head); color: var(--terra); font-size: 32px; }
.tpl-olive .offer-name { font-family: var(--font-head); font-weight: 400; font-size: 21px; }
.tpl-olive .offer-meta code { background: var(--bg-alt); border-color: var(--line-strong); }
.tpl-olive .stamp.is-filled { background: var(--accent); border-color: var(--accent); }
.tpl-olive .date-chip, .tpl-olive .slot { background: var(--card); border-color: var(--line-strong); }
.tpl-olive .date-chip.is-selected, .tpl-olive .slot.is-selected { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.tpl-olive .step-n { background: var(--primary-soft); border-color: transparent; color: var(--accent); font-weight: 800; }
.tpl-olive .dc-day { font-family: var(--font-head); font-weight: 400; }
.tpl-olive .tabbar { background: #fbf9ef; border-top-color: var(--line); }
.tpl-olive [id] { scroll-margin-top: calc(var(--top) + 70px); }
.ol-top { position: sticky; top: var(--top); z-index: 40; background: rgba(244,241,226,.94); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
.ol-top-in { max-width: 1120px; margin: 0 auto; height: 66px; padding: 0 22px; display: flex; align-items: center; gap: 24px; }
.ol-brand .logo-text { font-family: var(--font-head); font-size: 26px; color: var(--accent); }
.ol-brand .logo-img { height: 34px; width: auto; }
.ol-nav { margin-left: auto; display: flex; gap: 22px; }
.ol-link { font-size: 15px; font-weight: 500; color: var(--muted); padding: 6px 0; border-bottom: 2px solid transparent; }
.ol-link:hover { color: var(--text); border-bottom-color: var(--terra); }
.ol-cart { border: 1.5px solid var(--accent); color: var(--accent); border-radius: 999px; padding: 8px 16px; font-weight: 700; }
.ol-cart.has-items { background: var(--accent); color: var(--on-accent); }
.ol-cart .cart-count { background: var(--on-accent); color: var(--accent); }
.ol-cart:not(.has-items) .cart-count { display: none; }
.ol-hero { padding: 44px 22px 20px; overflow: clip; }
.ol-hero-in { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 40px; align-items: center; }
.ol-hand { font-family: var(--hand); font-weight: 700; font-size: 28px; color: var(--terra); line-height: 1; }
.ol-hero h1 { font-size: clamp(46px, 7vw, 92px); margin-top: 8px; overflow-wrap: anywhere; }
.ol-lead { font-size: 18px; line-height: 1.6; color: var(--muted); margin-top: 16px; max-width: 44ch; }
.ol-cta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 26px; }
.ol-btn { min-height: 52px; padding: 0 26px; border: 2px solid var(--accent); border-radius: 12px; font-weight: 700; color: var(--accent); display: inline-flex; align-items: center; }
.ol-btn:hover { background: var(--primary-soft); }
.ol-btn-main { background: var(--accent); color: var(--on-accent); }
.ol-btn-main:hover { background: var(--accent); filter: brightness(.92); }
.ol-small { margin-top: 22px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14.5px; color: var(--muted); }
.ol-small .ic { color: var(--terra); }
.ol-small span { opacity: .5; margin: 0 4px; }
.ol-circle { position: relative; width: min(440px, 86%); aspect-ratio: 1; justify-self: center; border-radius: 50%; }
.ol-circle::before { content: ''; position: absolute; inset: -16px; border-radius: 50%; border: 2px dashed var(--terra); opacity: .7; }
.ol-circle-img { width: 100%; height: 100%; border-radius: 50%; overflow: hidden; display: block; }
.ol-sec { max-width: 1120px; margin: 0 auto; padding: 64px 22px 0; }
.ol-h2 { font-size: clamp(30px, 4vw, 44px); }
.ol-loy { max-width: 640px; }
.ol-stamp { background: var(--card); border: 1px solid var(--line-strong); border-radius: 22px; padding: 26px; }
.ol-menu { max-width: 900px; }
.ol-note { text-align: center; color: var(--muted); margin-top: 6px; }
.ol-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 6px; margin: 28px 0 8px; border-bottom: 1px solid var(--line-strong); padding-bottom: 6px; }
.ol-tab { font-family: var(--font-head); font-size: 24px; padding: 8px 16px; color: var(--muted); border-radius: 12px; position: relative; }
.ol-tab:hover { color: var(--text); }
.ol-tab.is-on { color: var(--accent); }
.ol-tab.is-on::after { content: ''; position: absolute; left: 14px; right: 14px; bottom: 2px; height: 6px; background: radial-gradient(circle at 4px 3px, var(--terra) 2.6px, transparent 3px) 0 0 / 12px 6px repeat-x; }
.ol-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 44px; }
.ol-row { display: grid; grid-template-columns: 88px 1fr auto; gap: 16px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); }
.ol-dot { width: 88px; height: 88px; border-radius: 50%; overflow: hidden; background: var(--bg-alt); display: grid; place-items: center; border: 3px solid var(--card); box-shadow: 0 0 0 1.5px var(--line-strong); font-family: var(--font-head); font-size: 34px; color: var(--accent); }
.ol-img { width: 100%; height: 100%; }
.ol-text p { color: var(--muted); font-size: 14.5px; line-height: 1.45; margin-top: 3px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ol-price { display: inline-block; margin-top: 6px; font-weight: 700; color: var(--terra); font-size: 16px; }
.ol-row.is-off { opacity: .55; }
.ol-res .c-res { max-width: 700px; margin: 0 auto; background: var(--card); border: 1px solid var(--line-strong); border-radius: 26px; padding: 34px; }
.ol-res .eyebrow { font-family: var(--hand); font-size: 24px; letter-spacing: 0; text-transform: none; color: var(--terra); }
.ol-res .sec-title { font-family: var(--font-head); font-weight: 400; }
.ol-find-card { background: var(--bg-alt); border-radius: 32px; padding: 36px; display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.ol-find-card .hours-row { border-bottom-color: var(--line-strong); }
.ol-foot { padding: 50px 20px 60px; text-align: center; color: var(--muted); }
.ol-bar { display: none; }
@media (max-width: 899px) {
  .ol-top-in { height: 58px; padding: 0 14px; }
  .ol-nav { display: none; }
  .ol-cart { margin-left: auto; }
  .ol-cart.has-items { display: none; }
  .ol-hero { padding: 28px 16px 8px; }
  .ol-hero-in { grid-template-columns: 1fr; gap: 40px; }
  .ol-circle { order: -1; width: min(300px, 78%); }
  .ol-sec { padding: 48px 14px 0; }
  .ol-tabs { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; scrollbar-width: none; margin-inline: -14px; padding-inline: 14px; }
  .ol-tabs::-webkit-scrollbar { display: none; }
  .ol-tab { flex: none; font-size: 21px; padding: 8px 12px; }
  .ol-list { grid-template-columns: 1fr; }
  .ol-row { grid-template-columns: 72px 1fr auto; gap: 12px; padding: 16px 0; }
  .ol-dot { width: 72px; height: 72px; }
  .ol-find-card { grid-template-columns: 1fr; padding: 26px 20px; border-radius: 26px; }
  .ol-res .c-res { padding: 22px 16px; }
  .ol-foot { padding-bottom: 150px; }
  .ol-bar { display: flex; align-items: center; gap: 10px; position: fixed; left: 14px; right: 14px; bottom: calc(68px + env(safe-area-inset-bottom)); z-index: 60; height: 54px; padding: 0 20px; border-radius: 16px; background: var(--accent); color: var(--on-accent); font-weight: 700; box-shadow: 0 12px 24px -10px rgba(44,51,22,.7); }
  .ol-bar span { flex: 1; text-align: left; }
}
.ol-c { text-align: center; }
.ol-gap { margin-top: 24px; }
.ol-link { background: none; padding: 6px 2px; }
.ol-link.is-on { color: var(--accent); border-bottom-color: var(--terra); }
.ol-main { min-height: 62vh; }
.ol-taste { margin-top: 30px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; text-align: center; }
.ol-tcard { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.ol-tpic { width: min(190px, 100%); aspect-ratio: 1; border-radius: 50%; overflow: hidden; border: 4px solid var(--card); box-shadow: 0 0 0 2px var(--line-strong); display: block; margin-bottom: 8px; }
.ol-timg { width: 100%; height: 100%; }
.ol-find-card h3 { font-family: var(--font-head); font-size: 24px; margin-bottom: 12px; font-weight: 400; }
.ol-about { margin-top: 16px; color: var(--muted); }
.ol-res .c-res { margin-top: 22px; }
.ol-res .c-res-head { display: none; }
@media (max-width: 899px) {
  .ol-top-in { flex-wrap: wrap; height: auto; padding: 10px 14px 0; gap: 6px 12px; }
  .ol-cart { margin-left: auto; }
  .ol-nav { order: 3; width: 100%; margin-left: 0; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-bottom: 6px; }
  .ol-link { flex: none; padding: 8px 14px; border-bottom-width: 3px; font-size: 15.5px; }
  .ol-taste { grid-template-columns: 1fr; gap: 20px; }
  .ol-tpic { width: 150px; }
  .ol-bar { bottom: calc(14px + env(safe-area-inset-bottom)); }
}
.ol-tn { margin: 18px auto 0; max-width: 720px; border-color: var(--line-strong); }
.tpl-olive { --terra-ink: #a24a1c; }
.ol-price, .tpl-olive .offer-value, .ol-hand { color: var(--terra-ink); }
.tpl-olive { --plus-size: 44px; }
.ol-find-row { padding-top: 34px; max-width: 760px; }
.ol-search { max-width: 560px; margin: 22px auto 0; }
.ol-sf { background: var(--card); border-color: var(--line-strong); height: 56px; }
.ol-sf .ic { color: var(--terra); }
.ol-track { background: var(--card); border-color: var(--line-strong); max-width: 760px; margin: 16px auto 0; }
.ol-taste { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ol-tcard { padding-bottom: 6px; }
.ol-tcard .c-plus, .ol-tcard .c-step { margin-top: 8px; }
@media (max-width: 899px) { .ol-taste { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ol-find-row { padding: 26px 14px 0; } }
.tpl-ubistro {
  --bg: #121416; --bg-alt: #1a1d20; --card: #171a1d; --text: #ecebe6; --muted: #98a0a6; --line: #2d3236; --line-strong: #454c52;
  --font-body: 'IBM Plex Sans', system-ui, sans-serif; --font-head: 'IBM Plex Sans', system-ui, sans-serif; --mono: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --radius: 0px; --btn-radius: 0px; --btn-track: .08em; --btn-transform: uppercase; --btn-weight: 600;
  --accent: #ffb400; --on-accent: #151100; --primary-soft: #2e2608;
  --plus-size: 44px; --plus-radius: 0px; --plus-bg: transparent; --plus-fg: #ffb400; --plus-line: #ffb400; --plus-shadow: none;
}
.tpl-ubistro { font-size: 15px; }
.tpl-ubistro h1, .tpl-ubistro h2, .tpl-ubistro h3 { font-family: var(--font-head); font-weight: 600; line-height: 1; letter-spacing: -.01em; }
.tpl-ubistro h4 { font-weight: 600; font-size: 16.5px; line-height: 1.25; }
.tpl-ubistro .btn { background: transparent; border: 1px solid var(--line-strong); color: var(--text); font-size: 13px; }
.tpl-ubistro .btn:hover { border-color: var(--accent); background: var(--primary-soft); }
.tpl-ubistro .btn-primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.tpl-ubistro .btn-primary:hover { background: var(--accent); filter: brightness(1.08); }
.tpl-ubistro .field { background: #0f1113; border-color: var(--line-strong); color: var(--text); }
.tpl-ubistro .field::placeholder { color: #6a7278; }
.tpl-ubistro .drawer, .tpl-ubistro .drawer-foot { background: #15181a; }
.tpl-ubistro .drawer { border-left: 1px solid var(--accent); }
.tpl-ubistro .drawer-head h2 { font-size: 24px; text-transform: uppercase; letter-spacing: .04em; }
.tpl-ubistro .stepper { border-color: var(--line-strong); }
.tpl-ubistro .stepper button:hover:not(:disabled) { background: var(--accent); color: var(--on-accent); }
.tpl-ubistro .pay-opt { background: #0f1113; }
.tpl-ubistro .pay-opt.is-on { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.tpl-ubistro .totals-final { border-top-color: var(--accent); font-family: var(--mono); }
.tpl-ubistro .cl-total, .tpl-ubistro .cl-unit, .tpl-ubistro .totals dd { font-family: var(--mono); }
.tpl-ubistro .err-block { background: #2b1412; border-color: #70302a; }
.tpl-ubistro .offer { border: 1px solid var(--line-strong); padding: 16px 18px; align-items: center; background: var(--card); }
.tpl-ubistro .offer-value { font-family: var(--mono); color: var(--accent); font-size: 24px; font-weight: 700; }
.tpl-ubistro .offer-meta code { background: #0f1113; border-color: var(--line-strong); color: var(--accent); }
.tpl-ubistro .stamp { border-radius: 0; border-color: var(--line-strong); }
.tpl-ubistro .stamp.is-filled { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.tpl-ubistro .date-chip, .tpl-ubistro .slot { background: #0f1113; border-color: var(--line-strong); }
.tpl-ubistro .date-chip.is-selected, .tpl-ubistro .slot.is-selected { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.tpl-ubistro .step-n { border-radius: 0; border-color: var(--accent); color: var(--accent); font-family: var(--mono); }
.tpl-ubistro .sms-note { background: #0f1113; }
.tpl-ubistro .tabbar { background: #0e1012; border-top: 1px solid var(--line-strong); }
.tpl-ubistro .tabbar button { color: var(--muted); }
.tpl-ubistro [id] { scroll-margin-top: calc(var(--top) + 70px); }
.ub-shell { display: grid; grid-template-columns: 300px minmax(0, 1fr); max-width: 1480px; margin: 0 auto; }
.ub-side { border-right: 1px solid var(--line-strong); }
.ub-side-in { position: sticky; top: var(--top); height: calc(100vh - var(--top)); overflow-y: auto; padding: 24px 22px; display: flex; flex-direction: column; gap: 20px; }
.ub-brand { display: inline-flex; align-items: center; gap: 10px; text-align: left; }
.ub-brand i { width: 14px; height: 14px; background: var(--accent); flex: none; }
.ub-brand .logo-text { font-weight: 700; font-size: 18px; text-transform: uppercase; letter-spacing: .1em; }
.ub-brand .logo-img { height: 30px; width: auto; }
.ub-thumb { aspect-ratio: 16 / 10; border: 1px solid var(--line-strong); overflow: hidden; }
.ub-thumb-img { width: 100%; height: 100%; filter: grayscale(.5) contrast(1.05); }
.ub-spec { border: 1px solid var(--line-strong); }
.ub-spec > div { padding: 10px 12px; border-top: 1px solid var(--line); }
.ub-spec > div:first-child { border-top: 0; }
.ub-spec dt { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.ub-spec dd { font-weight: 600; font-size: 14.5px; margin-top: 2px; }
.ub-spec dd.is-open { color: #5fe08a; } .ub-spec dd.is-closed { color: #ff7b6e; }
.ub-spec a:hover { color: var(--accent); }
.ub-index ol { border: 1px solid var(--line-strong); }
.ub-index li + li { border-top: 1px solid var(--line); }
.ub-cats { margin-top: 12px; }
.ub-idx { width: 100%; display: grid; grid-template-columns: 30px 1fr auto; gap: 8px; align-items: center; padding: 10px 12px; text-align: left; font-size: 14px; }
.ub-idx b { font-family: var(--mono); font-weight: 500; color: var(--accent); font-size: 12.5px; }
.ub-idx em { font-style: normal; font-family: var(--mono); font-size: 12px; color: var(--muted); }
.ub-idx:hover { background: var(--bg-alt); color: var(--accent); }
.ub-cart { border: 1px solid var(--accent); color: var(--accent); padding: 12px 14px; font-size: 13px; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; border-radius: 0; justify-content: center; margin-top: auto; }
.ub-cart.has-items { background: var(--accent); color: var(--on-accent); }
.ub-cart .cart-count { background: var(--on-accent); color: var(--accent); border-radius: 0; }
.ub-cart:not(.has-items) .cart-count { display: none; }
.ub-doc { padding: 0 32px; min-width: 0; }
.ub-doc-head { padding: 34px 0 6px; border-bottom: 1px solid var(--line-strong); }
.ub-doc-head h1 { font-size: clamp(40px, 6vw, 92px); text-transform: uppercase; letter-spacing: -.035em; overflow-wrap: anywhere; }
.ub-doc-head p { color: var(--muted); padding: 12px 0 18px; font-size: 17px; max-width: 60ch; }
.ub-sec { padding: 44px 0 0; }
.ub-h2 { font-size: 15px; text-transform: uppercase; letter-spacing: .16em; display: flex; align-items: center; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line-strong); margin-bottom: 20px; }
.ub-h2 span { font-family: var(--mono); background: var(--accent); color: var(--on-accent); width: 24px; height: 24px; display: grid; place-items: center; font-size: 12px; }
.ub-h2 small { margin-left: auto; text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--muted); font-size: 13.5px; }
.ub-offers { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; margin-bottom: 18px; }
.ub-cat { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: var(--bg-alt); border: 1px solid var(--line-strong); font-size: 17px; text-transform: uppercase; letter-spacing: .08em; margin-top: 28px; }
.ub-table .menu-cat:first-child .ub-cat { margin-top: 0; }
.ub-cat span { font-family: var(--mono); color: var(--accent); font-size: 13px; }
.ub-cat em { margin-left: auto; font-style: normal; font-size: 12px; color: var(--muted); text-transform: none; letter-spacing: 0; }
.ub-rows { border: 1px solid var(--line-strong); border-top: 0; }
.ub-row { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto 56px; gap: 14px; align-items: center; padding: 14px 14px 14px 12px; border-top: 1px solid var(--line); }
.ub-row:first-child { border-top: 0; }
.ub-row:hover { background: #171a1d; }
.ub-no { font-family: var(--mono); color: var(--muted); font-size: 13px; }
.ub-name p { color: var(--muted); font-size: 14px; line-height: 1.4; margin-top: 2px; }
.ub-price { font-family: var(--mono); font-weight: 600; font-size: 15px; white-space: nowrap; }
.ub-act { display: flex; justify-content: flex-end; }
.ub-act .c-plus:hover { background: var(--accent); color: var(--on-accent); }
.ub-act .c-step { border-radius: 0; }
.ub-row.is-off { opacity: .5; }
.ub-res .c-res { max-width: 760px; border: 1px solid var(--line-strong); padding: 26px; background: var(--card); }
.ub-res .eyebrow { display: none; }
.ub-res .c-res-head { display: none; }
.ub-find-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--line-strong); }
.ub-find-grid > div { padding: 22px; }
.ub-find-grid > div + div { border-left: 1px solid var(--line-strong); }
.ub-find h3 { font-size: 12px; text-transform: uppercase; letter-spacing: .16em; color: var(--muted); margin-bottom: 12px; }
.ub-foot { padding: 50px 20px 60px; text-align: center; color: var(--muted); }
.ub-bar { display: none; }
.ub-find-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--line-strong); }
.ub-find-grid > div { padding: 22px; }
.ub-find-grid > div + div { border-left: 1px solid var(--line-strong); }
.ub-find-grid h3 { font-size: 12px; text-transform: uppercase; letter-spacing: .16em; color: var(--muted); margin-bottom: 12px; }
.ub-res .c-res { max-width: 780px; border: 1px solid var(--line-strong); padding: 26px; background: var(--card); }
.ub-res .c-res-head { display: none; }
.ub-foot { padding: 50px 0 60px; color: var(--muted); }
.ub-bar { display: none; }
.ub-stamp { border: 1px solid var(--line-strong); padding: 20px; background: var(--card); max-width: 560px; }
@media (max-width: 1000px) {
  .ub-shell { display: block; }
  .ub-side { border-right: 0; border-bottom: 1px solid var(--line-strong); }
  .ub-side-in { position: static; height: auto; padding: 14px; gap: 12px; }
  .ub-thumb, .ub-cart, .ub-index ol:not(.ub-cats) { display: none; }
  .ub-spec { display: grid; grid-template-columns: 1fr 1fr; }
  .ub-spec > div:nth-child(1) { grid-column: 1 / -1; }
  .ub-spec > div:nth-child(2) { border-top: 1px solid var(--line); }
  .ub-spec > div:nth-child(3) { border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
  .ub-index { position: sticky; top: var(--top); z-index: 30; margin: 0 -14px -14px; background: var(--bg); border-top: 1px solid var(--line-strong); }
  .ub-cats { margin-top: 0; display: flex; overflow-x: auto; border: 0 !important; scrollbar-width: none; }
  .ub-cats::-webkit-scrollbar { display: none; }
  .ub-cats li { flex: none; }
  .ub-cats li + li { border-top: 0; border-left: 1px solid var(--line); }
  .ub-idx-c { display: flex; gap: 8px; padding: 14px 14px; white-space: nowrap; }
  .ub-idx-c em { display: none; }
  .ub-doc { padding: 0 14px; }
  .ub-doc-head { padding-top: 22px; }
  .ub-row { grid-template-columns: 28px minmax(0, 1fr) auto; gap: 8px 10px; }
  .ub-act { grid-column: 3; grid-row: 1 / 3; align-self: center; }
  .ub-price { grid-column: 2; grid-row: 2; justify-self: start; color: var(--accent); }
  .ub-name { grid-column: 2; grid-row: 1; }
  .ub-no { grid-row: 1 / 3; align-self: start; padding-top: 3px; }
  .ub-find-grid { grid-template-columns: 1fr; }
  .ub-find-grid > div + div { border-left: 0; border-top: 1px solid var(--line-strong); }
  .ub-foot { padding-bottom: 130px; }
  .ub-bar { display: flex; align-items: center; gap: 12px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; height: 54px; padding: 0 16px calc(env(safe-area-inset-bottom)); background: var(--accent); color: var(--on-accent); border-top: 1px solid #000; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; font-size: 13px; }
  .ub-bar b { font-family: var(--mono); background: var(--on-accent); color: var(--accent); min-width: 26px; height: 26px; display: grid; place-items: center; }
  .ub-bar strong { margin-left: auto; font-family: var(--mono); font-size: 15px; letter-spacing: 0; }
  .ub-bar em { display: inline-flex; }
}
.ub-tn { margin: 0 0 18px; border: 1px solid var(--line-strong); padding: 12px 14px; }
.ub-act .c-plus, .ub-act .c-step { --s: 42px; }
.ub-act .c-step button { width: 40px; }
.ub-act .c-plus, .ub-act .c-step { --s: 44px; }
.ub-searchbox .menu-search { border-radius: 0; height: 46px; background: #0f1113; border-color: var(--line-strong); }
.ub-searchbox .ic { color: var(--accent); }
.ub-searchbox input { font-size: 16px; } 
.ub-track { margin-top: 16px; border-radius: 0; background: #0f1113; border-color: var(--line-strong); }
.ub-track .ot-step i { border-radius: 0; }
.ub-rec { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0; border: 1px solid var(--line-strong); }
.ub-rec-c { border-right: 1px solid var(--line-strong); background: #12151a; }
.ub-rec-c:last-child { border-right: 0; }
.ub-rec-pic { position: relative; aspect-ratio: 4 / 3; }
.ub-rec-img { width: 100%; height: 100%; filter: grayscale(.25) contrast(1.05); }
.ub-rec-pic b { position: absolute; left: 0; top: 0; background: var(--accent); color: var(--on-accent); font-family: var(--mono); font-size: 13px; padding: 4px 8px; }
.ub-rec-b { padding: 12px 14px 14px; }
.ub-rec-b h4 { font-size: 15px; min-height: 2.5em; }
.ub-rec-b > div { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; }
@media (max-width: 1000px) { .ub-searchbox { order: 5; } .ub-rec-c { border-right: 0; border-bottom: 1px solid var(--line-strong); } }
.ub-doc-head { border-bottom: 0; padding: 30px 0 0; }
.ub-doc-head p { font-size: 20px; color: #cfd4d8; padding: 0; max-width: 56ch; }
.ub-spec { border-color: var(--line); }
.ub-spec dt { font-size: 11px; }
.ub-searchbox { order: 0; }
.ub-sec { padding-top: 40px; }
.ub-h2 { border-bottom-color: var(--line); }
.ub-rec { border-color: var(--line); }
.ub-rec-c { border-right-color: var(--line); }
.ub-rows, .ub-cat { border-color: var(--line); }
@media (max-width: 1000px) {
  .ub-side-in { gap: 10px; padding: 14px 14px 0; }
  .ub-brand .logo-text { font-size: 16px; }
  .ub-spec { display: block; border: 0; }
  .ub-spec > div { padding: 0; border: 0; }
  .ub-spec > div:nth-child(n+2) { display: none; }
  .ub-spec dt { display: none; }
  .ub-spec dd { font-size: 14px; }
  .ub-searchbox { order: 0; }
  .ub-index { margin-top: 4px; }
  .ub-doc-head p { font-size: 17px; padding-top: 18px; }
}
@media (max-width: 899px) { .ub-rec-pic { aspect-ratio: 16 / 10; } .ub-rec { grid-template-columns: 1fr 1fr; } }
.ub-band { margin: 22px 0 0; aspect-ratio: 21 / 6; overflow: hidden; border: 1px solid var(--line); }
.ub-band-img { width: 100%; height: 100%; filter: grayscale(.6) contrast(1.05); }
@media (max-width: 899px) { .ub-band { aspect-ratio: 16 / 7; } }
.tpl-luxenoir {
  --bg: #0b0907; --bg-alt: #14110d; --card: #120f0b; --text: #f1e9da; --muted: #a79d8c; --line: #2b241b; --line-strong: #4a3b24;
  --font-body: 'Jost', system-ui, sans-serif; --font-head: 'Marcellus', Georgia, serif; --hand: 'Caveat', cursive;
  --radius: 14px; --btn-radius: 4px; --btn-track: .16em; --btn-transform: uppercase; --btn-weight: 500;
  --accent: #c49a4a; --on-accent: #120d05; --gold: #c49a4a; --gold-2: #e2c27a; --primary-soft: #2a1f0c;
  --plus-size: 44px; --plus-radius: 50%; --plus-bg: transparent; --plus-fg: #c49a4a; --plus-line: #c49a4a; --plus-shadow: none;
}
.tpl-luxenoir { font-weight: 300; font-size: 16px; }
.tpl-luxenoir h1, .tpl-luxenoir h2, .tpl-luxenoir h3 { font-family: var(--font-head); font-weight: 400; line-height: 1.12; letter-spacing: .04em; }
.tpl-luxenoir h4 { font-family: var(--font-head); font-weight: 400; font-size: 18px; letter-spacing: .08em; text-transform: uppercase; }
.tpl-luxenoir .btn { background: transparent; border: 1px solid var(--gold); color: var(--gold); font-size: 12px; font-weight: 500; }
.tpl-luxenoir .btn:hover { background: var(--gold); color: var(--on-accent); }
.tpl-luxenoir .btn-primary { background: var(--gold); color: var(--on-accent); }
.tpl-luxenoir .field { background: #0f0c09; border: 1px solid var(--line-strong); border-radius: 6px; color: var(--text); }
.tpl-luxenoir .field:focus { outline: 0; border-color: var(--gold); }
.tpl-luxenoir .field::placeholder { color: #75695a; }
.tpl-luxenoir .drawer, .tpl-luxenoir .drawer-foot, .tpl-luxenoir .sheet { background: #0e0b08; }
.tpl-luxenoir .drawer { border-left: 1px solid var(--gold); }
.tpl-luxenoir .stepper { border-color: var(--gold); border-radius: 999px; }
.tpl-luxenoir .stepper button:hover:not(:disabled) { background: var(--gold); color: var(--on-accent); }
.tpl-luxenoir .pay-opt { background: #0f0c09; border-color: var(--line-strong); }
.tpl-luxenoir .pay-opt.is-on { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold); }
.tpl-luxenoir .totals-final { border-top-color: var(--gold); font-family: var(--font-head); }
.tpl-luxenoir .err-block { background: #1e0d0c; border-color: #5a2a26; }
.tpl-luxenoir .offer { border: 1px solid var(--line-strong); border-radius: 14px; padding: 20px; align-items: center; background: var(--card); }
.tpl-luxenoir .offer-value { font-family: var(--font-head); color: var(--gold-2); font-size: 30px; }
.tpl-luxenoir .offer-name { font-family: var(--font-head); font-size: 20px; font-weight: 400; }
.tpl-luxenoir .offer-meta code { background: #0b0907; border-color: var(--line-strong); color: var(--gold-2); }
.tpl-luxenoir .stamp { border-color: var(--gold); }
.tpl-luxenoir .stamp.is-filled { background: var(--gold); color: var(--on-accent); }
.tpl-luxenoir .date-chip, .tpl-luxenoir .slot { background: #0f0c09; border-color: var(--line-strong); border-radius: 8px; }
.tpl-luxenoir .date-chip.is-selected, .tpl-luxenoir .slot.is-selected { background: var(--gold); border-color: var(--gold); color: var(--on-accent); }
.tpl-luxenoir .step-n { border-color: var(--gold); color: var(--gold); font-family: var(--font-head); }
.tpl-luxenoir .sms-note { background: #0f0c09; }
.tpl-luxenoir .takeaway-note { border: 1px solid var(--line-strong); border-radius: 12px; padding: 12px 16px; margin: 6px 0 22px; background: #0f0c09; text-align: left; }
.tpl-luxenoir [id] { scroll-margin-top: 84px; }
.ln-top { position: sticky; top: var(--top); z-index: 40; background: rgba(11,9,7,.94); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line-strong); }
.ln-top-in { max-width: 1240px; margin: 0 auto; height: 76px; padding: 0 28px; display: flex; align-items: center; gap: 24px; }
.ln-brand .logo-text { font-family: var(--font-head); font-size: 20px; letter-spacing: .26em; text-transform: uppercase; color: var(--gold-2); }
.ln-brand .logo-img { height: 36px; width: auto; }
.ln-nav { margin: 0 auto; display: flex; gap: 30px; }
.ln-link { font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); font-weight: 500; }
.ln-link:hover { color: var(--gold-2); }
.ln-btn { min-height: 48px; padding: 0 26px; border-radius: 4px; border: 1px solid var(--gold); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; font-weight: 500; display: inline-flex; align-items: center; justify-content: center; color: var(--gold-2); }
.ln-btn-main { background: var(--gold); color: var(--on-accent); }
.ln-btn-main:hover { filter: brightness(1.1); }
.ln-btn-ghost:hover { background: rgba(196,154,74,.12); }
.ln-top-cta { min-height: 44px; }
.ln-cart { border: 1px solid var(--line-strong); color: var(--gold-2); padding: 10px 16px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; border-radius: 4px; min-height: 44px; }
.ln-cart.has-items { background: var(--gold); border-color: var(--gold); color: var(--on-accent); }
.ln-cart .cart-count { background: var(--on-accent); color: var(--gold); }
.ln-cart:not(.has-items) .cart-count { display: none; }
:root:has(.tpl-luxenoir .ln-snap) { scroll-snap-type: y proximity; }
.ln-screen { scroll-snap-align: start; padding: 22px 22px 0; }
.ln-frame { max-width: 1240px; margin: 0 auto; border: 1px solid var(--line-strong); border-radius: 22px; background: linear-gradient(180deg, #100d0a, #0b0907); position: relative; overflow: hidden; }
.ln-pad { padding: 64px 56px; }
.ln-script { font-family: var(--hand); font-weight: 700; font-size: 30px; color: var(--gold-2); line-height: 1; }
.ln-h2 { font-size: clamp(32px, 4vw, 52px); margin-top: 10px; text-transform: uppercase; letter-spacing: .08em; }
.ln-lead { font-size: 17px; line-height: 1.65; color: #cfc4b1; max-width: 46ch; margin-top: 14px; }
.ln-hero { min-height: 640px; display: flex; align-items: center; background: #0b0907; }
.ln-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.ln-hero-bg img { opacity: .38; filter: grayscale(.2); }
.ln-hero-veil { position: absolute; inset: 0; background: linear-gradient(90deg, #0b0907 24%, rgba(11,9,7,.7) 60%, rgba(11,9,7,.25)); }
.ln-hero-in { position: relative; width: 100%; padding: 56px 56px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 20px; align-items: center; }
.ln-hero h1 { font-size: clamp(46px, 6.4vw, 92px); text-transform: uppercase; letter-spacing: .06em; margin-top: 10px; overflow-wrap: anywhere; }
.ln-rule { display: flex; align-items: center; gap: 12px; margin: 22px 0 6px; color: var(--gold); max-width: 280px; }
.ln-rule i { flex: 1; height: 1px; background: var(--line-strong); }
.ln-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.ln-feats { display: flex; gap: 0; margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--line-strong); flex-wrap: wrap; }
.ln-feats li { flex: 1 1 140px; display: flex; flex-direction: column; gap: 4px; padding-right: 18px; }
.ln-feats li + li { padding-left: 18px; border-left: 1px solid var(--line-strong); }
.ln-feats span { color: var(--gold); }
.ln-feats strong { font-family: var(--font-head); font-weight: 400; font-size: 15px; letter-spacing: .08em; text-transform: uppercase; }
.ln-feats small { color: var(--muted); font-size: 13.5px; }
.ln-plate { display: grid; place-items: center; }
.ln-plate-img { width: min(480px, 100%); aspect-ratio: 1; border-radius: 50%; overflow: hidden; box-shadow: 0 36px 70px -26px rgba(0,0,0,.9), 0 0 0 1px var(--gold), 0 0 0 10px rgba(196,154,74,.12); display: block; }
.ln-plate-img img { transform: scale(1.04); }
.ln-offers { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; margin-top: 26px; }
.ln-loy { margin-top: 26px; max-width: 700px; }
.ln-stamp { border: 1px solid var(--line-strong); border-radius: 18px; padding: 24px; background: var(--card); }
.ln-search { margin: 22px 0 8px; max-width: 520px; }
.ln-sf { background: #0f0c09; border-color: var(--line-strong); border-radius: 6px; height: 54px; }
.ln-sf .ic { color: var(--gold); }
.ln-track { margin: 16px 0 6px; background: #0f0c09; border-color: var(--line-strong); max-width: 760px; }
.ln-cats { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 4px; }
.ln-chip { padding: 9px 18px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-2); min-height: 44px; display: inline-flex; align-items: center; }
.ln-chip:hover { background: rgba(196,154,74,.14); border-color: var(--gold); }
.ln-cat { margin: 44px 0 20px; font-size: 26px; text-transform: uppercase; letter-spacing: .12em; display: flex; align-items: center; gap: 18px; }
.ln-cat::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, var(--gold), transparent); }
.ln-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.ln-dish { background: #0f0c09; border: 1px solid var(--line-strong); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; transition: border-color .2s, transform .2s; }
.ln-dish:hover { border-color: var(--gold); transform: translateY(-3px); }
.ln-dish-pic { aspect-ratio: 1 / .92; background: #1a1510; display: grid; place-items: center; color: var(--gold); }
.ln-dish-pic.no-pic { aspect-ratio: 5 / 2; }
.ln-dish-img { width: 100%; height: 100%; }
.ln-dish-b { padding: 14px 16px 16px; display: flex; flex-direction: column; flex: 1; }
.ln-dish-b h4 { font-size: 15px; }
.ln-dish-b p { color: var(--muted); font-size: 13.5px; line-height: 1.5; margin-top: 6px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ln-dish-f { margin-top: auto; padding-top: 14px; display: flex; align-items: center; justify-content: space-between; }
.ln-price { font-family: var(--font-head); color: var(--gold-2); font-size: 19px; letter-spacing: .06em; }
.ln-dish.is-off { opacity: .5; }
.ln-book { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 48px; align-items: start; }
.ln-contact { margin-top: 28px; display: grid; gap: 14px; }
.ln-contact li { display: flex; gap: 12px; align-items: center; color: #d9cfbd; }
.ln-contact .ic { color: var(--gold); }
.ln-book-f .c-res { background: #0f0c09; border: 1px solid var(--line-strong); border-radius: 18px; padding: 28px; max-width: none; }
.ln-book-f .c-res-head { display: none; }
.ln-find-grid { margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.ln-find-grid h3 { font-size: 14px; letter-spacing: .24em; text-transform: uppercase; color: var(--gold-2); margin-bottom: 16px; font-family: var(--font-body); font-weight: 500; }
.ln-footer { padding: 40px 20px 60px; text-align: center; color: var(--muted); font-size: 13px; letter-spacing: .08em; }
.ln-bar { display: none; }
.ln-dots { position: fixed; right: 18px; top: 50%; transform: translateY(-50%); z-index: 45; display: flex; flex-direction: column; gap: 10px; align-items: flex-end; }
.ln-dot { display: flex; align-items: center; gap: 10px; padding: 6px 0 6px 10px; }
.ln-dot::after { content: ''; width: 8px; height: 8px; border-radius: 50%; border: 1px solid var(--gold); transition: background .2s, transform .2s; }
.ln-dot span { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); opacity: 0; transform: translateX(6px); transition: opacity .2s, transform .2s; white-space: nowrap; }
.ln-dot:hover::after { background: var(--gold); transform: scale(1.3); }
.ln-dot:hover span { opacity: 1; transform: none; }
@media (max-width: 1100px) { .ln-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ln-dots { display: none; } }
@media (max-width: 899px) {
  .ln-top-in { height: 60px; padding: 0 16px; gap: 10px; }
  .ln-nav, .ln-top-cta { display: none; }
  .ln-cart { margin-left: auto; }
  .ln-screen { padding: 12px 12px 0; }
  .ln-frame { border-radius: 18px; }
  .ln-pad { padding: 36px 20px; }
  .ln-hero { min-height: 0; }
  .ln-hero-in { grid-template-columns: 1fr; padding: 34px 20px; }
  .ln-hero-veil { background: linear-gradient(0deg, #0b0907 20%, rgba(11,9,7,.55)); }
  .ln-plate { order: -1; margin-bottom: 8px; }
  .ln-plate-img { width: min(300px, 78%); }
  .ln-feats { gap: 14px; }
  .ln-feats li, .ln-feats li + li { padding: 0; border: 0; flex: 1 1 100%; }
  .ln-grid { grid-template-columns: 1fr; gap: 12px; }
  .ln-dish { flex-direction: row; }
  .ln-dish-pic { width: 112px; aspect-ratio: auto; flex: none; }
  .ln-dish-pic.no-pic { display: none; }
  .ln-book { grid-template-columns: 1fr; gap: 28px; }
  .ln-book-f .c-res { padding: 18px 14px; }
  .ln-find-grid { grid-template-columns: 1fr; gap: 28px; }
  .ln-footer { padding-bottom: 130px; }
  .ln-bar { display: flex; align-items: center; justify-content: space-between; position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 60; height: 56px; padding: 0 22px; background: var(--gold); color: var(--on-accent); border-radius: 6px; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; font-weight: 600; box-shadow: 0 14px 30px -10px rgba(0,0,0,.8); }
  .ln-bar strong { font-family: var(--font-head); font-weight: 400; font-size: 18px; letter-spacing: .06em; }
}
.tpl-velvet {
  --bg: #3a0d19; --bg-alt: #470f1f; --card: #44111f; --text: #f6eadf; --muted: #cdaea4; --line: #5d2231; --line-strong: #7b3a49;
  --font-body: 'Instrument Sans', system-ui, sans-serif; --font-head: 'Bodoni Moda', 'Playfair Display', Georgia, serif;
  --radius: 0px; --btn-radius: 0px; --btn-track: .16em; --btn-transform: uppercase; --btn-weight: 500;
  --accent: #e6b9a3; --on-accent: #3a0d19; --rose: #e6b9a3; --primary-soft: #4f1626;
}
.tpl-velvet h1, .tpl-velvet h2, .tpl-velvet h3 { font-family: var(--font-head); font-weight: 600; font-style: italic; line-height: 1; letter-spacing: -.01em; }
.tpl-velvet h4 { font-family: var(--font-head); font-weight: 600; font-style: italic; font-size: 25px; line-height: 1.15; }
.tpl-velvet .btn { background: transparent; border: 1px solid var(--rose); color: var(--rose); font-size: 12px; }
.tpl-velvet .btn:hover { background: var(--rose); color: var(--on-accent); }
.tpl-velvet .btn-primary { background: var(--rose); color: var(--on-accent); }
.tpl-velvet .btn-primary:hover { background: var(--rose); filter: brightness(1.08); }
.tpl-velvet .field { background: #2c0912; border-color: var(--line-strong); color: var(--text); }
.tpl-velvet .field::placeholder { color: #9b7a74; }
.tpl-velvet .drawer, .tpl-velvet .drawer-foot { background: #33091a; }
.tpl-velvet .drawer-head h2 { font-size: 30px; }
.tpl-velvet .stepper { border-color: var(--rose); }
.tpl-velvet .stepper button:hover:not(:disabled) { background: var(--rose); color: var(--on-accent); }
.tpl-velvet .pay-opt { background: #2c0912; border-color: var(--line-strong); }
.tpl-velvet .pay-opt.is-on { border-color: var(--rose); box-shadow: 0 0 0 1px var(--rose); }
.tpl-velvet .totals-final { border-top-color: var(--rose); font-family: var(--font-head); font-style: italic; font-size: 24px; }
.tpl-velvet .err-block { background: #2a0a0a; border-color: #7a2c2c; }
.tpl-velvet .offer { background: var(--card); border: 1px solid var(--line-strong); padding: 20px; align-items: center; }
.tpl-velvet .offer-value { font-family: var(--font-head); font-style: italic; color: var(--rose); font-size: 34px; }
.tpl-velvet .offer-name { font-family: var(--font-head); font-style: italic; font-size: 22px; font-weight: 600; }
.tpl-velvet .offer-meta code { background: #2c0912; border-color: var(--line-strong); color: var(--rose); }
.tpl-velvet .stamp { border-color: var(--rose); }
.tpl-velvet .stamp.is-filled { background: var(--rose); color: var(--on-accent); }
.tpl-velvet .date-chip, .tpl-velvet .slot { background: #2c0912; border-color: var(--line-strong); }
.tpl-velvet .date-chip.is-selected, .tpl-velvet .slot.is-selected { background: var(--rose); border-color: var(--rose); color: var(--on-accent); }
.tpl-velvet .step-n { border-color: var(--rose); color: var(--rose); font-family: var(--font-head); font-style: italic; }
.tpl-velvet .dc-day { font-family: var(--font-head); font-style: italic; }
.tpl-velvet .sms-note { background: #2c0912; }
.tpl-velvet .tabbar { background: #2c0912; border-top-color: var(--line-strong); }
.tpl-velvet .tabbar button { color: var(--muted); }
.tpl-velvet [id] { scroll-margin-top: calc(var(--top) + 70px); }
.vl-split { display: grid; grid-template-columns: minmax(380px, 5fr) minmax(0, 7fr); min-height: 100vh; }
.vl-cover { border-right: 3px double var(--line-strong); background: var(--bg-alt); }
.vl-cover-in { position: sticky; top: var(--top); height: calc(100vh - var(--top)); overflow-y: auto; padding: 22px 34px 26px; display: flex; flex-direction: column; gap: 16px; scrollbar-width: none; }
.vl-cover-in::-webkit-scrollbar { display: none; }
.vl-strip { font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); padding-bottom: 10px; border-bottom: 1px solid var(--line-strong); }
.vl-brand { text-align: left; }
.vl-brand .logo-text { font-family: var(--font-head); font-style: italic; font-weight: 600; font-size: clamp(42px, 4.4vw, 70px); line-height: .95; letter-spacing: -.01em; overflow-wrap: anywhere; }
.vl-brand .logo-img { height: 54px; width: auto; }
.vl-portrait { margin: 0; position: relative; flex: 1 1 140px; min-height: 140px; max-height: 340px; }
.vl-portrait::before { content: ''; position: absolute; inset: 12px -12px -12px 12px; border: 1px solid var(--rose); }
.vl-portrait-img { position: relative; width: 100%; height: 100%; display: block; }
.vl-lead { font-family: var(--font-head); font-style: italic; font-size: 19px; line-height: 1.45; color: #e9d5c9; padding-left: 14px; border-left: 2px solid var(--rose); margin-top: 8px; }
.vl-cta { display: flex; gap: 10px; flex-wrap: wrap; }
.vl-btn { min-height: 46px; padding: 0 20px; border: 1px solid var(--rose); color: var(--rose); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; font-weight: 500; display: inline-flex; align-items: center; }
.vl-btn:hover { background: var(--rose); color: var(--on-accent); }
.vl-btn-main { background: var(--rose); color: var(--on-accent); }
.vl-facts { display: grid; gap: 0; border-top: 1px solid var(--line-strong); }
.vl-facts > div { display: grid; grid-template-columns: 82px 1fr; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.vl-facts span { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); padding-top: 3px; }
.vl-facts b { font-weight: 500; }
.vl-facts b.is-open { color: #8ee0a8; } .vl-facts b.is-closed { color: #ff9d90; }
.vl-facts a:hover { color: var(--rose); }
.vl-more { font-size: 12px; }
.vl-link { text-decoration: underline; text-underline-offset: 4px; color: var(--rose); letter-spacing: .1em; text-transform: uppercase; font-size: 12px; }
.vl-cart { border: 1px solid var(--rose); color: var(--rose); padding: 11px 14px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; border-radius: 0; justify-content: center; }
.vl-cart.has-items { background: var(--rose); color: var(--on-accent); }
.vl-cart .cart-count { display: none; }
.vl-flow { padding: 0 clamp(24px, 4vw, 64px); min-width: 0; }
.vl-sec { padding: 64px 0 0; max-width: 760px; }
.vl-kicker { font-size: 12px; letter-spacing: .26em; text-transform: uppercase; color: var(--rose); }
.vl-h2 { font-size: clamp(34px, 4vw, 54px); margin-top: 10px; }
.vl-offers { margin-top: 22px; display: grid; gap: 14px; }
.vl-stamp { border: 1px solid var(--line-strong); padding: 26px; background: var(--card); }
.vl-note { margin-top: 10px; color: var(--muted); font-size: 14px; }
.vl-menu { padding-top: 70px; }
.vl-menu .menu-cat { padding-top: 54px; margin-top: 54px; border-top: 1px solid var(--line-strong); }
.vl-menu .menu-cat:first-of-type { border-top: 0; margin-top: 10px; padding-top: 0; }
.vl-head { display: flex; align-items: baseline; gap: 14px; }
.vl-num { font-family: var(--font-head); font-style: italic; font-size: 22px; color: var(--rose); }
.vl-head h3 { font-size: clamp(32px, 3.6vw, 48px); }
.vl-strip-photo { margin: 18px 0 8px; aspect-ratio: 16 / 6; overflow: hidden; position: relative; }
.vl-fig { width: 100%; height: 100%; }
.vl-list { display: flex; flex-direction: column; }
.vl-item { padding: 20px 0; border-bottom: 1px solid var(--line); }
.vl-line { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.vl-price { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--rose); white-space: nowrap; font-weight: 500; }
.vl-item p { color: var(--muted); font-size: 15px; line-height: 1.6; margin-top: 8px; max-width: 52ch; }
.vl-act { margin-top: 12px; }
.vl-add.add-btn { min-height: 0; padding: 0 0 3px; border: 0; border-bottom: 1px solid var(--rose); border-radius: 0; background: none; color: var(--rose); font-size: 12px; letter-spacing: .22em; text-transform: uppercase; gap: 0; }
.vl-add.add-btn:hover { background: none; color: var(--text); border-bottom-color: var(--text); }
.vl-add .add-ic { display: none; }
.vl-add.stepper button { width: 34px; height: 32px; }
.vl-item.is-off { opacity: .5; }
.vl-res .c-res { border: 1px solid var(--line-strong); background: var(--card); padding: 34px; max-width: none; }
.vl-res .sec-title { font-family: var(--font-head); font-style: italic; font-weight: 600; font-size: 42px; }
.vl-res .eyebrow { color: var(--rose); letter-spacing: .26em; }
.vl-foot { padding: 80px 0 70px; color: var(--muted); font-size: 12px; letter-spacing: .1em; }
.vl-about { color: var(--muted); margin-bottom: 18px; }
.vl-gap { margin-top: 18px; }
.vl-bar { display: none; }
.tpl-velvet .sheet { background: #33091a; }
@media (max-width: 899px) {
  .vl-split { display: block; }
  .vl-cover { border-right: 0; border-bottom: 3px double var(--line-strong); }
  .vl-cover-in { position: static; height: auto; overflow: visible; padding: 18px 16px 24px; }
  .vl-portrait { flex: none; height: 260px; margin-right: 12px; }
  .vl-cart { display: none; }
  .vl-flow { padding: 0 16px; }
  .vl-sec { padding-top: 48px; }
  .vl-res .c-res { padding: 24px 16px; }
  .vl-foot { padding-bottom: 130px; }
  .vl-bar { display: flex; align-items: center; gap: 12px; position: fixed; left: 0; right: 0; bottom: calc(env(safe-area-inset-bottom)); z-index: 60; height: 54px; padding: 0 20px; background: var(--rose); color: var(--on-accent); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
  .vl-bar strong { font-family: var(--font-head); font-style: italic; font-size: 20px; letter-spacing: 0; text-transform: none; }
  .vl-bar em { margin-left: auto; font-style: normal; display: inline-flex; align-items: center; gap: 6px; }
}
.vl-flow > *, .vl-cover-in > * { min-width: 0; }
.vl-res .c-res { min-width: 0; }
.vl-tn { margin: 14px 0 0; border-color: var(--line-strong); }
.vl-add.add-btn { min-height: 44px; display: inline-flex; align-items: center; padding-bottom: 0; border-bottom: 0; text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.vl-act { margin-top: 0; }
.vl-add.stepper button { width: 44px; height: 44px; }
.vl-link { min-height: 44px; display: inline-flex; align-items: center; }
.vl-find-row { display: grid; gap: 14px; padding-top: 40px; max-width: 760px; }
.vl-search { border-radius: 0; background: #2c0912; border-color: var(--line-strong); height: 54px; }
.vl-search .ic { color: var(--rose); }
.vl-track { border-radius: 0; background: #2c0912; border-color: var(--line-strong); }
.vl-picks { margin-top: 26px; display: grid; gap: 28px; max-width: 760px; }
.vl-pick { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 26px; align-items: center; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.vl-pick figure { margin: 0; aspect-ratio: 4 / 5; position: relative; }
.vl-pick figure::before { content: ''; position: absolute; inset: 10px -10px -10px 10px; border: 1px solid var(--rose); }
.vl-pick-img { position: relative; width: 100%; height: 100%; display: block; }
.vl-pick h4 { margin-top: 4px; font-size: 28px; }
.vl-pick p { color: var(--muted); margin-top: 8px; line-height: 1.6; }
.vl-pick-f { display: flex; align-items: center; gap: 18px; margin-top: 16px; }
.vl-p { --plus-size: 44px; --plus-radius: 0px; --plus-bg: transparent; --plus-fg: var(--rose); --plus-line: var(--rose); --plus-shadow: none; }
@media (max-width: 899px) { .vl-pick { grid-template-columns: 110px minmax(0, 1fr); gap: 16px; } .vl-pick h4 { font-size: 21px; } .vl-pick p { display: none; } }
.vl-cover-in { gap: 18px; padding: 28px 40px 30px; justify-content: flex-start; }
.vl-strip { border-bottom: 0; padding-bottom: 0; }
.vl-brand .logo-text { font-size: clamp(40px, 3.6vw, 60px); }
.vl-portrait { flex: 0 1 auto; max-height: none; height: auto; aspect-ratio: 4 / 3; min-height: 0; }
.vl-portrait::before { display: none; }
.vl-portrait-img { height: 100%; }
.vl-lead { font-size: 18px; border-left: 0; padding-left: 0; margin-top: 0; color: #e0cbc0; }
.vl-cta { align-items: center; gap: 18px; }
.vl-textlink { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--rose); text-decoration: underline; text-underline-offset: 5px; }
.vl-textlink:hover { color: #fff; }
.vl-status { display: flex; flex-direction: column; gap: 4px; font-size: 14.5px; color: #e9d5c9; padding-top: 14px; border-top: 1px solid var(--line-strong); }
.vl-status i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 8px; background: #6fd49a; }
.vl-status i.is-closed { background: #ff8e80; }
.vl-status span { color: var(--muted); }
.vl-more { margin-top: -6px; }
.vl-facts { display: none; }
.vl-cart { margin-top: auto; }
.vl-flow { padding: 0 clamp(28px, 5vw, 80px); }
.vl-sec { padding: 44px 0 0; max-width: 780px; }
.vl-find-row { padding-top: 36px; gap: 12px; }
.vl-h2 { font-size: clamp(34px, 3.4vw, 46px); }
.vl-h3 { font-family: var(--font-body); font-style: normal; font-weight: 600; font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: var(--rose); margin-bottom: 16px; }
.vl-offers { margin-top: 0; }
.vl-favs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.vl-fav figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; }
.vl-fav-img { width: 100%; height: 100%; }
.vl-fav h4 { font-size: 19px; margin-top: 10px; line-height: 1.2; }
.vl-fav-f { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; }
.vl-p { --plus-size: 44px; --plus-radius: 50%; --plus-bg: transparent; --plus-fg: var(--rose); --plus-line: var(--rose); --plus-shadow: none; }
.vl-menu { padding-top: 56px; }
.vl-menu .menu-cat { display: block; padding: 0; margin: 46px 0 0; border: 0; }
.vl-menu .menu-cat:first-of-type { margin-top: 24px; }
.vl-head { position: static; display: flex; align-items: baseline; gap: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--line-strong); }
.vl-head h3 { font-size: clamp(26px, 2.6vw, 34px); margin: 0; }
.vl-num { display: inline; font-size: 15px; }
.vl-list { margin-top: 4px; }
.vl-item { padding: 18px 0; border-bottom: 1px solid var(--line); }
.vl-line { gap: 12px; }
.vl-dots { flex: 1; border-bottom: 1px dotted rgba(230,185,163,.35); transform: translateY(-5px); min-width: 24px; }
.vl-item p { margin-top: 6px; }
.vl-act { margin-top: 2px; }
.vl-res .c-res { margin-top: 20px; }
.vl-res .c-res-head { display: none; }
@media (max-width: 1100px) { .vl-favs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 899px) {
  .vl-cover-in { padding: 18px 16px 24px; }
  .vl-portrait { aspect-ratio: 16 / 10; }
  .vl-sec { padding-top: 34px; }
  .vl-favs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .vl-cart { margin-top: 0; }
}
.vl-offers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.vl-offers .offer { padding: 14px 16px; gap: 12px; }
.vl-offers .offer-value { font-size: 26px; min-width: 52px; }
.vl-offers .offer-name { font-size: 18px; }
.vl-offers .offer-text { display: none; }
.vl-stamp { padding: 18px 20px; }
.vl-stamp .stamp-desc { display: none; }
@media (max-width: 899px) { .vl-offers { grid-template-columns: 1fr; } }
.tpl-mgold {
  --dark: #120e0a; --dark-2: #1b1510;
  --bg: #fbf7ee; --bg-alt: #f1e9d8; --card: #ffffff; --text: #2a1f14; --muted: #6d6152; --line: #e6dcc6; --line-strong: #cdbf9d;
  --font-body: 'Jost', system-ui, sans-serif; --font-head: 'Instrument Serif', Georgia, serif; --hand: 'Caveat', cursive;
  --radius: 14px; --btn-radius: 999px; --btn-track: .02em; --btn-transform: none; --btn-weight: 600;
  --accent: #8d6a24; --on-accent: #fffcf5; --gold: #e0b158; --gold-deep: #8d6a24; --wine: #7a1f1f; --primary-soft: #f1e6c8;
}
.tpl-mgold h1, .tpl-mgold h2, .tpl-mgold h3 { font-family: var(--font-head); font-weight: 400; line-height: 1.04; letter-spacing: -.005em; }
.tpl-mgold h4 { font-family: var(--font-body); font-weight: 600; font-size: 16.5px; line-height: 1.3; }
.tpl-mgold .btn { background: #fff; border: 1px solid var(--line-strong); border-radius: 999px; }
.tpl-mgold .btn-primary { background: var(--gold-deep); border-color: var(--gold-deep); color: #fffcf5; }
.tpl-mgold .field { border-radius: 12px; border-color: var(--line-strong); background: #fff; }
.tpl-mgold .drawer, .tpl-mgold .drawer-foot, .tpl-mgold .sheet { background: #fbf7ee; }
.tpl-mgold .stepper { border-color: var(--gold-deep); border-radius: 999px; }
.tpl-mgold .stepper button:hover:not(:disabled) { background: var(--gold-deep); color: #fffcf5; }
.tpl-mgold .pay-opt.is-on { border-color: var(--gold-deep); box-shadow: 0 0 0 1px var(--gold-deep); }
.tpl-mgold .offer { background: #fff; border: 1px solid var(--line-strong); border-radius: 18px; padding: 20px; align-items: center; }
.tpl-mgold .offer-value { font-family: var(--font-head); color: var(--wine); font-size: 36px; }
.tpl-mgold .offer-name { font-family: var(--font-head); font-weight: 400; font-size: 24px; }
.tpl-mgold .stamp { border-color: var(--gold-deep); }
.tpl-mgold .stamp.is-filled { background: var(--gold-deep); border-color: var(--gold-deep); color: #fffcf5; }
.tpl-mgold .date-chip.is-selected, .tpl-mgold .slot.is-selected { background: var(--gold-deep); border-color: var(--gold-deep); color: #fffcf5; }
.tpl-mgold .step-n { border-color: var(--gold-deep); color: var(--gold-deep); font-family: var(--font-head); font-size: 16px; }
.tpl-mgold .takeaway-note { border: 1px solid var(--line); border-radius: 16px; padding: 12px 18px; background: #fff; max-width: 780px; margin: 16px auto 0; text-align: left; }
.tpl-mgold [id] { scroll-margin-top: 84px; }
.mg-top { position: sticky; top: var(--top); z-index: 40; background: var(--dark); border-bottom: 1px solid rgba(224,177,88,.25); color: #fff; }
.mg-top-in { max-width: 1280px; margin: 0 auto; height: 76px; padding: 0 28px; display: flex; align-items: center; gap: 26px; }
.mg-brand .logo-text { font-family: var(--font-head); font-size: 30px; color: var(--gold); }
.mg-brand .logo-img { height: 38px; width: auto; }
.mg-nav { margin: 0 auto; display: flex; gap: 8px; }
.mg-link { padding: 10px 16px; font-size: 15px; font-weight: 500; color: #e5dccb; border-bottom: 2px solid transparent; }
.mg-link:hover, .mg-link.is-on { color: #fff; border-bottom-color: var(--gold); }
.mg-btn { min-height: 52px; padding: 0 26px; border-radius: 999px; font-weight: 600; font-size: 15.5px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 1.5px solid transparent; white-space: nowrap; }
.mg-btn-gold { background: var(--gold); color: #1b1305; }
.mg-btn-gold:hover { filter: brightness(1.08); }
.mg-btn-ghost { border-color: rgba(255,255,255,.5); color: #fff; }
.mg-btn-ghost:hover { background: rgba(255,255,255,.1); }
.mg-btn-lg { min-height: 58px; padding: 0 34px; font-size: 17px; }
.mg-top-cta { min-height: 46px; padding: 0 20px; }
.mg-cart { border: 1.5px solid rgba(255,255,255,.4); color: #fff; border-radius: 999px; padding: 9px 16px; font-weight: 600; }
.mg-cart.has-items { background: var(--gold); border-color: var(--gold); color: #1b1305; }
.mg-cart .cart-count { background: var(--gold); color: #1b1305; }
.mg-cart.has-items .cart-count { background: #1b1305; color: var(--gold); }
.mg-cart:not(.has-items) .cart-count { display: none; }
.mg-hero { position: relative; background: var(--dark); color: #fff; overflow: hidden; }
.mg-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.mg-hero-bg img { opacity: .32; }
.mg-hero-veil { position: absolute; inset: 0; background: linear-gradient(90deg, #120e0a 26%, rgba(18,14,10,.6) 70%, rgba(18,14,10,.4)); }
.mg-hero-in { position: relative; max-width: 1280px; margin: 0 auto; padding: 64px 28px 70px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; min-height: 560px; }
.mg-hero.has-book .mg-hero-in { grid-template-columns: minmax(0, 1fr) minmax(0, 520px); }
.mg-kick { font-size: 12.5px; letter-spacing: .26em; font-weight: 600; color: var(--gold); }
.mg-hero h1 { font-size: clamp(54px, 7.4vw, 108px); color: #fff3d6; margin-top: 12px; overflow-wrap: anywhere; }
.mg-lead { font-size: 18px; line-height: 1.65; color: #dccfb8; max-width: 46ch; margin-top: 16px; }
.mg-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.mg-hours { margin-top: 26px; display: inline-flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 500; color: #dccfb8; }
.mg-dot { width: 10px; height: 10px; border-radius: 50%; background: #5ee08a; box-shadow: 0 0 0 4px rgba(94,224,138,.2); }
.mg-dot.is-closed { background: #ff7a6b; box-shadow: 0 0 0 4px rgba(255,122,107,.2); }
.mg-plate { display: grid; place-items: center; }
.mg-plate-img { width: min(500px, 100%); aspect-ratio: 1; border-radius: 50%; overflow: hidden; display: block; box-shadow: 0 40px 80px -30px rgba(0,0,0,.9), 0 0 0 1px var(--gold), 0 0 0 12px rgba(224,177,88,.12); }
.mg-book { background: rgba(255,252,245,.98); color: var(--text); border-radius: 22px; padding: 28px 28px 24px; box-shadow: 0 40px 80px -30px rgba(0,0,0,.8); }
.mg-book-t { font-family: var(--font-head); font-size: 34px; color: var(--gold-deep); margin-bottom: 6px; }
.mg-book .c-res { max-width: none; }
.mg-book .c-res-head { display: none; }
.mg-book .res-step legend { font-size: 15px; }
.mg-services { background: #fff; border-bottom: 1px solid var(--line); }
.mg-services-in { max-width: 1280px; margin: 0 auto; padding: 26px 28px; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.mg-services-in li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 6px 16px; border-left: 1px solid var(--line); }
.mg-services-in li:first-child { border-left: 0; }
.mg-services-in span { color: var(--wine); margin-bottom: 6px; }
.mg-services-in strong { font-family: var(--font-head); font-weight: 400; font-size: 22px; }
.mg-services-in small { color: var(--muted); font-size: 13.5px; }
.mg-sec { padding: 76px 0 0; }
.mg-in { max-width: 1280px; margin: 0 auto; padding: 0 28px; }
.mg-kicker { font-size: 12.5px; letter-spacing: .24em; text-transform: uppercase; font-weight: 600; color: var(--wine); }
.mg-h2 { font-size: clamp(34px, 4.2vw, 52px); margin-top: 8px; }
.mg-circles { margin-top: 30px; display: flex; gap: 26px; overflow-x: auto; scrollbar-width: none; padding: 6px 4px 12px; }
.mg-circles::-webkit-scrollbar { display: none; }
.mg-circle { flex: none; width: 118px; display: flex; flex-direction: column; align-items: center; gap: 12px; font-weight: 600; font-size: 15px; text-align: center; }
.mg-circle-pic { width: 108px; height: 108px; border-radius: 50%; overflow: hidden; background: var(--bg-alt); display: grid; place-items: center; font-family: var(--font-head); font-size: 40px; color: var(--wine); border: 3px solid #fff; box-shadow: 0 0 0 1.5px var(--line-strong), 0 14px 26px -16px rgba(0,0,0,.5); transition: transform .2s; }
.mg-circle:hover .mg-circle-pic { transform: translateY(-4px); }
.mg-circle-img { width: 100%; height: 100%; }
.mg-fav { margin-top: 30px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.mg-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.mg-card:hover { transform: translateY(-3px); box-shadow: 0 22px 36px -24px rgba(42,31,20,.5); }
.mg-photo { aspect-ratio: 4 / 3; background: var(--bg-alt); display: grid; place-items: center; color: var(--wine); }
.mg-photo.no-pic { aspect-ratio: 5 / 2; }
.mg-img { width: 100%; height: 100%; }
.mg-body { padding: 16px 18px 18px; display: flex; flex-direction: column; flex: 1; }
.mg-body p { color: var(--muted); font-size: 14px; line-height: 1.5; margin-top: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; flex: 1; }
.mg-price { display: block; margin-top: 12px; font-weight: 700; font-size: 17px; color: var(--wine); }
.mg-act { margin-top: 12px; }
.mg-add.add-btn { width: 100%; justify-content: center; min-height: 46px; border: 1.5px solid var(--gold); border-radius: 999px; background: #fffaf0; color: var(--gold-deep); font-weight: 600; font-size: 14.5px; }
.mg-add.add-btn:hover { background: var(--gold); color: #1b1305; }
.mg-add .add-ic { display: none; }
.mg-add.stepper { width: 100%; justify-content: space-between; min-height: 46px; }
.mg-add.stepper button { width: 54px; height: 44px; }
.mg-card.is-off { opacity: .55; }
.mg-banner { position: relative; margin-top: 76px; overflow: hidden; background: var(--dark); color: #fff; }
.mg-banner-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.mg-banner-bg img { opacity: .5; }
.mg-banner-veil { position: absolute; inset: 0; background: linear-gradient(90deg, #120e0a 22%, rgba(18,14,10,.3)); }
.mg-banner-in { position: relative; max-width: 1280px; margin: 0 auto; padding: 56px 28px; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.mg-script { font-family: var(--hand); font-weight: 700; font-size: 30px; color: var(--gold); line-height: 1; }
.mg-banner h2 { font-size: clamp(34px, 4.6vw, 58px); margin-top: 6px; }
.mg-banner p:not(.mg-script) { color: #dccfb8; margin-top: 10px; }
.mg-offers { margin-top: 28px; display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 18px; }
.mg-loy-in { max-width: 760px; }
.mg-stamp { background: #fff; border: 1px solid var(--line-strong); border-radius: 24px; padding: 26px; }
.mg-menu .mg-in > .mg-kicker, .mg-menu .mg-in > .mg-h2 { text-align: center; }
.mg-search { max-width: 560px; margin: 20px auto 0; }
.mg-sf { background: #fff; border-color: var(--line-strong); height: 56px; }
.mg-sf .ic { color: var(--wine); }
.mg-track { max-width: 780px; margin: 16px auto 0; }
.mg-cat { margin: 56px 0 22px; font-size: 32px; display: flex; align-items: center; gap: 18px; }
.mg-cat::after { content: ''; flex: 1; height: 1px; background: var(--line-strong); }
.mg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; }
.mg-gal-grid { margin-top: 24px; display: grid; gap: 16px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mg-gal-1 { grid-template-columns: 1fr; } .mg-gal-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mg-gal-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mg-gal-grid figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 16px; }
.mg-gal-img { width: 100%; height: 100%; }
.mg-foot { margin-top: 90px; background: var(--dark); color: #dccfb8; --text: #f1e8d6; --muted: #b3a690; --line: rgba(255,255,255,.14); }
.mg-foot-in { max-width: 1280px; margin: 0 auto; padding: 56px 28px 34px; display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 40px; }
.mg-foot h3 { font-family: var(--font-body); font-weight: 600; font-size: 17px; color: #fff; margin-bottom: 16px; }
.mg-foot-brand .logo-text { font-family: var(--font-head); font-size: 32px; color: var(--gold); }
.mg-foot-brand .logo-img { height: 40px; width: auto; }
.mg-foot-brand p { margin-top: 12px; color: #b3a690; max-width: 34ch; }
.mg-foot .hours { max-width: none; }
.mg-foot .hours-row dt { color: #b3a690; }
.mg-foot .contact-row .ic { color: var(--gold); }
.mg-foot-bot { max-width: 1280px; margin: 0 auto; padding: 18px 28px 30px; border-top: 1px solid rgba(255,255,255,.12); color: #8f846f; }
.mg-foot-bot .legal { color: #8f846f; }
.mg-bar { display: none; }
@media (max-width: 1000px) { .mg-fav { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mg-foot-in { grid-template-columns: 1fr 1fr; } }
@media (max-width: 899px) {
  .mg-top-in { height: 62px; padding: 0 16px; gap: 10px; }
  .mg-nav { display: none; }
  .mg-top-cta { margin-left: auto; }
  .mg-cart { margin-left: 0; padding: 8px 12px; }
  .mg-hero-in, .mg-hero.has-book .mg-hero-in { grid-template-columns: 1fr; padding: 38px 18px 44px; min-height: 0; gap: 28px; }
  .mg-hero-veil { background: linear-gradient(0deg, #120e0a 25%, rgba(18,14,10,.55)); }
  .mg-hero h1 { font-size: 52px; }
  .mg-lead { font-size: 16.5px; }
  .mg-cta .mg-btn { flex: 1 1 auto; }
  .mg-plate-img { width: min(300px, 78%); }
  .mg-book { padding: 20px 14px; border-radius: 18px; }
  .mg-services-in { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 18px 12px; row-gap: 18px; }
  .mg-services-in li:nth-child(odd) { border-left: 0; }
  .mg-sec { padding-top: 52px; }
  .mg-in { padding: 0 16px; }
  .mg-circles { gap: 16px; }
  .mg-circle { width: 96px; }
  .mg-circle-pic { width: 88px; height: 88px; }
  .mg-fav { gap: 12px; }
  .mg-fav .mg-body p { display: none; }
  .mg-body { padding: 12px 12px 14px; }
  .mg-banner { margin-top: 52px; }
  .mg-banner-in { padding: 40px 18px; }
  .mg-grid { grid-template-columns: 1fr; gap: 12px; }
  .mg-grid .mg-card { flex-direction: row; }
  .mg-grid .mg-photo { width: 116px; aspect-ratio: auto; flex: none; }
  .mg-grid .mg-photo.no-pic { display: none; }
  .mg-gal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px; }
  .mg-foot-in { grid-template-columns: 1fr; padding: 40px 18px 24px; gap: 28px; }
  .mg-foot-bot { padding-bottom: 120px; }
  .mg-bar { display: flex; align-items: center; justify-content: space-between; position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 60; height: 58px; padding: 0 24px; border-radius: 999px; background: var(--gold); color: #1b1305; font-weight: 700; box-shadow: 0 16px 34px -10px rgba(0,0,0,.6); }
  .mg-bar strong { font-family: var(--font-head); font-weight: 400; font-size: 22px; }
}
.tpl-dkiosk {
  --cobalt: #1536b8; --cobalt-deep: #0e2585; --red: #e5322d; --yellow: #ffd23f; --ink: #101626;
  --bg: #fffdf6; --bg-alt: #f3efe2; --card: #fff; --text: var(--ink); --muted: #566075; --line: #e3dfd0; --line-strong: #c9c4b0;
  --font-body: 'Barlow', system-ui, sans-serif; --font-head: 'Anton', 'Barlow Condensed', Impact, sans-serif;
  --radius: 10px; --btn-radius: 10px; --btn-weight: 700; --btn-transform: none;
  --accent: var(--cobalt); --on-accent: #fff;
  --plus-size: 44px; --plus-bg: var(--yellow); --plus-fg: var(--ink); --plus-line: var(--ink); --plus-shadow: 2px 2px 0 var(--ink);
  --bar-bg: var(--cobalt); --bar-fg: #fff; --bar-radius: 12px;
  font-size: 17px;
}
.tpl-dkiosk h1, .tpl-dkiosk h2, .tpl-dkiosk h3 { font-family: var(--font-head); font-weight: 400; letter-spacing: .01em; line-height: 1.02; text-transform: uppercase; }
.tpl-dkiosk h4 { font-family: var(--font-body); font-weight: 700; font-size: 18px; line-height: 1.2; }
.tpl-dkiosk main > section, .tpl-dkiosk .menu-cat, .tpl-dkiosk footer { animation: none !important; }
.dk-in { max-width: 1120px; margin: 0 auto; padding: 0 22px; }
.tpl-dkiosk .btn-primary { background: var(--cobalt); border-color: var(--cobalt); }
.dk-top { position: sticky; top: var(--top); z-index: 40; background: var(--card); box-shadow: 0 6px 0 -3px var(--ink); }
.dk-awning { height: 12px; background: repeating-linear-gradient(90deg, var(--red) 0 36px, #fff 36px 72px); border-bottom: 3px solid var(--ink); }
.dk-top-in { height: 64px; display: flex; align-items: center; gap: 18px; }
.dk-brand .logo-text { font-family: var(--font-head); font-size: 28px; text-transform: uppercase; color: var(--cobalt); letter-spacing: .02em; }
.dk-brand .logo-img { height: 36px; width: auto; }
.dk-nav { display: flex; gap: 4px; margin-left: auto; }
.dk-link { padding: 8px 12px; font-weight: 700; font-size: 16px; color: var(--ink); border-radius: 8px; }
.dk-link:hover { background: var(--yellow); }
.dk-cart { margin-left: auto; border: 2px solid var(--ink); border-radius: 10px; color: var(--ink); background: var(--yellow); box-shadow: 2px 2px 0 var(--ink); font-weight: 800; }
.dk-nav + .dk-cart { margin-left: 0; }
.dk-cart .cart-count { background: var(--ink); color: var(--yellow); }
.dk-hero { background: var(--cobalt); color: #fff; border-bottom: 6px solid var(--ink); }
.dk-hero-in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 32px; align-items: end; padding-top: 44px; padding-bottom: 0; }
.dk-hero-text { padding-bottom: 44px; }
.dk-tag { display: inline-block; background: var(--yellow); color: var(--ink); font-weight: 800; font-size: 15px; padding: 4px 12px; border-radius: 6px; transform: rotate(-1.5deg); }
.dk-hero h1 { font-size: clamp(54px, 8.4vw, 108px); margin-top: 16px; overflow-wrap: break-word; }
.dk-lead { margin-top: 16px; font-size: 19px; line-height: 1.5; max-width: 34em; color: #dfe6ff; }
.dk-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.dk-main { display: inline-flex; align-items: center; min-height: 54px; padding: 0 28px; background: var(--yellow); color: var(--ink); border: 3px solid var(--ink); border-radius: 12px; font-weight: 800; font-size: 19px; box-shadow: 4px 4px 0 var(--ink); }
.dk-ring { display: inline-flex; align-items: center; gap: 10px; min-height: 54px; padding: 0 20px; color: #fff; border: 2px solid rgba(255,255,255,.6); border-radius: 12px; font-weight: 700; text-decoration: none; }
.dk-status { margin-top: 20px; color: #dfe6ff; }
.dk-status .open-now i { box-shadow: 0 0 0 4px rgba(255,255,255,.2); }
.dk-hero-pic { align-self: stretch; min-height: 280px; border-radius: 18px 18px 0 0; overflow: hidden; border: 4px solid var(--ink); border-bottom: 0; background: var(--cobalt-deep); }
.dk-hero-img { width: 100%; height: 100%; }
.dk-menu { padding: 44px 0 20px; }
.dk-menu-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.dk-menu h2 { font-size: clamp(40px, 6vw, 64px); color: var(--cobalt); }
.dk-sf { background: #fff; border: 2px solid var(--ink); border-radius: 10px; max-width: 380px; height: 50px; }
.dk-cats { margin: 20px 0 8px; gap: 8px; }
.dk-cats .cat-link { padding: 8px 16px; border: 2px solid var(--ink); border-radius: 999px; background: #fff; color: var(--ink); font-weight: 700; }
.dk-cats .cat-link:hover { background: var(--yellow); border-bottom-color: var(--ink); }
.dk-tn { border-color: var(--ink); border-style: dashed; }
.dk-track { margin: 12px 0; }
.dk-cat { margin: 38px 0 14px; font-size: clamp(30px, 4.4vw, 44px); color: var(--ink); display: flex; align-items: center; gap: 14px; }
.dk-cat::after { content: ''; flex: 1; height: 8px; background: repeating-linear-gradient(90deg, var(--red) 0 12px, transparent 12px 24px); }
.dk-board { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
.dk-item { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 4px 14px; align-items: center; padding: 16px 0; border-bottom: 2px solid var(--ink); }
.dk-no { grid-row: 1 / span 2; align-self: start; width: 48px; height: 48px; display: grid; place-items: center; background: var(--yellow); color: var(--ink); border: 2px solid var(--ink); border-radius: 8px; font: 400 26px/1 var(--font-head); font-variant-numeric: tabular-nums; box-shadow: 2px 2px 0 var(--ink); }
.dk-txt { min-width: 0; }
.dk-txt p { font-size: 15.5px; line-height: 1.4; color: var(--muted); margin-top: 3px; }
.dk-pic { grid-column: 3; grid-row: 1; width: 78px; height: 78px; border-radius: 10px; overflow: hidden; border: 2px solid var(--ink); }
.dk-img { width: 100%; height: 100%; }
.dk-buy { grid-column: 2 / 4; grid-row: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dk-pic + .dk-buy { grid-row: 2; }
.dk-price { font: 400 30px/1 var(--font-head); color: var(--red); font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.dk-item.is-off { opacity: .6; }
.dk-offers { margin-top: 36px; padding: 36px 0 44px; background: var(--red); color: #fff; border-block: 4px solid var(--ink); }
.dk-offers h2 { font-size: clamp(36px, 5vw, 54px); }
.dk-offer-list { margin-top: 20px; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; }
.dk-offer { background: #fff; color: var(--ink); border: 3px solid var(--ink); border-radius: 12px; padding: 18px; box-shadow: 5px 5px 0 var(--ink); }
.dk-offer .offer-value { color: var(--red); font-family: var(--font-head); font-size: 34px; }
.dk-stamp { margin-top: 28px; background: #fff; color: var(--ink); border: 3px solid var(--ink); border-radius: 12px; padding: 22px; max-width: 640px; }
.dk-book { padding: 44px 0 6px; }
.dk-book .c-res .sec-title, .dk-book .c-res h2 { font-family: var(--font-head); text-transform: uppercase; font-size: clamp(36px, 5vw, 54px); color: var(--cobalt); font-weight: 400; }
.dk-book .date-chip.is-selected, .dk-book .slot.is-selected { background: var(--cobalt); border-color: var(--cobalt); color: #fff; }
.dk-info { margin-top: 40px; padding: 38px 0 44px; background: var(--ink); color: #e9ecf6; --text: #e9ecf6; --muted: #aab2c8; --line: rgba(255,255,255,.18); }
.dk-info-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 30px; }
.dk-info h3 { font-size: 30px; color: var(--yellow); margin-bottom: 12px; }
.dk-foot { background: var(--ink); color: #aab2c8; padding: 0 0 100px; --muted: #aab2c8; }
@media (max-width: 899px) {
  .dk-hero-in { grid-template-columns: 1fr; padding-top: 30px; }
  .dk-hero-text { padding-bottom: 28px; }
  .dk-hero-pic { min-height: 0; aspect-ratio: 16 / 10; border-radius: 14px 14px 0 0; }
  .dk-nav { display: none; }
  .dk-board { grid-template-columns: 1fr; }
  .dk-top-in { height: 58px; }
}
.tpl-dkiosk .c-plus:hover { transform: none !important; }
.dk-top { --burger: var(--ink); --nav-bg: #fff; --nav-fg: var(--ink); --nav-line: var(--line-strong); --nav-hover: var(--cobalt); }
.dk-burger { margin-left: 4px; }
.dk-panel .c-navlink { font-family: var(--font-head); text-transform: uppercase; font-size: 22px; font-weight: 400; letter-spacing: .02em; }
.dk-hero.has-bg { position: relative; overflow: hidden; }
.dk-hero.has-bg .dk-hero-in { grid-template-columns: minmax(0, 1fr); align-items: center; min-height: min(74vh, 640px); padding-top: 72px; padding-bottom: 28px; position: static; }
.dk-hero.has-bg .dk-hero-text { position: relative; z-index: 1; max-width: 640px; padding-bottom: 44px; }
.dk-hero.has-bg .dk-hero-pic { position: absolute; inset: 0; min-height: 0; border: 0; border-radius: 0; z-index: 0; }
.dk-hero.has-bg .dk-hero-pic::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--cobalt-deep) 92%, transparent) 0%, color-mix(in srgb, var(--cobalt-deep) 72%, transparent) 46%, color-mix(in srgb, var(--cobalt-deep) 18%, transparent) 100%); }
.dk-hero.has-bg .dk-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; }
@media (max-width: 899px) {
  .dk-hero.has-bg .dk-hero-in { min-height: 540px; align-items: end; padding-top: 56px; padding-bottom: 0; }
  .dk-hero.has-bg .dk-hero-pic { aspect-ratio: auto; border-radius: 0; }
  .dk-hero.has-bg .dk-hero-pic::after { background: linear-gradient(to top, color-mix(in srgb, var(--cobalt-deep) 94%, transparent) 0%, color-mix(in srgb, var(--cobalt-deep) 66%, transparent) 60%, color-mix(in srgb, var(--cobalt-deep) 46%, transparent) 100%); }
}
.tpl-skyline {
  --night: #070d1a; --night-2: #0d1730; --glow: #d9915b; --champagne: #e9d9b8; --haze: #9aa6c0;
  --bg: var(--night); --bg-alt: var(--night-2); --card: #111b36; --text: #ece6d6; --muted: var(--haze); --line: rgba(233,217,184,.16); --line-strong: rgba(233,217,184,.32);
  --font-body: 'Instrument Sans', system-ui, sans-serif; --font-head: 'Italiana', 'Cormorant Garamond', Georgia, serif;
  --radius: 2px; --btn-radius: 0; --btn-weight: 600; --btn-transform: uppercase; --btn-track: .1em;
  --accent: var(--champagne); --on-accent: var(--night);
  --plus-size: 40px; --plus-bg: transparent; --plus-fg: var(--champagne); --plus-line: var(--champagne); --plus-shadow: none; --plus-radius: 50%;
  --bar-bg: var(--champagne); --bar-fg: var(--night); --bar-radius: 4px;
  font-size: 17px;
}
.tpl-skyline main > section, .tpl-skyline .menu-cat, .tpl-skyline footer { animation: none !important; }
.tpl-skyline h1, .tpl-skyline h2, .tpl-skyline h3 { font-family: var(--font-head); font-weight: 400; letter-spacing: .01em; line-height: 1.04; }
.tpl-skyline h4 { font: 600 18px/1.3 var(--font-body); color: #fff; }
.tpl-skyline .c-plus:hover { background: var(--champagne); color: var(--night); border-color: var(--champagne); transform: none; }
.tpl-skyline .btn-primary { background: var(--champagne); color: var(--night); border-color: var(--champagne); }
.tpl-skyline .btn { border-color: var(--line-strong); color: var(--text); }
.tpl-skyline .btn:hover { background: rgba(255,255,255,.06); }
.tpl-skyline .drawer, .tpl-skyline .sheet { --bg: #fbf8f1; --text: #1a1f2e; --muted: #5d6477; --line: #e0dacb; --line-strong: #c9c1ac; --card: #fff; --bg-alt: #f1ecde; }
.sk-in { max-width: 1120px; margin: 0 auto; padding: 0 26px; }
.sk-top { position: sticky; top: var(--top); z-index: 40; background: rgba(7,13,26,.88); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.sk-top-in { height: 68px; display: flex; align-items: center; gap: 24px; }
.sk-brand .logo-text { font: 400 30px/1 var(--font-head); color: var(--champagne); letter-spacing: .04em; }
.sk-brand .logo-img { height: 36px; width: auto; }
.sk-nav { display: flex; gap: 4px; margin-left: auto; }
.sk-link { padding: 8px 14px; font-size: 13px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #c9cddc; }
.sk-link:hover { color: var(--champagne); }
.sk-cart { border: 1px solid var(--champagne); border-radius: 0; color: var(--champagne); font-size: 12.5px; margin-left: 6px; }
.sk-cart.has-items { background: var(--champagne); color: var(--night); }
.sk-cart.has-items .cart-count { background: var(--night); color: var(--champagne); }
.sk-hero { position: relative; min-height: min(86vh, 760px); display: flex; align-items: center; background: linear-gradient(180deg, #060b17 0%, #0d1a38 48%, #3a3550 78%, var(--glow) 100%); overflow: hidden; }
.sk-hero-bg { position: absolute; inset: 0; opacity: .38; mix-blend-mode: luminosity; }
.sk-hero-img { width: 100%; height: 100%; }
.sk-hero-in { position: relative; width: 100%; padding-top: 70px; padding-bottom: 170px; }
.sk-greet { font: italic 400 clamp(26px, 3.4vw, 38px)/1 var(--font-head); color: var(--glow); }
.sk-hero h1 { font-size: clamp(60px, 11vw, 150px); color: #fff; margin-top: 12px; overflow-wrap: break-word; text-shadow: 0 6px 40px rgba(0,0,0,.5); }
.sk-lead { margin-top: 20px; font-size: 19px; line-height: 1.6; max-width: 30em; color: #e1dccd; }
.sk-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
.sk-go, .sk-alt { display: inline-flex; align-items: center; min-height: 52px; padding: 0 30px; font-size: 13.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.sk-go { background: var(--champagne); color: var(--night); }
.sk-go:hover { background: #fff; }
.sk-alt { border: 1px solid rgba(255,255,255,.7); color: #fff; }
.sk-alt:hover { background: rgba(255,255,255,.1); }
.sk-status { margin-top: 24px; color: #e1dccd; }
.sk-city { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 130px; fill: var(--night); display: block; }
.sk-menu { padding: 24px 0 24px; }
.sk-menu-top { display: flex; align-items: end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.sk-menu h2 { font-size: clamp(44px, 6vw, 76px); color: var(--champagne); }
.sk-sf { background: transparent; border: 0; border-bottom: 1px solid var(--champagne); border-radius: 0; max-width: 340px; height: 48px; color: var(--text); }
.sk-sf input { color: var(--text); }
.sk-tn { margin-top: 20px; border-color: var(--line-strong); }
.sk-menu .menu-cat { margin-top: 56px; }
.sk-banner { position: relative; height: 220px; overflow: hidden; display: flex; align-items: flex-end; }
.sk-banner.no-pic { height: 90px; border-bottom: 1px solid var(--line-strong); }
.sk-banner-img { position: absolute; inset: 0; width: 100%; height: 100%; }
.sk-banner::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,13,26,.1) 0%, rgba(7,13,26,.78) 100%); }
.sk-cat { position: relative; z-index: 1; margin: 0 auto; width: 100%; max-width: 1120px; padding: 0 26px 18px; font-size: clamp(36px, 5vw, 58px); color: #fff; }
.sk-list { display: flex; flex-direction: column; padding-top: 6px; }
.sk-dish { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 20px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--line); }
.sk-txt p { font-size: 16px; line-height: 1.55; color: var(--muted); margin-top: 4px; max-width: 38em; }
.sk-pic { width: 84px; height: 84px; overflow: hidden; border-radius: 2px; background: var(--night-2); }
.sk-img { width: 100%; height: 100%; }
.sk-buy { display: flex; align-items: center; gap: 14px; }
.sk-price { font: 400 24px/1 var(--font-head); color: var(--champagne); font-variant-numeric: tabular-nums; white-space: nowrap; }
.sk-dish.is-off { opacity: .5; }
.sk-offers { margin-top: 60px; padding: 56px 0 60px; background: var(--night-2); border-block: 1px solid var(--line); }
.sk-offers h2 { font-size: clamp(36px, 4.8vw, 56px); color: var(--champagne); }
.sk-offer-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin-top: 26px; }
.sk-offer { border: 1px solid var(--line-strong); padding: 22px; }
.sk-offer .offer-value { color: var(--glow); font: 400 40px/1 var(--font-head); }
.sk-offer .offer-meta code { background: transparent; border-color: var(--glow); color: var(--glow); }
.sk-stamp { margin-top: 30px; border: 1px solid var(--line-strong); padding: 26px; max-width: 640px; --card: transparent; }
.sk-stamp .stamp.is-filled { background: var(--champagne); border-color: var(--champagne); color: var(--night); }
.sk-book { padding: 64px 0 6px; --bg: #fbf8f1; }
.sk-book .c-res { background: #fbf8f1; color: #1a1f2e; padding: 36px 34px 30px; --text: #1a1f2e; --muted: #5d6477; --line: #e0dacb; --line-strong: #c9c1ac; --card: #fff; --bg-alt: #f1ecde; --accent: #0d1730; --on-accent: var(--champagne); }
.sk-book .c-res .sec-title, .sk-book .c-res h2 { font: 400 clamp(36px, 5vw, 56px)/1.05 var(--font-head); color: #0d1730; }
.sk-book .date-chip.is-selected, .sk-book .slot.is-selected { background: #0d1730; border-color: #0d1730; color: var(--champagne); }
.sk-info { margin-top: 56px; padding: 46px 0 54px; border-top: 1px solid var(--line); }
.sk-info-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 40px; }
.sk-info h3 { font-size: 32px; color: var(--champagne); margin-bottom: 14px; }
.sk-foot { padding: 0 0 100px; }
@media (max-width: 899px) {
  .sk-nav { display: none; }
  .sk-cart { margin-left: auto; }
  .sk-top-in { height: 60px; }
  .sk-hero { min-height: 640px; }
  .sk-hero-in { padding-top: 50px; padding-bottom: 150px; }
  .sk-city { height: 90px; }
  .sk-banner { height: 150px; }
  .sk-in { padding: 0 18px; }
  .sk-cat { padding: 0 18px 14px; }
  .sk-dish { grid-template-columns: minmax(0, 1fr) auto; }
  .sk-pic { display: none; }
  .sk-book .c-res { padding: 26px 18px 22px; }
}
.tpl-skyline .c-plus:hover { transform: none !important; }
.sk-top { --burger: var(--champagne); --nav-bg: #0b1327; --nav-fg: #e9e4d6; --nav-line: var(--line); --nav-hover: var(--champagne); }
.sk-burger { margin-left: 4px; }
.sk-panel .c-navlink { text-transform: uppercase; letter-spacing: .18em; font-size: 14px; font-weight: 600; }
.tpl-terroir {
  --bone: #f6f2ea; --coal: #1c1b19; --copper: #b0623a; --olive: #6b7552; --mist: #e6e1d6;
  --bg: var(--bone); --bg-alt: var(--mist); --card: #fff; --text: var(--coal); --muted: #6a665c; --line: #d9d3c4; --line-strong: #bdb5a2;
  --font-body: 'Instrument Sans', system-ui, sans-serif; --font-head: 'Newsreader', Georgia, serif;
  --radius: 0; --btn-radius: 0; --btn-weight: 600; --btn-transform: none;
  --accent: var(--copper); --on-accent: #fff;
  --plus-size: 36px; --plus-bg: transparent; --plus-fg: var(--coal); --plus-line: var(--coal); --plus-shadow: none; --plus-radius: 50%;
  --bar-bg: var(--coal); --bar-fg: var(--bone); --bar-radius: 0;
  font-size: 17px;
}
.tpl-terroir main > section, .tpl-terroir .menu-cat, .tpl-terroir footer { animation: none !important; }
.tpl-terroir h1, .tpl-terroir h2, .tpl-terroir h3 { font-family: var(--font-head); font-weight: 500; letter-spacing: -.02em; line-height: 1.02; }
.tpl-terroir h4 { font: 500 22px/1.2 var(--font-head); letter-spacing: -.005em; }
.tpl-terroir .c-plus:hover { background: var(--copper); border-color: var(--copper); color: #fff; transform: none; }
.tr-in { max-width: 1180px; margin: 0 auto; padding: 0 28px; }
.tr-top { position: sticky; top: var(--top); z-index: 40; background: var(--bone); border-bottom: 1px solid var(--coal); }
.tr-top-in { height: 64px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px; }
.tr-season { font-size: 13.5px; color: var(--muted); font-style: italic; font-family: var(--font-head); }
.tr-brand .logo-text { font: italic 500 28px/1 var(--font-head); color: var(--coal); letter-spacing: -.01em; }
.tr-brand .logo-img { height: 34px; width: auto; }
.tr-nav { display: flex; justify-content: flex-end; align-items: center; gap: 2px; }
.tr-link { padding: 8px 10px; font-size: 14px; font-weight: 500; color: var(--coal); white-space: nowrap; }
.tr-link:hover { color: var(--copper); text-decoration: underline; text-underline-offset: 5px; }
.tr-cart { border: 1px solid var(--coal); border-radius: 0; color: var(--coal); font-size: 13.5px; margin-left: 8px; }
.tr-cart.has-items { background: var(--coal); color: var(--bone); }
.tr-cart.has-items .cart-count { background: var(--copper); color: #fff; }
.tr-hero { padding: 72px 0 90px; }
.tr-hero-in { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.tr-hero-text { grid-column: 1 / span 7; grid-row: 1; position: relative; z-index: 2; }
.tr-kick { font-size: 14px; font-weight: 600; color: var(--copper); letter-spacing: .02em; }
.tr-hero h1 { font-size: clamp(60px, 9.4vw, 136px); font-style: italic; margin: 12px 0 0 -4px; overflow-wrap: break-word; }
.tr-cols { display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: 34px; max-width: 520px; }
.tr-lead { font: 400 24px/1.3 var(--font-head); color: var(--coal); }
.tr-body { font-size: 16px; line-height: 1.65; color: var(--muted); }
.tr-cta { display: flex; gap: 26px; flex-wrap: wrap; align-items: center; margin-top: 34px; }
.tr-go { display: inline-flex; align-items: center; min-height: 52px; padding: 0 28px; background: var(--coal); color: var(--bone); font-weight: 600; font-size: 16px; }
.tr-go:hover { background: var(--copper); }
.tr-alt { font-weight: 600; font-size: 16px; text-decoration: underline; text-underline-offset: 6px; text-decoration-color: var(--copper); }
.tr-status { margin-top: 24px; color: var(--muted); }
.tr-photo { grid-column: 8 / span 5; grid-row: 1; margin: 140px 0 0; position: relative; z-index: 1; }
.tr-photo-img { display: block; width: 100%; aspect-ratio: 4 / 5; }
.tr-photo figcaption { margin-top: 10px; font: italic 400 14px/1.4 var(--font-head); color: var(--muted); }
.tr-menu { padding: 20px 0 20px; border-top: 1px solid var(--coal); }
.tr-menu-top { display: flex; align-items: end; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-top: 34px; }
.tr-menu h2 { font-size: clamp(44px, 6.4vw, 84px); font-style: italic; }
.tr-sf { background: transparent; border: 0; border-bottom: 1px solid var(--coal); border-radius: 0; max-width: 340px; height: 48px; }
.tr-tn { margin-top: 20px; border-color: var(--line-strong); }
.tr-menu .menu-cat { display: grid; grid-template-columns: minmax(200px, 3fr) minmax(0, 8fr); gap: 0 56px; margin-top: 56px; padding-top: 28px; border-top: 1px solid var(--line-strong); }
.tr-chead { position: sticky; top: calc(var(--top) + 90px); align-self: start; }
.tr-cat { font-size: clamp(30px, 3.6vw, 46px); font-style: italic; color: var(--copper); }
.tr-cover { margin: 18px 0 0; }
.tr-cover-img { display: block; width: 100%; aspect-ratio: 4 / 3; }
.tr-list { display: flex; flex-direction: column; }
.tr-dish { padding: 18px 0; border-bottom: 1px solid var(--line); position: relative; }
.tr-dish:first-child { padding-top: 6px; }
.tr-line { display: flex; align-items: baseline; gap: 14px; }
.tr-rule { flex: 1; border-bottom: 1px dotted var(--line-strong); transform: translateY(-4px); }
.tr-price { font: 500 18px/1 var(--font-body); font-variant-numeric: tabular-nums; color: var(--coal); white-space: nowrap; }
.tr-dish p { margin-top: 6px; max-width: 36em; font-size: 16px; line-height: 1.55; color: var(--muted); }
.tr-act { position: absolute; right: 0; top: 46px; }
.tr-dish p + .tr-act { top: auto; bottom: 14px; }
.tr-dish.is-off { opacity: .55; }
.tr-offers { margin-top: 60px; padding: 52px 0 58px; background: var(--coal); color: var(--bone); --text: var(--bone); --muted: #b7b2a5; --line: rgba(255,255,255,.2); }
.tr-offers h2 { font-size: clamp(40px, 5vw, 64px); font-style: italic; color: #e2a27f; }
.tr-offer-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 0 40px; margin-top: 26px; }
.tr-offer { padding: 20px 0; border-top: 1px solid rgba(255,255,255,.3); }
.tr-offer .offer-value { color: #e2a27f; font: italic 500 42px/1 var(--font-head); }
.tr-offer .offer-meta code { background: transparent; border-color: #e2a27f; color: #e2a27f; }
.tr-stamp { margin-top: 34px; max-width: 640px; border-top: 1px solid rgba(255,255,255,.3); padding-top: 26px; --card: transparent; }
.tr-stamp .stamp.is-filled { background: #e2a27f; border-color: #e2a27f; color: var(--coal); }
.tr-book { padding: 70px 0 6px; }
.tr-book .c-res .sec-title, .tr-book .c-res h2 { font: italic 500 clamp(44px, 6vw, 76px)/1 var(--font-head); letter-spacing: -.02em; }
.tr-book .date-chip.is-selected, .tr-book .slot.is-selected { background: var(--coal); border-color: var(--coal); color: var(--bone); }
.tr-info { margin-top: 60px; padding: 46px 0 52px; border-top: 1px solid var(--coal); }
.tr-info-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 40px; }
.tr-info h3 { font-size: 34px; font-style: italic; color: var(--copper); margin-bottom: 14px; }
.tr-foot { padding: 0 0 100px; }
@media (max-width: 899px) {
  .tr-top-in { grid-template-columns: auto 1fr; height: 58px; }
  .tr-season { display: none; }
  .tr-link { display: none; }
  .tr-nav { justify-self: end; }
  .tr-hero { padding: 40px 0 56px; }
  .tr-hero-in { display: block; }
  .tr-photo { margin: 38px -28px 0 40px; }
  .tr-menu .menu-cat { grid-template-columns: 1fr; gap: 18px; margin-top: 40px; }
  .tr-chead { position: static; }
  .tr-cover { display: none; }
  .tr-act { top: 40px; }
}
.tpl-terroir .c-plus:hover { transform: none !important; }
.tr-top { --burger: var(--coal); --nav-bg: var(--bone); --nav-fg: var(--coal); --nav-line: var(--line-strong); --nav-hover: var(--copper); }
.tr-burger { margin-left: 2px; }
.tr-panel .c-navlink { font: italic 500 24px/1 var(--font-head); }
.tpl-deco {
  --emerald: #0b3b32; --emerald-2: #072922; --brass: #c9a45c; --brass-2: #e3c585; --ivory: #f4ecd8; --ink: #07201b;
  --bg: var(--ivory); --bg-alt: #ebe1c8; --card: #fbf6e8; --text: var(--ink); --muted: #5a665f; --line: #d9ca9f; --line-strong: #c9a45c;
  --font-body: 'Jost', system-ui, sans-serif; --font-head: 'Poiret One', 'Jost', sans-serif;
  --radius: 2px; --btn-radius: 0; --btn-weight: 500; --btn-transform: uppercase; --btn-track: .14em;
  --accent: var(--emerald); --on-accent: var(--brass-2);
  --plus-size: 40px; --plus-bg: transparent; --plus-fg: var(--emerald); --plus-line: var(--brass); --plus-shadow: none; --plus-radius: 0;
  --bar-bg: var(--emerald); --bar-fg: var(--brass-2); --bar-radius: 0;
  font-size: 17px;
}
.tpl-deco main > section, .tpl-deco .menu-cat, .tpl-deco footer { animation: none !important; }
.tpl-deco h1, .tpl-deco h2, .tpl-deco h3 { font-family: var(--font-head); font-weight: 400; text-transform: uppercase; letter-spacing: .12em; line-height: 1.15; }
.tpl-deco h4 { font: 500 17px/1.3 var(--font-body); letter-spacing: .14em; text-transform: uppercase; }
.tpl-deco .c-plus:hover { background: var(--emerald); color: var(--brass-2); transform: none; }
.ad-in { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.ad-loz { display: inline-block; width: 9px; height: 9px; background: var(--brass); transform: rotate(45deg); }
.ad-top { position: sticky; top: var(--top); z-index: 40; background: var(--emerald-2); border-bottom: 1px solid var(--brass); }
.ad-top-in { height: 72px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px; }
.ad-brand .logo-text { font: 400 28px/1 var(--font-head); letter-spacing: .2em; text-transform: uppercase; color: var(--brass-2); }
.ad-brand .logo-img { height: 38px; width: auto; }
.ad-nav { display: flex; gap: 4px; }
.ad-nav-r { justify-content: flex-end; align-items: center; }
.ad-link { padding: 8px 12px; font-size: 13.5px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: #d8d1bb; }
.ad-link:hover { color: var(--brass-2); }
.ad-cart { border: 1px solid var(--brass); border-radius: 0; color: var(--brass-2); letter-spacing: .12em; text-transform: uppercase; font-size: 13px; margin-left: 8px; }
.ad-cart.has-items { background: var(--brass); color: var(--ink); }
.ad-cart.has-items .cart-count { background: var(--ink); color: var(--brass-2); }
.ad-hero { position: relative; overflow: hidden; background: var(--emerald); color: var(--ivory); padding: 92px 0 84px; text-align: center; }
.ad-fan { position: absolute; left: 50%; top: -340px; width: 1000px; height: 1000px; margin-left: -500px; border-radius: 50%; background: repeating-conic-gradient(from 0deg, rgba(201,164,92,.22) 0 4deg, transparent 4deg 12deg); -webkit-mask-image: radial-gradient(closest-side, #000 30%, transparent 100%); mask-image: radial-gradient(closest-side, #000 30%, transparent 100%); }
.ad-hero-in { position: relative; display: flex; flex-direction: column; align-items: center; gap: 50px; }
.ad-over { font-size: 14px; letter-spacing: .34em; text-transform: uppercase; color: var(--brass-2); }
.ad-title { margin-top: 16px; padding: 18px 40px 22px; border: 1px solid var(--brass); outline: 1px solid var(--brass); outline-offset: 6px; max-width: 100%; }
.ad-hero h1 { font-size: clamp(38px, 7vw, 84px); letter-spacing: .1em; overflow-wrap: break-word; }
.ad-orn { display: flex; justify-content: center; gap: 12px; margin-top: 22px; }
.ad-orn-dark { margin: 8px 0 24px; }
.ad-lead { margin: 22px auto 0; max-width: 30em; font-size: 19px; line-height: 1.6; color: #d8d1bb; font-style: italic; }
.ad-cta { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
.ad-go, .ad-alt { display: inline-flex; align-items: center; min-height: 52px; padding: 0 32px; font-size: 14px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }
.ad-go { background: var(--brass); color: var(--ink); }
.ad-go:hover { background: var(--brass-2); }
.ad-alt { border: 1px solid var(--brass); color: var(--brass-2); }
.ad-alt:hover { background: rgba(201,164,92,.12); }
.ad-status { margin-top: 24px; color: #d8d1bb; }
.ad-arch { margin: 0; width: min(380px, 100%); }
.ad-arch-in { aspect-ratio: 3 / 4; border-radius: 999px 999px 0 0; overflow: hidden; border: 1px solid var(--brass); outline: 1px solid var(--brass); outline-offset: 8px; background: var(--emerald-2); }
.ad-arch-img { width: 100%; height: 100%; }
.ad-menu { padding: 70px 0 24px; }
.ad-card { background: var(--card); border: 1px solid var(--brass); padding: 10px; max-width: 860px; margin: 0 auto; }
.ad-card-in { border: 1px solid var(--brass); padding: 48px 44px 34px; text-align: center; }
.ad-menu h2 { font-size: clamp(34px, 5vw, 54px); color: var(--emerald); }
.ad-sf { margin: 6px auto 0; max-width: 380px; background: #fff; border: 1px solid var(--line-strong); border-radius: 0; height: 48px; text-align: left; }
.ad-tn { text-align: left; margin-top: 18px; }
.ad-cat { margin: 50px 0 8px; font-size: clamp(24px, 3.4vw, 32px); color: var(--emerald); display: flex; align-items: center; gap: 18px; }
.ad-cat::before, .ad-cat::after { content: ''; flex: 1; height: 5px; border-block: 1px solid var(--brass); }
.ad-list { display: flex; flex-direction: column; }
.ad-dish { padding: 22px 0; border-bottom: 1px solid var(--line); }
.ad-dish:last-child { border-bottom: 0; }
.ad-dish p { margin: 6px auto 0; max-width: 34em; font-size: 16px; line-height: 1.55; color: var(--muted); font-style: italic; }
.ad-row { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 12px; }
.ad-price { font: 500 20px/1 var(--font-body); letter-spacing: .1em; color: #8c6a22; font-variant-numeric: tabular-nums; }
.ad-dish.is-off { opacity: .55; }
.ad-offers { margin-top: 56px; padding: 56px 0 60px; background: var(--emerald); color: var(--ivory); text-align: center; }
.ad-offers h2 { font-size: clamp(30px, 4.4vw, 46px); color: var(--brass-2); }
.ad-offer-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; margin-top: 26px; text-align: left; }
.ad-offer { border: 1px solid var(--brass); padding: 22px; outline: 1px solid var(--brass); outline-offset: -8px; --muted: #cfc8b0; --text: var(--ivory); }
.ad-offer .offer-value { color: var(--brass-2); font: 400 38px/1 var(--font-head); }
.ad-offer .offer-meta code { background: transparent; border-color: var(--brass); color: var(--brass-2); }
.ad-stamp { margin: 30px auto 0; max-width: 640px; border: 1px solid var(--brass); padding: 26px; text-align: left; --muted: #cfc8b0; --text: var(--ivory); --card: transparent; --line: rgba(201,164,92,.5); }
.ad-stamp .stamp { border-radius: 0; transform: rotate(45deg) scale(.8); background: transparent; }
.ad-stamp .stamp span { transform: rotate(-45deg); }
.ad-stamp .stamp.is-filled { background: var(--brass); border-color: var(--brass); color: var(--ink); }
.ad-book { padding: 62px 0 6px; }
.ad-book .c-res { text-align: left; }
.ad-book .c-res .sec-title, .ad-book .c-res h2 { font: 400 clamp(32px, 4.6vw, 48px)/1.1 var(--font-head); text-transform: uppercase; letter-spacing: .12em; color: var(--emerald); text-align: center; }
.ad-book .date-chip.is-selected, .ad-book .slot.is-selected { background: var(--emerald); border-color: var(--emerald); color: var(--brass-2); }
.ad-info { margin-top: 50px; padding: 52px 0 56px; background: var(--emerald-2); color: #d8d1bb; --text: #d8d1bb; --muted: #aaa38f; --line: rgba(201,164,92,.35); }
.ad-info-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 40px; text-align: center; }
.ad-info h3 { font-size: 24px; color: var(--brass-2); margin-bottom: 16px; }
.ad-info .hours, .ad-info .contact { margin: 0 auto; text-align: left; }
.ad-foot { background: var(--emerald-2); color: #aaa38f; padding: 0 0 28px; text-align: center; --muted: #aaa38f; }
.tpl-deco .ad-foot + .legal-links { background: var(--emerald-2); color: #aaa38f; opacity: 1; margin: 0; padding: 0 16px 96px; }
@media (max-width: 899px) {
  .ad-top-in { grid-template-columns: 1fr auto; height: 62px; }
  .ad-nav:not(.ad-nav-r) { display: none; }
  .ad-nav-r .ad-link { display: none; }
  .ad-nav-r .ad-cart { margin-left: 0; }
  .ad-hero { padding: 60px 0 60px; }
  .ad-fan { top: -420px; width: 760px; height: 760px; margin-left: -380px; }
  .ad-title { padding: 14px 20px 18px; }
  .ad-brand .logo-text { font-size: 21px; letter-spacing: .14em; }
  .ad-brand .logo-img { height: 46px; }
  .ad-cart .cart-label { display: none; }
  .ad-cart { padding: 8px 10px; }
  .ad-card-in { padding: 34px 18px 22px; }
}
.tpl-deco .c-plus:hover { transform: none !important; }
.ad-top { --burger: var(--brass-2); --nav-bg: var(--emerald-2); --nav-fg: #d8d1bb; --nav-line: rgba(201,164,92,.35); --nav-hover: var(--brass-2); }
.ad-burger { margin-left: 4px; }
.ad-panel .c-navlink { justify-content: center; text-transform: uppercase; letter-spacing: .2em; font-size: 14px; font-weight: 500; }
.tpl-deco .news h2, .tpl-deco .news h3, .tpl-deco .news-eyebrow { font-family: var(--font-body); font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.tpl-deco .news h3 { font-size: 20px; line-height: 1.25; }
.tpl-izakaya {
  --indigo: #12172b; --indigo-2: #1b2240; --washi: #f2ede1; --sumi: #1a1612; --verm: #d8412f; --mist: #aeb3c9;
  --bg: var(--indigo); --bg-alt: var(--washi); --card: #fff; --text: #ebe7dc; --muted: var(--mist); --line: rgba(255,255,255,.16); --line-strong: rgba(255,255,255,.28);
  --font-body: 'Instrument Sans', system-ui, sans-serif; --font-head: 'Gilda Display', Georgia, serif;
  --radius: 4px; --btn-radius: 2px; --btn-weight: 600; --btn-transform: none;
  --accent: var(--verm); --on-accent: #fff;
  --plus-size: 40px; --plus-bg: var(--verm); --plus-fg: #fff; --plus-line: var(--verm); --plus-shadow: none; --plus-radius: 2px;
  --bar-bg: var(--verm); --bar-fg: #fff; --bar-radius: 4px;
  font-size: 17px;
}
.tpl-izakaya main > section, .tpl-izakaya .menu-cat, .tpl-izakaya footer { animation: none !important; }
.tpl-izakaya h1, .tpl-izakaya h2, .tpl-izakaya h3 { font-family: var(--font-head); font-weight: 400; letter-spacing: .01em; line-height: 1.12; }
.tpl-izakaya h4 { font-family: var(--font-head); font-weight: 400; font-size: 20px; line-height: 1.25; }
.iz-in { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.tpl-izakaya .drawer, .tpl-izakaya .sheet { --bg: #fff; --text: var(--sumi); --muted: #6b655c; --line: #e2dcce; --line-strong: #cdc5b3; }
.iz-top { position: sticky; top: var(--top); z-index: 40; background: var(--indigo); border-bottom: 1px solid var(--line-strong); }
.iz-top-in { height: 66px; display: flex; align-items: center; gap: 24px; }
.iz-brand .logo-text { font: 400 26px/1 var(--font-head); color: var(--washi); letter-spacing: .04em; }
.iz-brand .logo-img { height: 36px; width: auto; }
.iz-nav { display: flex; gap: 2px; margin-left: auto; }
.iz-link { padding: 8px 14px; font-weight: 600; color: #d5d3dc; font-size: 15px; }
.iz-link:hover { color: #fff; box-shadow: inset 0 -2px 0 var(--verm); }
.iz-cart { border: 1.5px solid var(--washi); border-radius: 2px; color: var(--washi); font-weight: 600; }
.iz-nav + .iz-cart { margin-left: 6px; }
.iz-cart.has-items { background: var(--verm); border-color: var(--verm); color: #fff; }
.iz-cart.has-items .cart-count { background: #fff; color: var(--verm); }
.iz-hero { padding: 64px 0 84px; background: radial-gradient(60% 80% at 82% 30%, var(--indigo-2), var(--indigo) 70%); }
.iz-hero-in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 56px; align-items: center; }
.iz-tag { font-size: 15.5px; font-weight: 600; letter-spacing: .08em; color: var(--mist); }
.iz-hero h1 { font-size: clamp(50px, 8vw, 104px); margin-top: 10px; color: var(--washi); overflow-wrap: break-word; }
.iz-lead { margin-top: 20px; font-size: 19px; line-height: 1.65; color: #cfd0dc; max-width: 32em; }
.iz-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.iz-go, .iz-alt { display: inline-flex; align-items: center; min-height: 52px; padding: 0 28px; border-radius: 2px; font-weight: 700; font-size: 16.5px; }
.iz-go { background: var(--verm); color: #fff; }
.iz-go:hover { filter: brightness(1.08); }
.iz-alt { border: 1.5px solid var(--washi); color: var(--washi); }
.iz-alt:hover { background: rgba(255,255,255,.08); }
.iz-status { margin-top: 24px; color: var(--mist); }
.iz-hero-art { position: relative; }
.iz-photo { aspect-ratio: 4 / 5; border-radius: 2px; overflow: hidden; border: 10px solid var(--washi); box-shadow: 0 30px 60px -34px rgba(0,0,0,.8); }
.iz-photo-img { width: 100%; height: 100%; }
.iz-seal { position: absolute; left: -26px; bottom: 34px; width: 92px; height: 92px; display: grid; place-items: center; background: var(--verm); color: #fff; font: 400 46px/1 var(--font-head); border-radius: 6px; transform: rotate(-6deg); box-shadow: 0 10px 24px -10px rgba(0,0,0,.7); }
.iz-seal::after { content: ''; position: absolute; inset: 6px; border: 2px solid rgba(255,255,255,.7); border-radius: 3px; }
.iz-menu { padding: 0 0 20px; margin-top: -30px; }
.iz-sheet { background: var(--washi); color: var(--sumi); padding: 44px 44px 30px; border-radius: 2px; box-shadow: 0 30px 60px -36px rgba(0,0,0,.8); --text: var(--sumi); --muted: #6a6358; --line: #ddd5c3; --line-strong: #c3b9a2; --card: #fff; --bg-alt: #e9e2d2; }
.iz-menu-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.iz-menu h2 { font-size: clamp(38px, 5vw, 56px); }
.iz-sf { background: #fff; border: 1.5px solid #c3b9a2; border-radius: 2px; max-width: 360px; height: 50px; }
.iz-tn { margin-top: 16px; }
.iz-menu-cat, .iz-menu .menu-cat { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 0 18px; margin-top: 34px; }
.iz-cat { grid-row: 1 / span 2; margin: 0; padding-right: 14px; border-right: 2px solid var(--verm); font-size: 30px; }
.iz-cat span { writing-mode: vertical-rl; transform: rotate(180deg); display: block; white-space: nowrap; letter-spacing: .12em; }
.iz-list { display: flex; flex-direction: column; }
.iz-dish { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 18px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.iz-dish:first-child { padding-top: 4px; }
.iz-txt p { font-size: 15.5px; line-height: 1.5; color: var(--muted); margin-top: 3px; }
.iz-pic { width: 76px; height: 76px; overflow: hidden; border-radius: 2px; background: var(--bg-alt); }
.iz-img { width: 100%; height: 100%; }
.iz-buy { display: flex; align-items: center; gap: 12px; }
.iz-price { font: 400 20px/1 var(--font-head); color: var(--verm); font-variant-numeric: tabular-nums; white-space: nowrap; }
.iz-dish.is-off { opacity: .55; }
.iz-offers { margin-top: 44px; padding: 44px 0 50px; border-block: 1px solid var(--line-strong); }
.iz-offers h2 { font-size: clamp(34px, 4.6vw, 48px); color: var(--washi); }
.iz-offer-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin-top: 20px; }
.iz-offer { background: var(--washi); color: var(--sumi); border-left: 5px solid var(--verm); padding: 18px 20px; --muted: #6a6358; --text: var(--sumi); }
.iz-offer .offer-value { color: var(--verm); font: 400 34px/1 var(--font-head); }
.iz-stamp { margin-top: 26px; background: var(--washi); color: var(--sumi); padding: 22px; max-width: 640px; --muted: #6a6358; --text: var(--sumi); --line: #ddd5c3; }
.iz-stamp .stamp.is-filled { background: var(--verm); border-color: var(--verm); }
.iz-book { padding: 48px 0 8px; }
.iz-book .iz-sheet { padding-top: 34px; }
.iz-book .c-res .sec-title, .iz-book .c-res h2 { font: 400 clamp(34px, 4.6vw, 46px)/1.1 var(--font-head); }
.iz-book .date-chip.is-selected, .iz-book .slot.is-selected { background: var(--verm); border-color: var(--verm); color: #fff; }
.iz-info { margin-top: 44px; padding: 40px 0 50px; background: var(--indigo-2); }
.iz-info-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 34px; }
.iz-info h3 { font-size: 28px; color: var(--washi); margin-bottom: 14px; }
.iz-foot { background: var(--indigo-2); color: var(--mist); padding: 0 0 100px; --muted: var(--mist); }
@media (max-width: 899px) {
  .iz-hero { padding: 36px 0 60px; }
  .iz-hero-in { grid-template-columns: 1fr; gap: 40px; }
  .iz-photo { aspect-ratio: 4 / 3; border-width: 8px; }
  .iz-seal { left: auto; right: 10px; bottom: -22px; width: 74px; height: 74px; font-size: 36px; }
  .iz-nav { display: none; }
  .iz-cart { margin-left: auto; }
  .iz-top-in { height: 60px; }
  .iz-sheet { padding: 30px 18px 18px; }
  .iz-menu .menu-cat { grid-template-columns: 46px minmax(0, 1fr); gap: 0 12px; }
  .iz-cat { font-size: 24px; padding-right: 10px; }
  .iz-dish { grid-template-columns: minmax(0, 1fr) auto; }
  .iz-pic { display: none; }
}
.tpl-izakaya .c-plus:hover { transform: none !important; }
.iz-top { --burger: var(--washi); --nav-bg: var(--indigo); --nav-fg: var(--washi); --nav-line: var(--line-strong); --nav-hover: #fff; }
.iz-burger { margin-left: 4px; }
.iz-panel .c-navlink { font-family: var(--font-head); font-weight: 400; font-size: 21px; letter-spacing: .04em; }
.iz-hero.has-bg { position: relative; overflow: hidden; padding: 112px 0 128px; min-height: min(80vh, 700px); display: flex; align-items: center; }
.iz-hero.has-bg > .iz-in { width: 100%; }
.iz-hero.has-bg .iz-hero-in { grid-template-columns: minmax(0, 1fr); }
.iz-hero.has-bg .iz-hero-text { position: relative; z-index: 1; max-width: 640px; }
.iz-hero.has-bg .iz-hero-art { position: static; }
.iz-hero.has-bg .iz-photo { position: absolute; inset: 0; aspect-ratio: auto; border: 0; border-radius: 0; box-shadow: none; z-index: 0; }
.iz-hero.has-bg .iz-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--indigo) 94%, transparent) 0%, color-mix(in srgb, var(--indigo) 74%, transparent) 45%, color-mix(in srgb, var(--indigo) 22%, transparent) 100%); }
.iz-hero.has-bg .iz-photo-img { position: absolute; inset: 0; width: 100%; height: 100%; }
.iz-hero.has-bg .iz-seal { left: auto; right: max(24px, 5vw); bottom: 44px; z-index: 1; }
@media (max-width: 899px) {
  .iz-hero.has-bg { padding: 72px 0 80px; min-height: 560px; align-items: flex-end; }
  .iz-hero.has-bg .iz-photo { border-width: 0; aspect-ratio: auto; }
  .iz-hero.has-bg .iz-photo::after { background: linear-gradient(to top, color-mix(in srgb, var(--indigo) 95%, transparent) 0%, color-mix(in srgb, var(--indigo) 68%, transparent) 60%, color-mix(in srgb, var(--indigo) 48%, transparent) 100%); }
  .iz-hero.has-bg .iz-seal { right: 16px; bottom: 18px; width: 60px; height: 60px; font-size: 30px; }
}
.tpl-pizzeria {
  --tomato: #c8281e; --basil: #2d6a3e; --paper: #fffaf0; --ink: #2a1a14;
  --bg: var(--paper); --bg-alt: #f6ecd8; --card: #fff; --text: var(--ink); --muted: #6f5a4d; --line: #e6d9c0; --line-strong: #cdb98f;
  --font-body: 'Work Sans', system-ui, sans-serif; --font-head: 'Playfair Display', Georgia, serif;
  --radius: 10px; --btn-radius: 999px; --btn-weight: 600; --btn-transform: none;
  --accent: var(--tomato); --on-accent: #fff;
  --plus-size: 42px; --plus-bg: var(--basil); --plus-fg: #fff; --plus-line: var(--basil); --plus-shadow: none;
  --bar-bg: var(--tomato); --bar-fg: #fff; --bar-radius: 999px;
  font-size: 17px;
  background-color: #fff;
  background-image: repeating-linear-gradient(0deg, rgba(200,40,30,.5) 0 28px, transparent 28px 56px), repeating-linear-gradient(90deg, rgba(200,40,30,.5) 0 28px, transparent 28px 56px);
  background-attachment: fixed;
}
body[data-view="customer"]:has(.tpl-pizzeria) { background: #fff; }
.tpl-pizzeria main > section, .tpl-pizzeria .menu-cat, .tpl-pizzeria footer, .tpl-pizzeria .pz-paper > section { animation: none !important; }
.tpl-pizzeria h1, .tpl-pizzeria h2, .tpl-pizzeria h3 { font-family: var(--font-head); font-weight: 900; letter-spacing: -.01em; line-height: 1.05; }
.tpl-pizzeria h4 { font-weight: 600; font-size: 18.5px; line-height: 1.25; }
.pz-sheet { max-width: 800px; margin: 0 auto; }
.tpl-pizzeria .btn-primary { background: var(--tomato); border-color: var(--tomato); }
.pz-top { position: sticky; top: var(--top); z-index: 40; background: var(--paper); border-bottom: 3px double var(--tomato); }
.pz-top-in { height: 66px; padding: 0 20px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; }
.pz-brand .logo-text { font: italic 900 26px/1 var(--font-head); color: var(--tomato); }
.pz-brand .logo-img { height: 36px; width: auto; }
.pz-nav { display: flex; gap: 2px; align-items: center; }
.pz-nav-r { justify-content: flex-end; }
.pz-link { padding: 8px 12px; font-weight: 600; font-size: 15px; color: var(--ink); border-radius: 99px; }
.pz-link:hover { background: var(--bg-alt); }
.pz-cart { border: 2px solid var(--tomato); border-radius: 999px; color: var(--tomato); font-weight: 700; margin-left: 6px; }
.pz-cart.has-items { background: var(--tomato); color: #fff; }
.pz-cart.has-items .cart-count { background: #fff; color: var(--tomato); }
.pz-paper { margin-top: 36px; margin-bottom: 40px; background: var(--paper); padding: 54px 44px 28px; box-shadow: 0 0 0 10px #fff, 0 30px 60px -30px rgba(80,20,10,.5); border-radius: 4px; position: relative; }
.pz-hero { text-align: center; position: relative; }
.pz-stamp { position: absolute; right: -4px; top: -26px; width: 96px; height: 96px; border-radius: 50%; border: 3px double var(--basil); color: var(--basil); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; transform: rotate(10deg); background: var(--paper); font-size: 13px; line-height: 1.2; }
.pz-stamp b { font: italic 900 17px/1.1 var(--font-head); }
.pz-stamp.is-closed { border-color: var(--tomato); color: var(--tomato); }
.pz-tag { font: italic 600 19px/1.3 var(--font-head); color: var(--basil); }
.pz-hero h1 { font-size: clamp(50px, 9vw, 92px); color: var(--tomato); margin-top: 8px; overflow-wrap: break-word; }
.pz-lead { margin: 16px auto 0; max-width: 32em; font-size: 18px; line-height: 1.6; color: var(--muted); }
.pz-photo { margin: 28px auto 0; max-width: 560px; aspect-ratio: 3 / 2; overflow: hidden; border: 8px solid #fff; box-shadow: 0 0 0 1px var(--line-strong), 0 14px 30px -18px rgba(0,0,0,.5); transform: rotate(-1deg); }
.pz-photo-img { width: 100%; height: 100%; }
.pz-cta { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.pz-go, .pz-alt { display: inline-flex; align-items: center; min-height: 52px; padding: 0 28px; border-radius: 999px; font-weight: 700; font-size: 16.5px; }
.pz-go { background: var(--tomato); color: #fff; }
.pz-go:hover { filter: brightness(.93); }
.pz-alt { border: 2px solid var(--basil); color: var(--basil); }
.pz-alt:hover { background: #eaf3ea; }
.pz-menu { margin-top: 54px; text-align: center; }
.pz-menu h2 { font-size: clamp(38px, 6vw, 56px); color: var(--ink); }
.pz-rule { height: 10px; margin: 14px auto 0; width: 120px; background: repeating-linear-gradient(90deg, var(--tomato) 0 14px, transparent 14px 24px); border-radius: 5px; }
.pz-sf { margin: 22px auto 0; max-width: 440px; background: #fff; border: 1.5px solid var(--line-strong); border-radius: 999px; height: 52px; text-align: left; }
.pz-cats { justify-content: center; flex-wrap: wrap; margin: 20px 0 6px; gap: 6px 8px; overflow: visible; }
.pz-cats .cat-link { padding: 6px 16px; border: 1.5px solid var(--line-strong); border-radius: 99px; color: var(--ink); font-weight: 600; font-size: 15px; background: #fff; }
.pz-cats .cat-link:hover { background: var(--tomato); border-color: var(--tomato); color: #fff; }
.pz-tn { text-align: left; border-color: var(--line-strong); }
.pz-cat { margin: 46px 0 8px; font: italic 900 clamp(30px, 4.6vw, 40px)/1 var(--font-head); color: var(--tomato); display: flex; align-items: center; gap: 18px; justify-content: center; }
.pz-cat::before, .pz-cat::after { content: ''; height: 3px; width: 54px; border-block: 1px solid var(--tomato); }
.pz-list { text-align: left; }
.pz-dish { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.pz-dish:not(:has(.pz-pic)) { grid-template-columns: minmax(0, 1fr) auto; }
.pz-pic { width: 78px; height: 78px; border-radius: 50%; overflow: hidden; background: var(--bg-alt); border: 3px solid #fff; box-shadow: 0 0 0 1px var(--line-strong); }
.pz-img { width: 100%; height: 100%; }
.pz-line { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; }
.pz-price { font: 900 20px/1 var(--font-head); color: var(--tomato); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pz-txt p { font-size: 15.5px; line-height: 1.5; color: var(--muted); margin-top: 3px; max-width: 34em; }
.pz-dish.is-off { opacity: .55; }
.pz-offers { margin-top: 56px; text-align: center; }
.pz-offers h2 { font-size: clamp(34px, 5vw, 46px); color: var(--basil); }
.pz-coupons { display: grid; gap: 18px; margin-top: 20px; text-align: left; }
.pz-coupon { border: 2.5px dashed var(--tomato); border-radius: 8px; padding: 18px 20px; background: #fff; position: relative; }
.pz-coupon::before { content: '✂'; position: absolute; left: 18px; top: -15px; background: var(--paper); padding: 0 8px; color: var(--tomato); font-size: 20px; line-height: 1; }
.pz-coupon .offer-value { color: var(--tomato); font: 900 36px/1 var(--font-head); }
.pz-stampcard { margin-top: 28px; text-align: left; border: 1.5px solid var(--line-strong); border-radius: 8px; padding: 22px; background: #fff; }
.pz-stampcard .stamp.is-filled { background: var(--basil); border-color: var(--basil); }
.pz-book { margin-top: 56px; }
.pz-book .c-res { text-align: left; }
.pz-book .c-res .sec-title, .pz-book .c-res h2 { font: 900 clamp(34px, 5vw, 46px)/1.05 var(--font-head); color: var(--tomato); text-align: center; }
.pz-book .date-chip.is-selected, .pz-book .slot.is-selected { background: var(--tomato); border-color: var(--tomato); color: #fff; }
.pz-info { margin-top: 56px; padding-top: 30px; border-top: 3px double var(--tomato); }
.pz-info-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 30px; }
.pz-info h3 { font-size: 26px; color: var(--basil); margin-bottom: 12px; }
.pz-foot { text-align: center; padding: 6px 20px 110px; }
.pz-foot .legal { display: inline-block; background: #fff; padding: 6px 14px; border-radius: 99px; color: var(--muted); }
@media (max-width: 899px) {
  .pz-nav { display: none; }
  .pz-nav-r { display: flex; }
  .pz-nav-r .pz-link { display: none; }
  .pz-top-in { grid-template-columns: auto 1fr; height: 60px; padding: 0 16px; }
  .pz-nav-r { justify-self: end; }
  .pz-paper { margin: 20px 12px 30px; padding: 40px 20px 18px; box-shadow: 0 0 0 6px #fff, 0 20px 40px -24px rgba(80,20,10,.5); }
  .pz-stamp { position: static; width: 82px; height: 82px; margin: 0 auto 14px; transform: rotate(-6deg); font-size: 12px; }
  .pz-line { flex-direction: column; gap: 2px; }
  .pz-dish { gap: 12px; }
  .pz-pic { width: 64px; height: 64px; }
}
.tpl-pizzeria .c-plus:hover { transform: none !important; }
.pz-top { --burger: var(--tomato); --nav-bg: var(--paper); --nav-fg: var(--ink); --nav-line: var(--line-strong); --nav-hover: var(--tomato); }
.pz-burger { margin-left: 2px; }
.pz-panel .c-navlink { font: italic 900 22px/1 var(--font-head); }
.tpl-havn {
  --navy: #0e2a43; --navy-2: #0a2036; --sea: #1f6f8b; --foam: #eaf3f6; --buoy: #ff6a2b; --rope: #c9b48a;
  --bg: #f4f8f9; --bg-alt: var(--foam); --card: #fff; --text: #10222f; --muted: #52687a; --line: #d3e1e7; --line-strong: #b4c9d3;
  --font-body: 'Hanken Grotesk', system-ui, sans-serif; --font-head: 'Big Shoulders Display', 'Barlow Condensed', Impact, sans-serif;
  --radius: 10px; --btn-radius: 6px; --btn-weight: 700; --btn-transform: none;
  --accent: var(--buoy); --on-accent: #fff;
  --plus-size: 44px; --plus-bg: var(--navy); --plus-fg: #fff; --plus-line: var(--navy); --plus-shadow: none; --plus-radius: 50%;
  --bar-bg: var(--buoy); --bar-fg: #fff; --bar-radius: 10px;
  font-size: 17px;
}
.tpl-havn main > section, .tpl-havn .menu-cat, .tpl-havn footer { animation: none !important; }
.tpl-havn h1, .tpl-havn h2, .tpl-havn h3 { font-family: var(--font-head); font-weight: 800; text-transform: uppercase; letter-spacing: .01em; line-height: .98; }
.tpl-havn h4 { font-weight: 700; font-size: 18px; line-height: 1.2; }
.hv-in { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.tpl-havn .btn-primary { background: var(--buoy); border-color: var(--buoy); }
.hv-top { position: sticky; top: var(--top); z-index: 40; background: var(--navy-2); color: #fff; }
.hv-top-in { height: 64px; display: flex; align-items: center; gap: 22px; }
.hv-brand .logo-text { font: 800 30px/1 var(--font-head); text-transform: uppercase; letter-spacing: .03em; color: #fff; }
.hv-brand .logo-img { height: 36px; width: auto; }
.hv-nav { display: flex; gap: 2px; margin-left: auto; }
.hv-link { padding: 8px 14px; font-weight: 700; color: #cfe0e8; border-radius: 6px; }
.hv-link:hover { background: rgba(255,255,255,.1); color: #fff; }
.hv-cart { border: 2px solid var(--buoy); border-radius: 6px; color: var(--buoy); font-weight: 800; }
.hv-nav + .hv-cart { margin-left: 4px; }
.hv-cart.has-items { background: var(--buoy); color: #fff; }
.hv-cart.has-items .cart-count { background: #fff; color: var(--buoy); }
.hv-hero { position: relative; background: var(--navy); color: #fff; padding: 56px 0 96px; }
.hv-hero-in { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 48px; align-items: center; }
.hv-tag { display: inline-block; font-weight: 800; font-size: 14.5px; padding: 5px 12px; background: var(--buoy); color: #fff; border-radius: 4px; }
.hv-hero h1 { font-size: clamp(56px, 8.6vw, 116px); margin-top: 14px; overflow-wrap: break-word; }
.hv-lead { margin-top: 18px; font-size: 19px; line-height: 1.55; color: #c3d6e0; max-width: 32em; }
.hv-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.hv-go, .hv-alt { display: inline-flex; align-items: center; min-height: 54px; padding: 0 28px; border-radius: 6px; font-weight: 800; font-size: 17px; }
.hv-go { background: var(--buoy); color: #fff; }
.hv-go:hover { filter: brightness(.93); }
.hv-alt { border: 2px solid rgba(255,255,255,.5); color: #fff; }
.hv-alt:hover { background: rgba(255,255,255,.1); }
.hv-status { margin-top: 22px; color: #c3d6e0; }
.hv-hero-pic { aspect-ratio: 4 / 5; border-radius: 8px; overflow: hidden; border: 4px solid #fff; box-shadow: 0 30px 60px -30px rgba(0,0,0,.7); }
.hv-hero-img { width: 100%; height: 100%; }
.hv-wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 48px; fill: var(--bg); display: block; }
.hv-menu { padding: 38px 0 24px; }
.hv-menu h2 { font-size: clamp(48px, 7vw, 84px); color: var(--navy); }
.hv-sf { margin-top: 12px; background: #fff; border: 2px solid var(--line-strong); border-radius: 6px; max-width: 420px; height: 52px; }
.hv-tabs { display: flex; gap: 0; overflow-x: auto; scrollbar-width: none; margin: 22px 0 18px; border-bottom: 3px solid var(--navy); }
.hv-tabs .cat-tab { flex: none; padding: 12px 22px 10px; font: 800 24px/1 var(--font-head); text-transform: uppercase; letter-spacing: .02em; color: var(--sea); border-radius: 8px 8px 0 0; margin-bottom: -3px; }
.hv-tabs .cat-tab:hover { background: var(--foam); }
.hv-tabs .cat-tab.is-on { background: var(--navy); color: #fff; }
.hv-tn { border-color: var(--line-strong); }
.hv-cat-t { margin: 30px 0 10px; font-size: 34px; color: var(--sea); }
.hv-list { display: flex; flex-direction: column; gap: 14px; margin-top: 10px; }
.hv-ticket { display: grid; grid-template-columns: minmax(0, 1fr) auto; background: #fff; border: 1.5px solid var(--line-strong); border-radius: 10px; position: relative; }
.hv-main { display: flex; gap: 16px; align-items: center; padding: 16px 20px; min-width: 0; }
.hv-pic { flex: none; width: 82px; height: 82px; border-radius: 8px; overflow: hidden; background: var(--foam); }
.hv-img { width: 100%; height: 100%; }
.hv-txt p { font-size: 15.5px; line-height: 1.45; color: var(--muted); margin-top: 3px; }
.hv-stub { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-width: 128px; padding: 16px 18px; border-left: 2px dashed var(--line-strong); background: var(--foam); border-radius: 0 10px 10px 0; }
.hv-stub::before, .hv-stub::after { content: ''; position: absolute; left: -11px; width: 20px; height: 20px; border-radius: 50%; background: var(--bg); border: 1.5px solid var(--line-strong); }
.hv-stub::before { top: -11px; clip-path: inset(50% 0 0 0); }
.hv-stub::after { bottom: -11px; clip-path: inset(0 0 50% 0); }
.hv-price { font: 800 28px/1 var(--font-head); color: var(--navy); font-variant-numeric: tabular-nums; }
.hv-ticket.is-off { opacity: .55; }
.hv-offers { margin-top: 38px; padding: 44px 0 50px; background: var(--buoy); color: #fff; }
.hv-offers h2 { font-size: clamp(40px, 5.4vw, 64px); }
.hv-offer-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin-top: 20px; }
.hv-offer { background: #fff; color: var(--text); border-radius: 10px; padding: 18px 20px; }
.hv-offer .offer-value { color: var(--buoy); font: 800 38px/1 var(--font-head); }
.hv-stamp { margin-top: 26px; background: #fff; color: var(--text); border-radius: 10px; padding: 22px; max-width: 640px; }
.hv-stamp .stamp.is-filled { background: var(--navy); border-color: var(--navy); }
.hv-book { padding: 48px 0 8px; }
.hv-book .c-res .sec-title, .hv-book .c-res h2 { font: 800 clamp(40px, 5.4vw, 64px)/1 var(--font-head); text-transform: uppercase; color: var(--navy); }
.hv-book .date-chip.is-selected, .hv-book .slot.is-selected { background: var(--navy); border-color: var(--navy); color: #fff; }
.hv-info { margin-top: 38px; padding: 42px 0 50px; background: var(--navy-2); color: #cfe0e8; --text: #cfe0e8; --muted: #93aebd; --line: rgba(255,255,255,.16); }
.hv-info-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 34px; }
.hv-info h3 { font-size: 36px; color: #fff; margin-bottom: 14px; }
.hv-foot { background: var(--navy-2); color: #93aebd; padding: 0 0 100px; --muted: #93aebd; }
@media (max-width: 899px) {
  .hv-hero { padding: 36px 0 78px; }
  .hv-hero-in { grid-template-columns: 1fr; gap: 34px; }
  .hv-hero-pic { aspect-ratio: 4 / 3; }
  .hv-nav { display: none; }
  .hv-cart { margin-left: auto; }
  .hv-top-in { height: 58px; }
  .hv-main { padding: 14px 14px; gap: 12px; }
  .hv-pic { width: 64px; height: 64px; }
  .hv-stub { min-width: 98px; padding: 12px 12px; }
  .hv-price { font-size: 24px; }
}
.tpl-havn .c-plus:hover { transform: none !important; }
.hv-top { --burger: #fff; --nav-bg: var(--navy-2); --nav-fg: #cfe0e8; --nav-line: rgba(255,255,255,.14); --nav-hover: #fff; }
.hv-burger { margin-left: 4px; }
.hv-panel .c-navlink { font-family: var(--font-head); text-transform: uppercase; font-weight: 800; font-size: 26px; letter-spacing: .02em; }
.hv-hero.has-bg { overflow: hidden; padding: 104px 0 128px; min-height: min(80vh, 700px); display: flex; align-items: center; }
.hv-hero.has-bg > .hv-in { width: 100%; }
.hv-hero.has-bg .hv-hero-in { grid-template-columns: minmax(0, 1fr); position: static; }
.hv-hero.has-bg .hv-hero-text { position: relative; z-index: 1; max-width: 640px; }
.hv-hero.has-bg .hv-hero-pic { position: absolute; inset: 0; aspect-ratio: auto; border: 0; border-radius: 0; box-shadow: none; z-index: 0; }
.hv-hero.has-bg .hv-hero-pic::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--navy) 92%, transparent) 0%, color-mix(in srgb, var(--navy) 72%, transparent) 45%, color-mix(in srgb, var(--navy) 20%, transparent) 100%); }
.hv-hero.has-bg .hv-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hv-hero.has-bg .hv-wave { z-index: 2; }
@media (max-width: 899px) {
  .hv-hero.has-bg { padding: 72px 0 96px; min-height: 560px; align-items: flex-end; }
  .hv-hero.has-bg .hv-hero-pic::after { background: linear-gradient(to top, color-mix(in srgb, var(--navy) 94%, transparent) 0%, color-mix(in srgb, var(--navy) 66%, transparent) 60%, color-mix(in srgb, var(--navy) 46%, transparent) 100%); }
}
.tpl-fjellstue {
  --bark: #2a1f1a; --bark-2: #3a2c24; --spruce: #2f4a3a; --birch: #f3ede2; --linen: #fbf8f1; --berry: #a1322f;
  --bg: var(--linen); --bg-alt: var(--birch); --card: #fff; --text: #2a211c; --muted: #6a5c52; --line: #e3d9c8; --line-strong: #cbbda4;
  --font-body: 'Karla', system-ui, sans-serif; --font-head: 'Young Serif', Georgia, serif;
  --radius: 8px; --btn-radius: 8px; --btn-weight: 700; --btn-transform: none;
  --accent: var(--berry); --on-accent: #fff;
  --plus-size: 42px; --plus-bg: var(--spruce); --plus-fg: #fff; --plus-line: var(--spruce); --plus-shadow: none; --plus-radius: 8px;
  --bar-bg: var(--bark); --bar-fg: var(--birch); --bar-radius: 12px;
  font-size: 17.5px;
}
.tpl-fjellstue main > section, .tpl-fjellstue .menu-cat, .tpl-fjellstue footer { animation: none !important; }
.tpl-fjellstue h1, .tpl-fjellstue h2, .tpl-fjellstue h3 { font-family: var(--font-head); font-weight: 400; letter-spacing: -.005em; line-height: 1.1; }
.tpl-fjellstue h4 { font-weight: 700; font-size: 18.5px; line-height: 1.25; }
.fj-in { max-width: 1100px; margin: 0 auto; padding: 0 24px; }
.tpl-fjellstue .btn-primary { background: var(--berry); border-color: var(--berry); }
.fj-top { position: sticky; top: var(--top); z-index: 40; background: var(--bark); color: var(--birch); border-bottom: 3px solid var(--berry); }
.fj-top-in { height: 66px; display: flex; align-items: center; gap: 22px; }
.fj-brand .logo-text { font: 400 26px/1 var(--font-head); color: var(--birch); }
.fj-brand .logo-img { height: 36px; width: auto; }
.fj-nav { display: flex; gap: 2px; margin-left: auto; }
.fj-link { padding: 8px 13px; font-weight: 700; color: #e8dfd0; border-radius: 6px; }
.fj-link:hover { background: rgba(255,255,255,.1); color: #fff; }
.fj-cart { border: 1.5px solid #e8dfd0; border-radius: 8px; color: #e8dfd0; font-weight: 700; }
.fj-nav + .fj-cart { margin-left: 4px; }
.fj-cart.has-items { background: var(--berry); border-color: var(--berry); color: #fff; }
.fj-cart.has-items .cart-count { background: #fff; color: var(--berry); }
.fj-hero { position: relative; min-height: 600px; display: flex; align-items: flex-end; background: var(--bark); color: var(--text); overflow: hidden; }
.fj-hero-bg { position: absolute; inset: 0; }
.fj-hero-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,13,9,.25) 0%, rgba(20,13,9,.1) 40%, rgba(20,13,9,.62) 100%); }
.fj-hero-img { width: 100%; height: 100%; }
.fj-hero-in { position: relative; width: 100%; padding-top: 80px; padding-bottom: 44px; }
.fj-card { max-width: 560px; background: var(--linen); border-radius: 6px; padding: 30px 32px 28px; border-top: 6px solid var(--berry); box-shadow: 0 24px 50px -24px rgba(0,0,0,.6); }
.fj-tagline { font-weight: 700; font-size: 15px; color: var(--berry); }
.fj-hero h1 { font-size: clamp(42px, 6vw, 68px); margin-top: 6px; overflow-wrap: break-word; }
.fj-lead { margin-top: 12px; color: var(--muted); line-height: 1.6; }
.fj-cta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px; }
.fj-main, .fj-alt { display: inline-flex; align-items: center; min-height: 50px; padding: 0 24px; border-radius: 8px; font-weight: 800; font-size: 16.5px; }
.fj-main { background: var(--berry); color: #fff; }
.fj-main:hover { filter: brightness(.92); }
.fj-alt { border: 2px solid var(--bark); color: var(--bark); }
.fj-alt:hover { background: var(--birch); }
.fj-open { margin-top: 16px; }
.fj-menu { padding: 52px 0 18px; }
.fj-menu-top { display: flex; align-items: end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.fj-menu h2 { font-size: clamp(36px, 5vw, 54px); color: var(--bark); }
.fj-sf { background: #fff; border: 1.5px solid var(--line-strong); border-radius: 8px; max-width: 360px; height: 50px; }
.fj-tn { margin-top: 18px; }
.fj-log { margin: 40px 0 6px; padding: 14px 0; background: linear-gradient(180deg, var(--bark-2), var(--bark)); color: var(--birch); border-block: 2px solid #120c09; font-size: clamp(26px, 3.4vw, 34px); box-shadow: inset 0 2px 0 rgba(255,255,255,.08); }
.fj-list { display: flex; flex-direction: column; }
.fj-dish { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 20px 0; border-bottom: 1px dashed var(--line-strong); }
.fj-dish:not(:has(.fj-pic)) { grid-template-columns: minmax(0, 1fr) auto; }
.fj-pic { width: 92px; height: 92px; border-radius: 6px; overflow: hidden; background: var(--birch); }
.fj-img { width: 100%; height: 100%; }
.fj-txt p { font-size: 16px; line-height: 1.5; color: var(--muted); margin-top: 4px; font-style: italic; }
.fj-buy { display: flex; align-items: center; gap: 12px; }
.fj-tag { position: relative; background: var(--bark); color: var(--birch); font: 400 19px/1 var(--font-head); padding: 9px 14px 9px 22px; clip-path: polygon(12px 0, 100% 0, 100% 100%, 12px 100%, 0 50%); font-variant-numeric: tabular-nums; white-space: nowrap; }
.fj-dish.is-off { opacity: .55; }
.fj-offers { margin-top: 40px; padding: 44px 0 50px; background: var(--spruce); color: #fff; }
.fj-offers h2 { font-size: clamp(34px, 4.6vw, 48px); }
.fj-offer-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin-top: 20px; }
.fj-offer { background: var(--linen); color: var(--text); border-left: 6px solid var(--berry); border-radius: 4px; padding: 18px 20px; }
.fj-offer .offer-value { color: var(--berry); font: 400 32px/1 var(--font-head); }
.fj-stamp { margin-top: 26px; background: var(--linen); color: var(--text); border-radius: 6px; padding: 22px; max-width: 640px; }
.fj-stamp .stamp.is-filled { background: var(--spruce); border-color: var(--spruce); }
.fj-book { padding: 50px 0 8px; }
.fj-book .c-res .sec-title, .fj-book .c-res h2 { font: 400 clamp(34px, 4.6vw, 48px)/1.1 var(--font-head); color: var(--bark); }
.fj-book .date-chip.is-selected, .fj-book .slot.is-selected { background: var(--spruce); border-color: var(--spruce); color: #fff; }
.fj-info { margin-top: 40px; padding: 42px 0 50px; background: var(--bark); color: #e8dfd0; --text: #e8dfd0; --muted: #b9ab98; --line: rgba(255,255,255,.16); }
.fj-info-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 34px; }
.fj-info h3 { font-size: 28px; color: #fff; margin-bottom: 14px; }
.fj-foot { background: var(--bark); color: #b9ab98; padding: 0 0 100px; --muted: #b9ab98; }
@media (max-width: 899px) {
  .fj-nav { display: none; }
  .fj-cart { margin-left: auto; }
  .fj-top-in { height: 60px; }
  .fj-hero { min-height: 520px; }
  .fj-hero-in { padding-top: 120px; padding-bottom: 22px; }
  .fj-card { padding: 24px 22px; }
  .fj-dish { grid-template-columns: 76px minmax(0, 1fr); }
  .fj-dish:not(:has(.fj-pic)) { grid-template-columns: minmax(0, 1fr); }
  .fj-pic { width: 76px; height: 76px; }
  .fj-buy { grid-column: 1 / -1; justify-content: space-between; }
}
.tpl-fjellstue .c-plus:hover { transform: none !important; }
.fj-top { --burger: #e8dfd0; --nav-bg: var(--bark); --nav-fg: #e8dfd0; --nav-line: rgba(255,255,255,.14); --nav-hover: #fff; }
.fj-burger { margin-left: 4px; }
.fj-panel .c-navlink { font-family: var(--font-head); font-weight: 400; font-size: 20px; }
.tpl-saffron {
  --teal: #0f4a4c; --teal-deep: #0a3335; --saffron: #f2a516; --sand: #f6ead2; --clay: #c8553d; --ink: #10282a;
  --bg: #fbf5e8; --bg-alt: var(--sand); --card: #fff; --text: var(--ink); --muted: #566a68; --line: #e4d8bd; --line-strong: #cdbf9f;
  --font-body: 'Mulish', system-ui, sans-serif; --font-head: 'Gloock', Georgia, serif;
  --radius: 14px; --btn-radius: 999px; --btn-weight: 700; --btn-transform: none;
  --accent: var(--teal); --on-accent: #fff;
  --plus-size: 44px; --plus-bg: var(--saffron); --plus-fg: var(--ink); --plus-line: var(--saffron); --plus-shadow: none;
  --bar-bg: var(--teal); --bar-fg: var(--saffron); --bar-radius: 999px;
  font-size: 17px;
}
.tpl-saffron main > section, .tpl-saffron .menu-cat, .tpl-saffron footer { animation: none !important; }
.tpl-saffron h1, .tpl-saffron h2, .tpl-saffron h3 { font-family: var(--font-head); font-weight: 400; letter-spacing: -.005em; line-height: 1.08; }
.tpl-saffron h4 { font-weight: 800; font-size: 17.5px; line-height: 1.25; }
.sa-in { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.tpl-saffron .btn-primary { background: var(--teal); border-color: var(--teal); }
.sa-top { position: sticky; top: var(--top); z-index: 40; background: var(--teal); color: #fff; }
.sa-top-in { height: 70px; display: flex; align-items: center; gap: 24px; }
.sa-brand .logo-text { font: 400 28px/1 var(--font-head); color: var(--saffron); }
.sa-brand .logo-img { height: 38px; width: auto; }
.sa-nav { display: flex; gap: 2px; margin-left: auto; }
.sa-link { padding: 9px 14px; font-weight: 700; font-size: 15.5px; color: #e9f0ee; border-radius: 99px; }
.sa-link:hover { background: rgba(255,255,255,.1); color: #fff; }
.sa-cart { border: 2px solid var(--saffron); border-radius: 999px; color: var(--saffron); font-weight: 800; }
.sa-nav + .sa-cart { margin-left: 4px; }
.sa-cart.has-items { background: var(--saffron); color: var(--ink); }
.sa-cart.has-items .cart-count { background: var(--ink); color: var(--saffron); }
.sa-hero { background: var(--teal); color: #fff; padding: 56px 0 84px; overflow: hidden; }
.sa-hero-in { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 56px; align-items: center; }
.sa-tag { font-weight: 800; font-size: 16px; color: var(--saffron); }
.sa-hero h1 { font-size: clamp(50px, 8vw, 100px); margin-top: 10px; overflow-wrap: break-word; }
.sa-lead { margin-top: 20px; font-size: 19px; line-height: 1.6; color: #d7e4e1; max-width: 33em; }
.sa-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.sa-main, .sa-alt { display: inline-flex; align-items: center; min-height: 54px; padding: 0 28px; border-radius: 999px; font-weight: 800; font-size: 17px; }
.sa-main { background: var(--saffron); color: var(--ink); }
.sa-main:hover { background: #ffb938; }
.sa-alt { border: 2px solid rgba(255,255,255,.55); color: #fff; }
.sa-alt:hover { background: rgba(255,255,255,.1); }
.sa-status { margin-top: 22px; color: #d7e4e1; }
.sa-hero-art { position: relative; justify-self: center; width: min(430px, 100%); aspect-ratio: 4 / 5.2; }
.sa-frame { position: absolute; inset: -16px -16px 16px 16px; border: 3px solid var(--saffron); border-radius: 999px 999px 10px 10px; }
.sa-hero-arch { position: absolute; inset: 0; border-radius: 999px 999px 10px 10px; overflow: hidden; background: var(--teal-deep); display: grid; place-items: center; color: var(--saffron); }
.sa-hero-img { width: 100%; height: 100%; }
.sa-menu { padding: 56px 0 24px; }
.sa-layout { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 48px; align-items: start; }
.sa-rail { position: sticky; top: calc(var(--top) + 94px); }
.sa-rail-t { font: 400 40px/1 var(--font-head); color: var(--teal); margin-bottom: 14px; }
.sa-cats { display: flex; flex-direction: column; gap: 2px; margin: 0; overflow: visible; }
.sa-cats .cat-link { text-align: left; padding: 9px 14px; border-radius: 10px; border-bottom: 0; color: var(--ink); font-weight: 700; }
.sa-cats .cat-link:hover { background: var(--sand); border-bottom: 0; }
.sa-sf { background: #fff; border: 2px solid var(--line-strong); border-radius: 999px; max-width: 460px; height: 52px; }
.sa-tn { margin-top: 14px; border-color: var(--line-strong); }
.sa-cat { margin: 42px 0 8px; font-size: clamp(30px, 3.6vw, 40px); display: flex; align-items: center; gap: 14px; color: var(--teal); }
.sa-cat:first-child { margin-top: 26px; }
.sa-dot { width: 20px; height: 26px; flex: none; background: var(--saffron); border-radius: 999px 999px 3px 3px; }
.sa-list { display: flex; flex-direction: column; }
.sa-dish { display: grid; grid-template-columns: 74px minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line-strong); }
.sa-arch { width: 74px; height: 92px; border-radius: 999px 999px 8px 8px; overflow: hidden; background: var(--sand); display: grid; place-items: center; color: var(--clay); }
.sa-img { width: 100%; height: 100%; }
.sa-txt p { font-size: 15.5px; line-height: 1.45; color: var(--muted); margin-top: 4px; }
.sa-buy { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.sa-price { font: 400 24px/1 var(--font-head); color: var(--clay); font-variant-numeric: tabular-nums; }
.sa-dish.is-off { opacity: .55; }
.sa-offers { margin-top: 44px; padding: 48px 0 54px; background: var(--saffron); color: var(--ink); }
.sa-offers h2 { font-size: clamp(36px, 5vw, 54px); }
.sa-offer-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; margin-top: 22px; }
.sa-offer { background: var(--bg); border-radius: 160px 160px 18px 18px; padding: 34px 26px 22px; text-align: center; flex-direction: column; align-items: center; }
.sa-offer .offer-value { color: var(--clay); font: 400 40px/1 var(--font-head); }
.sa-stamp { margin-top: 30px; background: var(--bg); border-radius: 18px; padding: 24px; max-width: 640px; }
.sa-stamp .stamp.is-filled { background: var(--teal); border-color: var(--teal); }
.sa-book { padding: 52px 0 8px; }
.sa-book .c-res .sec-title, .sa-book .c-res h2 { font: 400 clamp(36px, 5vw, 54px)/1.05 var(--font-head); color: var(--teal); }
.sa-book .date-chip.is-selected, .sa-book .slot.is-selected { background: var(--teal); border-color: var(--teal); color: #fff; }
.sa-info { margin-top: 44px; padding: 44px 0 52px; background: var(--teal-deep); color: #e3ece9; --text: #e3ece9; --muted: #a9bfba; --line: rgba(255,255,255,.18); }
.sa-info-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 34px; }
.sa-info h3 { font-size: 30px; color: var(--saffron); margin-bottom: 14px; }
.sa-foot { background: var(--teal-deep); color: #a9bfba; padding: 0 0 100px; --muted: #a9bfba; }
@media (max-width: 899px) {
  .sa-hero { padding: 36px 0 60px; }
  .sa-hero-in { grid-template-columns: 1fr; gap: 40px; }
  .sa-hero-art { width: min(320px, 82%); aspect-ratio: 4 / 4.8; margin-top: 10px; }
  .sa-nav { display: none; }
  .sa-cart { margin-left: auto; }
  .sa-top-in { height: 62px; }
  .sa-layout { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .sa-rail, .sa-main-col { min-width: 0; }
  .sa-rail { position: static; }
  .sa-rail-t { display: none; }
  .sa-cats { flex-direction: row; gap: 6px; overflow-x: auto; scrollbar-width: none; }
  .sa-cats .cat-link { flex: none; border: 2px solid var(--line-strong); border-radius: 999px; background: #fff; }
  .sa-dish { grid-template-columns: 62px minmax(0, 1fr) auto; gap: 14px; }
  .sa-arch { width: 62px; height: 78px; }
}
.tpl-saffron .c-plus:hover { transform: none !important; }
.sa-top { --burger: #fff; --nav-bg: var(--teal-deep); --nav-fg: #fff; --nav-line: rgba(255,255,255,.18); --nav-hover: var(--saffron); }
.sa-burger { margin-left: 4px; }
.sa-panel .c-navlink { font-family: var(--font-head); font-weight: 400; font-size: 22px; }
.tpl-smash {
  --pink: #ff2e88; --lime: #c6ff3d; --ink: #14110f; --paper: #fff6ee;
  --bg: var(--paper); --bg-alt: #ffe8d6; --card: #fff; --text: var(--ink); --muted: #5d5148; --line: var(--ink); --line-strong: var(--ink);
  --font-body: 'DM Sans', system-ui, sans-serif; --font-head: 'Bricolage Grotesque', 'DM Sans', system-ui, sans-serif;
  --radius: 14px; --btn-radius: 12px; --btn-weight: 700; --btn-transform: none;
  --accent: var(--pink); --on-accent: #fff;
  --plus-size: 46px; --plus-bg: var(--lime); --plus-fg: var(--ink); --plus-line: var(--ink); --plus-shadow: 3px 3px 0 var(--ink); --plus-radius: 12px;
  --bar-bg: var(--ink); --bar-fg: var(--lime); --bar-radius: 14px;
  font-size: 17px;
}
.tpl-smash main > section, .tpl-smash .menu-cat, .tpl-smash footer { animation: none !important; }
.tpl-smash h1, .tpl-smash h2, .tpl-smash h3 { font-family: var(--font-head); font-weight: 800; letter-spacing: -.025em; line-height: 1; }
.tpl-smash h4 { font-family: var(--font-head); font-weight: 700; font-size: 19px; line-height: 1.15; letter-spacing: -.01em; }
.sm-in { max-width: 1140px; margin: 0 auto; padding: 0 22px; }
.sm-top { position: sticky; top: var(--top); z-index: 40; background: var(--paper); border-bottom: 3px solid var(--ink); }
.sm-top-in { height: 66px; display: flex; align-items: center; gap: 20px; }
.sm-brand .logo-text { font: 800 28px/1 var(--font-head); letter-spacing: -.03em; color: var(--ink); }
.sm-brand .logo-img { height: 36px; width: auto; }
.sm-nav { display: flex; gap: 6px; margin-left: auto; }
.sm-link { padding: 8px 14px; font-weight: 700; border-radius: 10px; border: 2px solid transparent; }
.sm-link:hover { border-color: var(--ink); background: var(--lime); }
.sm-cart { margin-left: auto; border: 3px solid var(--ink); border-radius: 12px; color: var(--ink); background: var(--lime); box-shadow: 3px 3px 0 var(--ink); font-weight: 800; }
.sm-nav + .sm-cart { margin-left: 0; }
.sm-cart .cart-count { background: var(--ink); color: var(--lime); }
.sm-hero { padding: 54px 0 70px; border-bottom: 3px solid var(--ink); background: var(--pink); color: var(--ink); }
.sm-hero-in { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 44px; align-items: center; }
.sm-hero-text { position: relative; }
.sm-sticker { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 112px; height: 112px; border-radius: 50%; border: 3px solid var(--ink); background: var(--lime); font: 800 20px/1.05 var(--font-head); text-align: center; transform: rotate(-8deg); box-shadow: 4px 4px 0 var(--ink); }
.sm-sticker small { font: 600 13px/1.2 var(--font-body); margin-top: 3px; }
.sm-sticker.is-closed { background: #fff; }
.sm-hero h1 { font-size: clamp(54px, 9vw, 118px); margin-top: 22px; color: #fff; text-shadow: 4px 4px 0 var(--ink); -webkit-text-stroke: 2px var(--ink); paint-order: stroke fill; overflow-wrap: break-word; }
.sm-lead { margin-top: 18px; font-size: 21px; font-weight: 600; max-width: 28em; }
.sm-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 26px; }
.sm-main, .sm-alt { display: inline-flex; align-items: center; min-height: 56px; padding: 0 28px; border: 3px solid var(--ink); border-radius: 14px; font: 800 19px/1 var(--font-head); box-shadow: 5px 5px 0 var(--ink); }
.sm-main { background: var(--ink); color: var(--lime); }
.sm-alt { background: #fff; color: var(--ink); }
.sm-main:active, .sm-alt:active { transform: translate(3px, 3px); box-shadow: 2px 2px 0 var(--ink); }
.sm-hero-pic { border: 3px solid var(--ink); border-radius: 22px; overflow: hidden; box-shadow: 10px 10px 0 var(--ink); background: var(--lime); aspect-ratio: 4 / 5; }
.sm-hero-img { width: 100%; height: 100%; }
.sm-menu { padding: 54px 0 24px; }
.sm-menu h2 { font-size: clamp(40px, 6vw, 68px); }
.sm-sf { margin-top: 18px; max-width: 460px; background: #fff; border: 3px solid var(--ink); border-radius: 14px; height: 54px; box-shadow: 4px 4px 0 var(--ink); }
.sm-pills { margin: 22px 0 6px; gap: 8px; position: sticky; top: calc(var(--top) + 66px); z-index: 20; padding: 10px 0; background: var(--paper); }
.sm-pills .cat-link { padding: 8px 16px; border: 2.5px solid var(--ink); border-radius: 999px; background: #fff; color: var(--ink); font-weight: 700; }
.sm-pills .cat-link:hover { background: var(--lime); border-bottom-color: var(--ink); }
.sm-tn { border: 3px dashed var(--ink); border-radius: 14px; padding: 12px 16px; margin-top: 10px; }
.sm-cat { margin: 44px 0 18px; font-size: clamp(30px, 4vw, 44px); display: inline-block; background: var(--lime); border: 3px solid var(--ink); border-radius: 12px; padding: 6px 16px 8px; box-shadow: 4px 4px 0 var(--ink); }
.sm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 26px; }
.sm-card { display: flex; flex-direction: column; background: #fff; border: 3px solid var(--ink); border-radius: 18px; overflow: hidden; box-shadow: 6px 6px 0 var(--ink); }
.sm-pic { position: relative; aspect-ratio: 4 / 3; background: var(--bg-alt); border-bottom: 3px solid var(--ink); display: grid; place-items: center; }
.sm-pic.no-pic { aspect-ratio: 5 / 2; }
.sm-ph { color: var(--pink); }
.sm-img { width: 100%; height: 100%; }
.sm-price { position: absolute; right: 12px; top: 12px; background: var(--lime); border: 3px solid var(--ink); border-radius: 12px; padding: 4px 12px 5px; font: 800 22px/1 var(--font-head); font-variant-numeric: tabular-nums; transform: rotate(3deg); box-shadow: 3px 3px 0 var(--ink); }
.sm-body { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; padding: 16px 16px 18px; flex: 1; }
.sm-body p { font-size: 15px; line-height: 1.4; color: var(--muted); margin-top: 6px; }
.sm-card.is-off { opacity: .6; }
.sm-offers { margin-top: 44px; padding: 44px 0 52px; background: var(--lime); border-block: 3px solid var(--ink); }
.sm-offers h2 { font-size: clamp(36px, 5vw, 56px); }
.sm-tickets { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 22px; margin-top: 22px; }
.sm-ticket { background: #fff; border: 3px dashed var(--ink); border-radius: 16px; padding: 18px; }
.sm-ticket .offer-value { color: var(--pink); font: 800 38px/1 var(--font-head); }
.sm-stamp { margin-top: 28px; background: #fff; border: 3px solid var(--ink); border-radius: 18px; padding: 22px; max-width: 640px; box-shadow: 6px 6px 0 var(--ink); }
.sm-stamp .stamp.is-filled { background: var(--pink); border-color: var(--ink); }
.sm-book { padding: 48px 0 8px; }
.sm-book .c-res .sec-title, .sm-book .c-res h2 { font: 800 clamp(36px, 5vw, 56px)/1 var(--font-head); letter-spacing: -.025em; }
.sm-book .date-chip.is-selected, .sm-book .slot.is-selected { background: var(--pink); border-color: var(--ink); color: #fff; }
.sm-info { margin-top: 44px; padding: 40px 0 50px; background: var(--ink); color: #fff; --text: #fff; --muted: #c9c0b6; --line: rgba(255,255,255,.2); }
.sm-info-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 32px; }
.sm-info h3 { font-size: 30px; color: var(--lime); margin-bottom: 14px; }
.sm-foot { background: var(--ink); color: #c9c0b6; padding: 0 0 100px; --muted: #c9c0b6; }
@media (max-width: 899px) {
  .sm-hero { padding: 34px 0 48px; }
  .sm-hero-in { grid-template-columns: 1fr; gap: 34px; }
  .sm-hero-pic { aspect-ratio: 4 / 3; box-shadow: 6px 6px 0 var(--ink); }
  .sm-nav { display: none; }
  .sm-top-in { height: 60px; }
  .sm-pills { top: calc(var(--top) + 60px); }
}
.tpl-smash .c-plus:hover { transform: none !important; }
.sm-top { --burger: var(--ink); --nav-bg: var(--paper); --nav-fg: var(--ink); --nav-line: var(--ink); --nav-hover: var(--pink); }
.sm-burger { margin-left: 4px; border: 2.5px solid var(--ink); border-radius: 10px; background: #fff; box-shadow: 2px 2px 0 var(--ink); }
.sm-panel { border-bottom: 3px solid var(--ink); }
.sm-panel .c-navlink { font-family: var(--font-head); font-weight: 800; font-size: 20px; }
.site.has-brand {
  --accent: var(--primary-ink); --on-accent: var(--on-primary-ink);
  --plus-bg: var(--primary-ink); --plus-fg: var(--on-primary-ink); --plus-line: var(--primary-ink);
  --bar-bg: var(--primary-ink); --bar-fg: var(--on-primary-ink);
}
.site.has-brand:is(.tpl-kurban, .tpl-nbite, .tpl-grillrush, .tpl-ubistro, .tpl-luxenoir, .tpl-velvet, .tpl-izakaya, .tpl-skyline) {
  --accent: var(--primary-light); --on-accent: var(--on-primary-light);
  --plus-bg: var(--primary-light); --plus-fg: var(--on-primary-light); --plus-line: var(--primary-light);
  --bar-bg: var(--primary-light); --bar-fg: var(--on-primary-light);
}
.site.has-brand:is(.tpl-kurban, .tpl-grillrush) { --orange: var(--primary-light); }
.site.has-brand.tpl-nbite { --pink: var(--primary-light); }
.site.has-brand.tpl-luxenoir { --gold: var(--primary-light); }
.site.has-brand.tpl-velvet { --rose: var(--primary-light); }
.site.has-brand.tpl-ubistro { --primary-soft: color-mix(in srgb, var(--primary-light) 18%, #151515); }
body[data-view="admin"] { background: var(--bg); }
.adm { display: grid; grid-template-columns: 244px minmax(0, 1fr); min-height: calc(100vh - var(--demo-h)); }
.adm-side { position: sticky; top: var(--demo-h); align-self: start; height: calc(100vh - var(--demo-h)); display: flex; flex-direction: column; background: #fbfaf7; border-right: 1px solid var(--line); padding: 18px 12px 14px; overflow-y: auto; }
.adm-brand { display: flex; align-items: center; gap: 10px; padding: 0 8px 16px; }
.adm-logo { display: block; flex: none; width: 152px; height: 30px; background: url(/logo.svg) left center / contain no-repeat; font-size: 0; color: transparent; overflow: hidden; }
.adm-wordmark { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } 
.adm-rest { padding: 10px 8px 14px; margin: 0 0 8px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; line-height: 1.35; }
.adm-rest strong { font-size: 14px; }
.adm-rest span { font-size: 12.5px; color: var(--muted); }
.adm-nav { display: flex; flex-direction: column; gap: 1px; flex: 1; padding-top: 6px; }
.nav-item { display: flex; align-items: center; gap: 11px; width: 100%; padding: 9px 10px; border-radius: 4px; font-size: 14px; color: #3a413d; text-decoration: none; text-align: left; position: relative; }
.nav-item:hover { background: #efede6; }
.nav-item.is-active { background: var(--brand-soft); color: var(--brand-dark); font-weight: 600; }
.nav-item.is-active::before { content: ''; position: absolute; left: -12px; top: 8px; bottom: 8px; width: 3px; background: var(--brand); border-radius: 0 3px 3px 0; }
.nav-label { flex: 1; }
.nav-count { min-width: 20px; height: 20px; padding: 0 6px; display: inline-grid; place-items: center; font-size: 12px; font-weight: 600; background: var(--brand); color: #fff; border-radius: 10px; }
.nav-item.is-locked { color: #8b918c; }
.nav-item.is-locked:hover { background: #f1efe9; }
.nav-lock { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: #7d847f; border: 1px solid var(--line); border-radius: 3px; padding: 1px 6px; background: #fff; }
.adm-plan { margin-top: 12px; padding: 12px 10px 4px; border-top: 1px solid var(--line); font-size: 13px; }
.adm-plan .lbl { color: var(--muted); font-weight: 400; margin-bottom: 2px; }
.adm-plan-row { display: flex; justify-content: space-between; align-items: baseline; }
.adm-plan-row strong { font-size: 16px; }
.adm-plan-row span { color: var(--muted); }
.adm-plan-link { display: inline-block; margin-top: 4px; color: var(--brand); text-underline-offset: 3px; }
.adm-guide-link { display: block; font-size: 13px; }
.plt-guide { margin-left: 18px; font-size: 13px; color: var(--brand); text-underline-offset: 3px; }
.adm-main { min-width: 0; display: flex; flex-direction: column; }
.adm-top { position: sticky; top: var(--demo-h); z-index: 20; height: 54px; display: flex; align-items: center; gap: 12px; padding: 0 28px; background: rgba(244,243,238,.92); backdrop-filter: blur(6px); border-bottom: 1px solid var(--line); }
.adm-crumb { flex: 1; font-size: 13.5px; color: var(--muted); }
.adm-crumb em { font-style: normal; margin: 0 4px; color: #b0aca0; }
.adm-burger { display: none; margin-left: -8px; }
.adm-scrim { display: none; }
.adm-content { padding: 26px 28px 60px; max-width: 1360px; width: 100%; }
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.page-head h1 { font-size: 26px; font-weight: 600; letter-spacing: -.015em; line-height: 1.15; }
.page-sub { color: var(--muted); font-size: 14px; margin-top: 4px; max-width: 70ch; }
.page-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.page-note { font-size: 13px; color: var(--muted); margin-top: 14px; max-width: 80ch; }
.page-note-top { margin: 0 0 16px; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 18px 20px; margin-bottom: 18px; }
.panel-flush { padding: 0; overflow: hidden; }
.panel-plain { background: transparent; border-style: dashed; }
.panel-narrow { max-width: 640px; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.panel-flush > .panel-head { margin: 0; padding: 14px 20px; border-bottom: 1px solid var(--line); }
.panel-head h2 { font-size: 15px; font-weight: 600; }
.panel-sub { padding: 10px 20px 0; font-size: 13px; }
.panel-body { padding: 16px 20px; }
.panel-foot { padding: 10px 20px; border-top: 1px solid var(--line); font-size: 13px; }
.panel:not(.panel-flush) > .panel-foot { padding: 12px 0 0; margin-top: 14px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.grid-2-wide { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.grid-2-even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.grid-2 > .panel, .grid-2 .stack .panel { margin-bottom: 0; }
.panel-wide { grid-column: 1 / -1; }
.stack { display: flex; flex-direction: column; gap: 18px; }
.btn-row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.empty { padding: 18px 4px; color: var(--muted); font-size: 14px; }
.panel-flush .empty { padding: 22px 20px; }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); background: var(--surface); border: 1px solid var(--line); border-radius: 6px; margin-bottom: 18px; }
.stat { padding: 15px 20px; border-left: 1px solid var(--line); display: flex; flex-direction: column; gap: 1px; }
.stat:first-child { border-left: 0; }
.stat dt { font-size: 12.5px; color: var(--muted); }
.stat dd { font-size: 27px; font-weight: 600; letter-spacing: -.02em; line-height: 1.2; font-variant-numeric: tabular-nums; }
.stat-sub { font-size: 12px; color: var(--muted); }
.stat-main { background: var(--brand-soft); }
.stat-main dd { font-size: 38px; letter-spacing: -.03em; color: var(--brand-dark); }
.todo-group { display: flex; align-items: center; gap: 7px; margin: 14px 0 2px; font-size: 13px; font-weight: 600; color: var(--muted); }
.todo-group:first-child { margin-top: 2px; }
.todo-group span { font-weight: 500; font-variant-numeric: tabular-nums; }
.todo-wait.is-warn { color: #7a4a00; font-weight: 600; }
.todo-wait.is-late { color: #a85f00; font-weight: 700; }
.facts { display: flex; flex-direction: column; gap: 6px; font-size: 14.5px; }
.todo-list { margin: -6px 0; }
.todo { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 0; border-top: 1px solid var(--line); flex-wrap: wrap; }
.todo:first-child { border-top: 0; }
.todo-main { display: flex; flex-direction: column; gap: 1px; min-width: 0; font-size: 14px; }
.todo-kind { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.todo-act { display: flex; gap: 6px; }
.bars { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; height: 150px; align-items: end; }
.bar-col { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 4px; }
.bar { display: block; width: 100%; max-width: 38px; background: #cfdcd5; border-radius: 2px 2px 0 0; min-height: 2px; }
.bar-col.is-today .bar { background: var(--brand); }
.bar-val { font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums; }
.bar-day { font-size: 12px; color: var(--muted); padding-top: 4px; border-top: 1px solid var(--line); width: 100%; text-align: center; }
.bar-col.is-today .bar-day { color: var(--ink); font-weight: 600; }
.bar-col .bar { flex: none; }
.bars .bar-col { position: relative; }
.table-wrap { overflow-x: auto; }
.tbl { width: 100%; border-collapse: collapse; font-size: 14px; }
.tbl th { text-align: left; font-size: 12px; font-weight: 500; color: var(--muted); padding: 10px 14px; border-bottom: 1px solid var(--line); background: #faf9f6; white-space: nowrap; }
.tbl td { padding: 11px 14px; border-bottom: 1px solid #eeece5; vertical-align: middle; }
.tbl tr:last-child td { border-bottom: 0; }
.tbl th:first-child, .tbl td:first-child { padding-left: 20px; }
.tbl th:last-child, .tbl td:last-child { padding-right: 20px; }
.tbl .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tbl tbody tr:hover td { background: #fbfaf7; }
.tbl tr.is-off td { color: #86897f; }
.tbl tr.is-off .thumb { opacity: .5; }
.tbl-compact td, .tbl-compact th { padding: 8px 10px; }
.tbl-compact th:first-child, .tbl-compact td:first-child { padding-left: 0; }
.tbl-compact th:last-child, .tbl-compact td:last-child { padding-right: 0; }
.cell-name > .thumb { display: inline-grid; vertical-align: middle; margin-right: 12px; }
.cell-name > div { display: inline-flex; flex-direction: column; min-width: 0; vertical-align: middle; max-width: calc(100% - 60px); }
.cell-name > div:first-child { max-width: 100%; }
.cell-desc { display: block; font-size: 12.5px; max-width: 46ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cell-clip { max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cell-act { text-align: right; white-space: nowrap; }
.cell-act .btn + .btn { margin-left: 6px; }
.thumb { width: 40px; height: 40px; border-radius: 3px; overflow: hidden; flex: none; background: #ece9e0; display: grid; place-items: center; color: #a5a89e; }
.thumb img { width: 100%; height: 100%; object-fit: cover; }
.row-link { cursor: pointer; }
.price-edit { display: inline-flex; align-items: center; gap: 4px; }
.price-input { width: 70px; text-align: right; padding: 5px 7px; border: 1px solid transparent; border-radius: 4px; background: transparent; font-variant-numeric: tabular-nums; }
.price-input:hover { border-color: var(--line-strong); background: #fff; }
.price-input:focus { border-color: var(--brand); background: #fff; outline: none; box-shadow: 0 0 0 1px var(--brand); }
.code { background: #eeece4; padding: 2px 7px; border-radius: 3px; font-size: 12.5px; letter-spacing: .02em; }
.tbl-plans th.is-cur, .tbl-plans td.is-cur { background: var(--brand-soft); }
.yes { color: var(--brand); display: inline-flex; }
.st { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; white-space: nowrap; }
.st i { width: 8px; height: 8px; border-radius: 50%; background: #9a9d94; flex: none; }
.st-ny i { background: #d98a1c; }
.st-bekreftet i, .st-aktiv i { background: #2b8a5c; }
.st-under-tilberedning i { background: #3b7fb0; }
.st-klar-for-henting i { background: #7a5bb8; }
.st-ferdig i, .st-inaktiv i { background: #9a9d94; }
.st-avvist i, .st-avslatt i { background: #c0453b; }
.st-planlagt i { background: #3b7fb0; }
.st-avslatt, .st-avvist { color: #8c2f28; }
.st-ny { color: #8a5a0d; }
.meter { display: inline-block; vertical-align: middle; width: 110px; height: 6px; background: #ebe8df; border-radius: 3px; overflow: hidden; margin-right: 10px; }
.meter span { display: block; height: 100%; background: #6f9c88; }
.meter.is-high span { background: #d9932b; }
.meter.is-full span { background: #c0453b; }
.meter.is-done span { background: var(--brand); }
.meter-sm { width: 90px; }
.meter-txt { font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; }
.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin-bottom: 20px; overflow-x: auto; }
.tab { padding: 9px 14px; font-size: 14px; color: var(--muted); text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.tab:hover { color: var(--ink); }
.tab.is-active { color: var(--ink); font-weight: 600; border-bottom-color: var(--brand); }
.tab-n { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; margin-left: 6px; font-size: 11.5px; font-weight: 600; background: var(--brand); color: #fff; border-radius: 9px; }
.chips { display: flex; gap: 6px; margin-bottom: 14px; flex-wrap: wrap; }
.chip { padding: 6px 12px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: 13px; background: #fff; }
.chip:hover { background: #f1efe8; }
.chip.is-on { background: var(--ink); color: #fff; border-color: var(--ink); }
.chip-n { opacity: .7; margin-left: 2px; }
.toolbar { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.search { position: relative; flex: 1; min-width: 220px; max-width: 380px; display: block; }
.search .ic { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.search input { width: 100%; min-height: 40px; padding: 8px 11px 8px 34px; border: 1px solid var(--line-strong); border-radius: 4px; background: #fff; }
.inline-select, .inline-date { display: inline-flex; align-items: center; gap: 8px; }
.inline-select .lbl, .inline-date .lbl { margin: 0; }
.board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 22px; align-items: start; }
.board-col { background: #ebe9e1; border-radius: 6px; padding: 10px; min-height: 120px; }
.board-col[data-col="Ny"] { background: #fbf1dc; box-shadow: inset 0 3px 0 #d98a1c; }
.board-head { display: flex; align-items: center; justify-content: space-between; padding: 2px 4px 10px; }
.board-head h2 { font-size: 13px; font-weight: 600; letter-spacing: .01em; }
.board-col[data-col="Ny"] .board-head h2 { font-size: 15px; }
.board-n { font-size: 12px; color: var(--muted); background: #fff; border-radius: 10px; padding: 1px 8px; font-variant-numeric: tabular-nums; }
.board-empty { font-size: 13px; color: var(--muted); padding: 12px 4px; line-height: 1.45; }
.order { background: #fff; border: 1px solid var(--line); border-radius: 5px; padding: 12px 13px; margin-bottom: 8px; font-size: 13.5px; }
.order[data-status="Ny"] { border-left: 4px solid #d98a1c; padding-left: 12px; }
.order-head { display: flex; align-items: baseline; gap: 8px; flex-wrap: nowrap; white-space: nowrap; }
.order-no { font-size: 20px; font-weight: 700; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.order-time { font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.order-wait { font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; padding: 1px 7px; border-radius: 9px; background: var(--brand-soft); color: var(--brand); }
.order[data-wait="warn"] .order-wait { background: #fde7bd; color: #7a4a00; }
.order[data-wait="late"] .order-wait { background: #d98a1c; color: #1c1300; }
.order[data-status="Ny"][data-wait="late"] { border-color: #d98a1c; box-shadow: 0 0 0 1px #d98a1c; }
.order-total { margin-left: auto; font-weight: 600; font-variant-numeric: tabular-nums; }
.order-who { margin-top: 6px; }
.order-who a { text-decoration: none; color: var(--muted); }
.order-items { margin: 8px 0; padding: 8px 0; border-top: 1px dashed var(--line); border-bottom: 1px dashed var(--line); }
.order-items li { line-height: 1.6; }
.qty { display: inline-block; min-width: 24px; color: var(--muted); font-variant-numeric: tabular-nums; }
.order-meta { font-size: 12.5px; color: var(--muted); }
.order-note { font-size: 13px; margin-top: 6px; font-style: italic; }
.order-foot { display: flex; gap: 6px; margin-top: 11px; flex-wrap: wrap; align-items: center; position: relative; }
.order-more { margin-left: auto; position: relative; }
.order-more > summary { list-style: none; cursor: pointer; }
.order-more > summary::-webkit-details-marker { display: none; }
.btn-icon { padding-left: 8px; padding-right: 8px; }
.btn-icon svg { stroke-width: 3.4; }
.order-menu { position: absolute; right: 0; bottom: calc(100% + 6px); z-index: 5; display: flex; flex-direction: column; gap: 8px; min-width: 190px; padding: 10px; background: var(--surface); border: 1px solid var(--line-strong); border-radius: 6px; box-shadow: 0 10px 24px -12px rgba(0,0,0,.35); }
.order-menu-set { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.order.is-new { animation: order-in .45s cubic-bezier(.2,.8,.2,1) both; }
@keyframes order-in { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .order.is-new { animation: none; } }
.menu-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 22px; align-items: start; }
.cat-panel { position: sticky; top: calc(var(--demo-h) + 74px); }
.cat-panel .lbl { color: var(--muted); font-weight: 500; text-transform: uppercase; font-size: 11px; letter-spacing: .08em; margin-bottom: 8px; }
.cat-list { display: flex; flex-direction: column; gap: 1px; }
.cat-item { position: relative; }
.cat-row { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 8px 10px; border-radius: 4px; font-size: 14px; text-align: left; }
.cat-row:hover { background: #ebe9e1; }
.cat-row.is-active { background: var(--brand-soft); color: var(--brand-dark); font-weight: 600; }
.cat-tools { display: none; position: absolute; right: 2px; top: 50%; transform: translateY(-50%); background: #ebe9e1; border-radius: 4px; padding: 0 2px; }
.cat-item:hover .cat-tools, .cat-item:focus-within .cat-tools { display: flex; }
.cat-item.is-active .cat-tools { background: #d3e3db; }
.menu-main .panel-flush { margin-bottom: 16px; }
.tbl-menu { table-layout: fixed; }
.tbl-menu th:nth-child(2) { width: 120px; }
.tbl-menu th:nth-child(3) { width: 168px; }
.tbl-menu th:nth-child(4) { width: 96px; }
.tbl-menu td:nth-child(3) { white-space: nowrap; }
.tbl-menu .cell-desc { white-space: normal; overflow-wrap: anywhere; }
.hide-sm { }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-row-3 { grid-template-columns: 110px 1fr; }
.check-row { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.check-row .check { margin-left: 0; }
.fld-narrow { max-width: 200px; }
.img-pick { display: flex; align-items: center; gap: 14px; }
.img-pick-r { display: flex; gap: 8px; flex-wrap: wrap; }
.img-prev { width: 84px; height: 84px; border: 1px dashed var(--line-strong); border-radius: 4px; display: grid; place-items: center; color: #a5a89e; overflow: hidden; background: #faf9f6; flex: none; font-size: 12px; text-align: center; }
.img-prev img { width: 100%; height: 100%; object-fit: cover; }
.img-prev-wide { width: 140px; height: 84px; }
.img-prev-logo { width: 140px; padding: 6px; }
.img-prev-logo img { object-fit: contain; }
.color-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.color-input { width: 44px; height: 36px; padding: 2px; border: 1px solid var(--line-strong); border-radius: 4px; background: #fff; cursor: pointer; }
.swatches { display: flex; gap: 6px; }
.swatch { width: 26px; height: 26px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--line-strong); }
.swatch.is-on { box-shadow: 0 0 0 2px var(--ink); }
.gallery-edit { display: flex; gap: 8px; flex-wrap: wrap; }
.gallery-edit li { position: relative; width: 84px; height: 62px; border-radius: 4px; overflow: hidden; background: #ece9e0; }
.gallery-edit img { width: 100%; height: 100%; object-fit: cover; }
.gallery-edit .icon-btn { position: absolute; top: 2px; right: 2px; background: rgba(255,255,255,.92); color: var(--ink); }
.gallery-add label { width: 100%; height: 100%; display: grid; place-items: center; border: 1px dashed var(--line-strong); border-radius: 4px; color: var(--muted); cursor: pointer; }
.gallery-add label:hover { background: #f1efe8; }
.hours-edit { display: flex; flex-direction: column; gap: 8px; }
.he-row { display: flex; align-items: center; gap: 10px; }
.he-day { width: 92px; font-size: 14px; }
.he-row .field { width: 112px; max-width: none; }
.he-dash { color: var(--muted); }
.check { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; margin-left: 8px; cursor: pointer; }
.add-slot { display: flex; align-items: flex-end; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--line); flex-wrap: wrap; }
.add-slot .lbl { flex-basis: 100%; margin: 0; }
.add-slot .err { flex-basis: 100%; margin: 0; }
.mini-h { font-size: 13px; font-weight: 600; margin: 18px 0 8px; }
.kv { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 20px; }
.kv dt { font-size: 12.5px; color: var(--muted); }
.kv dd { font-size: 14.5px; }
.hist li { display: flex; gap: 14px; padding: 7px 0; border-top: 1px solid var(--line); font-size: 13.5px; }
.hist li span:first-child { flex: none; width: 150px; color: var(--muted); }
.hist li span:last-child { margin-left: auto; white-space: nowrap; }
.hist li .cell-clip { flex: 1; max-width: none; }
.sms-list { padding: 0 20px; }
.sms { display: flex; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); }
.sms:first-child { border-top: 0; }
.sms-ic { color: var(--brand); margin-top: 2px; }
.sms-top { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; font-size: 14px; }
.sms-top .muted { font-size: 12.5px; }
.sms-text { font-size: 14px; margin-top: 3px; max-width: 70ch; }
.tpl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 18px; }
.tpl-card { background: #fff; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; display: flex; flex-direction: column; }
.tpl-card.is-current { border-color: var(--brand); box-shadow: 0 0 0 1px var(--brand); }
.tpl-badge { position: absolute; top: 10px; left: 10px; z-index: 2; display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 999px; background: #17130b; color: #e3c785; font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; box-shadow: 0 2px 8px rgba(0,0,0,.25); }
.tpl-frame { position: relative; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: #ece9e0; border-bottom: 1px solid var(--line); --s: .22; }
.tpl-frame iframe { position: absolute; top: 0; left: 0; width: 1280px; height: 960px; border: 0; transform: scale(var(--s)); transform-origin: 0 0; pointer-events: none; background: #fff; }
.tpl-info { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.tpl-info .btn-row { margin-top: auto; padding-top: 12px; }
.tpl-name { display: flex; align-items: center; gap: 8px; justify-content: space-between; }
.tpl-name h2 { font-size: 17px; font-weight: 600; margin-right: auto; }
.tpl-cat { display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.tpl-cat-kebab { background: #fde4d2; color: #9a3b12; }
.tpl-cat-restaurant { background: #e1ece1; color: #2d5a3c; }
.tpl-cat-premium { background: #f1e4c2; color: #7a5a12; }
.tpl-suits { font-size: 13px; font-weight: 500; }
.pv-tools { margin-bottom: 12px; }
.pv-tools .seg { border-color: var(--line-strong); }
.pv-tools .seg button { color: var(--ink); border-color: var(--line-strong); }
.pv-tools .seg button:hover { background: #f1efe8; }
.pv-tools .seg button.is-on { background: var(--ink); color: #fff; }
.pv-stage { height: calc(100% - 46px); min-height: 360px; display: flex; justify-content: center; background: #e6e3da; border-radius: 4px; overflow: hidden; }
.pv-frame { width: 100%; height: 100%; border: 0; background: #fff; }
.pv-stage.is-mobile { padding: 14px 0; }
.pv-stage.is-mobile .pv-frame { width: 390px; border-radius: 10px; box-shadow: 0 8px 30px rgba(0,0,0,.2); }
.modal-xl .modal-body { display: flex; flex-direction: column; }
.plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 20px; }
.plan-card { background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.plan-card.is-current { border-color: var(--brand); box-shadow: 0 0 0 1px var(--brand); }
.plan-card h2 { font-size: 20px; font-weight: 600; }
.plan-price strong { font-size: 24px; letter-spacing: -.02em; }
.plan-list { display: flex; flex-direction: column; gap: 7px; font-size: 14px; flex: 1; }
.plan-list li { display: flex; gap: 8px; align-items: flex-start; }
.plan-list .ic { color: var(--brand); margin-top: 3px; }
.plan-current { font-size: 13.5px; font-weight: 600; color: var(--brand); padding: 8px 0; }
.bill-banner { margin: 0 0 18px; padding: 11px 14px; border: 1px solid #c9d6e6; background: #eef3fa; border-radius: 6px; font-size: 14px; color: #243b59; }
.bill-banner.bill-ok { border-color: #bcd9c7; background: #eef7f1; color: #1f5a37; }
.bill-banner.bill-warn { border-color: #ecd9a8; background: #fbf5e3; color: #6d5410; }
.bill-banner .link-btn { margin-left: 6px; font-weight: 600; }
.plan-card .btn { margin-top: 10px; }
.plan-sum { margin: 6px 0 0; font-size: 13px; }
.btn-danger-outline { background: transparent; border-color: #e5b4b0; color: var(--danger); }
.btn-danger-outline:hover { background: #fdf1f0; border-color: var(--danger); }
.plt-bill .form-row { align-items: end; gap: 18px; flex-wrap: wrap; }
.compare { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 14px 0; }
.compare-col { border-top: 2px solid var(--brand); padding-top: 8px; }
.compare-head { display: flex; justify-content: space-between; }
.login { min-height: calc(100vh - var(--demo-h)); display: grid; place-items: center; padding: 24px 16px; background: var(--bg); }
.login-card { width: 100%; max-width: 380px; background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.login-card .adm-brand { padding: 0 0 6px; }
.login-card h1 { font-size: 24px; font-weight: 600; letter-spacing: -.015em; }
.login-card .form { margin-top: 8px; }
.login-card .err-block { margin: 0 0 12px; padding: 9px 11px; border: 1px solid #e5b4b0; background: #fdf1f0; border-radius: 4px; color: var(--danger); font-size: 13.5px; }
.adm-user { display: flex; flex-direction: column; gap: 2px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--muted); }
.adm-user span { overflow: hidden; text-overflow: ellipsis; }
.adm-user .link-btn { align-self: flex-start; color: var(--brand); }
.boot { min-height: 60vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: var(--muted); font-family: var(--font-ui); text-align: center; padding: 24px; }
.boot h1 { color: var(--ink); font-size: 22px; font-weight: 600; }
.boot-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--brand); animation: boot-pulse 1s ease-in-out infinite; }
@keyframes boot-pulse { 50% { opacity: .25; transform: scale(.8); } }
.modal-lg { max-width: 720px; }
@media (max-width: 600px) { .modal-lg { max-width: none; } }
textarea.mono { font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace; font-size: 12.5px; line-height: 1.5; min-height: 220px; }
.mi-tools { display: flex; gap: 14px; align-items: center; margin: 12px 0 10px; }
.mi-sum { margin: 10px 0 14px; font-size: 14px; min-height: 22px; }
.mi-ok { color: var(--brand); }
.mi-bad { color: var(--danger); }
.mi-list { margin: 6px 0 0 18px; padding: 0; list-style: disc; font-size: 13px; color: var(--muted); }
.mi-list.mi-bad { color: var(--danger); }
.mi-mode { border: 0; padding: 0; margin: 0 0 6px; display: flex; flex-direction: column; gap: 6px; }
.mi-mode .check { margin-left: 0; }
.mi-confirm { margin: 6px 0 0; color: var(--danger); }
.as-replies { margin-top: 14px; display: grid; gap: 12px; }
.as-reply { padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.as-reply-h, .as-idea-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 8px; }
.as-ideas { margin-top: 14px; display: grid; gap: 12px; }
.as-idea { padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.as-idea p { margin: 0 0 6px; font-size: 14px; line-height: 1.45; }
.as-idea-d { font-size: 13px; }
.plt-draft { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 8px 0 4px; font-size: 13px; }
.plt-draft .warn { color: #8a5a00; font-weight: 600; }
.sms-preview { margin: 8px 0 14px; padding: 10px 12px; border: 1px dashed var(--line); border-radius: 8px; background: #faf9f6; }
.sms-preview .lbl { display: block; margin: 0 0 4px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-weight: 600; }
.sms-preview p { margin: 0 0 4px; font-size: 14px; line-height: 1.45; word-break: break-word; }
.mi-tabs { display: flex; gap: 4px; margin: 0 0 14px; border-bottom: 1px solid var(--line); }
.mi-tabs button { padding: 9px 14px; border: 0; border-bottom: 2px solid transparent; background: none; font: inherit; font-weight: 600; color: var(--muted); cursor: pointer; margin-bottom: -1px; }
.mi-tabs button.is-on { color: var(--ink); border-bottom-color: var(--brand); }
.mi-files { display: flex; flex-direction: column; gap: 6px; margin: 0 0 12px; }
.mi-file { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); font-size: 13.5px; }
.mi-file img { width: 40px; height: 40px; object-fit: cover; border-radius: 4px; flex: none; }
.mi-pdf { width: 40px; height: 40px; flex: none; display: grid; place-items: center; border-radius: 4px; background: var(--brand-soft); color: var(--brand); font-weight: 700; font-size: 12px; }
.mi-file-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mi .btn-row { margin: 10px 0; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.mi-review { margin-top: 6px; max-height: 46vh; overflow: auto; padding-right: 4px; }
.mi-notes { padding: 10px 12px; margin: 0 0 10px; border: 1px solid #ecd9a8; background: #fbf5e3; border-radius: 4px; font-size: 13.5px; color: #6d5410; }
.mi-notes .mi-list { color: #6d5410; }
.mi-hint { margin: 0 0 8px; font-size: 13px; }
.mi-cat { margin: 0 0 14px; }
.mi-cat-h { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; }
.mi-cat-h .field { font-weight: 700; max-width: 320px; }
.mi-row { display: grid; grid-template-columns: 24px minmax(0, 1fr) 110px; gap: 6px 8px; align-items: center; padding: 8px 0; border-top: 1px solid var(--line); }
.mi-row .mi-desc { grid-column: 2 / 4; font-size: 13px; }
.mi-row .mi-on { width: 18px; height: 18px; margin: 0; }
.mi-alert { padding: 10px 12px; margin: 0 0 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
.mi-alert .check { display: flex; gap: 8px; align-items: flex-start; font-weight: 600; font-size: 14px; margin: 0; }
.mi-alert .check + .muted, .mi-alert .muted + .check { margin-top: 6px; }
.mi-alert .muted { font-size: 13px; margin: 6px 0 8px; }
.mi-row .mi-al { grid-column: 2 / 4; display: flex; flex-wrap: wrap; gap: 4px; }
.mi-chip { padding: 3px 9px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font: inherit; font-size: 12px; color: var(--muted); cursor: pointer; }
.mi-chip.is-on { background: var(--brand-soft); border-color: var(--brand); color: var(--brand); font-weight: 600; }
.mi-row.is-off .mi-al { opacity: .45; }
.mi-pricebox { display: flex; align-items: center; gap: 4px; }
.mi-pricebox .field { text-align: right; }
.mi-row.is-off .field { opacity: .45; text-decoration: line-through; }
.mi-row.is-warn .mi-price { border-color: var(--danger); background: #fdf0f0; }
.mi .lbl { display: block; margin: 12px 0 4px; font-weight: 600; font-size: 13.5px; }
@media (max-width: 560px) { .mi-row { grid-template-columns: 24px minmax(0, 1fr); } .mi-row .mi-pricebox { grid-column: 2; } .mi-row .mi-desc, .mi-row .mi-al { grid-column: 2; } .mi-tabs button { padding: 9px 10px; font-size: 14px; } }
.mi-warn { padding: 10px 12px; border: 1px solid #ecd9a8; background: #fbf5e3; border-radius: 4px; font-size: 13.5px; color: #6d5410; }
body[data-view="platform"] { background: var(--bg); }
.plt-top { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 16px; padding: 0 28px; height: 56px; background: rgba(251,250,247,.94); backdrop-filter: blur(6px); border-bottom: 1px solid var(--line); }
.plt-top .adm-brand { padding: 0; }
.plt-title { font-size: 13.5px; color: var(--muted); padding-left: 14px; border-left: 1px solid var(--line); }
.plt-user { margin-left: auto; display: flex; gap: 14px; align-items: center; font-size: 13px; color: var(--muted); }
.plt-user .link-btn { color: var(--brand); }
.plt-main { max-width: 1360px; margin: 0 auto; padding: 26px 28px 60px; }
.plt-link, .plt-trial { margin-top: 18px; padding-top: 6px; border-top: 1px solid var(--line); }
.skr-url { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12.5px; }
.skr-steps { margin: 10px 0 6px 20px; padding: 0; line-height: 1.6; }
.plt-check-row { display: flex; gap: 10px; align-items: flex-start; padding: 5px 0; font-size: 14px; cursor: pointer; }
.plt-check-row input { margin-top: 3px; flex: none; }
.plt-check-row.is-auto { cursor: default; color: var(--muted); }
.plt-prog { padding: 0; border: 0; background: none; text-align: left; cursor: pointer; color: var(--brand); }
.plt-prog.is-done { color: var(--ok, #2f7a4f); }
.plt-link .code-row { display: flex; gap: 8px; }
.plt-link .code-row .field { flex: 1; }
.notice { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 18px; padding: 11px 14px; border: 1px solid #ecd9a8; background: #fbf5e3; border-radius: 6px; font-size: 14px; color: #6d5410; }
.notice .ic { margin-top: 2px; }
.err-block { margin: 0 0 14px; padding: 9px 11px; border: 1px solid #e5b4b0; background: #fdf1f0; border-radius: 4px; color: var(--danger); font-size: 13.5px; }
@media (max-width: 899px) { .plt-top { padding: 0 16px; } .plt-main { padding: 20px 16px 50px; } .plt-title { display: none; } }
.locked-page { display: flex; justify-content: center; padding: 36px 0; }
.upsell { max-width: 520px; display: flex; flex-direction: column; gap: 10px; }
.locked-page .upsell { background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 28px; }
.upsell-lock { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line-strong); border-radius: 4px; color: var(--muted); background: #faf9f6; }
.upsell-kicker { font-size: 12.5px; color: var(--brand); font-weight: 600; letter-spacing: .02em; }
.upsell h2 { font-size: 22px; font-weight: 600; letter-spacing: -.01em; line-height: 1.2; }
.upsell-cur { font-size: 13px; color: var(--muted); }
.upsell-list { display: flex; flex-direction: column; gap: 6px; font-size: 14px; margin: 4px 0; padding-top: 10px; border-top: 1px solid var(--line); }
.upsell-list li { display: flex; gap: 8px; }
.upsell-list .ic { color: var(--brand); margin-top: 3px; }
.upsell-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.steps { counter-reset: s; display: flex; flex-direction: column; gap: 12px; font-size: 14px; }
.steps li { counter-increment: s; display: flex; gap: 12px; }
.steps li::before { content: counter(s); flex: none; width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--line-strong); display: grid; place-items: center; font-size: 12px; color: var(--muted); }
.qr-box { display: flex; gap: 20px; align-items: center; padding: 6px 0; flex-wrap: wrap; }
.qr-img { width: 180px; height: 180px; background: #fff; border: 1px solid var(--line); border-radius: 4px; padding: 6px; }
.qr-img > svg { display: block; width: 100%; height: 100%; }
.qr-url { word-break: break-all; margin-top: 12px; }
@media (max-width: 1100px) {
  .board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-2-wide, .grid-2-even { grid-template-columns: 1fr; }
  .plan-grid { grid-template-columns: 1fr; }
}
@media (max-width: 899px) {
  .adm { grid-template-columns: 1fr; }
  .adm-side { position: fixed; top: var(--demo-h); left: 0; bottom: 0; width: 280px; height: auto; z-index: 60; transform: translateX(-100%); transition: transform .2s ease; }
  .adm.nav-open .adm-side { transform: none; box-shadow: 0 0 40px rgba(0,0,0,.25); }
  .adm.nav-open .adm-scrim { display: block; position: fixed; inset: var(--demo-h) 0 0 0; background: rgba(18,21,19,.4); z-index: 55; }
  .adm-burger { display: inline-grid; }
  .adm-top { padding: 0 16px; }
  .adm-content { padding: 20px 16px 50px; }
  .page-head h1 { font-size: 23px; }
  .grid-2 { grid-template-columns: 1fr; }
  .menu-layout { grid-template-columns: minmax(0, 1fr); } 
  .cat-panel { position: static; min-width: 0; }
  .cat-list { flex-direction: row; overflow-x: auto; gap: 6px; padding-bottom: 4px; }
  .cat-item, .cat-list > li { flex: none; }
  .cat-row { border: 1px solid var(--line-strong); background: #fff; gap: 8px; }
  .cat-tools { display: none !important; }
  .hide-sm { display: none; }
  .stat { padding: 12px 14px; }
  .stat dd { font-size: 22px; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .stat:nth-child(odd) { border-left: 0; }
  .stat:nth-child(n+3) { border-top: 1px solid var(--line); }
  .board { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .kv { grid-template-columns: 1fr; }
  .tbl th:first-child, .tbl td:first-child { padding-left: 14px; }
  .tbl th:last-child, .tbl td:last-child { padding-right: 14px; }
  .panel { padding: 16px; }
  .panel-flush > .panel-head { padding: 12px 14px; }
  .cell-desc { max-width: 24ch; }
  .he-row { flex-wrap: wrap; }
  .he-day { width: 100%; font-weight: 500; }
  .adm-top .btn { padding: 5px 9px; }
  .hist li span:first-child { width: 90px; }
}
.chat { display: flex; flex-direction: column; max-width: 820px; }
.chat-list { height: min(520px, calc(100vh - 340px)); min-height: 240px; overflow-y: auto; padding: 18px 20px; display: flex; flex-direction: column; gap: 12px; background: #faf9f6; }
.chat-empty { margin: auto; color: var(--muted); font-size: 14px; }
.msg { display: flex; flex-direction: column; max-width: 78%; gap: 3px; }
.msg-me { align-self: flex-end; align-items: flex-end; }
.msg-them { align-self: flex-start; align-items: flex-start; }
.msg-b { padding: 9px 13px; border-radius: 6px; font-size: 14.5px; line-height: 1.5; word-break: break-word; }
.msg-me .msg-b { background: var(--brand); color: #fff; }
.msg-them .msg-b { background: #fff; border: 1px solid var(--line); }
.msg-t { font-size: 11.5px; color: var(--muted); }
.chat-form { display: flex; gap: 10px; align-items: flex-end; padding: 12px 14px; border-top: 1px solid var(--line); background: #fff; }
.chat-form .field { flex: 1; min-height: 44px; resize: none; }
.chat-modal .chat-list { height: min(460px, 55vh); }
.chat-modal { max-width: none; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
@media (max-width: 899px) { .msg { max-width: 90%; } .chat-list { padding: 14px; } }
.order-paid { display: inline-flex; align-items: center; gap: 6px; margin: 2px 0 0; padding: 3px 9px; border-radius: 999px; background: #e3f1e9; color: #1d5a3a; font-size: 12.5px; font-weight: 600; }
.pay-steps { display: grid; gap: 14px; margin: 4px 0 0; padding: 0; list-style: none; }
.pay-step { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 16px 18px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.pay-step.is-done { background: #f4f8f5; border-color: #cfe3d6; }
.pay-step .ps-n { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--bg-soft, #efede6); font-weight: 600; }
.pay-step.is-done .ps-n { background: #1d5a3a; color: #fff; }
.pay-step h3 { font-size: 15.5px; margin: 0 0 2px; }
.pay-step p { margin: 0; color: var(--muted); font-size: 14px; }
@media (max-width: 640px) { .pay-step { grid-template-columns: 34px minmax(0, 1fr); } .pay-step .btn, .pay-step .sw { grid-column: 2; justify-self: start; } }
.pay-step .pay-step-form { grid-column: 1 / -1; margin-top: 12px; }
.hint-block { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--line); }
.hint-block h3 { font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.plain-list { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: 14px; color: var(--muted); }
.btn-row-tight { margin-top: 0; }
.sw input:disabled + .sw-track { opacity: .45; cursor: not-allowed; }
.sms-top { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.sms-top .st { margin-left: auto; }
.sms-err { font-size: 12.5px; margin: 2px 0 0; }
.mfa-qr { display: flex; justify-content: center; margin: 4px 0; }
.mfa-qr img { background: #fff; padding: 8px; border: 1px solid var(--line); border-radius: 6px; }
.mfa-secret { word-break: break-all; font-size: 12.5px; }
.mfa-code { letter-spacing: .32em; font-size: 20px; text-align: center; font-variant-numeric: tabular-nums; }
.cap-rules { margin-top: 18px; }
.cap-range { margin-bottom: 18px; }
.rule-list { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.rule-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; border: 1px solid var(--line, #ddd); border-radius: 8px; background: var(--surface, #fff); }
.rule-list li.muted { border-style: dashed; }
.rule-list li > span { min-width: 0; }
.day-pick { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.rule-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; }
.res-top { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.res-top .chips { margin: 0; }
.res-new { margin-bottom: 18px; }
.dl-nav { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.dl-panel { padding: 22px; overflow-x: auto; }
.dl-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 14px; }
.dl-head h2 { margin: 0 0 4px; font-size: 20px; }
.dl-head p { margin: 0; color: var(--muted); }
.dl-head .dl-stamp { font-size: 12.5px; white-space: nowrap; }
.dl-tbl { width: 100%; border-collapse: collapse; font-size: 15px; }
.dl-tbl th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); padding: 6px 10px; border-bottom: 2px solid var(--line, #ddd); }
.dl-tbl td { padding: 9px 10px; border-bottom: 1px solid var(--line, #e5e5e5); vertical-align: top; }
.dl-tbl .num { text-align: right; }
.dl-tbl tr.dl-first td { border-top: 1px solid var(--line, #ccc); }
.dl-time { font-size: 18px; font-weight: 700; white-space: nowrap; }
.dl-guests { font-size: 18px; font-weight: 700; }
.dl-phone { white-space: nowrap; }
.dl-note { color: var(--muted); font-style: italic; }
.dl-wait { font-size: 11.5px; font-weight: 600; color: #8a5a00; background: #fff3d6; border-radius: 8px; padding: 1px 7px; white-space: nowrap; }
.dl-tick-h { text-align: center !important; width: 52px; }
.dl-tick { text-align: center; }
.dl-box { display: inline-grid; place-items: center; width: 26px; height: 26px; padding: 0; border: 2px solid #555; border-radius: 6px; background: transparent; color: #fff; font-size: 16px; font-weight: 800; line-height: 1; vertical-align: middle; cursor: pointer; }
.dl-box.is-on { background: #2b8a5c; border-color: #2b8a5c; }
.dl-tbl tr.dl-met td:not(.dl-tick) { opacity: .55; }
.dl-print .dl-box { cursor: default; }
.dl-busy { margin: 12px 0 0; font-size: 13px; color: var(--muted); }
.dl-empty { padding: 28px 0; text-align: center; color: var(--muted); }
.dl-print { display: none; }
@media print {
  body.is-printing-daylist { background: #fff !important; margin: 0 !important; padding: 0 !important; }
  body.is-printing-daylist > *:not(#dl-print) { display: none !important; }
  body.is-printing-daylist #dl-print { display: block; padding: 14mm 12mm; color: #000; background: #fff; }
  #dl-print .dl-head p, #dl-print .dl-busy, #dl-print .dl-note, #dl-print th { color: #333; }
  #dl-print .dl-tbl { font-size: 12.5pt; }
  #dl-print .dl-tbl tr { break-inside: avoid; }
  #dl-print .dl-tbl td { padding: 7px 8px; border-bottom: 1px solid #999; }
  #dl-print .dl-wait { background: none; border: 1px solid #555; color: #000; }
  #dl-print .dl-box, #dl-print .dl-box.is-on { background: none; color: #000; border-color: #000; }
  #dl-print .dl-met td:not(.dl-tick) { opacity: 1; }
}
@media (max-width: 640px) { .dl-head { flex-direction: column; } .dl-panel { padding: 14px; } }
.res-new .warn { color: #b3261e; }
.sp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.sp-card { display: grid; gap: 8px; align-content: start; }
.sp-card.is-live { border-color: var(--primary, #2d5a4c); box-shadow: 0 0 0 2px rgba(45,90,76,.18); }
.sp-card .panel-head { margin-bottom: 0; }
.sp-period { margin: 0; font-size: 15px; }
.sp-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 6px; }
.sp-toggle { display: inline-flex; align-items: center; gap: 8px; margin-right: 6px; }
.al-edit { border: 0; margin: 0; padding: 0; min-width: 0; }
.al-edit legend { padding: 0; }
.al-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.chk-chip { position: relative; display: inline-flex; }
.chk-chip input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.chk-chip span { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--surface); font-size: 13.5px; color: var(--ink); }
.chk-chip input:checked + span { background: var(--brand); border-color: var(--brand); color: #fff; }
.chk-chip input:focus-visible + span { outline: 2px solid var(--brand); outline-offset: 2px; }
.chk-none span { border-style: dashed; }
.al-tag { display: block; margin-top: 2px; font-size: 12px; color: var(--muted); }
.al-tag.is-missing { color: #8a6100; }
.order-table { margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: var(--brand); color: #fff; font-size: 12px; font-weight: 600; white-space: nowrap; }
.tb-samples { display: flex; gap: 16px; flex-wrap: wrap; margin: 12px 0 16px; }
.tb-sample { margin: 0; text-align: center; font-size: 13px; color: var(--muted); }
.tb-qr { display: block; width: 104px; height: 104px; margin: 0 auto 4px; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; background: #fff; }
.tb-qr svg { width: 100%; height: 100%; display: block; }
.tb-print { display: none; }
@media print {
  body.is-printing-tables { background: #fff !important; margin: 0 !important; padding: 0 !important; }
  body.is-printing-tables > *:not(#tb-print) { display: none !important; }
  body.is-printing-tables #tb-print { display: block; color: #000; background: #fff; }
  .tb-page { display: grid; grid-template-columns: 1fr 1fr; gap: 7mm; padding: 6mm 4mm; break-after: page; page-break-after: always; }
  .tb-page:last-child { break-after: auto; page-break-after: auto; }
  .tbc { box-sizing: border-box; height: 78mm; border: 0.4mm solid #000; border-radius: 4mm; padding: 5mm; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: space-between; break-inside: avoid; page-break-inside: avoid; font-family: system-ui, 'Segoe UI', Arial, sans-serif; }
  .tbc-name { margin: 0; font-size: 11pt; font-weight: 600; }
  .tbc-no { margin: 0; font-size: 30pt; font-weight: 800; line-height: 1; }
  .tbc-no small { display: block; font-size: 10pt; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
  .tbc-qr { display: block; width: 38mm; height: 38mm; }
  .tbc-qr svg { width: 100%; height: 100%; display: block; }
  .tbc-how { margin: 0; font-size: 9pt; line-height: 1.3; }
}
.notice.notice-trial { border-color: #b9d6c8; background: #eaf4ee; color: #1f4d3f; }
.notice.notice-danger { border-color: #e7b6b3; background: #fbeceb; color: #8a1f1a; }
.notice.notice-warn { border-color: #ecd9a8; background: #fbf5e3; color: #6d5410; }
.notice p { margin: 0; }
.notice a { color: inherit; font-weight: 600; text-decoration: underline; }
.kig { margin-bottom: 18px; }
.kig-bar { height: 6px; margin: 0 16px; border-radius: 3px; background: var(--line); overflow: hidden; }
.kig-bar span { display: block; height: 100%; background: var(--brand); transition: width .3s; }
.kig-list { list-style: none; margin: 0; padding: 6px 8px 10px; }
.kig-list a { display: flex; align-items: center; gap: 12px; padding: 9px 8px; border-radius: 6px; color: var(--ink); text-decoration: none; }
.kig-list a:hover { background: var(--brand-soft); }
.kig-list i { flex: none; width: 15px; height: 15px; border: 1.5px solid var(--line-strong); border-radius: 50%; box-sizing: border-box; }
.kig-list li.is-done a { color: var(--muted); }
.kig-list li.is-done svg { color: var(--brand); flex: none; }
.kig-list li.is-done span { text-decoration: line-through; }
.plt-alerts { list-style: none; margin: 0; padding: 0 0 6px; }
.plt-alert { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; padding: 12px 18px; border-top: 1px solid var(--line); }
.plt-alert p { margin: 4px 0 2px; font-size: 14px; }
.plt-alert-error strong { color: #a3231c; }
.plt-self { color: #1f6b4a; font-weight: 600; }
.vat-dine .row-between { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.vat-dine .select { margin-top: 8px; }
.vat-cats { margin-top: 12px; }
.vat-cats summary { cursor: pointer; font-weight: 600; margin-bottom: 8px; }
.order-bill { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: #f0c24d; color: #4a3500; font-size: 12px; font-weight: 700; }
.bill-panel { padding: 0; }
.bill-panel > summary { display: flex; align-items: center; padding: 14px 18px; cursor: pointer; list-style: none; }
.bill-panel > summary::-webkit-details-marker { display: none; }
.bill-panel > summary::before { content: "\25B8"; margin-right: 10px; color: var(--muted, #6b665f); }
.bill-panel[open] > summary::before { content: "\25BE"; }
.bill-n { display: inline-block; min-width: 1.6em; padding: 1px 8px; border-radius: 999px; background: #1d1b19; color: #fff; font-size: 13px; text-align: center; }
.bill-asked { color: #b45309; font-weight: 700; }
.bill-req { padding: 12px 18px; border-top: 1px solid var(--line, #e3dfd5); }
.bill-req.is-asked { border-left: 3px solid #d97706; }
.bill-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.bill-head b { font-variant-numeric: tabular-nums; }
.bill-tag { margin-left: 8px; color: #b45309; font-size: 13px; font-weight: 700; }
.bill-lines { list-style: none; margin: 10px 0 6px; padding: 0; display: grid; gap: 4px; font-size: 14.5px; }
.bill-lines li { display: flex; justify-content: space-between; gap: 12px; }
.bill-lines .bill-disc { color: #6b665f; }
.bill-act { display: flex; justify-content: flex-end; margin-top: 6px; }
.bill-panel > .hint { margin: 0; padding: 10px 18px 14px; }
.ld {
  --bg: #f5f4f0; --bg-2: #ecebe3; --ink: #15201a; --muted: #55625a; --line: #d6d3c6;
  --green: #1f4d3f; --deep: #173a30; --mint: #7fcfae;
  background: var(--bg); color: var(--ink); font-family: 'Hanken Grotesk', system-ui, sans-serif; font-size: 18px; line-height: 1.55;
  -webkit-font-smoothing: antialiased; min-height: 100vh;
}
.ld h1, .ld h2, .ld h3 { font-family: 'Fraunces', Georgia, serif; font-weight: 600; letter-spacing: -.015em; line-height: 1.08; }
.ld :where(a) { color: inherit; }
.ld-in { max-width: 1180px; margin: 0 auto; padding: 0 28px; }
.ld .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ld :focus-visible { outline: 3px solid var(--mint); outline-offset: 3px; border-radius: 4px; }
.ld-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 26px; border-radius: 999px; border: 1.5px solid var(--green); background: transparent; color: var(--green); font: 700 17px/1 'Hanken Grotesk', sans-serif; text-decoration: none; cursor: pointer; }
.ld-btn:hover { background: color-mix(in srgb, var(--green) 8%, transparent); }
.ld-btn-main { background: var(--green); color: #fff; }
.ld-btn-main:hover { background: var(--deep); }
.ld-btn-sm { min-height: 42px; padding: 0 20px; font-size: 15.5px; background: var(--green); color: #fff; }
.ld-btn-sm:hover { background: var(--deep); }
.ld-btn-light { border-color: rgba(255,255,255,.6); color: #fff; }
.ld-btn-light:hover { background: rgba(255,255,255,.1); }
.ld-end .ld-btn-main { background: var(--mint); border-color: var(--mint); color: var(--deep); }
.ld-end .ld-btn-main:hover { background: #9ddcc1; }
.ld-top { position: sticky; top: 0; z-index: 20; background: color-mix(in srgb, var(--bg) 94%, transparent); backdrop-filter: blur(6px); border-bottom: 1px solid var(--line); }
.ld-top-in { height: 68px; display: flex; align-items: center; gap: 28px; }
.ld-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; font: 600 27px/1 'Fraunces', Georgia, serif; letter-spacing: -.01em; color: var(--green); }
.ld-brand img { display: block; }
.ld-logo { height: 36px; width: auto; }
.ld-brand .ld-logo-mark { display: none; }
.ld-foot .ld-logo { height: 32px; }
@media (max-width: 420px) { .ld-brand .ld-logo-full { display: none; } .ld-brand .ld-logo-mark { display: block; } }
.ld-nav { display: flex; gap: 4px; margin-left: auto; }
.ld-nav button { padding: 10px 14px; font: 600 16px/1 'Hanken Grotesk', sans-serif; color: var(--ink); border-radius: 8px; }
.ld-nav button:hover { background: var(--bg-2); }
.ld-hero { padding: 64px 0 80px; overflow: hidden; }
.ld-hero-in { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: 56px; align-items: center; }
.ld-hero h1 { font-size: clamp(42px, 5.8vw, 78px); color: var(--green); text-wrap: balance; }
.ld-lead { margin-top: 24px; font-size: 21px; line-height: 1.55; max-width: 36em; color: var(--ink); }
.ld-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
.ld-price { margin-top: 20px; font-size: 16px; color: var(--muted); }
.ld-phone { justify-self: center; width: 324px; padding: 12px; border-radius: 44px; background: var(--ink); box-shadow: 0 40px 70px -40px rgba(21,32,26,.7); }
.ld-phone-in { width: 300px; height: 616px; border-radius: 32px; overflow: hidden; background: #fff; }
.ld-phone iframe { width: 390px; height: 800px; border: 0; transform: scale(.7692); transform-origin: 0 0; display: block; }
@media (prefers-reduced-motion: no-preference) {
  .ld-hero-text > * { animation: ld-rise .7s cubic-bezier(.2,.7,.2,1) backwards; }
  .ld-hero-text > :nth-child(2) { animation-delay: .08s; }
  .ld-hero-text > :nth-child(3) { animation-delay: .16s; }
  .ld-hero-text > :nth-child(4) { animation-delay: .24s; }
  @keyframes ld-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
}
.ld-sec { padding: 84px 0 0; }
.ld-sec h2, .ld-end h2, .ld-band h2 { font-size: clamp(30px, 3.8vw, 46px); max-width: 20em; text-wrap: balance; }
.ld-sub { margin-top: 14px; max-width: 40em; color: var(--muted); }
.ld-ol { margin-top: 36px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; border-top: 1.5px solid var(--green); }
.ld-ol li { padding: 20px 22px 6px 0; display: grid; gap: 10px; align-content: start; }
.ld-ol li + li { padding-left: 22px; border-left: 1px solid var(--line); }
.ld-n { font: 600 34px/1 'Fraunces', Georgia, serif; color: var(--green); font-variant-numeric: lining-nums; }
.ld-ol h3 { font-size: 21px; font-family: 'Hanken Grotesk', sans-serif; font-weight: 700; letter-spacing: 0; line-height: 1.25; }
.ld-ol p { font-size: 16px; line-height: 1.5; color: var(--muted); }
.ld-tpls { margin-top: 36px; display: flex; gap: 22px; overflow-x: auto; padding: 4px max(28px, calc((100vw - 1124px) / 2)) 26px; scroll-snap-type: x proximity; scrollbar-width: thin; }
.ld-tpl { flex: none; width: 232px; scroll-snap-align: start; }
.ld-tpl a { display: grid; gap: 4px; text-decoration: none; }
.ld-tpl img { display: block; width: 232px; height: auto; aspect-ratio: 1 / 2; object-fit: cover; object-position: top; border-radius: 22px; border: 1px solid var(--line); background: var(--bg-2); margin-bottom: 8px; }
.ld-tpl a:hover img { border-color: var(--green); }
.ld-tpl strong { font-size: 17px; }
.ld-tpl em { font: 700 12px/1 'Hanken Grotesk', sans-serif; font-style: normal; background: var(--green); color: #fff; border-radius: 99px; padding: 3px 8px; margin-left: 6px; vertical-align: 2px; }
.ld-tpl span { font-size: 14.5px; line-height: 1.4; color: var(--muted); }
.ld-band { margin-top: 84px; background: var(--deep); color: #fff; }
.ld-band-in { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 56px; align-items: center; padding-top: 64px; padding-bottom: 64px; }
.ld-band p { margin-top: 18px; color: #d3dfd7; max-width: 32em; }
.ld-band img { width: 100%; height: auto; border-radius: 14px; box-shadow: 0 30px 60px -30px rgba(0,0,0,.7); }
.ld-table-wrap { margin-top: 32px; overflow-x: auto; }
.ld-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 17px; font-variant-numeric: tabular-nums; }
.ld-table th, .ld-table td { padding: 15px 14px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
.ld-table thead th { border-bottom: 1.5px solid var(--green); vertical-align: bottom; }
.ld-table thead th strong { display: block; font: 600 26px/1.1 'Fraunces', Georgia, serif; color: var(--green); }
.ld-table thead th span { font-weight: 500; font-size: 15.5px; color: var(--muted); }
.ld-table tbody th { font-weight: 500; padding-left: 0; }
.ld-table td { width: 16%; }
.ld-y { color: var(--green); font-weight: 600; }
.ld-y svg { display: block; }
.ld-table .ld-no { color: #9aa49d; }
.ld-note { margin-top: 22px; max-width: 46em; color: var(--muted); font-size: 16.5px; }
.ld-note strong { color: var(--ink); }
.ld-faq dl { margin-top: 28px; max-width: 760px; }
.ld-faq dl > div { padding: 20px 0; border-top: 1px solid var(--line); }
.ld-faq dl > div:last-child { border-bottom: 1px solid var(--line); }
.ld-faq dt { font-weight: 700; font-size: 19px; }
.ld-faq dd { margin-top: 6px; color: var(--muted); }
.ld-end { margin-top: 96px; background: var(--green); color: #fff; padding: 72px 0 76px; }
.ld-end h2 { max-width: 16em; }
.ld-end .ld-cta { margin-top: 28px; }
.ld-foot { background: var(--deep); color: #c5d4ca; padding: 38px 0 44px; font-size: 16px; }
.ld-foot-in { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 36px; }
.ld-foot .ld-brand { color: #fff; font-size: 24px; }
.ld-foot p { margin: 0; }
.ld-legal { margin-left: auto !important; display: flex; gap: 22px; flex-wrap: wrap; }
.ld-foot a { color: #e6efe9; }
@media (max-width: 960px) {
  .ld-hero { padding: 36px 0 56px; }
  .ld-hero-in { grid-template-columns: 1fr; gap: 40px; }
  .ld-ol { grid-template-columns: 1fr; border-top: 0; }
  .ld-ol li, .ld-ol li + li { grid-template-columns: 44px 1fr; gap: 14px; padding: 18px 0; border-left: 0; border-top: 1px solid var(--line); }
  .ld-ol li:first-child { border-top: 1.5px solid var(--green); }
  .ld-band-in { grid-template-columns: 1fr; gap: 36px; padding-top: 48px; padding-bottom: 48px; }
  .ld-sec { padding-top: 64px; }
  .ld-band { margin-top: 64px; }
}
@media (max-width: 560px) {
  .ld { font-size: 17px; }
  .ld-in { padding: 0 18px; }
  .ld-top-in { gap: 8px; height: 62px; }
  .ld-nav { display: none; }
  .ld-btn-sm { margin-left: auto; }
  .ld-lead { font-size: 18.5px; }
  .ld-tpls { padding-left: 18px; padding-right: 18px; }
  .ld-legal { margin-left: 0 !important; }
}
.ld-table .ld-rec-col { background: color-mix(in srgb, var(--mint) 16%, transparent); }
.ld-table thead th.ld-rec-col { border-top: 3px solid var(--green); border-radius: 10px 10px 0 0; }
.ld-table thead th .ld-rec { display: inline-block; margin-bottom: 8px; padding: 3px 11px; border-radius: 999px; background: var(--green); color: #fff; font: 700 12px/1.5 'DM Sans', system-ui, sans-serif; font-style: normal; letter-spacing: .06em; text-transform: uppercase; }
@media (max-width: 640px) {
  .ld-table { min-width: 0; font-size: 14.5px; table-layout: fixed; }
  .ld-table th, .ld-table td { padding: 11px 5px; }
  .ld-table tbody th { width: 40%; padding-left: 0; line-height: 1.3; }
  .ld-table td { width: auto; text-align: center; }
  .ld-table thead th { text-align: center; }
  .ld-table thead th strong { font-size: 18px; }
  .ld-table thead th span { font-size: 11.5px; display: block; }
  .ld-table thead th .ld-rec { font-size: 9.5px; padding: 2px 7px; letter-spacing: .03em; }
}
.ld-signup { padding-bottom: 0; }
.ld-signup .ld-link { padding: 10px 14px; font: 600 16px/1 'Hanken Grotesk', sans-serif; color: var(--ink); text-decoration: none; border-radius: 8px; }
.ld-signup .ld-link:hover { background: var(--bg-2); }
.sg-main { padding-top: 56px; padding-bottom: 88px; }
.sg-wait { padding: 80px 0; text-align: center; color: var(--muted); }
.sg-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 480px); gap: 64px; align-items: start; }
.sg-text h1, .sg-card h1 { font-size: clamp(36px, 4.6vw, 58px); color: var(--green); text-wrap: balance; }
.sg-lead { margin-top: 18px; font-size: 20px; max-width: 32em; }
.sg-points { margin: 28px 0 0; padding: 0; list-style: none; display: grid; gap: 14px; max-width: 32em; }
.sg-points li { padding-left: 30px; position: relative; font-size: 17px; }
.sg-points li::before { content: ''; position: absolute; left: 4px; top: .5em; width: 12px; height: 7px; border-left: 2.5px solid var(--green); border-bottom: 2.5px solid var(--green); transform: rotate(-45deg); }
.sg-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 30px 30px 28px; box-shadow: 0 24px 50px -36px rgba(21, 32, 26, .5); }
.sg-card h2 { font-size: 26px; margin: 0 0 18px; color: var(--green); }
.sg-fld { margin-bottom: 16px; }
.sg-fld label { display: block; margin-bottom: 6px; font: 700 15px/1.2 'Hanken Grotesk', sans-serif; }
.sg-input { width: 100%; min-height: 50px; padding: 0 14px; border: 1.5px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); font: 500 17px/1 'Hanken Grotesk', sans-serif; box-sizing: border-box; }
.sg-input:focus { outline: 3px solid color-mix(in srgb, var(--mint) 70%, transparent); border-color: var(--green); }
.sg-input.has-error { border-color: #b3261e; }
.sg-slug { display: flex; align-items: center; gap: 8px; }
.sg-slug .sg-input { flex: 1; min-width: 0; }
.sg-slug span { flex: none; font-weight: 700; color: var(--muted); }
.sg-hint { margin: 6px 0 0; font-size: 14px; line-height: 1.45; color: var(--muted); }
.sg-ok { color: #1f6b4a; font-weight: 600; }
.sg-err { margin: 6px 0 0; font-size: 14px; color: #b3261e; font-weight: 600; }
.sg-err-block { margin: 12px 0; padding: 10px 12px; background: #fbeceb; border-radius: 8px; }
.sg-check { display: flex; gap: 12px; align-items: flex-start; margin: 4px 0 16px; font-size: 15px; line-height: 1.45; }
.sg-check input { width: 22px; height: 22px; flex: none; margin-top: 1px; accent-color: var(--green); }
.sg-trap { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.sg-submit { width: 100%; margin-top: 4px; }
.sg-submit[disabled] { opacity: .6; cursor: progress; }
.sg-done { max-width: 620px; margin: 0 auto; text-align: center; }
.sg-done .sg-url { margin: 22px 0; font: 600 28px/1.2 'Fraunces', Georgia, serif; color: var(--green); }
.sg-steps { display: inline-block; text-align: left; list-style: decimal; margin: 22px 0 0; padding-left: 22px; color: var(--muted); }
.sg-done p { margin-top: 12px; }
@media (max-width: 900px) {
  .sg-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .sg-main { padding-top: 32px; padding-bottom: 56px; }
  .sg-card { padding: 22px 18px; }
}
.dm { border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; margin: 14px 0; background: var(--surface); text-align: left; }
.dm { font-size: 15.5px; }
.dm p { margin: 0 0 10px; line-height: 1.5; font-size: inherit; }
.dm-status { display: flex; align-items: center; gap: 10px; }
.dm-dot { width: 10px; height: 10px; border-radius: 50%; background: #c8861a; flex: none; }
.dm-wait .dm-dot { animation: dm-pulse 1.6s ease-in-out infinite; }
.dm-ok { border-color: #b9d6c6; background: #f1f8f4; }
.dm-ok .dm-dot { background: #2f8f5b; }
.dm-warn { color: var(--danger); font-size: 14px; }
.dm-hint { color: var(--muted); font-size: 14.5px; padding: 10px 12px; background: #faf6ea; border-radius: 8px; }
.dm-tbl-wrap { overflow-x: auto; margin: 6px 0 12px; }
.dm-tbl { width: 100%; border-collapse: collapse; font-size: 15px; }
.dm-tbl th, .dm-tbl td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.dm-tbl th { font-size: 12.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); font-weight: 600; }
.dm-tbl code { font-size: 14px; word-break: break-all; }
.dm-notes { margin: 0 0 8px; padding-left: 20px; font-size: 14.5px; line-height: 1.5; color: var(--muted); }
.dm-notes li { margin-bottom: 6px; }
.dm-more { margin-top: 10px; font-size: 14.5px; }
.dm-more summary { cursor: pointer; font-weight: 600; }
.dm-copy { margin-left: 6px; font-size: 13px; }
.dm-regs { margin: 14px 0 6px; padding: 14px 16px; background: #f7f6f0; border-radius: 10px; }
.dm-q { margin: 0 0 10px; font-weight: 600; }
.dm-reg-row { display: flex; flex-wrap: wrap; gap: 8px; }
.dm-reg { appearance: none; border: 1.5px solid var(--line-strong); background: #fff; color: var(--ink); border-radius: 999px; padding: 8px 14px; font: inherit; font-size: 14.5px; cursor: pointer; min-height: 40px; }
.dm-reg.is-on { background: var(--brand); border-color: var(--brand); color: #fff; }
.dm-steps { margin: 14px 0 2px; padding-left: 22px; font-size: 15px; line-height: 1.55; }
.dm-steps li { margin-bottom: 9px; padding-left: 4px; }
.sg-domain { margin: 18px 0 8px; }
.sg-domain h2 { font-size: 22px; margin: 0 0 4px; }
.sg-check-tight { margin-bottom: 10px; }
@keyframes dm-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .dm-wait .dm-dot { animation: none; } }
.qp {
  container-type: inline-size; position: relative; width: 100%; aspect-ratio: 1 / 1.4142; overflow: hidden; isolation: isolate;
  background: var(--b); color: #111; font-family: 'Instrument Sans', 'DM Sans', system-ui, sans-serif; line-height: 1.15;
  -webkit-print-color-adjust: exact; print-color-adjust: exact; text-align: left;
}
.qp *, .qp *::before, .qp *::after { box-sizing: border-box; margin: 0; }
.qp > * { position: absolute; }
.qp-d, .qp-wave { display: none; font-style: normal; }
.qp-ph { display: block; overflow: hidden; }
.qp-ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
.qp-code { color: #000; }
.qp-code svg { display: block; width: 100%; height: 100%; }
.qp-name, .qp-extra, .qp-head, .qp-sub, .qp-foot { overflow-wrap: anywhere; }
.qp-skann { background: var(--b); }
.qp-skann .qp-d1 { display: block; inset: 0; background: radial-gradient(60cqw 40cqw at 88% 10%, rgba(0,0,0,.2), transparent 70%), radial-gradient(48cqw 36cqw at 4% 52%, rgba(0,0,0,.17), transparent 70%); }
.qp-skann .qp-d2 { display: block; left: -14cqw; right: -14cqw; bottom: 0; height: 36cqw; background: var(--bl); border-radius: 50% 50% 0 0 / 46% 46% 0 0; }
.qp-skann .qp-extra { top: 6cqw; left: 0; right: 0; text-align: center; font-size: 3.6cqw; font-weight: 600; color: var(--on); letter-spacing: .03em; }
.qp-skann .qp-head { top: 11cqw; left: 4cqw; right: 4cqw; text-align: center; font: 800 21cqw/1 'League Spartan', sans-serif; text-transform: uppercase; color: var(--on); }
.qp-skann .qp-sub { top: 35cqw; left: 50%; transform: translateX(-50%); white-space: nowrap; max-width: 92cqw; overflow: hidden; text-overflow: ellipsis; background: var(--on); color: var(--b); font-weight: 800; font-size: 4.6cqw; padding: 1.3cqw 3.4cqw; border-radius: 1.2cqw; }
.qp-skann .qp-code { top: 46cqw; left: 23cqw; width: 54cqw; height: 54cqw; padding: 4cqw; background: var(--bl); color: var(--bdd); border-radius: 7cqw; box-shadow: 0 1.5cqw 4cqw rgba(0,0,0,.25); }
.qp-skann .qp-wave { display: block; top: 65cqw; width: 5cqw; height: 16cqw; border: 0 solid var(--on); opacity: .9; }
.qp-skann .qp-wl { left: 9cqw; border-left-width: .9cqw; border-radius: 50% 0 0 50% / 50% 0 0 50%; }
.qp-skann .qp-wr { right: 9cqw; border-right-width: .9cqw; border-radius: 0 50% 50% 0 / 0 50% 50% 0; }
.qp-skann .qp-p1 { left: -14cqw; right: -14cqw; bottom: 0; height: 34cqw; border-radius: 50% 50% 0 0 / 46% 46% 0 0; }
.qp-skann .qp-name { bottom: 12cqw; left: 0; right: 0; text-align: center; font: 700 6.4cqw/1.05 'League Spartan', sans-serif; color: #fff; text-shadow: 0 .4cqw 2cqw rgba(0,0,0,.65); }
.qp-skann .qp-foot { bottom: 6.5cqw; left: 0; right: 0; text-align: center; font-size: 3cqw; color: #fff; text-shadow: 0 .3cqw 1.5cqw rgba(0,0,0,.65); }
.qp-skann.qp-nophoto .qp-name { color: var(--bd); text-shadow: none; }
.qp-skann.qp-nophoto .qp-foot { color: var(--bd); text-shadow: none; }
.qp-delt { background: var(--bd); color: var(--bl); }
.qp-ph.qp-art { overflow: visible; }
.qp-art svg { display: block; width: 100%; height: 100%; }
.qp-delt .qp-p1 { left: 16cqw; width: 68cqw; top: 11cqw; height: 34cqw; }
.qp-delt .qp-p2 { left: 16cqw; width: 68cqw; top: 95cqw; height: 34cqw; }
.qp-delt .qp-code { top: 45cqw; left: 25cqw; width: 50cqw; height: 50cqw; padding: 1.6cqw; background: var(--bl); color: var(--bdd); }
.qp-delt .qp-name { top: 4.5cqw; left: 6cqw; max-width: 44cqw; font-size: 3.6cqw; font-weight: 600; }
.qp-delt .qp-head { top: 4.5cqw; right: 6cqw; max-width: 44cqw; text-align: right; font-size: 3.6cqw; font-weight: 600; }
.qp-delt .qp-sub { bottom: 4.5cqw; left: 6cqw; max-width: 46cqw; font-size: 3.6cqw; }
.qp-delt .qp-foot { bottom: 4.5cqw; right: 6cqw; max-width: 42cqw; text-align: right; font-size: 3.6cqw; }
.qp-delt .qp-extra { display: none; }
.qp-delt.qp-nophoto .qp-code { top: 36cqw; height: 66cqw; width: 66cqw; left: 17cqw; }
.qp-burger { background: #f4f7fb; color: #111; }
.qp-burger .qp-name { top: 3.6cqw; left: 0; right: 0; text-align: center; font-size: 2.8cqw; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: #333; }
.qp-burger .qp-p1 { left: 16cqw; width: 68cqw; top: 8cqw; height: 27.2cqw; z-index: 1; }
.qp-burger .qp-p2 { left: 16cqw; width: 68cqw; top: 95cqw; height: 18cqw; z-index: 1; }
.qp-burger .qp-art svg { filter: drop-shadow(0 .8cqw 1cqw rgba(0,0,0,.22)); }
.qp-burger .qp-code { top: 35cqw; left: 20cqw; width: 60cqw; height: 60cqw; background: #fff; color: #000; box-shadow: 0 0 0 .5cqw #111; }
.qp-burger .qp-head { top: 117cqw; left: 4cqw; right: 4cqw; text-align: center; font: 700 5.6cqw/1 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .14em; }
.qp-burger .qp-sub { top: 124.5cqw; left: 6cqw; right: 6cqw; text-align: center; font-size: 3.6cqw; font-weight: 700; }
.qp-burger .qp-extra { top: 130cqw; left: 6cqw; right: 6cqw; text-align: center; font-size: 3cqw; font-weight: 600; letter-spacing: .06em; }
.qp-burger .qp-foot { top: 135cqw; left: 6cqw; right: 6cqw; text-align: center; font-size: 2.4cqw; color: #555; }
.qp-burger.qp-nophoto .qp-code { top: 28cqw; }
.qp-gull { background: #0c0c0c; color: #c9a45c; font-family: 'Cormorant Garamond', serif; }
.qp-gull .qp-d1 { display: block; inset: 4cqw; border: .5cqw solid #c9a45c; }
.qp-gull .qp-d2 { display: block; inset: 6.2cqw; border: .2cqw solid rgba(201,164,92,.55); }
.qp-gull .qp-d3 { display: block; top: 49.5cqw; left: 43cqw; width: 14cqw; height: .3cqw; background: #c9a45c; }
.qp-gull .qp-p1 { inset: 0; opacity: .2; filter: grayscale(.3); }
.qp-gull .qp-name { top: 14cqw; left: 10cqw; right: 10cqw; text-align: center; font-size: 4.6cqw; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; }
.qp-gull .qp-head { top: 24cqw; left: 8cqw; right: 8cqw; text-align: center; font-size: 17cqw; font-weight: 300; font-style: italic; color: #f3ead6; line-height: 1; }
.qp-gull .qp-sub { top: 42cqw; left: 8cqw; right: 8cqw; text-align: center; font-size: 3.8cqw; letter-spacing: .22em; text-transform: uppercase; font-family: 'Instrument Sans', sans-serif; }
.qp-gull .qp-code { top: 56cqw; left: 27cqw; width: 46cqw; height: 46cqw; padding: 3cqw; background: #f3ead6; color: #0c0c0c; border-radius: .8cqw; }
.qp-gull .qp-extra { top: 109cqw; left: 10cqw; right: 10cqw; text-align: center; font-size: 5cqw; font-weight: 600; letter-spacing: .1em; color: #f3ead6; }
.qp-gull .qp-foot { top: 117cqw; left: 10cqw; right: 10cqw; text-align: center; font-size: 3cqw; letter-spacing: .12em; text-transform: uppercase; font-family: 'Instrument Sans', sans-serif; }
.qp-neon { background: #07070d; color: #fff; --glow: var(--bm); }
.qp-neon .qp-d1 { display: block; inset: 5cqw; border: .7cqw solid var(--glow); border-radius: 4cqw; box-shadow: 0 0 3cqw var(--glow), inset 0 0 3cqw var(--glow); }
.qp-neon .qp-name { top: 9cqw; left: 8cqw; right: 8cqw; text-align: center; font-size: 3.4cqw; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; }
.qp-neon .qp-head { top: 17cqw; left: 8cqw; right: 8cqw; text-align: center; font: 800 18cqw/1 'League Spartan', sans-serif; text-transform: uppercase; text-shadow: 0 0 2cqw var(--glow), 0 0 6cqw var(--glow); }
.qp-neon .qp-sub { top: 38cqw; left: 8cqw; right: 8cqw; text-align: center; font-size: 4.2cqw; font-weight: 700; color: var(--glow); text-shadow: 0 0 2cqw var(--glow); }
.qp-neon .qp-code { top: 48cqw; left: 24cqw; width: 52cqw; height: 52cqw; padding: 3.2cqw; background: #fff; color: #000; border-radius: 4cqw; box-shadow: 0 0 4cqw var(--glow); }
.qp-neon .qp-extra { top: 105cqw; left: 8cqw; right: 8cqw; text-align: center; font-size: 4.4cqw; font-weight: 700; color: var(--glow); text-shadow: 0 0 2cqw var(--glow); }
.qp-neon .qp-foot { top: 111cqw; left: 8cqw; right: 8cqw; text-align: center; font-size: 2.8cqw; opacity: .7; }
.qp-neon .qp-p1 { top: 117cqw; left: 40cqw; width: 20cqw; height: 15cqw; border-radius: 3cqw; border: .5cqw solid var(--glow); box-shadow: 0 0 2.5cqw var(--glow); }
.qp-kraft { background: #e8d9bb radial-gradient(rgba(90,62,24,.10) 12%, transparent 14%) 0 0 / 2.2cqw 2.2cqw; color: #3b2a14; }
.qp-kraft .qp-d1 { display: block; inset: 5cqw; border: .45cqw dashed #6b4f2a; }
.qp-kraft .qp-d2 { display: block; top: 49cqw; left: 41cqw; width: 18cqw; height: 6cqw; background: rgba(255,255,255,.6); transform: rotate(-3deg); z-index: 2; }
.qp-kraft .qp-name { top: 11cqw; left: 9cqw; right: 9cqw; text-align: center; font: 800 9cqw/1 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.qp-kraft .qp-head { top: 25cqw; left: 9cqw; right: 9cqw; text-align: center; font: 700 15cqw/1 'Caveat', cursive; color: #b3261e; transform: rotate(-4deg); }
.qp-kraft .qp-sub { top: 42cqw; left: 9cqw; right: 9cqw; text-align: center; font-size: 4.2cqw; font-weight: 600; }
.qp-kraft .qp-code { top: 52cqw; left: 24cqw; width: 52cqw; height: 52cqw; padding: 3.4cqw; background: #fff; color: #1d1409; transform: rotate(-2deg); box-shadow: 0 1cqw 3cqw rgba(0,0,0,.25); }
.qp-kraft .qp-p1 { left: 9cqw; top: 110cqw; width: 27cqw; height: 22cqw; background: #fff; padding: 1.6cqw 1.6cqw 5cqw; transform: rotate(-4deg); box-shadow: 0 1cqw 2.5cqw rgba(0,0,0,.28); }
.qp-kraft .qp-p1 img { height: 100%; }
.qp-kraft .qp-extra { top: 114cqw; left: 42cqw; right: 9cqw; font: 700 5cqw/1.1 'Caveat', cursive; }
.qp-kraft .qp-foot { top: 123cqw; left: 42cqw; right: 9cqw; font-size: 3cqw; }
.qp-minimal { background: #fbfaf7; color: #111; }
.qp-minimal .qp-d1 { display: block; top: 15cqw; left: 8cqw; right: 8cqw; height: .2cqw; background: #111; }
.qp-minimal .qp-d2 { display: block; right: 8cqw; top: 78cqw; width: 3cqw; height: 48cqw; background: var(--b); }
.qp-minimal .qp-name { top: 8cqw; left: 8cqw; right: 8cqw; font-size: 2.8cqw; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; }
.qp-minimal .qp-head { top: 24cqw; left: 8cqw; right: 8cqw; font: 400 27cqw/.95 'Instrument Serif', serif; }
.qp-minimal .qp-sub { top: 58cqw; left: 8cqw; right: 8cqw; font-size: 4.6cqw; color: #555; }
.qp-minimal .qp-code { top: 78cqw; left: 8cqw; width: 48cqw; height: 48cqw; color: #111; }
.qp-minimal .qp-extra { bottom: 13cqw; left: 8cqw; right: 8cqw; font-size: 3.8cqw; font-weight: 600; }
.qp-minimal .qp-foot { bottom: 8cqw; left: 8cqw; right: 8cqw; font-size: 2.8cqw; color: #666; }
.qp-minimal .qp-p1 { display: none; }
.qp-pop { background: #ffd23f; color: #111; }
.qp-pop .qp-d1 { display: block; top: 0; left: 0; right: 0; height: 11cqw; background: repeating-linear-gradient(-45deg, #111 0 3cqw, #ffd23f 3cqw 6cqw); }
.qp-pop .qp-name { top: 16cqw; left: 7cqw; right: 7cqw; font: 800 7cqw/1 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .02em; }
.qp-pop .qp-head { top: 27cqw; left: 4cqw; background: #111; color: #ffd23f; padding: 1.6cqw 6cqw 2cqw; font: 900 19cqw/1 'Barlow Condensed', sans-serif; text-transform: uppercase; transform: rotate(-3deg); max-width: 94cqw; }
.qp-pop .qp-sub { top: 54cqw; left: 7cqw; right: 7cqw; font-size: 5cqw; font-weight: 800; }
.qp-pop .qp-code { top: 64cqw; left: 25cqw; width: 50cqw; height: 50cqw; padding: 3cqw; background: #fff; color: #000; border: 1.2cqw solid #111; border-radius: 2cqw; box-shadow: 2cqw 2cqw 0 #111; }
.qp-pop .qp-p1 { right: 5cqw; bottom: 8cqw; width: 28cqw; height: 28cqw; border-radius: 50%; border: 1.2cqw solid #111; transform: rotate(8deg); }
.qp-pop .qp-extra { bottom: 15cqw; left: 7cqw; max-width: 56cqw; font-size: 4.4cqw; font-weight: 800; }
.qp-pop .qp-foot { bottom: 8.5cqw; left: 7cqw; max-width: 56cqw; font-size: 3cqw; font-weight: 600; }
.qp-foto { background: linear-gradient(160deg, var(--b), var(--bdd)); color: #fff; }
.qp-foto .qp-p1 { inset: 0; }
.qp-foto .qp-d1 { display: block; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.6) 0, rgba(0,0,0,0) 28%, rgba(0,0,0,0) 40%, rgba(0,0,0,.88) 100%); }
.qp-foto .qp-name { top: 7cqw; left: 7cqw; max-width: 56cqw; font: 700 5cqw/1.1 'League Spartan', sans-serif; }
.qp-foto .qp-extra { top: 7.4cqw; right: 7cqw; max-width: 32cqw; text-align: right; font-size: 3.2cqw; font-weight: 600; }
.qp-foto .qp-head { bottom: 54cqw; left: 7cqw; right: 7cqw; font: 800 16cqw/1 'League Spartan', sans-serif; text-transform: uppercase; }
.qp-foto .qp-sub { bottom: 45cqw; left: 7cqw; right: 7cqw; font-size: 4.2cqw; font-weight: 600; }
.qp-foto .qp-code { bottom: 7cqw; left: 7cqw; width: 36cqw; height: 36cqw; padding: 2.4cqw; background: #fff; color: #000; border-radius: 3cqw; }
.qp-foto .qp-foot { bottom: 9cqw; left: 49cqw; right: 7cqw; font-size: 3.2cqw; line-height: 1.3; }
.qp-natur { background: var(--bl); color: var(--bdd); }
.qp-natur .qp-d1 { display: block; left: -18cqw; top: -18cqw; width: 72cqw; height: 72cqw; background: var(--b); border-radius: 48% 52% 60% 40% / 50% 40% 60% 50%; }
.qp-natur .qp-d2 { display: block; right: -26cqw; bottom: -26cqw; width: 58cqw; height: 58cqw; background: var(--bd); border-radius: 55% 45% 50% 50% / 45% 55% 45% 55%; }
.qp-natur .qp-d3 { display: block; left: 10cqw; bottom: 30cqw; width: 8cqw; height: 8cqw; background: var(--bm); border-radius: 50%; opacity: .7; }
.qp-natur .qp-name { top: 9cqw; left: 8cqw; max-width: 40cqw; font: 400 6.4cqw/1.05 'DM Serif Display', serif; color: var(--on); }
.qp-natur .qp-p1 { top: 8cqw; right: 8cqw; width: 30cqw; height: 30cqw; border-radius: 50%; border: 1cqw solid var(--bl); box-shadow: 0 1cqw 3cqw rgba(0,0,0,.2); }
.qp-natur .qp-head { top: 44cqw; left: 6cqw; right: 6cqw; text-align: center; font: 400 17cqw/1 'DM Serif Display', serif; color: var(--bdd); }
.qp-natur .qp-sub { top: 63cqw; left: 8cqw; right: 8cqw; text-align: center; font-size: 4.2cqw; font-weight: 600; color: var(--bd); }
.qp-natur .qp-code { top: 73cqw; left: 25cqw; width: 50cqw; height: 50cqw; padding: 3.2cqw; background: var(--b); color: var(--bl); border-radius: 6cqw; }
.qp-natur .qp-extra { bottom: 14cqw; left: 8cqw; max-width: 50cqw; font-size: 4cqw; font-weight: 700; }
.qp-natur .qp-foot { bottom: 8cqw; left: 8cqw; max-width: 50cqw; font-size: 2.8cqw; color: var(--bd); }
.qpx { display: grid; grid-template-columns: minmax(220px, 340px) 1fr; gap: 24px; align-items: start; }
.qpx-prev { width: 100%; max-width: 340px; border-radius: 6px; overflow: hidden; box-shadow: 0 6px 24px rgba(0,0,0,.18); background: #fff; }
.qpx-form { display: grid; gap: 12px; }
.qpx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 12px; margin-top: 8px; }
.qpx-card { display: block; padding: 0; border: 2px solid transparent; border-radius: 8px; background: none; cursor: pointer; text-align: left; font: inherit; color: inherit; }
.qpx-card .qp { pointer-events: none; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.18); }
.qpx-card:hover { border-color: var(--line); }
.qpx-card.is-on { border-color: var(--primary, #2d5a4c); }
.qpx-card span { display: block; font-size: 12.5px; font-weight: 600; margin-top: 6px; }
@media (max-width: 760px) { .qpx { grid-template-columns: 1fr; } .qpx-prev { margin: 0 auto; } }
.qp-l { overflow-wrap: anywhere; line-height: 1.12; }
.qp-l img { display: block; width: 100%; height: 100%; object-fit: cover; }
.qp-l svg { display: block; width: 100%; height: 100%; }
.qp-l-back { z-index: -1; }
.qp-l-text { font-family: 'Instrument Sans', system-ui, sans-serif; }
.qpe { display: grid; grid-template-columns: minmax(240px, 440px) minmax(0, 1fr); gap: 24px; align-items: start; }
.qpe-canvas { width: 100%; max-width: 440px; border-radius: 6px; overflow: hidden; box-shadow: 0 6px 24px rgba(0,0,0,.18); background: #fff; user-select: none; -webkit-user-select: none; }
.qp-edit [data-qs], .qp-edit [data-lid] { cursor: move; touch-action: none; }
.qp-edit [data-qs]:hover, .qp-edit [data-lid]:hover { outline: 1.5px dashed rgba(10,132,255,.8); outline-offset: 2px; }
.qp-edit .is-sel { outline: 2px solid #0a84ff !important; outline-offset: 2px; }
.qp-edit .qp-d { pointer-events: none; }
.qp-edit .qp-ph.is-sel { overflow: visible; }
.qp-edit img, .qp-edit svg { -webkit-user-drag: none; }
.qp-edit .qp-code svg { pointer-events: none; }
.qp .qpe-h { position: absolute; right: -6px; bottom: -6px; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 2px solid #0a84ff; cursor: nwse-resize; touch-action: none; z-index: 5; }
.qpe-side { display: grid; gap: 14px; min-width: 0; }
.qpe-tools, .qpe-props, .qpe-bg { display: grid; gap: 8px; }
.qpe-props { padding: 12px; border: 1px solid var(--line, #ddd); border-radius: 8px; background: rgba(0,0,0,.025); }
.qpe-sel { font-size: 14px; }
.qpe-row, .qpe-bg { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.qpe-color { display: inline-flex; align-items: center; gap: 8px; }
.qpe-color input[type=color] { width: 38px; height: 30px; padding: 0; border: 1px solid var(--line, #ccc); border-radius: 6px; background: none; cursor: pointer; }
.qpe-rng input[type=range] { width: 100%; }
.qpe .btn.is-on { background: var(--primary, #2d5a4c); color: #fff; border-color: transparent; }
.qpe-actions { margin-top: 4px; }
.qpe-arts { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 8px; }
.qpe-art { display: block; padding: 6px; border: 1px solid var(--line, #ddd); border-radius: 8px; background: #f6f4ef; cursor: pointer; }
.qpe-art:hover { border-color: var(--primary, #2d5a4c); }
.qpe-art svg { display: block; width: 100%; height: 38px; }
.qpe-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)); gap: 6px; }
.qpe-thumb { display: block; padding: 0; border: 1px solid var(--line, #ddd); border-radius: 6px; overflow: hidden; aspect-ratio: 1; cursor: pointer; background: #eee; }
.qpe-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.qpe-hidden { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
@media (max-width: 860px) { .qpe { grid-template-columns: 1fr; } .qpe-canvas { margin: 0 auto; } }
.qp-print { display: none; }
@media print {
  @page { margin: 0; }
  body.is-printing-poster { background: #fff !important; margin: 0 !important; padding: 0 !important; }
  body.is-printing-poster > *:not(#qp-print) { display: none !important; }
  body.is-printing-poster #qp-print { display: block; position: fixed; inset: 0; margin: 0; background: #fff; }
  body.is-printing-poster #qp-print .qp { width: min(100vw, calc(100vh / 1.4142)); margin: 0 auto; border-radius: 0; }
}
.rc-print { display: none; }
@media print {
  body.is-printing-receipt { background: #fff !important; margin: 0 !important; padding: 0 !important; }
  body.is-printing-receipt > *:not(#rc-print) { display: none !important; }
  body.is-printing-receipt #rc-print { display: block; }
  #rc-print.rc-80 { width: 80mm; }
  #rc-print.rc-58 { width: 58mm; }
  #rc-print pre { margin: 0; padding: 2mm 3mm; font: 12px/1.25 'Courier New', Courier, monospace; white-space: pre-wrap; color: #000; background: #fff; }
}
.mt { min-height: 100vh; background: #f3f2ee; color: #1d1b19; font-size: 18px; padding-bottom: 40px; }
.mt.has-new { animation: mt-flash 1.6s ease-in-out infinite; }
@keyframes mt-flash { 0%, 100% { background: #f3f2ee; } 50% { background: #ffe9d6; } }
@media (prefers-reduced-motion: reduce) { .mt.has-new { animation: none; background: #ffe9d6; } }
.mt-top { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; padding: 12px 18px; background: #1f4d3f; color: #fff; }
.mt-brand { display: flex; gap: 10px; align-items: center; margin-right: auto; font-size: 20px; }
.mt-logo { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: #fff; color: #1f4d3f; font-weight: 800; }
.mt-clock { font-size: 24px; font-weight: 700; font-variant-numeric: tabular-nums; }
.mt-sync { font-size: 14px; opacity: .85; }
.mt-sync.is-bad { background: #b3261e; padding: 4px 10px; border-radius: 6px; opacity: 1; font-weight: 600; }
.mt-btn { appearance: none; border: 2px solid #1f4d3f; background: #fff; color: #1f4d3f; font: inherit; font-weight: 700; font-size: 20px; padding: 16px 22px; border-radius: 12px; cursor: pointer; min-height: 60px; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.mt-btn:active { transform: scale(.98); }
.mt-btn-primary { background: #1f7a4d; border-color: #1f7a4d; color: #fff; }
.mt-btn-sm { font-size: 15px; padding: 8px 14px; min-height: 44px; border-radius: 8px; border-color: rgba(255,255,255,.7); background: transparent; color: #fff; }
.mt-btn-xl { font-size: 28px; padding: 26px 48px; min-height: 90px; }
.mt-banner { margin: 0; padding: 12px 18px; background: #b3261e; color: #fff; font-weight: 600; }
.mt-banner-warn { background: #8a5a00; }
.mt { display: flex; flex-direction: column; height: 100vh; height: 100dvh; padding-bottom: 0; overflow: hidden; }
.mt-top { position: static; flex: none; }
.mt-cols { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.1fr) minmax(0, .85fr); gap: 14px; padding: 14px; align-items: stretch; }
.mt-col { display: flex; flex-direction: column; min-height: 0; }
.mt-col-body { flex: 1; min-height: 0; overflow-y: auto; padding-right: 4px; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
@media (max-width: 900px) {
  .mt { display: block; height: auto; overflow: visible; padding-bottom: 40px; }
  .mt-top { position: sticky; }
  .mt-cols { display: block; padding: 14px; }
  .mt-col { margin-bottom: 18px; }
  .mt-col-body { overflow: visible; }
}
.mt-search { flex: 1 1 220px; max-width: 360px; }
.mt-search input { width: 100%; box-sizing: border-box; min-height: 46px; padding: 8px 14px; border-radius: 10px; border: 2px solid rgba(255,255,255,.7); background: rgba(255,255,255,.12); color: #fff; font: inherit; font-size: 17px; }
.mt-search input::placeholder { color: rgba(255,255,255,.75); }
.mt-search input:focus { outline: 3px solid #fff; background: rgba(255,255,255,.2); }
.mt-hint { margin-left: auto; font-size: 13px; color: #6b665f; }
.mt-col > header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.mt-col h2 { margin: 0; font-size: 26px; }
.mt-n { display: inline-grid; place-items: center; min-width: 38px; height: 38px; padding: 0 10px; border-radius: 19px; background: #1d1b19; color: #fff; font-weight: 700; }
.mt-col-new .mt-n { background: #c2410c; }
.mt-none { padding: 26px; text-align: center; color: #6b665f; background: #fff; border-radius: 12px; border: 2px dashed #d6d2c8; }
.mt-card { background: #fff; border: 3px solid #d6d2c8; border-radius: 16px; padding: 16px 18px; margin-bottom: 16px; }
.mt-card.is-new { border-color: #c2410c; box-shadow: 0 0 0 4px rgba(194,65,12,.18); }
.mt-card-head { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.mt-no { font-size: 34px; line-height: 1; }
.mt-time { color: #6b665f; font-size: 16px; }
.mt-total { margin-left: auto; font-size: 24px; font-weight: 700; }
.mt-who { margin: 8px 0; font-size: 20px; }
.mt-items { list-style: none; padding: 0; margin: 10px 0; font-size: 24px; line-height: 1.4; }
.mt-items li { padding: 4px 0; border-top: 1px solid #ece9e1; }
.mt-items li:first-child { border-top: 0; }
.mt-qty { display: inline-block; min-width: 2.2em; font-weight: 800; color: #c2410c; }
.mt-note { margin: 8px 0; padding: 10px 12px; background: #fff7d6; border-radius: 8px; font-size: 20px; }
.mt-big { margin: 8px 0; font-size: 24px; font-weight: 700; }
.mt-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 14px; }
.mt-chip { padding: 6px 12px; border-radius: 999px; background: #ece9e1; font-size: 16px; font-weight: 600; }
.mt-chip-time { background: #1d1b19; color: #fff; }
.mt-chip-paid { background: #d5f0df; color: #14532d; }
.mt-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.mt-actions .mt-btn-primary { flex: 1 1 220px; }
.mt-chip-due { background: #fde7c4; color: #7a4a00; }
.mt-chip-late { background: #b3261e; color: #fff; }
.mt-compact { padding: 12px 14px; margin-bottom: 12px; border-width: 2px; }
.mt-compact .mt-card-head { flex-wrap: nowrap; gap: 10px; }
.mt-compact .mt-total { margin-left: 0; flex: none; }
.mt-compact .mt-no { font-size: 28px; flex: none; }
.mt-compact .mt-name { flex: 1 1 0; min-width: 0; font-size: 20px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mt-compact .mt-total { font-size: 20px; }
.mt-compact .mt-meta { margin: 8px 0 10px; gap: 6px; }
.mt-compact .mt-chip { font-size: 14px; padding: 4px 10px; }
.mt-compact .mt-btn { font-size: 18px; padding: 10px 16px; min-height: 52px; }
.mt-items-sm { font-size: 19px; line-height: 1.3; margin: 8px 0; }
.mt-items-sm li { padding: 3px 0; }
.mt-note-sm { font-size: 17px; padding: 8px 10px; margin: 6px 0; }
.mt-work.is-late { border-color: #b3261e; box-shadow: 0 0 0 3px rgba(179,38,30,.16); }
.mt-ready { border-color: #1f7a4d; }
.mt-table .mt-no { font-variant-numeric: tabular-nums; }
.mt-table.is-soon { border-color: #c2410c; box-shadow: 0 0 0 3px rgba(194,65,12,.16); }
.mt-table.is-past { opacity: .72; }
.mt-done { margin-top: 10px; }
.mt-done-btn { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 48px; padding: 0 14px; border: 2px solid #d6d2c8; border-radius: 12px; background: #fff; color: #3d3a35; font: inherit; font-size: 16px; font-weight: 600; cursor: pointer; }
.mt-done-btn b { padding: 1px 9px; border-radius: 999px; background: #ece9e1; font-size: 14px; }
.mt-done-btn span { margin-left: auto; color: #6b665f; }
.mt-done-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.mt-done-list li { display: grid; grid-template-columns: auto 1fr auto auto; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 10px; background: #fff; border: 1px solid #e3dfd5; font-size: 15px; color: #4a463f; }
.mt-done-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mt-earlier { margin: 4px 2px 12px; font-size: 14px; color: #6b665f; text-align: center; }
.mt-tabs { display: none; flex: none; gap: 8px; padding: 10px 14px 0; }
.mt-tab { appearance: none; border: 2px solid #1f4d3f; background: #fff; color: #1f4d3f; font: inherit; font-weight: 700; font-size: 17px; padding: 8px 16px; border-radius: 10px; min-height: 46px; cursor: pointer; }
.mt-tab b { display: inline-block; min-width: 1.6em; margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: #1d1b19; color: #fff; font-size: 14px; text-align: center; }
.mt-tab.is-on { background: #1f4d3f; color: #fff; }
.mt-tab.is-on b { background: #fff; color: #1f4d3f; }
@media (min-width: 1100px) {
  .mt.has-bord .mt-cols { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, .75fr) minmax(0, .85fr); }
}
@media (min-width: 901px) and (max-width: 1099px) {
  .mt-tabs { display: flex; }
  .mt.has-bord.mt-v-orders .mt-col-bord { display: none; }
  .mt.mt-v-bord .mt-col-new, .mt.mt-v-bord .mt-col-work, .mt.mt-v-bord .mt-col-ready { display: none; }
  .mt.mt-v-bord .mt-cols { grid-template-columns: minmax(0, 640px); justify-content: center; }
}
.mt-start { position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; background: rgba(20,24,22,.94); color: #fff; text-align: center; padding: 24px; }
.mt-start-in h1 { font-size: 44px; margin: 0 0 12px; }
.mt-start-in p { font-size: 22px; margin: 0 0 28px; max-width: 28ch; margin-inline: auto; }
.mt-empty { max-width: 560px; margin: 12vh auto; padding: 24px; text-align: center; }
.mt-empty h1 { font-size: 30px; }
body[data-view="admin"].is-mottak #demo { display: none; }
.mt-chip-table { background: #1f4d3f; color: #fff; font-weight: 800; font-size: 1.15em; letter-spacing: .02em; }
.mt-bills { padding: 10px 14px 0; flex: none; }
.mt-opentab { border: 1px solid #e3dfd5; border-radius: 14px; background: #fff; padding: 8px 12px; }
.mt-opentab > summary { cursor: pointer; font-weight: 700; font-size: 17px; padding: 6px 2px; list-style: none; }
.mt-opentab > summary::-webkit-details-marker { display: none; }
.mt-opentab > summary::before { content: "\25B8"; margin-right: 8px; }
.mt-opentab[open] > summary::before { content: "\25BE"; }
.mt-opentab summary b { display: inline-block; min-width: 1.6em; padding: 1px 8px; border-radius: 999px; background: #1d1b19; color: #fff; font-size: 14px; text-align: center; }
.mt-asked { color: #b45309; }
.mt-bill { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 8px; padding: 12px 14px; border-radius: 12px; background: #f3f1ea; border: 1px solid #e3dfd5; }
.mt-bill.is-asked { border-left: 4px solid #d97706; }
.mt-bill-t { display: grid; gap: 2px; min-width: 0; }
.mt-bill-t strong { font-size: 19px; }
.mt-bill-t em { font-style: normal; font-size: 14px; font-weight: 700; color: #b45309; }
.mt-bill-t > span { font-size: 14px; color: #4a463f; }
.mt-bill-lines { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 3px; font-size: 15px; }
.mt-bill-lines li { display: flex; justify-content: space-between; gap: 14px; }
.mt-bill .mt-btn { flex: none; min-height: 52px; font-size: 17px; padding: 10px 16px; }
.mt-ptabs { display: none; }
@media (max-width: 900px) {
  .mt { padding-bottom: 92px; }
  .mt-top { padding: 10px 12px; gap: 8px 10px; }
  .mt-brand { font-size: 18px; }
  .mt-clock { font-size: 20px; }
  .mt-sync { display: none; }
  .mt-search { flex: 1 1 100%; max-width: none; order: 9; }
  .mt-btn-sm { font-size: 14px; padding: 6px 10px; min-height: 40px; }
  .mt-cols { padding: 10px; }
  .mt-col { display: none; margin-bottom: 0; }
  .mt[data-col="new"] .mt-col-new, .mt[data-col="work"] .mt-col-work, .mt[data-col="ready"] .mt-col-ready, .mt[data-col="bord"] .mt-col-bord, .mt[data-col="tabs"] .mt-col-tabs { display: block; }
  .mt-col > header { position: static; }
  .mt-bills { display: none; }
  .mt-tabs { display: none !important; }
  .mt-ptabs { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; background: #fff; border-top: 2px solid #1f4d3f; padding-bottom: env(safe-area-inset-bottom); }
  .mt-ptab { flex: 1; appearance: none; border: 0; background: transparent; font: inherit; font-weight: 700; font-size: 15px; color: #1f4d3f; padding: 10px 2px 12px; min-height: 64px; display: grid; justify-items: center; gap: 4px; cursor: pointer; }
  .mt-ptab b { min-width: 1.7em; padding: 1px 7px; border-radius: 999px; background: #1d1b19; color: #fff; font-size: 14px; text-align: center; }
  .mt-ptab.is-on { background: #1f4d3f; color: #fff; }
  .mt-ptab.is-on b { background: #fff; color: #1f4d3f; }
  .mt-ptab.is-alert b { background: #c2410c; color: #fff; }
  .mt-bill { flex-direction: column; align-items: stretch; }
  .mt-bill .mt-btn { width: 100%; }
  .mt-card .mt-btn { min-height: 56px; }
  .mt-start-in h1 { font-size: 34px; }
}