/* Site chrome and chapter boundaries. Existing Plain roles and warm palette remain. */
:root body .site-header{border-bottom:1px solid var(--line)}
/* Openings without breadcrumbs retain a deliberate pause below the header. */
:root{--page-opening-space:48px}
:root body #main>:is(.launch-product.product,.launch-hospitality-opening){padding-top:var(--page-opening-space)}
@media(max-width:800px){:root{--page-opening-space:32px}}
:root body .launch-notice{background:var(--stone);border-bottom:1px solid var(--line)}
:root body .launch-notice-inner{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;min-height:44px;padding:0;text-align:center}
:root body .launch-notice-inner p{grid-column:2;grid-row:1;margin:0;max-width:none;font:400 12px/1.5 var(--sans);text-wrap:balance}
:root body .launch-notice-inner p>a{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;text-wrap:balance}
:root body .launch-notice-inner p>a:focus-visible{outline:none}
:root body .launch-notice-inner p>a:focus-visible:after{content:"";position:absolute;inset:3px -6px;border:2px solid var(--ink);pointer-events:none}
:root body .launch-dismiss-slot{grid-column:3;grid-row:1;position:static;align-self:center;width:44px;height:44px}
:root body .launch-dismiss{width:44px;height:44px;padding:0;color:var(--ink)}
:root body .launch-dismiss svg{display:block;width:14px;height:14px}
:root body .launch-dismiss:hover{color:var(--muted)}
:root body .launch-dismiss:focus-visible{outline:2px solid var(--ink);outline-offset:-5px}

/* One inset rule per new chapter, on the same rail as its content. */
:root{--chapter-rule-width:min(var(--content),94%)}
#main>:is(.launch-chapter,.home-benefits,.home-system,.home-runtime,.home-without,.home-restored-questions,.product-specifications,.venue-benefit,.venue-practical,.launch-closer):where(:not(#home-close)){position:relative;border-top:0}
#main>:is(.launch-chapter,.home-benefits,.home-system,.home-runtime,.home-without,.home-restored-questions,.product-specifications,.venue-benefit,.venue-practical,.launch-closer):where(:not(#home-close))::before{content:'';display:block;position:absolute;inset:0 auto auto 50%;transform:translateX(-50%);width:var(--chapter-rule-width);height:0;border-top:1px solid var(--line);pointer-events:none}
/* The following chapter owns these shared boundaries. Avoid doubled rules. */
#main>.home-system,#main>.venue-practical{border-bottom:0}
/* The closing purchase panel has its own inset colored surface. */
#main>#home-close::before{content:none}
/* The fact band already supplies the boundary before In use. */
#main>#home-in-use::before{content:none}
@media(max-width:800px){:root{--chapter-rule-width:calc(100% - 40px)}}

/* Compact wordmark and a populated-bag signifier, with the existing hit target. */
:root body .site-header .brand img{width:88px}
:root body .site-header .bag-count{display:inline-grid;place-items:center;min-width:22px;height:22px;line-height:1;padding:0 5px}
:root body .site-header .bag-count.is-filled{border-radius:50%;background:var(--ink);color:var(--paper)}
:root body .bag-details .bag-conditions{margin:0;padding:4px 0 12px 16px;list-style:disc}
:root body .bag-details .bag-conditions>li{display:list-item;padding:0 0 0 4px;margin:0 0 12px!important}
:root body .bag-details .bag-conditions>li:last-child{margin-bottom:0!important}
:root body .bag-details .bag-conditions a{text-decoration:none}
:root body .bag-details .bag-conditions a:is(:hover,:focus-visible){text-decoration:underline}

/* Standalone guide and utility actions share one quiet outlined treatment. */
#main :is(.buyer-question-shortcuts,.product-routine-links,.launch-service-links){display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;margin:24px 0 0;padding:0}
#main :is(.buyer-question-shortcuts,.product-routine-links,.launch-service-links)>a{display:inline-flex;align-items:center;justify-content:center;gap:8px;max-width:100%;min-height:44px;margin:0;padding:10px 16px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink);font:400 13px/1.5 var(--sans);text-decoration:none;text-wrap:balance}
#main :is(.buyer-question-shortcuts,.product-routine-links,.launch-service-links)>a>.link-label{text-decoration:none;text-wrap:balance}
#main :is(.buyer-question-shortcuts,.product-routine-links,.launch-service-links)>a:is(:hover,:focus-visible){border-color:var(--ink);background:var(--stone);color:var(--ink);text-decoration:none}
#main :is(.buyer-question-shortcuts,.product-routine-links,.launch-service-links)>a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@media(max-width:800px){#main :is(.buyer-question-shortcuts,.product-routine-links,.launch-service-links){margin-top:16px}}

