/* Homepage styling for Restaurants, Cafes and QSR only. */
body[data-page="solution"] { --color-primary:#075b49; --color-primary-dark:#064737; --color-muted:#405047; --marketing-section-title-size:clamp(28px,2.8vw,42px); }
body[data-page="solution"] .site-header { background:#fffdf9; }
#main { background:#fffdf9; }
#main :is(.restaurant-solution-page,.cafe-solution-page) { background:#fffdf9; color:#202a25; }
#main :is(.restaurant-solution-page,.cafe-solution-page) .container { width:min(1440px,calc(100% - 96px)); }
#main :is(.restaurant-hero,.cafe-hero) { padding:28px 0 64px; background:radial-gradient(ellipse at 90% 35%,#e2eee4,transparent 60%),#fffdf9; }
#main > .page-hero { width:100%; max-width:none; padding:28px max(48px,calc((100% - 1440px)/2)) 64px; background:radial-gradient(ellipse at 90% 35%,#e2eee4,transparent 60%),#fffdf9; }
#main :is(.restaurant-hero,.cafe-hero,.page-hero) .breadcrumbs { margin-bottom:28px; font-size:13px; }
#main :is(.restaurant-hero,.cafe-hero,.page-hero) h1 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(40px,4.5vw,70px); font-weight:700; line-height:1.08; letter-spacing:-.045em; color:#071d30; margin:16px 0 24px; max-width:100%; text-wrap:balance; }
#main > .page-hero h1 { max-width:1050px; }
#main :is(.restaurant-hero,.cafe-hero) h1 em { color:#075b49; font:inherit; }
#main :is(.restaurant-hero-copy,.cafe-hero-copy) > p,
#main > .page-hero > p { font-size:18px; line-height:1.7; font-weight:400; color:#34443b; }
#main :is(.restaurant-hero-copy,.cafe-hero-copy) > :is(.restaurant-hero-lead,.cafe-hero-lead) { font-size:21px; line-height:1.5; font-weight:600; color:#245c45; }
#main :is(.restaurant-hero-note,.cafe-hero-note) { font-size:13px; color:#405047; }
#main .eyebrow { color:whitesmoke; font-size:12px; font-weight:750; letter-spacing:.12em; }
#main :is(.section-heading,.restaurant-section-heading,.restaurant-demo-copy,.restaurant-final-cta,.cafe-demo-copy,.cafe-final-cta,.final-cta) h2,
#main .faq-section > div > h2 { font-family:var(--font-body); font-size:var(--marketing-section-title-size); line-height:1.22; font-weight:700; letter-spacing:-.025em; text-wrap:balance; }
#main :is(.section-heading,.restaurant-section-heading) h2 em { font:inherit; color:#245c45; }
    #main :is(.section-heading,.restaurant-section-heading) p {
        font-size: 17px;
        line-height: 1.7;
        color: #34443b;
        text-align: left;
    }
#main :is(.restaurant-challenge-grid,.cafe-challenge-grid,.restaurant-solution-grid,.cafe-solution-list,.three-grid,.feature-grid) { gap:24px; }
#main :is(.restaurant-challenge-grid article,.cafe-challenge-card,.restaurant-solution-card,.cafe-solution-card,.feature-card,.cafe-overview-card) { border:1px solid #dce5db; border-radius:22px; box-shadow:0 8px 24px #173e2e06; background:#fff; min-width:0; }
#main :is(.restaurant-challenge-grid,.cafe-challenge-grid) > article:nth-child(3n+1),
#main > .section > .three-grid > article:nth-child(3n+1) { background:#edf5ee; }
#main :is(.restaurant-challenge-grid,.cafe-challenge-grid) > article:nth-child(3n+2),
#main > .section > .three-grid > article:nth-child(3n+2) { background:#faf2e5; }
#main :is(.restaurant-challenge-grid,.cafe-challenge-grid) > article:nth-child(3n),
#main > .section > .three-grid > article:nth-child(3n) { background:#eef3fa; }
#main :is(.restaurant-challenge-grid,.cafe-challenge-grid,.restaurant-solution-copy,.cafe-solution-copy,.feature-card,.restaurant-audience-grid,.cafe-audience-grid) :is(h3,h2) { font-family:var(--font-body); font-size:22px; line-height:1.3; font-weight:700; color:#20352a; letter-spacing:-.02em; }
#main :is(.restaurant-challenge-grid,.cafe-challenge-grid,.restaurant-solution-copy,.cafe-solution-copy,.feature-card,.restaurant-audience-grid,.cafe-audience-grid) p,
#main :is(.restaurant-steps,.cafe-steps) p { font-size:16px; line-height:1.7; font-weight:400; color:#34443b; }
#main .product-card-features { color:#34443b; font-size:15px; line-height:1.65; }
#main :is(.restaurant-challenges,.cafe-challenges) { background:#eff4ec; }
#main :is(.restaurant-section,.cafe-section) { padding-block:72px; }
#main :is(.button,.restaurant-submit,.cafe-submit) { background:#075b49; border-color:#075b49; color:#fff; border-radius:10px; font-size:15px; font-weight:650; }
#main .button.secondary { background:transparent; border-color:#075b49; color:#075b49; }
#main :is(.button,.restaurant-submit,.cafe-submit):hover { background:#064737; border-color:#064737; color:#fff; }
#main .text-link { color:#075b49; }
#main .faq-list details { border:1px solid #dce5db; background:white; border-radius:14px; padding-inline:22px; margin-bottom:12px; }
#main .faq-list details[open] { background:#eff5ee; }
#main .faq-list summary { font-size:18px; line-height:1.5; color:#20352a; }
#main .faq-list p { color:#34443b; font-size:16px; line-height:1.75; }
#main > .section > .three-grid { margin-bottom:56px; }
#main :is(.restaurant-hero-grid,.cafe-hero-grid) > * { min-width:0; }
@media(prefers-reduced-motion:no-preference) {
 #main :is(.restaurant-solution-card,.cafe-solution-card,.feature-card) { transition:transform .2s ease,box-shadow .2s ease; }
 #main :is(.restaurant-solution-card,.cafe-solution-card,.feature-card):hover { transform:translateY(-3px); box-shadow:0 14px 32px #173e2e12; }
}
@media(max-width:1100px) { #main :is(.restaurant-solution-page,.cafe-solution-page) .container { width:calc(100% - 48px); } }
@media(max-width:980px) {
 #main :is(.restaurant-hero-grid,.cafe-hero-grid) { grid-template-columns:1fr; gap:32px; }
 #main :is(.restaurant-hero-copy,.cafe-hero-copy) { max-width:760px; }
 #main :is(.restaurant-hero,.cafe-hero,.page-hero) h1 { font-size:clamp(38px,6vw,58px); }
 #main > .page-hero { padding-inline:24px; }
}
@media(max-width:600px) {
 #main :is(.restaurant-solution-page,.cafe-solution-page) .container { width:calc(100% - 32px); }
 #main :is(.restaurant-hero,.cafe-hero) { padding-block:22px 40px; }
 #main > .page-hero { padding:22px 16px 40px; }
 #main :is(.restaurant-hero,.cafe-hero,.page-hero) h1 { font-size:clamp(34px,9vw,44px); overflow-wrap:break-word; }
 #main :is(.restaurant-hero-copy,.cafe-hero-copy) > p,#main > .page-hero > p { font-size:16px; }
 #main :is(.restaurant-hero-copy,.cafe-hero-copy) > :is(.restaurant-hero-lead,.cafe-hero-lead) { font-size:19px; }
 #main :is(.restaurant-section,.cafe-section) { padding-block:48px; }
 #main :is(.restaurant-solution-copy,.cafe-solution-copy) { padding:22px; }
 #main .faq-list summary { font-size:17px; }
}
/* Title-specific hospitality scenes, limited to the three themed solutions. */
#main .restaurant-solution-visual > img,
#main .cafe-solution-visual > img { opacity:1; }
#main .restaurant-solution-visual,
#main .cafe-solution-visual { display:flex; flex-direction:column; min-height:300px; align-items:center; justify-content:flex-end; padding:22px; }
#main .restaurant-solution-visual::after,
#main .cafe-solution-visual::after { inset:0; width:100%; height:100%; border:0; border-radius:0; background:linear-gradient(180deg,transparent 50%,rgba(9,36,26,.2)); }
#main .restaurant-solution-visual > span,
#main .cafe-solution-visual > span { position:absolute; top:15px; left:17px; z-index:1; padding:6px 8px; border-radius:7px; background:rgba(255,253,248,.94); color:#245c45; }
#main .restaurant-mini-screen,
#main .cafe-mini-screen { width:auto; min-height:0; padding:12px 18px; gap:5px; background:rgba(255,253,248,.96); border:1px solid #fff; border-radius:12px; box-shadow:0 12px 28px #173e2e12; }
#main .cafe-section-heading h2 { font-family:var(--font-body); font-size:var(--marketing-section-title-size); line-height:1.22; font-weight:700; letter-spacing:-.025em; }
#main .cafe-section-heading h2 em { font:inherit; color:#245c45; }
#main .restaurant-mini-screen i,
#main .cafe-mini-screen i { display:none; }
#main .restaurant-hero-visual > img,
#main .cafe-hero-visual > img { object-position:center; }
#main .qsr-scene-hero { max-width:1440px; }
.qsr-scene-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:48px; }
.qsr-scene-grid > div { min-width:0; }
.qsr-hero-scene { margin:0; overflow:hidden; border:1px solid #dce6da; border-radius:24px; background:#fffdf8; box-shadow:0 20px 50px #17432b12; }
.qsr-hero-scene > img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.qsr-hero-scene figcaption { padding:22px; }
.qsr-hero-scene ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; list-style:none; margin:14px 0; padding:0; }
.qsr-hero-scene li { color:#173e31; font-size:14px; font-weight:600; }
.qsr-hero-scene li b { display:block; color:#22644e; font-size:20px; margin-bottom:5px; }
.qsr-hero-scene small { color:#59665f; font-size:12px; }
.qsr-product-photo { margin:20px 0; border-radius:16px; overflow:hidden; }
.qsr-product-photo img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
@media(max-width:980px) { .qsr-scene-grid { grid-template-columns:1fr; gap:30px; } }
@media(max-width:600px) { #main .restaurant-solution-visual, #main .cafe-solution-visual { min-height:240px; } .qsr-hero-scene figcaption { padding:18px; } .qsr-hero-scene ol { gap:8px; } .qsr-hero-scene li { font-size:12px; } }
