.cafe-solution-page {
    --cafe-cream: var(--color-bg);
    --cafe-paper: var(--color-surface);
    --cafe-ink: var(--color-text);
    --cafe-muted: var(--color-muted);
    --cafe-coffee: var(--color-primary-dark);
    --cafe-caramel: var(--color-primary);
    --cafe-caramel-dark: var(--color-primary-dark);
    --cafe-sage: var(--color-primary);
    --cafe-line: var(--color-border);
    color: var(--cafe-ink);
    background: var(--cafe-cream);
    overflow: hidden;
}

.cafe-solution-page .container { width: min(1160px, calc(100% - 48px)); }
.cafe-solution-page .eyebrow { color: var(--cafe-sage); letter-spacing: .13em; font-size: 11px; }
.cafe-solution-page h1,
.cafe-solution-page h2,
.cafe-solution-page h3 { color: var(--cafe-ink); }
.cafe-solution-page h1,
.cafe-solution-page h2 { letter-spacing: -.045em; }
.cafe-solution-page p { font-weight: 500; }
.cafe-solution-page h2 em,
.cafe-solution-page h1 em { color: var(--color-accent); font-family: Georgia, "Times New Roman", serif; font-weight: 400; }

.cafe-hero { padding: 22px 0 70px; background: radial-gradient(ellipse at 84% 53%, rgba(220,194,156,.25), transparent 36%), var(--cafe-cream); }
.cafe-hero .breadcrumbs { margin-bottom: 40px; }
.cafe-hero-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 55px; }
.cafe-hero-copy { padding: 6px 0 16px; }
.cafe-hero-copy h1 { max-width: 590px; margin: 14px 0 17px; font-size: clamp(40px, 5vw, 62px); line-height: 1.06; }
.cafe-hero-copy > p { max-width: 550px; color: #62574e; font-size: 16px; line-height: 1.8; }
.cafe-hero-copy .cafe-hero-lead { color: #453a32; font-size: 19px; line-height: 1.6; }
.cafe-solution-page .button-row { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 15px; }
.cafe-solution-page .cafe-button-primary,
.cafe-solution-page .cafe-submit { border-color: var(--color-primary); background: var(--color-primary); color: #fff; }
.cafe-solution-page .cafe-button-primary:hover,
.cafe-solution-page .cafe-submit:hover { border-color: var(--color-primary-dark); background: var(--color-primary-dark); }
.cafe-hero-note { color: #81766d; font-size: 12px; }

.cafe-counter-art { position: relative; min-height: 405px; overflow: hidden; border: 1px solid rgba(96,61,45,.1); background: radial-gradient(circle at 80% 17%, #f2ca86 0 42px, transparent 43px), linear-gradient(145deg, #eee3d3, #d3c0a6); box-shadow: 0 24px 55px rgba(76,53,34,.12); }
.cafe-art-window { position: absolute; top: 62px; left: 44px; display: flex; width: 195px; height: 145px; align-items: end; justify-content: space-around; overflow: hidden; border: 9px solid #fff8eb; background: linear-gradient(160deg,#c1d1bc 0 40%,#e3d5af 41% 56%,#a4b18c 57%); }
.cafe-art-window span { width: 29%; height: 60%; border-radius: 80% 0 80% 0; background: #798a6e; transform: rotate(-20deg); }
.cafe-art-window span:nth-child(2) { height: 83%; background: #a0a589; transform: rotate(18deg); }
.cafe-art-window span:nth-child(3) { height: 65%; background: #718267; transform: rotate(-8deg); }
.cafe-art-shelf { position: absolute; top: 67px; right: 43px; display: flex; width: 136px; height: 6px; justify-content: space-around; background: #78543b; }
.cafe-art-shelf i { position: relative; top: -27px; width: 22px; height: 27px; border-radius: 4px 4px 7px 7px; background: #e4ceb0; }
.cafe-art-shelf i:nth-child(2) { top: -36px; height: 36px; background: #77846c; }
.cafe-art-shelf i:nth-child(3) { background: #c18a57; }
.cafe-art-plant { position: absolute; bottom: 124px; left: 20px; width: 58px; height: 91px; }
.cafe-art-plant i { position: absolute; bottom: 26px; left: 23px; width: 20px; height: 54px; border-radius: 90% 0 90% 0; background: #748468; transform: rotate(-35deg); transform-origin: bottom; }
.cafe-art-plant i:nth-child(2) { background: #8e987a; transform: rotate(30deg); }
.cafe-art-plant i:nth-child(3) { left: 9px; height: 44px; background: #a1a58a; transform: rotate(-60deg) scale(.8); }
.cafe-art-plant b { position: absolute; bottom: 0; left: 9px; width: 43px; height: 35px; border-radius: 5px 5px 13px 13px; background: #bd7950; }
.cafe-art-barista { position: absolute; z-index: 2; bottom: 100px; left: 34%; width: 124px; height: 212px; }
.cafe-art-barista > i { position: absolute; top: 9px; left: 30px; width: 71px; height: 80px; border-radius: 50% 48% 43% 44%; background: #4c3328; }
.cafe-art-barista > span { position: absolute; z-index: 1; top: 31px; left: 39px; width: 55px; height: 64px; border-radius: 48%; background: #c98965; }
.cafe-art-barista > span b { position: absolute; top: 29px; left: 13px; width: 4px; height: 4px; border-radius: 50%; background: #49352b; }
.cafe-art-barista > span b:nth-child(2) { left: 38px; }
.cafe-art-barista > strong { position: absolute; bottom: 0; left: 15px; width: 101px; height: 132px; border-radius: 42px 42px 0 0; background: #6f7a64; clip-path: polygon(28% 0,72% 0,100% 100%,0 100%); }
.cafe-art-counter { position: absolute; z-index: 3; right: 0; bottom: 0; left: 0; height: 158px; background: linear-gradient(180deg,#77513a 0 17%,#b9835c 18%); }
.cafe-art-counter > i { position: absolute; top: -21px; left: 10%; width: 56px; height: 30px; border: 4px solid #d99c55; border-radius: 50%; background: #f1cb83; box-shadow: 0 3px 7px rgba(48,37,31,.13); }
.cafe-art-pastry { position: absolute; top: -27px; left: 22%; width: 51px; height: 32px; border: 4px solid #bd8050; border-radius: 50%; background: #e8b574; transform: rotate(17deg); }
.cafe-art-cup { position: absolute; top: -43px; left: 32%; width: 47px; height: 48px; border-radius: 5px 5px 14px 14px; background: #fff8eb; box-shadow: 0 4px 9px rgba(48,37,31,.14); }
.cafe-art-cup::after { position: absolute; top: 10px; right: -11px; width: 17px; height: 20px; border: 4px solid #fff8eb; border-left: 0; border-radius: 0 50% 50% 0; content: ""; }
.cafe-art-cup b { position: absolute; top: 7px; width: 100%; height: 6px; border-radius: 50%; background: #75503b; }
.cafe-art-machine { position: absolute; right: 24%; bottom: 59px; display: flex; width: 117px; height: 97px; flex-direction: column; gap: 6px; border: 7px solid #393a36; border-radius: 10px; background: #fbf8ef; box-shadow: 0 8px 16px rgba(48,37,31,.18); padding: 9px; transform: rotate(-4deg); }
.cafe-art-machine b { color: #735c49; font-size: 8px; letter-spacing: .08em; }
.cafe-art-machine i { width: 80%; height: 5px; border-radius: 4px; background: #ded8cc; }
.cafe-art-menu-board { position: absolute; right: 24%; bottom: 61px; display: flex; width: 112px; height: 93px; flex-direction: column; gap: 7px; border: 8px solid #59483b; border-radius: 4px; background: #35483b; box-shadow: 0 8px 16px rgba(48,37,31,.18); padding: 9px; transform: rotate(-4deg); }
.cafe-art-menu-board b { color: #f4dfb2; font: 700 8px Georgia,serif; letter-spacing: .08em; }
.cafe-art-menu-board i { color: #eee1c8; font: italic 7px Georgia,serif; }
.cafe-art-phone { position: absolute; right: 7%; bottom: 56px; display: flex; width: 74px; height: 124px; align-items: center; flex-direction: column; gap: 8px; border: 5px solid #393a36; border-radius: 15px; background: #fffaf0; box-shadow: 0 10px 19px rgba(48,37,31,.18); padding: 13px 5px; transform: rotate(7deg); }
.cafe-art-phone b { color: #8b7661; font-size: 7px; }
.cafe-art-phone i { color: #56382c; font-size: 6px; font-style: normal; font-weight: 700; }
.cafe-art-phone em { color: #76543c; font-size: 26px; font-style: normal; line-height: 1; }
.cafe-art-caption { position: absolute; z-index: 5; bottom: 18px; left: 22px; color: #fff6e8; font-size: 11px; letter-spacing: .06em; }

.cafe-section { padding: 84px 0; }
.cafe-rhythm { background: var(--cafe-paper); }
.cafe-rhythm-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 9%; align-items: start; }
.cafe-rhythm-grid h2 { margin: 13px 0 0; font-size: clamp(34px,4vw,48px); line-height: 1.12; }
.cafe-rhythm-grid > div:last-child p { margin: 0 0 13px; color: var(--cafe-muted); line-height: 1.8; }
.cafe-solution-overview { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 34px; }
.cafe-overview-card { display: grid; gap: 7px; border: 1px solid #ece5da; border-radius: 14px; background: #fffefa; color: var(--cafe-ink); padding: 14px; text-decoration: none; transition: transform .18s ease,box-shadow .18s ease; }
.cafe-overview-card:hover { transform: translateY(-3px); box-shadow: 0 12px 25px rgba(63,45,31,.08); }
.cafe-overview-card > strong { font-size: 14px; }
.cafe-overview-card > span:last-child { color: var(--cafe-muted); font-size: 12px; }
.cafe-overview-visual { display: flex; min-height: 115px; align-items: center; justify-content: center; flex-direction: column; gap: 7px; border-radius: 10px; background: linear-gradient(145deg,#d7dfd0,#b6c1aa); }
.cafe-overview-menu { align-items: flex-start; margin: 0; padding: 14px 22px; }
.cafe-overview-menu i { color: #71816a; font-size: 8px; font-style: normal; font-weight: 700; }
.cafe-overview-menu b { color: #48392d; font: 15px Georgia,serif; }
.cafe-overview-menu em { width: 75%; height: 4px; border-radius: 4px; background: rgba(72,57,45,.17); }
.cafe-overview-qr { background: linear-gradient(145deg,#ead8cf,#c9a99a); }
.cafe-overview-qr i,.cafe-overview-qr em { color: #715b48; font-size: 9px; font-style: normal; font-weight: 700; }
.cafe-overview-qr b { color: #48392d; font-size: 38px; line-height: 1; }
.cafe-overview-waiter { align-items: stretch; background: linear-gradient(145deg,#eadfc9,#d6c19e); padding: 14px 20px; }
.cafe-overview-waiter i { color: #715b48; font-size: 8px; font-style: normal; font-weight: 700; }
.cafe-overview-waiter b,.cafe-overview-waiter em { color: #48392d; font-size: 9px; font-style: normal; }
.cafe-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 36px; margin-bottom: 34px; }
.cafe-section-heading h2 { margin: 11px 0 0; font-size: clamp(32px,4vw,44px); line-height: 1.12; }
.cafe-section-heading > p { max-width: 355px; margin: 0 0 4px; color: var(--cafe-muted); line-height: 1.75; }
.cafe-challenges { background: var(--color-soft); }
.cafe-challenge-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.cafe-challenge-card { position: relative; min-height: 235px; border: 1px solid #e8dfd2; border-radius: 15px; background: var(--cafe-paper); padding: 22px; transition: transform .18s ease,box-shadow .18s ease; }
.cafe-challenge-card:hover { transform: translateY(-4px); box-shadow: 0 15px 30px rgba(63,45,31,.08); }
.cafe-card-number { position: absolute; top: 17px; right: 19px; color: #b8aa9a; font: italic 14px Georgia,serif; }
.cafe-card-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: #f2e9dc; color: var(--cafe-caramel-dark); font-size: 23px; }
.cafe-challenge-card h3 { margin: 19px 0 9px; font-size: 16px; line-height: 1.4; }
.cafe-challenge-card p { margin: 0; color: var(--cafe-muted); font-size: 13px; line-height: 1.7; }
.cafe-solutions { background: var(--cafe-cream); }
.cafe-solution-list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; align-items: stretch; }
.cafe-solution-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid rgba(96,61,45,.09); border-radius: 18px; background: var(--cafe-paper); }
.cafe-solution-visual { position: relative; display: flex; min-height: 205px; flex-direction: column; align-items: center; justify-content: center; gap: 12px; overflow: hidden; background: radial-gradient(circle at 76% 22%,rgba(246,216,164,.8),transparent 27%),linear-gradient(145deg,#e6d7c2,#d2b99b); padding: 20px; }
.cafe-visual-menu { background: radial-gradient(circle at 22% 22%,rgba(249,228,185,.8),transparent 27%),linear-gradient(145deg,#d7dfd0,#b6c1aa); }
.cafe-visual-qr { background: radial-gradient(circle at 78% 18%,rgba(248,223,182,.78),transparent 26%),linear-gradient(145deg,#ead8cf,#c9a99a); }
.cafe-visual-dine { background: radial-gradient(circle at 25% 20%,rgba(248,224,177,.75),transparent 26%),linear-gradient(145deg,#eadfc9,#d6c19e); }
.cafe-visual-order { background: radial-gradient(circle at 78% 18%,rgba(248,223,182,.78),transparent 26%),linear-gradient(145deg,#ead8cf,#c9a99a); }
.cafe-visual-takeaway { background: radial-gradient(circle at 25% 20%,rgba(248,224,177,.75),transparent 26%),linear-gradient(145deg,#eadfc9,#d6c19e); }
.cafe-solution-visual::after { position: absolute; right: -5%; bottom: -19%; width: 80%; height: 80%; border: 1px solid rgba(96,61,45,.16); border-radius: 50% 50% 0 0; background: rgba(255,253,248,.3); content: ""; }
.cafe-visual-index,.cafe-visual-caption { position: relative; z-index: 1; color: #715b48; font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.cafe-visual-caption { color: #725e4c; }
.cafe-visual-window { position: relative; z-index: 1; display: flex; width: min(245px,82%); min-height: 144px; align-self: center; justify-content: center; flex-direction: column; gap: 10px; border: 1px solid rgba(255,255,255,.8); border-radius: 15px; background: rgba(255,253,248,.89); box-shadow: 0 15px 33px rgba(69,49,33,.13); padding: 21px; transform: rotate(-3deg); }
.cafe-visual-window span { color: #48392d; font: 20px Georgia,serif; }
.cafe-visual-window b { color: #837363; font-size: 10px; font-weight: 500; }
.cafe-visual-window i { width: 80%; height: 5px; border-radius: 4px; background: #e4ded5; }
.cafe-visual-index { position: absolute; top: 14px; left: 16px; }
.cafe-menu-screen { width: min(255px,90%); min-height: 154px; gap: 8px; transform: none; }
.cafe-menu-screen b { color: #8b7661; font-size: 8px; letter-spacing: .1em; }
.cafe-menu-screen span { font-size: 17px; }
.cafe-menu-screen i { height: auto; width: 100%; background: transparent; color: #75695b; font-size: 9px; }
.cafe-qr-phone { position: relative; z-index: 1; display: flex; width: 128px; min-height: 162px; align-items: center; flex-direction: column; gap: 7px; border: 6px solid #3c3934; border-radius: 17px; background: #fffaf0; box-shadow: 0 13px 24px rgba(48,37,31,.2); padding: 14px 8px; }
.cafe-qr-phone b { color: #8b7661; font-size: 8px; }
.cafe-qr-phone span { color: #3f4638; font-size: 50px; line-height: 1; }
.cafe-qr-phone i,.cafe-qr-phone small { color: #665746; font-size: 8px; font-style: normal; }
.cafe-qr-caption { position: relative; z-index: 1; color: #725e4c; font-size: 9px; font-weight: 700; letter-spacing: .1em; }
.cafe-counter-screen { transform: rotate(-1deg); }
.cafe-waiter-screen { position: relative; z-index: 1; display: grid; width: min(250px,90%); gap: 10px; border: 7px solid #393a36; border-radius: 11px; background: #fffaf0; box-shadow: 0 13px 24px rgba(48,37,31,.2); padding: 15px; transform: rotate(-2deg); }
.cafe-waiter-screen > b { color: #725e4c; font-size: 8px; letter-spacing: .1em; }
.cafe-waiter-screen > i { display: flex; justify-content: space-between; border-radius: 5px; background: #f1eee7; color: #48392d; font-size: 9px; font-style: normal; padding: 7px; }
.cafe-waiter-screen > i span { color: #497452; }
.cafe-waiter-screen small { color: #7c6b5c; font-size: 8px; }
.cafe-solution-copy { display: flex; flex: 1; align-items: flex-start; flex-direction: column; padding: 24px 22px 25px; }
.cafe-solution-copy h3 { margin: 9px 0 11px; font: 400 clamp(23px,2vw,29px)/1.16 Georgia,"Times New Roman",serif; letter-spacing: -.025em; }
.cafe-solution-copy > p { margin: 0 0 14px; color: #6b6057; font-size: 13px; line-height: 1.75; }
.cafe-best-for { display: grid; gap: 3px; margin-bottom: 15px; border-left: 2px solid #c68156; padding-left: 12px; }
.cafe-best-for strong { color: #98816d; font-size: 9px; letter-spacing: .13em; }
.cafe-best-for span { color: #62564d; font-size: 12px; line-height: 1.55; }
.cafe-solution-copy .cafe-best-for { margin-top: auto; }
.cafe-solution-page .text-link { color: var(--cafe-caramel-dark); font-size: 14px; font-weight: 700; text-decoration: none; }
.cafe-solution-page .text-link:hover { color: #7e3d1d; }

.cafe-demo-section { background: var(--color-dark); color: var(--color-on-dark); }
.cafe-demo-grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: 7%; }
.cafe-demo-copy .eyebrow { color: #b9d3c2; }
.cafe-demo-copy h2 { margin: 13px 0; color: #fff9f1; font-size: clamp(36px,4vw,49px); line-height: 1.1; }
.cafe-demo-copy h2 em { color: #c4dccb; }
.cafe-demo-copy > p { color: #e0d2c6; line-height: 1.8; }
.cafe-price-callout { display: grid; gap: 4px; margin: 22px 0; border-left: 3px solid #c4dccb; background: rgba(255,255,255,.08); padding: 14px 17px; }
.cafe-price-callout > span:first-child { color: #c6d4c9; font-size: 12px; }
.cafe-price-callout strong { color: #fff9f1; font-size: clamp(26px,3vw,34px); line-height: 1.15; }
.cafe-price-callout strong small { font-size: 14px; font-weight: 500; }
.cafe-price-callout > span:last-child { color: #ded2c6; font-size: 11px; line-height: 1.5; }
.cafe-demo-points { display: grid; gap: 10px; margin: 21px 0; padding: 0; list-style: none; }
.cafe-demo-points li { color: var(--color-on-dark); font-size: 14px; }
.cafe-demo-points li::before { margin-right: 9px; color: #b9d3c2; content: "✓"; }
.cafe-demo-copy .cafe-demo-small { border-top: 1px solid rgba(255,255,255,.17); padding-top: 15px; color: #d2c1b2; font-size: 12px; }
.cafe-demo-copy .cafe-talk-link { display: inline-block; margin-top: 12px; color: #d7e5dc; }
.cafe-demo-card { border: 1px solid rgba(255,255,255,.68); border-radius: 20px; background: var(--color-surface); box-shadow: 0 22px 60px rgba(23,45,37,.22); color: var(--cafe-ink); padding: clamp(22px,3.5vw,36px); }
.cafe-demo-card h3 { margin: 0 0 5px; font: 400 28px/1.2 Georgia,"Times New Roman",serif; }
.cafe-demo-card .cafe-form-intro { margin: 0 0 18px; color: var(--cafe-muted); font-size: 13px; }
.cafe-demo-form { display: grid; gap: 12px; }
.cafe-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cafe-form-field { display: grid; min-width: 0; gap: 5px; }
.cafe-form-field label { color: #554a40; font-size: 12px; font-weight: 650; }
.cafe-form-field input,.cafe-form-field select,.cafe-form-field textarea { width: 100%; min-width: 0; min-height: 43px; border: 1px solid #e4dcd1; border-radius: 8px; outline: none; background: #fffefa; color: #30251f; font: inherit; font-size: 13px; padding: 10px 11px; }
.cafe-form-field textarea { min-height: 76px; resize: vertical; }
.cafe-form-field input:focus,.cafe-form-field select:focus,.cafe-form-field textarea:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(36,92,69,.12); }
.cafe-form-field input::placeholder { color: #a59b90; }
.cafe-form-field span.field-validation-error { color: #a52a2a; font-size: 11px; }
.cafe-demo-form > .cafe-consent { display: flex; width: 100%; min-width: 0; align-items: flex-start; gap: 10px; margin: 4px 0; color: var(--cafe-muted); font-size: 12px; font-weight: 400; line-height: 1.55; }
.cafe-demo-form > .cafe-consent input[type="checkbox"] { display: block; width: 18px; min-width: 18px; height: 18px; flex: 0 0 18px; margin: 1px 0 0; padding: 0; accent-color: var(--color-primary); }
.cafe-demo-form > .cafe-consent span { display: block; min-width: 0; flex: 1 1 auto; overflow-wrap: normal; }
.cafe-demo-form .cafe-submit { display: flex; width: 100%; justify-content: center; margin-top: 2px; }
.cafe-demo-form > small { color: #8c8177; font-size: 10px; text-align: center; }
.cafe-demo-card .validation-summary-errors { margin: 0 0 14px; border: 1px solid #edc7c2; border-radius: 8px; background: #fff2ef; color: #8b2922; padding: 10px 13px; }
.cafe-demo-card .validation-summary-errors p { margin: 0 0 4px; font-weight: 700; }
.cafe-demo-card .validation-summary-errors ul { margin: 0; padding-left: 18px; font-size: 12px; }
.cafe-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

.cafe-audience { background: var(--cafe-paper); }
.cafe-audience-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.cafe-audience-grid article { border: 1px solid #ece5da; border-radius: 14px; background: #fffefa; padding: 20px 16px; }
.cafe-audience-grid h3 { margin: 15px 0 7px; font-size: 14px; line-height: 1.4; }
.cafe-audience-grid p { margin: 0; color: var(--cafe-muted); font-size: 12px; line-height: 1.7; }
.cafe-audience-grid .text-link { display: inline-block; margin-top: 11px; font-size: 12px; }
.cafe-workflow { background: var(--color-soft); }
.cafe-workflow .section-heading { margin: 0 auto 38px; }
.cafe-workflow .section-heading h2 { color: var(--cafe-ink); }
.cafe-workflow .section-heading p { color: var(--cafe-muted); }
.cafe-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.cafe-steps li { position: relative; border-top: 1px solid #d9cbb9; padding: 19px 10px 0 0; }
.cafe-steps li > span { color: var(--cafe-caramel-dark); font: italic 14px Georgia,serif; }
.cafe-steps h3 { margin: 13px 0 8px; font: 400 19px/1.35 Georgia,"Times New Roman",serif; }
.cafe-steps p { margin: 0; color: var(--cafe-muted); font-size: 13px; line-height: 1.7; }
.cafe-workflow-cta { margin-top: 30px; text-align: center; }
.cafe-faq { background: var(--cafe-paper); }
.cafe-faq-heading { max-width: 720px; margin: 0 auto 36px; text-align: center; }
.cafe-faq-heading h2 { margin: 12px 0; font-size: clamp(32px,4vw,44px); line-height: 1.15; }
.cafe-faq-heading > p { color: var(--cafe-muted); }
.cafe-faq-heading .text-link { display: inline-block; margin-top: 8px; }
.cafe-faq .faq-list { max-width: 900px; margin: 0 auto; }
.cafe-faq .faq-list { border-top: 1px solid var(--cafe-line); }
.cafe-faq .faq-list details { margin: 0; border: 0; border-bottom: 1px solid var(--cafe-line); border-radius: 0; background: transparent; padding: 0; }
.cafe-faq .faq-list summary { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 15px; color: #3b3028; font-size: 15px; font-weight: 650; list-style: none; cursor: pointer; }
.cafe-faq .faq-list summary::-webkit-details-marker { display: none; }
.cafe-faq .faq-list summary span { color: #9c7558; font-size: 21px; transition: transform .18s ease; }
.cafe-faq .faq-list details[open] summary span { transform: rotate(45deg); }
.cafe-faq .faq-list details p { margin: 0; padding: 0 25px 17px 0; color: var(--cafe-muted); font-size: 14px; line-height: 1.75; }
.cafe-final-cta { background: radial-gradient(ellipse at 50% 120%,rgba(36,92,69,.45),transparent 48%),var(--color-dark); padding: 74px 0 80px; text-align: center; }
.cafe-final-cta .eyebrow { color: #b9d3c2; }
.cafe-final-cta h2 { margin: 13px 0; color: var(--color-on-dark); font-size: clamp(36px,5vw,52px); line-height: 1.12; }
.cafe-final-cta h2 em { color: #c4dccb; }
.cafe-final-cta p { max-width: 650px; margin: 0 auto; color: #d2e0d6; line-height: 1.75; }
.cafe-final-cta .button-row { justify-content: center; margin-top: 24px; }
.cafe-solution-page .cafe-button-light { border-color: var(--color-on-dark); background: var(--color-on-dark); color: var(--color-dark); }
.cafe-solution-page .cafe-button-outline { border-color: rgba(255,255,255,.42); color: var(--color-on-dark); }

@media(max-width:1000px) {
    .cafe-hero-grid { gap: 30px; }
    .cafe-challenge-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .cafe-audience-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .cafe-demo-grid { gap: 35px; }
    .cafe-solution-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .cafe-solution-card { display: grid; grid-template-columns: .8fr 1.2fr; }
    .cafe-solution-visual { min-height: 100%; }
}
@media(max-width:760px) {
    .cafe-solution-page .container { width: calc(100% - 32px); }
    .cafe-hero { padding: 18px 0 45px; }
    .cafe-hero .breadcrumbs { margin-bottom: 28px; }
    .cafe-hero-grid { grid-template-columns: 1fr; gap: 27px; }
    .cafe-hero-copy h1 { max-width: 600px; font-size: clamp(37px,9vw,52px); }
    .cafe-hero-copy .cafe-hero-lead { font-size: 17px; }
    .cafe-counter-art { min-height: 355px; border-radius: 150px 150px 16px 16px; }
    .cafe-art-window { top: 52px; left: 8%; width: 38%; height: 120px; }
    .cafe-art-shelf { top: 57px; right: 7%; transform: scale(.82); transform-origin: right top; }
    .cafe-art-barista { left: 31%; transform: scale(.84); transform-origin: bottom center; }
    .cafe-art-counter { height: 133px; }
    .cafe-art-machine { right: 24%; bottom: 48px; transform: scale(.83) rotate(-4deg); transform-origin: bottom center; }
    .cafe-art-menu-board { right: 24%; bottom: 48px; transform: scale(.83) rotate(-4deg); transform-origin: bottom center; }
    .cafe-art-phone { right: 6%; bottom: 44px; transform: scale(.82) rotate(7deg); transform-origin: bottom right; }
    .cafe-section { padding: 61px 0; }
    .cafe-rhythm-grid,.cafe-demo-grid { grid-template-columns: 1fr; gap: 25px; }
    .cafe-rhythm-grid h2 { max-width: 550px; font-size: clamp(32px,8vw,42px); }
    .cafe-solution-overview { gap: 10px; }
    .cafe-overview-card { padding: 10px; }
    .cafe-section-heading { align-items: flex-start; flex-direction: column; gap: 11px; margin-bottom: 25px; }
    .cafe-section-heading h2 { font-size: clamp(30px,8vw,40px); }
    .cafe-challenge-grid { gap: 10px; }
    .cafe-challenge-card { min-height: 225px; padding: 16px; }
    .cafe-challenge-card h3 { font-size: 14px; }
    .cafe-challenge-card p { font-size: 12px; }
    .cafe-solution-card { grid-template-columns: 1fr; }
    .cafe-solution-visual { min-height: 220px; }
    .cafe-solution-copy { padding: 25px 21px 27px; }
    .cafe-solution-copy h3 { font-size: 29px; }
    .cafe-demo-grid { gap: 25px; }
    .cafe-demo-copy h2 { font-size: clamp(34px,8vw,45px); }
    .cafe-demo-card { padding: 23px 18px; }
    .cafe-audience-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
    .cafe-audience-grid article { padding: 16px 13px; }
    .cafe-audience-grid h3 { font-size: 13px; }
    .cafe-audience-grid p { font-size: 11px; }
    .cafe-steps { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px 15px; }
    .cafe-faq-heading h2 { font-size: 36px; }
    .cafe-final-cta { padding: 60px 0 65px; }
    .cafe-final-cta h2 { font-size: clamp(34px,8vw,46px); }
}
@media(max-width:420px) {
    .cafe-solution-page .container { width: calc(100% - 32px); }
    .cafe-hero-copy .button-row { align-items: stretch; flex-direction: column; }
    .cafe-hero-copy .button-row .button { justify-content: center; }
    .cafe-counter-art { min-height: 305px; }
    .cafe-art-window { top: 48px; height: 100px; border-width: 6px; }
    .cafe-art-shelf { top: 50px; right: 4%; transform: scale(.68); }
    .cafe-art-plant { transform: scale(.8); transform-origin: bottom left; }
    .cafe-art-barista { bottom: 84px; left: 29%; transform: scale(.68); }
    .cafe-art-counter { height: 115px; }
    .cafe-art-machine { right: 22%; bottom: 41px; transform: scale(.66) rotate(-4deg); }
    .cafe-art-menu-board { right: 22%; bottom: 41px; transform: scale(.66) rotate(-4deg); }
    .cafe-art-phone { right: 4%; bottom: 38px; transform: scale(.67) rotate(7deg); }
    .cafe-challenge-card { min-height: 240px; padding: 13px; }
    .cafe-challenge-card h3 { font-size: 13px; }
    .cafe-solution-overview { grid-template-columns: 1fr; }
    .cafe-overview-card { grid-template-columns: 90px 1fr; align-items: center; column-gap: 12px; }
    .cafe-overview-visual { grid-column: 1; grid-row: span 2; min-height: 72px; }
    .cafe-overview-card > strong,.cafe-overview-card > span:last-child { grid-column: 2; }
    .cafe-overview-menu { padding: 8px; }
    .cafe-form-row { grid-template-columns: 1fr; }
    .cafe-steps { gap: 20px 12px; }
    .cafe-steps h3 { font-size: 17px; }
    .cafe-faq .faq-list summary { font-size: 14px; }
    .cafe-final-cta .button-row { align-items: stretch; flex-direction: column; }
}
@media(prefers-reduced-motion:reduce) {
    .cafe-solution-page *, .cafe-solution-page *::before, .cafe-solution-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

.cafe-solution-page .container { width:min(1440px,calc(100% - 48px)); }
.cafe-solution-page .cafe-hero { padding:16px 0 48px; background:radial-gradient(ellipse at 90% 25%,#dfede2,transparent 65%),#fffdf8; }
.cafe-solution-page .cafe-hero .breadcrumbs { margin-bottom:24px; }
.cafe-solution-page .cafe-hero-grid { grid-template-columns:1fr 1fr; gap:48px; }
.cafe-solution-page .cafe-hero-copy { max-width:650px; }
.cafe-solution-page .cafe-hero-copy h1 { font-size:clamp(36px,3.7vw,56px); line-height:1.1; }
.cafe-solution-page .cafe-hero-copy > p { color:#53655b; font-size:15px; line-height:1.7; }
.cafe-solution-page .cafe-hero-copy .cafe-hero-lead { color:#245c45; font-size:19px; font-weight:600; }
.cafe-hero-visual { position:relative; min-width:0; }
.cafe-hero-visual > img { display:block; width:100%; height:430px; border-radius:24px; object-fit:cover; box-shadow:0 24px 64px #17432b14; }
.cafe-hero-menu { position:absolute; right:20px; bottom:46px; width:220px; border:1px solid #dce7df; border-radius:18px; background:#fff; box-shadow:0 16px 40px #17432b26; padding:12px; }
.cafe-hero-phone { display:grid; gap:9px; border:1px solid #e2e9e2; border-radius:12px; background:#f9fbf7; padding:14px; }
.cafe-hero-phone > span { color:#245c45; font-size:9px; font-weight:700; letter-spacing:.1em; }
.cafe-hero-phone > strong { color:#20352a; font-size:16px; }
.cafe-hero-phone > i { display:flex; justify-content:space-between; gap:8px; color:#53655b; font-size:11px; font-style:normal; }
.cafe-hero-phone > i b { color:#245c45; }
.cafe-hero-phone > small { color:#6a796d; font-size:9px; }
.cafe-hero-caption { position:absolute; bottom:17px; left:20px; color:white; font-size:11px; text-shadow:0 1px 5px #0009; }
.cafe-solution-page .cafe-button-primary,.cafe-solution-page .cafe-submit { border-color:#245c45; background:#245c45; color:white; }
.cafe-solution-page .cafe-button-primary:hover,.cafe-solution-page .cafe-submit:hover { border-color:#194a35; background:#194a35; }
.cafe-solution-page .cafe-rhythm-grid > div:last-child p { color:#53655b; }
.cafe-solution-page .cafe-solution-overview { gap:18px; }
.cafe-solution-page .cafe-overview-card { min-height:190px; border-color:#dce7df; border-radius:18px; background:#fff; padding:18px; }
.cafe-solution-page .cafe-overview-visual { min-height:110px; }
.cafe-solution-page .cafe-overview-card > strong { font-size:16px; }
.cafe-solution-page .cafe-challenges { background:#eff5ef; }
.cafe-solution-page .cafe-challenge-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.cafe-solution-page .cafe-challenge-card { min-height:195px; border-color:#dce7df; border-radius:18px; background:white; padding:22px; }
.cafe-solution-page .cafe-card-icon { background:#e4f0e7; color:#245c45; }
.cafe-solution-page .cafe-card-icon svg { width:23px; height:23px; }
.cafe-solution-page .cafe-card-number { color:#63776a; }
.cafe-solution-page .cafe-challenge-card h3 { font-size:16px; }
.cafe-solution-page .cafe-challenge-card p { color:#53655b; font-size:13px; }
.cafe-solution-page .cafe-solutions { background:#fff; }
.cafe-solution-page .cafe-solution-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.cafe-solution-page .cafe-solution-card { border-color:#dce7df; border-radius:20px; box-shadow:0 12px 28px #20432a08; }
.cafe-solution-page .cafe-solution-visual { display:grid; grid-template-columns:1fr; min-height:215px; place-items:center; padding:0; background:#eaf2e7; }
.cafe-solution-page .cafe-solution-visual > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.66; }
.cafe-solution-page .cafe-solution-visual::after { position:absolute; inset:0; background:linear-gradient(120deg,#eff5ef55,#eaf2e7a8); content:""; }
.cafe-solution-page .cafe-solution-visual > span { position:absolute; z-index:1; top:15px; left:17px; color:#245c45; font-size:10px; font-weight:700; letter-spacing:.12em; }
.cafe-solution-page .cafe-mini-screen { z-index:1; display:flex; width:min(225px,80%); min-height:112px; flex-direction:column; gap:9px; border:1px solid rgba(255,255,255,.9); border-radius:12px; background:rgba(255,253,248,.93); box-shadow:0 12px 28px rgba(69,49,33,.13); padding:17px; }
.cafe-solution-page .cafe-mini-screen b { color:#245c45; font-size:8px; letter-spacing:.1em; }
.cafe-solution-page .cafe-mini-screen i { width:78%; height:5px; border-radius:4px; background:#e4ded5; }
.cafe-solution-page .cafe-mini-screen i:nth-of-type(2) { width:62%; }
.cafe-solution-page .cafe-mini-screen small { color:#20352a; font-family:inherit; font-size:14px; font-weight:650; }
.cafe-solution-page .cafe-solution-copy { padding:24px; }
.cafe-solution-page .cafe-solution-copy h3 { font-size:23px; font-weight:600; line-height:1.25; }
.cafe-solution-page .cafe-solution-copy > p { color:#53655b; font-size:13px; }
.cafe-solution-page .cafe-best-for { min-height:65px; border-color:#438760; }
.cafe-solution-page .cafe-best-for strong,.cafe-solution-page .cafe-best-for span { color:#53655b; }
.cafe-solution-page .cafe-solution-copy > .text-link { margin-top:15px; }
.cafe-solution-page .cafe-demo-section { background:#eaf2e7; color:#20352a; }
.cafe-solution-page .cafe-demo-copy .eyebrow { color:#245c45; }
.cafe-solution-page .cafe-demo-copy h2 { color:#20352a; }
.cafe-solution-page .cafe-demo-copy h2 em { color:#438760; }
.cafe-solution-page .cafe-demo-copy > p { color:#53655b; }
.cafe-solution-page .cafe-price-callout { border-color:#438760; border-radius:14px; background:#fff; padding:18px 20px; }
.cafe-solution-page .cafe-price-callout > span:first-child { color:#53655b; }
.cafe-solution-page .cafe-price-callout strong { color:#245c45; font-size:clamp(30px,3.2vw,40px); }
.cafe-solution-page .cafe-price-callout > span:last-child { color:#53655b; font-size:12px; }
.cafe-solution-page .cafe-demo-copy .cafe-demo-small { border-color:#d0dfd2; color:#53655b; }
.cafe-solution-page .cafe-demo-copy .cafe-talk-link { color:#245c45; }
.cafe-solution-page .cafe-demo-card { border-color:#dce7df; border-radius:22px; box-shadow:0 16px 40px #17432b0d; }
.cafe-solution-page .cafe-demo-card h3 { font-size:24px; font-weight:600; }
.cafe-solution-page .cafe-form-field label { color:#20352a; }
.cafe-solution-page .cafe-form-field input,.cafe-solution-page .cafe-form-field select,.cafe-solution-page .cafe-form-field textarea { border-color:#dce7df; border-radius:10px; background:#fff; color:#20352a; font-size:14px; }
.cafe-solution-page .cafe-audience { background:#fff; }
.cafe-solution-page .cafe-audience-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.cafe-solution-page .cafe-audience-grid article { overflow:hidden; border-color:#dce7df; border-radius:18px; background:#fff; padding:0; }
.cafe-solution-page .cafe-audience-grid article > a { display:flex; height:100%; flex-direction:column; color:inherit; text-decoration:none; }
.cafe-solution-page .cafe-audience-grid article img { display:block; width:100%; height:150px; object-fit:cover; }
.cafe-solution-page .cafe-audience-grid h3 { margin:16px 18px 8px; font-size:16px; }
.cafe-solution-page .cafe-audience-grid p { flex:1; margin:0 18px 14px; color:#53655b; font-size:13px; }
.cafe-solution-page .cafe-audience-grid .text-link { margin:0 18px 18px; color:#245c45; }
.cafe-solution-page .cafe-workflow { background:#eff5ef; }
.cafe-solution-page .cafe-workflow .section-heading { margin-bottom:38px; }
.cafe-solution-page .cafe-steps li { border-color:#c9d9cb; }
.cafe-solution-page .cafe-steps li > span { display:inline-grid; width:38px; height:38px; place-items:center; border-radius:50%; background:#e4f0e7; color:#245c45; font-style:normal; font-weight:700; }
.cafe-solution-page .cafe-steps li > svg { display:block; width:30px; height:30px; margin:14px 0 10px; color:#245c45; }
.cafe-solution-page .cafe-steps h3 { font-family:inherit; font-size:17px; font-weight:650; }
.cafe-solution-page .cafe-steps p { color:#53655b; }
.cafe-solution-page .cafe-faq { background:#fff; }
.cafe-solution-page .cafe-faq .faq-list { border-color:#dce7df; }
.cafe-solution-page .cafe-faq .faq-list details { border-color:#dce7df; }
.cafe-solution-page .cafe-faq .faq-list summary { color:#20352a; }
.cafe-solution-page .cafe-faq .faq-list summary span { color:#245c45; }
.cafe-solution-page .cafe-faq .faq-list details p { color:#53655b; }
.cafe-solution-page :is(a,button,select,summary):focus-visible { outline:3px solid #245c45; outline-offset:4px; }
@media(max-width:1000px) {
    .cafe-solution-page .cafe-solution-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .cafe-solution-page .cafe-solution-card { display:flex; }
    .cafe-solution-page .cafe-solution-visual { min-height:190px; }
    .cafe-solution-page .cafe-audience-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
    .cafe-solution-page .container { width:calc(100% - 32px); }
    .cafe-solution-page .cafe-hero-grid { grid-template-columns:1fr; gap:25px; }
    .cafe-hero-visual > img { height:350px; }
    .cafe-solution-page .cafe-solution-list { grid-template-columns:1fr; }
    .cafe-solution-page .cafe-solution-card { display:flex; }
    .cafe-solution-page .cafe-solution-visual { min-height:210px; }
    .cafe-solution-page .cafe-steps { grid-template-columns:1fr; max-width:620px; margin-inline:auto; gap:0; }
    .cafe-solution-page .cafe-steps li { min-height:150px; border-top:0; border-left:1px solid #c9d9cb; padding:0 0 25px 66px; }
    .cafe-solution-page .cafe-steps li > span { position:absolute; left:-20px; top:0; }
    .cafe-solution-page .cafe-steps li > svg { margin:0 0 10px; }
}
@media(max-width:520px) {
    .cafe-solution-page .cafe-hero-copy .button-row { align-items:stretch; flex-direction:column; }
    .cafe-solution-page .cafe-hero-copy .button-row .button { justify-content:center; }
    .cafe-hero-visual > img { height:300px; }
    .cafe-hero-menu { right:10px; bottom:40px; width:195px; }
    .cafe-solution-page .cafe-challenge-grid,.cafe-solution-page .cafe-audience-grid { grid-template-columns:1fr; }
    .cafe-solution-page .cafe-challenge-card { min-height:0; }
    .cafe-solution-page .cafe-audience-grid article img { height:180px; }
    .cafe-solution-page .cafe-form-row { grid-template-columns:1fr; }
    .cafe-solution-page .cafe-final-cta .button-row { align-items:stretch; flex-direction:column; }
}
