/* =============================================================================
   Public site — "صحن ورغيف" design system.
   =============================================================================

   Replaces the stylesheet that dressed the previous landing page. The source is
   the standalone UI package (sahn-wa-ragheef-ui), rewritten here in two ways:

   1. EVERY class carries an `lp-` prefix, and the two bare element rules the
      package shipped — `input, textarea` and `blockquote` — are scoped under
      `.lp-page`.

      The package was written for a document that loads nothing else. This site
      still loads bootstrap.min.css and web/css/sass/style.css for the signup
      wizard, the OTP screens and the delete-account flow, whose markup is built
      out of `.container` / `.row` / `.col-*` and the old theme's form skin.
      Dropped in unprefixed, the package's `.container` (no gutter) would leave
      every `.row` on those pages overflowing by its own negative margin, its
      `.btn` would fight bootstrap's, and its bare `input` rule would restyle
      every field on the site including the panel-adjacent ones. Prefixing is
      what lets the new chrome go on every page while those bodies keep working.

   2. It covers the bands the package had no markup for. The package is a
      one-restaurant brochure; this page also has a partners strip, a store
      download band and a testimonials carousel driven by real records, and the
      about/policy/terms pages render long-form copy from the panel. Those are
      built from the same tokens rather than left to the old theme, so the site
      is one design rather than the new one until you scroll past the fold.

   Section order below follows the page: tokens, chrome (header/footer), then
   each band top to bottom, then the standalone pages, then responsive.
   ========================================================================== */

/* ── 1. Tokens ───────────────────────────────────────────────────────────── */

:root {
    --lp-orange: #f48118;
    --lp-orange-dark: #df6e0b;
    --lp-ink: #17120f;
    --lp-muted: #655f59;
    --lp-body: #4f4944;
    --lp-paper: #fffdf9;
    --lp-cream: #fbf8f3;
    --lp-line: #eee7de;
    --lp-radius: 14px;
    --lp-shadow: 0 8px 26px rgba(49, 33, 20, .055);

    /* The gutter the package folded into `.container`'s width calculation. Named
       so the bands that need to break out of the container can add it back. */
    --lp-gutter: 28px;
}

/* ── 2. Page shell ───────────────────────────────────────────────────────── */

/*
   `.lp-page` goes on <body>. It is what scopes the element-level rules further
   down, so a page that opts out of the new design keeps the old theme's form
   skin untouched.
*/
.lp-page {
    margin: 0;
    background: var(--lp-paper);
    color: var(--lp-ink);
    font-family: "Alexandria", "Segoe UI", Tahoma, Arial, sans-serif;
    font-size: 14px;
    line-height: 1.75;
}

.lp-page * {
    box-sizing: border-box;
}

.lp-page img {
    display: block;
    max-width: 100%;
}

.lp-page a {
    color: inherit;
    text-decoration: none;
}

html {
    scroll-behavior: smooth;
}

.lp-container {
    width: min(1180px, calc(100% - (var(--lp-gutter) * 2)));
    margin-inline: auto;
}

/*
   Skip link. The package had none, and the nav is 5 links deep before the
   heading — so a keyboard or screen-reader visitor tabbed through the whole
   header on every page of the site before reaching any content.
*/
.lp-skip {
    position: absolute;
    inset-inline-start: 16px;
    top: -60px;
    z-index: 100;
    background: var(--lp-orange);
    color: #fff;
    padding: 10px 18px;
    border-radius: 0 0 9px 9px;
    transition: top .18s;
}

.lp-skip:focus {
    top: 0;
}

/* Visually hidden but readable by assistive tech — the form labels the design
   draws as placeholders still need to exist. */
.lp-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;
}

/* Keep the focus ring the package's `outline:none`-free CSS relies on visible
   against both the paper and the cream grounds. */
.lp-page a:focus-visible,
.lp-page button:focus-visible,
.lp-page input:focus-visible,
.lp-page textarea:focus-visible {
    outline: 2px solid var(--lp-orange);
    outline-offset: 2px;
}

/* ── 3. Buttons ──────────────────────────────────────────────────────────── */

.lp-btn {
    min-height: 52px;
    padding: 0 34px;
    border: 1px solid transparent;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font: 600 15px/1 "Alexandria", sans-serif;
    cursor: pointer;
    transition: .2s;
}

