/* Raggio Di Sole Public UI V7
   Loaded after the original stylesheet so these rules are independent,
   cache-busted and safe from older CSS parser/caching problems. */

:root{
    --r-green:#075b2c;
    --r-green-dark:#043e20;
    --r-green-soft:#edf7f0;
    --r-red:#c9151e;
    --r-cream:#fbf8f2;
    --r-ink:#172019;
    --r-muted:#667169;
    --r-line:#e4e9e5;
    --r-shadow:0 14px 40px rgba(5,62,31,.10);
    --r-radius:18px;
}

html,body{max-width:100%;overflow-x:hidden}
body{background:#fff;color:var(--r-ink)}
main{min-height:45vh}
.container{width:min(1420px,calc(100% - 40px));margin-inline:auto}
[data-lucide]{display:inline-flex;align-items:center;justify-content:center}
[data-lucide] svg{display:block;width:1em;height:1em}
img{max-width:100%}

/* Header */
.announcement{
    display:flex!important;
    justify-content:center;
    align-items:center;
    gap:28px;
    flex-wrap:wrap;
    min-height:35px;
    padding:8px 18px!important;
    background:var(--r-green)!important;
    color:#fff!important;
}
.announcement span{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800}
.announcement svg{width:14px;height:14px}
.site-header{position:sticky;top:0;z-index:60;background:#fff}
.nav-container{min-height:76px;height:auto!important}
.brand{flex:0 0 auto}
.brand img{width:190px!important;height:58px!important;object-fit:contain}
.site-nav{align-items:center}
.site-nav a{font-size:13px}
.header-actions{flex:0 0 auto}
.order-button{display:inline-flex;align-items:center;gap:8px;padding:12px 16px}
.order-button svg{width:18px;height:18px}

/* Hero */
.hero-home{
    min-height:590px!important;
    background-position:center!important;
}
.hero-layout{min-height:590px!important}
.hero-copy{max-width:660px!important}
.hero-copy h1{font-size:clamp(50px,5.4vw,82px)!important}
.hero-copy p{max-width:570px}
.hero-buttons .btn{min-height:48px}
.hero-buttons svg{width:18px;height:18px}

/* Trust row */
.trust-bar-wrap{
    position:relative;
    z-index:8;
    margin-top:-44px;
}
.trust-bar{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr));
    background:#fff;
    border:1px solid var(--r-line);
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 18px 55px rgba(5,62,31,.15);
}
.trust-bar article{
    min-width:0;
    display:flex;
    align-items:center;
    gap:13px;
    padding:21px 20px;
    border-right:1px solid var(--r-line);
}
.trust-bar article:last-child{border-right:0}
.trust-bar article>span{
    width:46px;
    height:46px;
    flex:0 0 auto;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:var(--r-green-soft);
    color:var(--r-green);
}
.trust-bar article:nth-child(2)>span{background:#fff0e9;color:var(--r-red)}
.trust-bar article:nth-child(3)>span{background:#ebf2ff;color:#2b64a8}
.trust-bar article:nth-child(4)>span{background:#fff5dc;color:#9b6800}
.trust-bar svg{width:23px;height:23px}
.trust-bar strong,.trust-bar small{display:block}
.trust-bar strong{font-size:13px;color:var(--r-green);line-height:1.25}
.trust-bar small{margin-top:4px;color:var(--r-muted);font-size:10px;line-height:1.4}

/* Category cards */
.category-showcase{padding-top:76px!important}
.compact-title{margin-bottom:28px!important}
.category-card-grid{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
    width:100%;
}
.category-card-new{
    position:relative;
    isolation:isolate;
    height:275px;
    min-width:0;
    overflow:hidden;
    border-radius:18px;
    color:#fff;
    box-shadow:var(--r-shadow);
    background:#163b25;
}
.category-card-new>img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .4s ease;
}
.category-card-new:hover>img{transform:scale(1.055)}
.category-card-shade{
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(0,0,0,.04) 25%,rgba(1,26,13,.88) 100%);
}
.category-card-icon{
    position:absolute;
    top:15px;
    right:15px;
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:var(--r-green);
    background:rgba(255,255,255,.94);
    box-shadow:0 8px 18px rgba(0,0,0,.15);
}
.category-card-icon svg{width:23px;height:23px}
.category-card-copy{
    position:absolute;
    left:18px;
    right:18px;
    bottom:17px;
}
.category-card-copy h3{
    margin:0 0 5px;
    color:#fff;
    font:700 22px/1.15 Georgia,"Times New Roman",serif;
}
.category-card-copy p{
    margin:0 0 11px;
    min-height:31px;
    color:#eef5f0;
    font-size:10px;
    line-height:1.45;
}
.category-card-copy b{
    display:flex;
    align-items:center;
    gap:7px;
    color:#fff;
    font-size:11px;
}
.category-card-copy svg{width:15px;height:15px}

/* Featured product cards */
.featured{background:linear-gradient(180deg,#fff,#fbfaf7)}
.featured .product-grid{align-items:stretch}
.product-card{min-width:0}
.product-image{background:#edf1ee}
.add-to-cart{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
}
.add-to-cart svg{width:17px;height:17px}

/* Build-own and deals */
.split-promo{overflow:hidden}
.promo-copy ul li svg{width:19px;height:19px}
.deal-preview{background:linear-gradient(135deg,var(--r-green),var(--r-green-dark))!important}
.deal-title-light h2,.deal-title-light p{color:#fff!important}
.deal-title-light>span{color:#ffc3c6!important}
.deal-grid article{
    position:relative;
    overflow:hidden;
    background:rgba(255,255,255,.08)!important;
    border:1px solid rgba(255,255,255,.24)!important;
}
.deal-icon{
    width:60px!important;
    height:60px!important;
    border-radius:17px!important;
    background:#fff!important;
    color:var(--r-green)!important;
}
.deal-icon svg{width:30px;height:30px}
.deal-time{display:flex!important;align-items:center;gap:7px!important}
.deal-time svg{width:14px;height:14px}

/* Footer */
.site-footer{position:relative;z-index:4}
.footer-brand img{max-width:210px}
.footer-bottom{gap:16px}

/* Food basket */
.food-bucket{
    position:fixed!important;
    right:24px!important;
    bottom:22px!important;
    z-index:75!important;
    width:86px!important;
    height:92px!important;
    display:block!important;
    color:#fff!important;
    filter:drop-shadow(0 16px 22px rgba(0,0,0,.24));
}
.bucket-shape{
    position:absolute;
    left:5px;
    right:5px;
    bottom:0;
    height:65px;
    display:grid;
    place-items:center;
    border:3px solid #fff;
    border-radius:14px 14px 26px 26px;
    background:linear-gradient(155deg,#0a783d,#043e20);
}
.bucket-shape svg{width:38px;height:38px}
.bucket-food{
    position:absolute;
    top:0;
    left:0;
    right:0;
    z-index:2;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    font-size:27px;
}
.bucket-food b{display:block}
.bucket-food b:nth-child(1){transform:rotate(-13deg) translateX(5px)}
.bucket-food b:nth-child(2){font-size:23px;z-index:2}
.bucket-food b:nth-child(3){font-size:24px;transform:rotate(10deg) translateX(-5px)}
.food-bucket>strong{
    position:absolute;
    top:21px;
    right:-2px;
    z-index:4;
    min-width:25px;
    height:25px;
    padding:0 5px;
    display:grid;
    place-items:center;
    border:2px solid #fff;
    border-radius:999px;
    background:var(--r-red);
    color:#fff;
    font-size:10px;
}

/* Upsell must never enter the document flow */
.upsell-modal{
    position:fixed!important;
    inset:0!important;
    z-index:120!important;
    display:none!important;
}
.upsell-modal.open{display:block!important}
.upsell-backdrop{position:absolute;inset:0;background:rgba(1,23,12,.72);backdrop-filter:blur(4px)}
.upsell-dialog{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:min(980px,calc(100% - 30px));
    max-height:90vh;
    overflow:auto;
    padding:30px;
    border-radius:23px;
    background:#fff;
    box-shadow:0 30px 100px rgba(0,0,0,.34);
}
.upsell-close{
    position:absolute;
    top:16px;
    right:16px;
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:50%;
    background:#eef3ef;
    color:var(--r-green);
}
.upsell-close svg{width:19px;height:19px}
.upsell-heading{text-align:center;padding:0 45px 22px}
.upsell-heading h2{margin:6px 0;font:700 37px Georgia,"Times New Roman",serif}
.upsell-heading p{margin:0;color:var(--r-muted)}
.upsell-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.upsell-card{
    display:grid;
    grid-template-columns:68px minmax(0,1fr);
    gap:10px;
    align-items:center;
    padding:10px;
    border:1px solid var(--r-line);
    border-radius:13px;
}
.upsell-card img{width:68px;height:62px;object-fit:cover;border-radius:8px}
.upsell-card h3{margin:0 0 4px;color:var(--r-green);font-size:11px;line-height:1.3}
.upsell-card strong{font-size:12px}
.upsell-card .upsell-add{grid-column:1/-1;width:100%;padding:9px}
.upsell-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:21px}

/* Menu category hub */
.menu-category-hub{padding:32px 0;background:linear-gradient(180deg,#f7faf8,#fff);border-bottom:1px solid var(--r-line)}
.menu-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.menu-category-grid>a{
    min-width:0;
    display:grid;
    grid-template-columns:44px minmax(0,1fr) 18px;
    align-items:center;
    gap:11px;
    padding:14px;
    border:1px solid var(--r-line);
    border-radius:12px;
    background:#fff;
    box-shadow:0 7px 22px rgba(5,62,31,.05);
}
.menu-category-grid>a>span{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:11px;
    background:var(--r-green-soft);
    color:var(--r-green);
}
.menu-category-grid>a>span svg{width:22px;height:22px}
.menu-category-grid strong,.menu-category-grid small{display:block}
.menu-category-grid strong{font-size:12px;color:var(--r-green);line-height:1.3}
.menu-category-grid small{margin-top:3px;color:var(--r-muted);font-size:9px;line-height:1.35}
.category-arrow{width:16px;height:16px;color:var(--r-red)}
.category-title-new{
    display:grid!important;
    grid-template-columns:56px minmax(0,1fr) 170px;
    align-items:center;
    gap:15px;
    overflow:hidden;
    padding-left:17px;
    border:1px solid var(--r-line)!important;
    border-radius:15px;
    background:#f7faf8;
}
.category-title-icon{
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:var(--r-green);
    color:#fff;
}
.category-title-icon svg{width:25px;height:25px}
.category-title-copy{padding:14px 0}
.category-title-new img{width:170px!important;height:106px!important;object-fit:cover!important;border-radius:0!important}
.menu-toolbar{z-index:30}

/* Checkout payment cards */
.payment-choice{margin:20px 0;padding:0;border:0}
.payment-choice legend{margin-bottom:11px;font:700 20px Georgia,"Times New Roman",serif}
.payment-card{
    position:relative;
    display:grid!important;
    grid-template-columns:44px minmax(0,1fr) auto;
    align-items:center;
    gap:11px;
    margin:8px 0!important;
    padding:13px;
    border:1px solid var(--r-line);
    border-radius:11px;
    cursor:pointer;
}
.payment-card>input{position:absolute;opacity:0}
.payment-card:has(input:checked){border-color:var(--r-green);background:var(--r-green-soft);box-shadow:0 0 0 3px rgba(7,91,44,.08)}
.payment-card-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:11px;
    background:#e5f3e9;
    color:var(--r-green);
}
.payment-card-icon svg{width:22px;height:22px}
.payment-card-copy strong,.payment-card-copy small{display:block}
.payment-card-copy small{margin-top:3px;color:var(--r-muted);font-size:10px}
.payment-card>b{padding:5px 7px;border-radius:999px;background:#ddefe2;color:var(--r-green);font-size:9px}

/* Tracking */
.tracking-hero{padding:70px 0;background:linear-gradient(135deg,#edf7f0,#fff7ec)}
.tracking-hero-grid{display:flex;align-items:center;justify-content:space-between;gap:35px}
.tracking-hero h1{margin:8px 0;font:700 clamp(44px,6vw,70px) Georgia,"Times New Roman",serif}
.tracking-hero p{max-width:680px;color:var(--r-muted);font-size:16px;line-height:1.65}
.tracking-hero-icon{position:relative;width:135px;height:135px;display:grid;place-items:center;border-radius:50%;background:var(--r-green);color:#fff}
.tracking-hero-icon svg{width:67px;height:67px}
.tracking-hero-icon span{position:absolute;right:-3px;top:8px;padding:6px 9px;border:3px solid #fff;border-radius:999px;background:var(--r-red);font-size:10px;font-weight:800}
.tracking-search{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;align-items:end;gap:14px;padding:22px;border:1px solid var(--r-line);border-radius:17px;background:#fff;box-shadow:var(--r-shadow)}
.tracking-search h2{margin:5px 0;font:700 27px Georgia,"Times New Roman",serif}
.tracking-search p{margin:0;color:var(--r-muted);font-size:11px;line-height:1.45}
.tracking-search label{font-size:11px;font-weight:800}
.tracking-search input{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid var(--r-line);border-radius:8px}
.tracking-card{padding:28px;border:1px solid var(--r-line);border-radius:20px;background:#fff;box-shadow:var(--r-shadow)}
.tracking-card-head{display:flex;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--r-line)}
.tracking-card-head h2{margin:7px 0;font:700 38px Georgia,"Times New Roman",serif}
.tracking-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:21px 0}
.tracking-summary div{padding:14px;border:1px solid var(--r-line);border-radius:11px;background:#fafcfb}
.tracking-summary span,.tracking-summary strong{display:block}
.tracking-summary span{color:var(--r-muted);font-size:9px;text-transform:uppercase}
.tracking-summary strong{margin-top:5px;color:var(--r-green)}
.tracking-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:28px 0}
.tracking-step{position:relative;padding:16px 11px;border:1px solid var(--r-line);border-radius:13px;text-align:center;background:#fbfcfb}
.tracking-step-icon{width:49px;height:49px;margin:0 auto 10px;display:grid;place-items:center;border-radius:50%;background:#eef1ef;color:#879189}
.tracking-step.complete .tracking-step-icon{background:#dff1e4;color:var(--r-green)}
.tracking-step.current{border-color:#67aa7d}
.tracking-step.current .tracking-step-icon{background:var(--r-green);color:#fff}
.tracking-step strong{display:block;color:var(--r-green);font-size:12px}
.tracking-step p{min-height:43px;color:var(--r-muted);font-size:9px;line-height:1.4}

/* Responsive desktop/tablet */
@media(max-width:1180px){
    .trust-bar{grid-template-columns:repeat(2,1fr)}
    .trust-bar article:nth-child(2){border-right:0}
    .trust-bar article:nth-child(-n+2){border-bottom:1px solid var(--r-line)}
    .category-card-grid{grid-template-columns:repeat(3,1fr)}
    .menu-category-grid{grid-template-columns:repeat(3,1fr)}
    .upsell-grid{grid-template-columns:repeat(3,1fr)}
    .tracking-search{grid-template-columns:1fr 1fr}
    .tracking-search>div{grid-column:1/-1}
}

@media(max-width:900px){
    .container{width:min(100% - 28px,1420px)}
    .announcement{gap:15px}
    .announcement span:nth-child(4){display:none}
    .nav-container{min-height:70px!important}
    .brand img{width:154px!important;height:50px!important}
    .nav-toggle{display:grid!important;place-items:center;margin-left:auto;width:38px;height:38px}
    .site-nav{
        position:absolute!important;
        top:105px!important;
        left:14px!important;
        right:14px!important;
        display:none!important;
        flex-direction:column!important;
        align-items:stretch!important;
        gap:0!important;
        padding:10px!important;
        border:1px solid var(--r-line);
        border-radius:12px;
        background:#fff;
        box-shadow:var(--r-shadow);
    }
    .site-nav.open{display:flex!important}
    .site-nav a{padding:11px 12px!important}
    .header-actions .phone-link{display:none}
    .order-button span{display:none}
    .order-button{padding:11px}
    .hero-home,.hero-layout{min-height:525px!important}
    .hero-overlay{background:linear-gradient(90deg,rgba(251,248,242,.94),rgba(251,248,242,.74))!important}
    .hero-copy h1{font-size:52px!important}
    .category-card-grid{grid-template-columns:repeat(2,1fr)}
    .menu-category-grid{grid-template-columns:repeat(2,1fr)}
    .upsell-grid{grid-template-columns:repeat(2,1fr)}
    .tracking-hero-grid{display:block}
    .tracking-hero-icon{margin:28px auto 0}
    .tracking-progress{grid-template-columns:1fr}
    .tracking-step{display:grid;grid-template-columns:52px minmax(0,1fr) 24px;align-items:center;gap:11px;text-align:left}
    .tracking-step-icon{margin:0}
    .tracking-step p{min-height:auto}
}

/* Mobile */
@media(max-width:620px){
    .container{width:calc(100% - 24px)!important}
    .announcement{min-height:30px;padding:6px 10px!important;gap:12px}
    .announcement span{font-size:9px}
    .announcement span:nth-child(n+3){display:none}
    .nav-container{gap:8px!important}
    .brand img{width:130px!important;height:44px!important}
    .order-button{min-width:41px;min-height:41px;padding:9px!important}
    .order-button b{position:absolute;top:4px;right:4px;min-width:17px;height:17px;font-size:8px}
    .header-actions{position:relative}
    .hero-home,.hero-layout{min-height:500px!important}
    .hero-home{background-position:62% center!important}
    .hero-copy{padding:42px 0!important;max-width:86%!important}
    .hero-copy h1{font-size:42px!important;line-height:1.02!important;margin:9px 0 15px!important}
    .hero-copy p{font-size:14px!important;line-height:1.55!important}
    .hero-buttons{display:grid!important;grid-template-columns:1fr 1fr;gap:8px!important;margin:22px 0!important}
    .hero-buttons .btn{padding:11px 8px!important;font-size:11px!important}
    .trust-bar-wrap{margin-top:-25px}
    .trust-bar{grid-template-columns:1fr 1fr!important;border-radius:14px}
    .trust-bar article{
        min-height:91px;
        padding:12px 10px;
        gap:8px;
        border-right:1px solid var(--r-line)!important;
        border-bottom:1px solid var(--r-line)!important;
    }
    .trust-bar article:nth-child(2n){border-right:0!important}
    .trust-bar article:nth-last-child(-n+2){border-bottom:0!important}
    .trust-bar article>span{width:34px;height:34px;border-radius:9px}
    .trust-bar article>span svg{width:18px;height:18px}
    .trust-bar strong{font-size:10px}
    .trust-bar small{font-size:8px}
    .section{padding:58px 0!important}
    .category-showcase{padding-top:58px!important}
    .section-title.centered{margin-bottom:24px!important}
    .section-title h2{font-size:31px!important}
    .section-title p{font-size:12px}
    .category-card-grid{grid-template-columns:1fr 1fr!important;gap:10px}
    .category-card-new{height:205px;border-radius:13px}
    .category-card-icon{top:10px;right:10px;width:34px;height:34px}
    .category-card-icon svg{width:18px;height:18px}
    .category-card-copy{left:12px;right:12px;bottom:12px}
    .category-card-copy h3{font-size:15px}
    .category-card-copy p{display:none}
    .category-card-copy b{font-size:9px}
    .featured .product-grid{
        display:flex!important;
        grid-template-columns:none!important;
        gap:12px!important;
        overflow-x:auto;
        padding:3px 2px 18px;
        scroll-snap-type:x mandatory;
        scrollbar-width:none;
    }
    .featured .product-grid::-webkit-scrollbar{display:none}
    .featured .product-card{
        flex:0 0 82vw;
        scroll-snap-align:start;
    }
    .featured .product-image{height:220px!important}
    .split-promo{display:block!important}
    .promo-image{height:300px!important}
    .promo-copy{padding:42px 20px!important}
    .promo-copy h2{font-size:35px!important}
    .promo-copy p{font-size:13px!important}
    .deal-grid{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
    .deal-grid article{padding:21px!important}
    .deal-grid h3{font-size:23px!important}
    .story-grid{gap:30px!important}
    .story-grid h2{font-size:35px!important}
    .story-grid p{font-size:13px!important}
    .story-images{gap:8px!important}
    .story-images img{height:210px!important;border-radius:12px!important}
    .story-images img:last-child{margin-top:25px!important}
    .footer-grid{grid-template-columns:1fr!important;gap:24px!important}
    .footer-bottom{padding-inline:16px!important;flex-direction:column!important;font-size:10px!important}
    .food-bucket{right:10px!important;bottom:10px!important;transform:scale(.83);transform-origin:right bottom}
    .upsell-dialog{padding:23px 14px}
    .upsell-heading{padding:0 28px 17px}
    .upsell-heading h2{font-size:28px}
    .upsell-heading p{font-size:11px}
    .upsell-grid{grid-template-columns:1fr!important}
    .upsell-card{grid-template-columns:66px 1fr auto}
    .upsell-card .upsell-add{grid-column:auto;width:auto}
    .upsell-actions{justify-content:stretch}
    .upsell-actions>*{flex:1}
    .menu-category-grid{grid-template-columns:1fr 1fr!important;gap:8px}
    .menu-category-grid>a{grid-template-columns:35px minmax(0,1fr);padding:10px;gap:8px}
    .menu-category-grid>a>span{width:35px;height:35px}
    .menu-category-grid .category-arrow{display:none}
    .menu-category-grid strong{font-size:9px}
    .menu-category-grid small{display:none}
    .category-title-new{grid-template-columns:44px minmax(0,1fr)!important;padding:10px!important}
    .category-title-icon{width:42px;height:42px}
    .category-title-new img{display:none!important}
    .category-title-copy{padding:0}
    .category-title-copy h2{font-size:24px!important;margin:3px 0!important}
    .category-title-copy span{font-size:8px!important}
    .payment-card{grid-template-columns:39px minmax(0,1fr);padding:11px}
    .payment-card>b{display:none}
    .payment-card-icon{width:39px;height:39px}
    .tracking-search{grid-template-columns:1fr!important;padding:17px}
    .tracking-search>div{grid-column:auto}
    .tracking-summary{grid-template-columns:1fr!important}
    .tracking-card{padding:18px 13px}
    .tracking-card-head{display:block}
    .tracking-card-head h2{font-size:30px}
}

/* Very narrow devices */
@media(max-width:360px){
    .hero-copy h1{font-size:38px!important}
    .category-card-grid{grid-template-columns:1fr 1fr!important}
    .category-card-new{height:185px}
    .category-card-copy h3{font-size:14px}
    .trust-bar article{padding:10px 8px}
    .trust-bar article>span{width:31px;height:31px}
}