/* Mobile navigation owns a full viewport; the native modal makes the page inert. */
:root body .menu-toggle[hidden],:root body .mobile-menu[hidden]{display:none!important}
:root body .mobile-menu{inset:0;margin:0;padding:0;border:0;width:100%;max-width:none;height:100dvh;max-height:none;background:var(--ivory);color:var(--ink);overflow:hidden;overscroll-behavior:contain;opacity:0;transition:opacity 250ms cubic-bezier(.22,1,.36,1)}
:root body .mobile-menu[open]{display:flex;flex-direction:column}
:root body .mobile-menu.is-visible{opacity:1}
:root body .mobile-menu::backdrop{background:transparent}
:root body .mobile-menu-top{display:grid;grid-template-columns:minmax(64px,1fr) auto minmax(64px,1fr);align-items:center;flex-shrink:0;min-height:64px;padding:env(safe-area-inset-top,0px) 20px 0;border-bottom:1px solid var(--line)}
:root body .mobile-menu-top .brand{grid-column:2;grid-row:1;display:flex;align-items:center;min-height:44px}
:root body .mobile-menu-top .brand img{width:88px;height:auto}
:root body .menu-close{grid-column:1;grid-row:1;justify-self:start;min-width:44px;min-height:44px;padding:0;background:none;border:0;color:inherit;font:400 13px/1.5 var(--sans)}
:root body .mobile-menu-bag-slot{grid-column:3;grid-row:1;justify-self:end}
:root body .mobile-menu .bag-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;min-width:44px;margin:0;padding:0;font:400 13px/1.5 var(--sans)}
:root body .mobile-menu .bag-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;line-height:1}
:root body .mobile-menu .bag-count.is-filled{border-radius:50%;background:var(--ink);color:var(--paper)}
:root body .mobile-menu-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:32px 20px max(24px,env(safe-area-inset-bottom));scroll-padding-block:12px}
:root body .mobile-menu-primary{display:grid;align-content:start;gap:0}
:root body .mobile-menu-primary a{display:flex;align-items:center;min-height:64px;width:100%;max-width:100%;padding:8px 0;font:400 30px/1.2 var(--sans);letter-spacing:-.015em;text-decoration:none;text-wrap:balance}
:root body .mobile-menu-primary a[aria-current=page]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}
:root body .mobile-menu-support{display:grid;gap:24px;margin-top:auto;padding-top:40px}
:root body .mobile-menu-support nav{display:grid;justify-items:start}
:root body .mobile-menu-support a{display:flex;align-items:center;min-width:44px;min-height:44px;width:fit-content;max-width:100%;font:400 14px/1.5 var(--sans);text-decoration:none}
:root body .mobile-menu-email{color:var(--muted)}
:root body .mobile-menu a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
:root body .mobile-menu :is(a,button):focus-visible{outline:2px solid var(--ink);outline-offset:4px}
html.menu-open{overflow:hidden}
body.menu-open{position:fixed;top:var(--menu-scroll-offset,0);left:0;right:0;overflow:hidden}
@media(max-width:800px){
  :root body .site-header{display:grid;grid-template-columns:minmax(64px,1fr) auto minmax(64px,1fr);gap:0}
  :root body .site-header>.brand{grid-column:2;grid-row:1;display:flex;align-items:center;min-height:44px;justify-self:center}
  :root body .site-header>.menu-toggle{display:block;grid-column:1;grid-row:1;justify-self:start;order:0;min-width:44px;min-height:44px;margin:0;padding:0;text-align:left;font:400 13px/1.5 var(--sans)}
  :root body .site-header>.bag-toggle{grid-column:3;grid-row:1;justify-self:end;order:0;display:inline-flex;align-items:center;gap:8px;min-width:44px;min-height:44px;margin:0;padding:0;font:400 13px/1.5 var(--sans)}
  :root.menu-ready body .site-header>.nav{display:none}
  :root:not(.menu-ready) body .site-header{height:auto;min-height:64px;padding-top:10px}
  :root:not(.menu-ready) body .site-header>.nav{position:static;grid-column:1/-1;grid-row:2;display:flex;flex-wrap:wrap;flex-direction:row;gap:4px 20px;padding:0 0 10px;border:0}
  :root:not(.menu-ready) body .site-header>.nav a{padding:8px 0;min-width:44px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){:root body .mobile-menu{transition:none}}

/* Keep the active-page underline with the text, inside its full hit target. */
:root body .site-header>.nav a[aria-current=page]{border-bottom-color:transparent;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:4px}

/* Compact fine-pointer footer rhythm; retain every touch target and existing link column. */
@media(min-width:801px) and (hover:hover) and (pointer:fine){
 :root body footer.footer nav a{min-height:32px}
 :root body footer.footer h2{margin-bottom:8px}
 :root body footer.footer .footer-bottom{margin-top:32px}
}

@media(max-width:600px){
 :root body footer.footer{padding-top:24px}
 :root body footer.footer .footer-grid{row-gap:24px}
 :root body footer.footer .footer-bottom{margin-top:24px}
}

/* Touch input remains usable even when the desktop layout or a mouse is present. */
@media(any-pointer:coarse){:root body footer.footer nav a{min-height:44px}}