.lp-btn--small {
    min-height: 48px;
    padding-inline: 25px;
}

.lp-btn--primary {
    background: var(--lp-orange);
    color: #fff;
}

.lp-btn--primary:hover {
    background: var(--lp-orange-dark);
    transform: translateY(-1px);
}

.lp-btn--outline {
    border-color: #3a342f;
    background: transparent;
}

.lp-btn--outline:hover {
    border-color: var(--lp-orange);
    color: var(--lp-orange);
}

/* ── 4. Header ───────────────────────────────────────────────────────────── */

/*
   `.lp-header`, not the package's `.site-header`: the old theme styles
   `.site-header` for its own dark carousel header, and both stylesheets are
   loaded on every page.
*/
.lp-header {
    height: 110px;
    display: flex;
    align-items: center;
    background: rgba(255, 253, 249, .96);
    position: relative;
    z-index: 10;
}

.lp-nav-wrap {
    height: 100%;
    display: grid;
    grid-template-columns: 130px 1fr auto;
    align-items: center;
    gap: 28px;
}

.lp-brand img {
    width: 94px;
    height: 68px;
    object-fit: contain;
}

.lp-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 42px;
    font-weight: 600;
    /* The package hand-wrote <a> siblings; this is a real <ul>, so the list
       styling has to come off. */
    list-style: none;
    margin: 0;
    padding: 0;
}

.lp-nav li {
    margin: 0;
}

.lp-nav a {
    padding: 12px 0;
    position: relative;
    white-space: nowrap;
    display: inline-block;
}

.lp-nav a.is-active,
.lp-nav a:hover {
    color: var(--lp-orange);
}

/*
    The active underline, centred under the label.

    Physical `left` + `translateX(-50%)`, NOT a logical inset. This rule was
    briefly written as `inset-inline-end: 50%` with a mirrored transform, on the
    reasoning that logical properties are the RTL-correct choice. They are, for
    anything with a start and an end — a border, a padding, an offset from one
    edge. This has neither: it is a centring trick, and it is already symmetric.

    Logicalising it broke both directions. `inset-inline-end` resolves to `left`
    in RTL, so the bar was anchored to the opposite edge from the one the offset
    assumed and landed a full 26px to the side of the label. Centring is physical;
    it does not mirror.
*/
.lp-nav a.is-active:after {
    content: "";
    position: absolute;
    bottom: 4px;
    left: 50%;
    transform: translateX(-50%);
    width: 26px;
    height: 2px;
    background: var(--lp-orange);
}

.lp-nav-actions {
    display: flex;
    direction: ltr;
    gap: 25px;
    align-items: center;
}

.lp-lang {
    font-weight: 600;
}

.lp-menu-toggle {
    display: none;
}

/* ── 5. Hero ─────────────────────────────────────────────────────────────── */

.lp-hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 90px;
    align-items: center;
    padding-top: 20px;
    padding-bottom: 54px;
}

.lp-hero__copy {
    padding-inline-end: 52px;
}

.lp-hero__title {
    font-size: 68px;
    line-height: 1.15;
    margin: 0 0 25px;
    font-weight: 800;
    letter-spacing: -2px;
}

.lp-hero__text {
    font-size: 17px;
    line-height: 2.05;
    color: #514b46;
    max-width: 520px;
    margin: 0 0 35px;
}

.lp-hero__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.lp-hero__media {
    margin: 0;
    width: 100%;
    aspect-ratio: 1;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--lp-shadow);
}

.lp-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ── 6. Values strip ─────────────────────────────────────────────────────── */

.lp-values {
    border: 1px solid var(--lp-line);
    background: #fff;
    border-radius: 15px;
    box-shadow: var(--lp-shadow);
    display: grid;
    /*
        auto-fit, not the package's `repeat(3, 1fr)`.

        The card count is admin-controlled — an admin can add a fourth feature or
        delete down to two — and a hardcoded three columns puts a fourth card
        alone on a second row with two thirds of the strip empty beside it.
    */
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    min-height: 112px;
    padding: 22px 28px;
}

.lp-values article {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    border-inline-start: 1px solid var(--lp-line);
}

.lp-values article:first-child {
    border-inline-start: 0;
}

.lp-values h3 {
    margin: 0 0 2px;
    font-size: 17px;
}

.lp-values p {
    margin: 0;
    color: var(--lp-muted);
    font-size: 12px;
}

