/* Horizon, une interface de service lisible et utilisable au clavier. */
:root{--ink:#12342c;--dark:#102f28;--green:#167557;--lime:#d4ef79;--soft:#f3f5ed;--line:#dce3d5}
.control{background:#f5f6f0;box-shadow:none}
.control:before{background:#d4ef79;height:5px}
.brand-logo{box-shadow:none;width:72px;height:72px}
.signup-switcher{gap:8px;margin-bottom:24px}
.role-entry{box-shadow:none;border:1px solid #d3dfd2;background:white}
.control h1{font-size:clamp(2.25rem,3.4vw,3.2rem);line-height:1.03;letter-spacing:-.065em;max-width:440px;margin:12px 0}
.intro{color:#52645a;line-height:1.6}
.eyebrow{color:#456c53;letter-spacing:.16em;font-size:.7rem}
.search-card{background:#fff;border:1px solid #dce3d5;border-radius:24px;box-shadow:0 8px 24px #163b2710}
.locate,.confirm,.order-nearest{background:#153e31;box-shadow:none}
.map-select-button{background:#f1f5e5;color:#204b36;border:1px solid #c9d9b8}
.hz-hub{border-radius:24px;background:#153e31;color:#fff;margin:24px 0 16px;padding:22px;position:relative;overflow:hidden}
.hz-hub:after{content:'';width:100px;height:100px;position:absolute;right:-55px;top:-50px;border-radius:50%;border:16px solid #d4ef7955;pointer-events:none}
.hz-kicker{display:block;font-size:.65rem;font-weight:800;letter-spacing:.18em;color:#d4ef79;margin-bottom:8px}
.hz-hub h2{font-size:1.45rem;letter-spacing:-.03em;line-height:1.2;margin:0 0 10px;font-weight:700}
.hz-hub p{font-size:.8rem;line-height:1.5;color:#d7e6da;margin:0 0 18px}
.hz-actions{display:flex;flex-wrap:wrap;gap:8px}
.hz-action{border:1px solid #e1e8d9;background:#fff;color:#173c30;min-height:44px;padding:11px 15px;border-radius:13px;font-weight:750;cursor:pointer;font-size:.85rem;flex:1}
.hz-primary{background:#d4ef79;border-color:#d4ef79;color:#173625}
.hz-prepared{display:block;font-size:.76rem;line-height:1.4;margin-top:10px;color:#d4ef79}
.hz-location{border:1px solid #cdddc4;background:#eff4e5;border-radius:18px;margin:16px 0;padding:16px}
.hz-location[data-state=attention]{background:#fff4dc;border-color:#e4c382}
.hz-location strong{font-size:.92rem;display:block}
.hz-location p{font-size:.76rem;line-height:1.5;margin:5px 0 12px;color:#486051}
.hz-location .hz-action{background:transparent;padding:8px;font-size:.76rem;border-color:#c3d3ba}
.hz-connection{background:#fff0d5;color:#6b4308;padding:14px;border-radius:12px;margin:12px 0;font-weight:650}
.hz-dialog{border:1px solid #dce3d5;border-radius:28px;width:min(720px,calc(100% - 24px));max-height:90dvh;padding:26px;color:#12342c;background:#f7f8f2;box-shadow:0 24px 100px #08271950}
.hz-dialog::backdrop{background:#09271d99;backdrop-filter:blur(4px)}
.hz-dialog-top{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:18px}
.hz-dialog h2{margin:0;font-size:1.65rem;line-height:1.15;letter-spacing:-.04em}
.hz-dialog .hz-kicker{color:#42664d}
.hz-close{width:44px;height:44px;flex-shrink:0;background:#e5ebdb;color:#173c30;border:0;border-radius:50%;font-size:26px;cursor:pointer}
.hz-dialog label{font-size:.86rem;font-weight:700}
.hz-input{width:100%;min-height:48px;border:1px solid #cbd8c4;border-radius:13px;padding:12px;background:#fff;color:#143a2c;margin:8px 0 16px;font:inherit}
.hz-families{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.hz-chip{padding:10px 13px;border:1px solid #cad6c4;border-radius:22px;background:#fff;color:#2b533d;min-height:44px;cursor:pointer}
.hz-chip[aria-pressed=true]{background:#173e31;color:#fff;border-color:#173e31}
.hz-count,.hz-help{font-size:.78rem;color:#566951;line-height:1.6}
.hz-services{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.hz-service{display:flex;align-items:center;gap:10px;text-align:left;padding:16px 12px;min-height:92px;background:#fff;border:1px solid #dae2d0;border-radius:16px;color:#153b2b;cursor:pointer}
.hz-service:hover,.hz-service[aria-pressed=true]{border-color:#326444;background:#f0f6df}
.hz-icon{background:#eaf1dd;display:grid;place-items:center;border-radius:12px;width:40px;height:40px;font-size:24px;flex-shrink:0}
.hz-service-copy{flex:1;min-width:0}.hz-service strong{font-size:.88rem;display:block;line-height:1.3}.hz-service small{font-size:.72rem;display:block;color:#53634c;margin-top:5px}
.hz-availability{font-size:.65rem;font-weight:750}.hz-empty{grid-column:1/-1;padding:20px;border:1px dashed #c7d5c1;border-radius:12px}
.hz-products{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.hz-product{display:flex;gap:10px;border:1px solid #d4dfcb;border-radius:12px;background:white;padding:12px;align-items:start;cursor:pointer}
.hz-product input{width:20px;height:20px;accent-color:#235e40;flex-shrink:0}
.hz-product strong,.hz-product small{display:block;line-height:1.35}.hz-product strong{font-size:.8rem}.hz-product small{font-weight:400;font-size:.72rem;color:#5b6d54;margin-top:4px}
.hz-confirm-location{display:flex;align-items:start;gap:10px;padding:15px;background:#eff4df;border:1px solid #cbdab7;border-radius:12px;margin:16px 0;font-size:.9rem;cursor:pointer}
.hz-confirm-location input{min-width:22px;width:22px;height:22px;accent-color:#235e40}
[hidden]{display:none!important}
@media(min-width:1100px){.app{grid-template-columns:480px minmax(0,1fr)}.control{padding-left:32px;padding-right:32px}}
@media(max-width:600px){.hz-dialog{padding:20px 16px;border-radius:22px}.hz-services,.hz-products{grid-template-columns:1fr}.hz-service{min-height:72px}.control h1{font-size:2.5rem}.hz-hub{margin-top:18px}.hz-hub h2{font-size:1.4rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