.lp-icon {
    color: var(--lp-orange);
    font-size: 34px;
    font-family: serif;
    line-height: 1;
    flex-shrink: 0;
}

/* ── 7. Section rhythm ───────────────────────────────────────────────────── */

.lp-section {
    padding-top: 70px;
}

.lp-section-title {
    text-align: center;
    margin-bottom: 26px;
}

.lp-section-title h2 {
    font-size: 34px;
    margin: 0 0 8px;
}

.lp-section-title__rule {
    display: block;
    width: 45px;
    height: 3px;
    border-radius: 3px;
    background: var(--lp-orange);
    margin: auto;
}

.lp-section-title__intro {
    max-width: 620px;
    margin: 14px auto 0;
    color: var(--lp-muted);
    font-size: 14px;
}

/*
    Rich text from the panel.

    `unicode-bidi: plaintext` takes each paragraph's direction from its own first
    strong character rather than from the page's dir="rtl" — without it an
    English paragraph on the Arabic site has its full stop dragged to the far
    edge. Carried over from the stylesheet this replaces, where it was fixing a
    bug visible on the live page.
*/
.lp-rich > * {
    unicode-bidi: plaintext;
}

.lp-rich p {
    margin: 0 0 12px;
}

.lp-rich p:last-child {
    margin-bottom: 0;
}

.lp-rich ul,
.lp-rich ol {
    margin: 0 0 12px;
    padding-inline-start: 20px;
}

/* ── 8. About band ───────────────────────────────────────────────────────── */

.lp-about {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    align-items: center;
    gap: 100px;
}

.lp-about__copy {
    padding-inline-end: 48px;
}

.lp-about__copy h2 {
    font-size: 36px;
    margin: 0 0 20px;
}

.lp-about__copy .lp-rich {
    font-size: 15px;
    color: var(--lp-body);
    max-width: 470px;
}

.lp-text-link {
    display: inline-block;
    margin-top: 10px;
    color: var(--lp-orange);
    font-weight: 600;
}

.lp-about__media {
    margin: 0;
    height: 330px;
    border-radius: 18px;
    overflow: hidden;
}

.lp-about__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ── 9. Menu / dishes ────────────────────────────────────────────────────── */

.lp-menu-grid {
    display: grid;
    /*
        Same reasoning as the values strip. The dishes are whichever meals are
        flagged for the landing page, so the count is whatever the kitchen
        decided this week, not the package's three.
    */
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 28px;
}

.lp-dish {
    background: #fff;
    border: 1px solid var(--lp-line);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 6px 18px rgba(42, 27, 15, .04);
    text-align: center;
    display: flex;
    flex-direction: column;
}

.lp-dish img {
    width: 100%;
    height: 188px;
    object-fit: cover;
}

.lp-dish__body {
    padding: 17px 22px 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.lp-dish__body h3 {
    font-size: 20px;
    margin: 0 0 5px;
}

.lp-dish__body p {
    min-height: 48px;
    margin: 0 0 8px;
    color: var(--lp-muted);
    font-size: 13px;
    line-height: 1.8;
}

/* Pushed to the bottom so prices line up across cards whose descriptions run to
   different lengths — they are admin-typed, so they will. */
.lp-dish__price {
    color: var(--lp-orange);
    font-size: 16px;
    font-weight: 600;
    margin-top: auto;
}

/* ── 10. Steps ───────────────────────────────────────────────────────────── */

.lp-steps {
    padding-bottom: 62px;
}

.lp-steps-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 0;
}

.lp-steps-grid article {
    position: relative;
    text-align: center;
    padding: 12px 30px;
}

/*
    The dashed connector between steps.

    Anchored to each step's inline-END edge, which is the boundary with the NEXT
    step in both directions: in RTL the next step is to the left, in LTR to the
    right. `:not(:last-child)` so the line does not run off the end of the row.

    This was inline-START, which put it on the boundary with the PREVIOUS step —
    so the first step trailed a line off the outside edge of the row and the gap
    before the last step had none.
*/
.lp-steps-grid article:not(:last-child):after {
    content: "";
    position: absolute;
    inset-inline-end: -16%;
    top: 58px;
    width: 32%;
    border-top: 1px dashed #bdb4aa;
}

/*
    The numbered badge, sitting on the outer shoulder of the circle — top-right on
    the Arabic site, mirrored to top-left on the English one. That is the
    inline-START side, not the end: RTL inline-start resolves to `right`, which is
    where the design draws it.
*/
.lp-step__number {
    position: absolute;
    top: 0;
    inset-inline-start: calc(50% - 36px);
    background: var(--lp-orange);
    color: #fff;
    border-radius: 50%;
    width: 26px;
    height: 26px;
    line-height: 26px;
    font-size: 12px;
    font-weight: 600;
}

.lp-step__icon {
    display: flex;
    margin: 0 auto 13px;
    width: 70px;
    height: 70px;
    border: 1px solid #ecdcc9;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    color: var(--lp-orange);
    font-size: 28px;
    overflow: hidden;
}

/* A step's icon may be an uploaded image rather than a glyph. */
.lp-step__icon img {
    width: 34px;
    height: 34px;
    object-fit: contain;
}

.lp-steps-grid h3 {
    margin: 0 0 4px;
    font-size: 16px;
}

.lp-steps-grid p {
    margin: 0;
    color: var(--lp-muted);
    font-size: 12px;
}

/* ── 11. Testimonials ────────────────────────────────────────────────────── */

.lp-testimonial {
    background: linear-gradient(110deg, var(--lp-cream), #fff);
    border: 1px solid var(--lp-line);
    border-radius: 16px;
    text-align: center;
    padding: 30px;
    margin-bottom: 30px;
}

.lp-testimonial__mark {
    font: bold 54px/30px Georgia, serif;
    color: var(--lp-orange);
}

.lp-page .lp-testimonial blockquote {
    margin: 12px auto 8px;
    font-size: 18px;
    max-width: 760px;
}

.lp-testimonial__rule {
    width: 28px;
    height: 2px;
    background: var(--lp-orange);
    display: block;
    margin: 13px auto;
}

.lp-testimonial__name {
    display: block;
    font-weight: 600;
}

.lp-stars {
    color: var(--lp-orange);
    letter-spacing: 4px;
}

/*
    The band holds several reviews, not the package's single hardcoded quote —
    they are real records and the panel picks how many. Owl is already loaded
    site-wide for nothing else now, so this is a plain scroll-snap track: no
    library, keyboard-scrollable, and it degrades to a stack when there is only
    one review to show.
*/
.lp-testimonial-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 100%;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.lp-testimonial-track::-webkit-scrollbar {
    display: none;
}

.lp-testimonial-track > * {
    scroll-snap-align: center;
}

/* One review is not a carousel. */
.lp-testimonial-track.is-single {
    grid-auto-flow: row;
    grid-auto-columns: auto;
    overflow: visible;
}

.lp-testimonial__dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-bottom: 30px;
}

.lp-testimonial__dots button {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #ded6cc;
    cursor: pointer;
    transition: .2s;
}

.lp-testimonial__dots button.is-active {
    background: var(--lp-orange);
    width: 22px;
    border-radius: 4px;
}

/* ── 12. Partners ────────────────────────────────────────────────────────── */

/*
    No band in the UI package. Built from the same tokens as the dish cards but
    contained rather than cropped: `object-fit: cover` centre-crops, which is
    right for a photograph of food and wrong for a logo, which loses its edges.
*/
.lp-logos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 20px;
}

.lp-logo {
    background: #fff;
    border: 1px solid var(--lp-line);
    border-radius: 12px;
    padding: 18px;
    text-align: center;
}

.lp-logo__media {
    height: 68px;
    display: grid;
    place-items: center;
    margin-bottom: 10px;
}

.lp-logo__media img {
    max-height: 100%;
    width: auto;
    object-fit: contain;
}

.lp-logo__name {
    color: var(--lp-muted);
    font-size: 12px;
}

/* ── 13. Download band ───────────────────────────────────────────────────── */

/*
    Also absent from the package. The one band on the page with a tinted ground,
    which is what marks it as the call to action rather than another block of
    information — the same role the previous stylesheet gave it.
*/
.lp-cta {
    background: linear-gradient(110deg, #fdf3e7, var(--lp-cream));
    border: 1px solid #f6e4cd;
    border-radius: 16px;
    padding: 40px 30px;
    text-align: center;
}

.lp-cta h2 {
    font-size: 30px;
    margin: 0 0 10px;
}

.lp-cta .lp-rich {
    color: var(--lp-muted);
    max-width: 560px;
    margin: 0 auto 22px;
}

.lp-cta__actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

.lp-cta__actions img {
    height: 48px;
    width: auto;
}

/* ── 14. Contact ─────────────────────────────────────────────────────────── */

/*
    One column, not the design's `1.5fr 1fr`.

    The second column held the address / phone / hours panel, which was removed on
    request — see web/sections/contact_us.blade.php. Left as a two-column grid it
    would have given a third of the band to an empty cell and pulled the form off
    centre.

    The form is capped rather than run to the full 1180px container: an input a
    metre wide is harder to use, not easier, and the fields keep the proportions
    the design gave them.
*/
.lp-contact {
    border: 1px solid var(--lp-line);
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    margin-bottom: 60px;
    max-width: 780px;
    margin-inline: auto;
}

.lp-contact__form {
    padding: 30px 38px;
}

.lp-contact__form h2 {
    font-size: 29px;
    margin: 0 0 16px;
}

.lp-contact__form form {
    display: grid;
    gap: 10px;
}

.lp-input-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

/* Scoped under .lp-page — see the note at the top of the file. Unscoped this
   would restyle the signup wizard and the OTP screens. */
.lp-page .lp-contact input,
.lp-page .lp-contact textarea {
    width: 100%;
    border: 1px solid #e7e1d9;
    border-radius: 5px;
    background: #fff;
    padding: 13px 15px;
    font: 12px "Alexandria", Arial, sans-serif;
    color: var(--lp-ink);
}

.lp-page .lp-contact textarea {
    height: 90px;
    resize: vertical;
}

.lp-contact__form .lp-btn {
    width: 100%;
    min-height: 46px;
}

/*
    The `.lp-contact__info` block that stood here — the details panel's layout,
    its icons and its label/value typography — is gone with the panel itself.
    Around 40 lines of rules for markup nothing emits.
*/

/* ── 15. Footer ──────────────────────────────────────────────────────────── */

.lp-footer {
    border-top: 1px solid var(--lp-line);
    padding: 42px 0 20px;
    background: #fffdfa;
}

.lp-footer-grid {
    display: grid;
    grid-template-columns: 1.1fr 1fr 1fr;
    gap: 70px;
}

.lp-footer img {
    width: 95px;
}

.lp-footer p {
    color: var(--lp-muted);
    font-size: 12px;
}

.lp-footer h3 {
    font-size: 15px;
    margin: 0 0 13px;
}

.lp-footer-grid > div:not(:first-child) {
    border-inline-start: 1px solid var(--lp-line);
    padding-inline-start: 55px;
}

.lp-footer__links {
    list-style: none;
    margin: 0;
    padding: 0;
}

.lp-footer__links a {
    display: block;
    color: var(--lp-muted);
    font-size: 12px;
    margin: 3px 0;
}

.lp-footer__links a:hover {
    color: var(--lp-orange);
}

.lp-socials {
    display: flex;
    gap: 12px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.lp-socials a {
    width: 32px;
    height: 32px;
    border: 1px solid #d8d1c9;
    border-radius: 50%;
    display: grid;
    place-items: center;
    transition: .2s;
}

.lp-socials a:hover {
    border-color: var(--lp-orange);
}

.lp-socials img {
    width: 14px;
    height: 14px;
}

.lp-copyright {
    text-align: center;
    border-top: 1px solid var(--lp-line);
    padding-top: 17px;
    margin: 25px auto 0;
    color: var(--lp-muted);
    font-size: 12px;
}

.lp-copyright a {
    color: var(--lp-orange);
}

/* ── 16. Standalone content pages ────────────────────────────────────────── */

/*
    /about-us, /policy and /condition. Long-form copy from the panel, which the
    UI package has no band for — but they are now inside the new chrome, so
    leaving them to the old theme would put the previous design's typography
    directly under the new header.
*/
.lp-page-head {
    padding: 54px 0 10px;
    text-align: center;
}

.lp-page-head h1 {
    font-size: 40px;
    margin: 0 0 10px;
}

.lp-page-head .lp-section-title__rule {
    margin-inline: auto;
}

.lp-article {
    max-width: 820px;
    margin: 0 auto 70px;
    font-size: 15px;
    line-height: 2;
    color: var(--lp-body);
}

.lp-article img {
    border-radius: var(--lp-radius);
    margin: 18px 0;
}

.lp-article h2,
.lp-article h3 {
    color: var(--lp-ink);
    margin: 28px 0 10px;
}

.lp-article__media {
    border-radius: 18px;
    overflow: hidden;
    margin: 0 0 28px;
    max-height: 360px;
}

.lp-article__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0;
    border-radius: 0;
}

/* An empty content page prints this rather than an unexplained blank band. */
.lp-empty {
    text-align: center;
    color: var(--lp-muted);
    padding: 40px 0 70px;
}

/* ── 17. Responsive ──────────────────────────────────────────────────────── */

@media (max-width: 900px) {
    .lp-container {
        width: min(100% - 32px, 680px);
    }

    .lp-header {
        height: 82px;
    }

    .lp-nav-wrap {
        grid-template-columns: 1fr auto;
    }

    .lp-brand img {
        width: 82px;
    }

    .lp-nav-actions {
        display: none;
    }

    .lp-menu-toggle {
        display: flex;
        width: 42px;
        height: 42px;
        border: 0;
        background: transparent;
        flex-direction: column;
        gap: 5px;
        justify-content: center;
        align-items: center;
        cursor: pointer;
    }

    .lp-menu-toggle span {
        width: 24px;
        height: 2px;
        background: var(--lp-ink);
    }

    .lp-nav {
        display: none;
        position: absolute;
        top: 82px;
        inset-inline: 16px;
        background: #fff;
        box-shadow: var(--lp-shadow);
        border: 1px solid var(--lp-line);
        border-radius: 12px;
        padding: 18px;
        flex-direction: column;
        gap: 4px;
        z-index: 20;
    }

    .lp-nav.is-open {
        display: flex;
    }

    .lp-hero {
        grid-template-columns: 1fr;
        gap: 35px;
        padding-top: 30px;
    }

    .lp-hero__copy {
        padding: 0;
        text-align: center;
    }

    .lp-hero__title {
        font-size: 50px;
    }

    .lp-hero__text {
        margin-inline: auto;
    }

    .lp-hero__actions {
        justify-content: center;
    }

    .lp-hero__media {
        order: -1;
        max-width: 560px;
        margin: auto;
    }

    .lp-values {
        grid-template-columns: 1fr;
        padding: 12px 25px;
    }

    .lp-values article {
        border-inline-start: 0;
        border-bottom: 1px solid var(--lp-line);
        padding: 18px;
    }

    .lp-values article:last-child {
        border-bottom: 0;
    }

    .lp-about {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .lp-about__copy {
        padding: 0;
    }

    .lp-menu-grid {
        grid-template-columns: 1fr;
        max-width: 560px;
        margin: auto;
    }

    .lp-dish img {
        height: 260px;
    }

    .lp-steps-grid {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .lp-steps-grid article:after {
        display: none;
    }

    .lp-footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 40px;
    }

    .lp-footer__brand {
        grid-column: 1 / -1;
    }

    .lp-footer-grid > div:not(:first-child) {
        padding-inline-start: 25px;
    }

    .lp-footer-grid > div:nth-child(2) {
        border-inline-start: 0;
        padding-inline-start: 0;
    }

    .lp-page-head h1 {
        font-size: 32px;
    }
}

@media (max-width: 560px) {
    .lp-page {
        font-size: 13px;
    }

    .lp-container {
        width: calc(100% - 24px);
    }

    .lp-hero__title {
        font-size: 40px;
    }

    .lp-hero__text {
        font-size: 14px;
    }

    .lp-hero__actions {
        flex-direction: column;
    }

    .lp-hero__actions .lp-btn {
        width: 100%;
    }

    .lp-hero__media {
        border-radius: 14px;
    }

    .lp-about__copy h2,
    .lp-section-title h2 {
        font-size: 28px;
    }

    .lp-about__media {
        height: 240px;
    }

    .lp-dish img {
        height: 180px;
    }

    .lp-input-row {
        grid-template-columns: 1fr;
    }

    .lp-contact__form {
        padding: 24px 18px;
    }

    .lp-footer-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .lp-footer__brand {
        grid-column: auto;
    }

    .lp-footer-grid > div:not(:first-child) {
        border-inline-start: 0;
        padding-inline-start: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .lp-page * {
        transition: none !important;
    }
}
