/* Public marketing pages. Back-office styles are loaded separately. */
.public-site {
  --navy: #0a192c;
  --teal: #006a70;
  --mint: #a4e6cf;
  --paper: #f3f7f8;
  --public-line: #dbe6eb;
  --public-gutter: clamp(16px, 4vw, 44px);
  --public-space: clamp(46px, 7vw, 100px);
  background: #fff;
}
.public-site .container { width: min(100% - var(--public-gutter) * 2, 1200px); padding-inline: 0; }
.public-site #main { overflow-wrap: break-word; }
.public-site #main :is([id], section) { scroll-margin-top: 90px; }
.public-site #main:focus { outline: none; }
.public-site a:focus-visible, .public-site button:focus-visible, .public-site summary:focus-visible { outline: 3px solid #168c9a; outline-offset: 3px; }
.public-site .hero a:focus-visible, .public-site .site-footer a:focus-visible { outline-color: #7ff1e3; }
.public-site .section { padding-block: var(--public-space); }
.public-site .section.tight { padding-block: clamp(26px, 4vw, 48px); }
.public-site .bg-soft { background: var(--paper); }
.public-site .section-head { margin-bottom: clamp(24px, 4vw, 46px); }
.public-site h1, .public-site h2 { letter-spacing: -.045em; text-wrap: balance; }
.public-site h1 { font-size: clamp(2.25rem, 5.15vw, 4.75rem); line-height: 1.02; }
.public-site h2 { font-size: clamp(1.7rem, 3.25vw, 3.05rem); line-height: 1.13; }
.public-site .lead { font-size: clamp(1rem, 1.6vw, 1.18rem); line-height: 1.65; }
.public-site .eyebrow {
  display: inline-flex; align-items: center; gap: 8px; width: fit-content;
  background: #e6f4f1; color: #075957; padding: 8px 12px; border-radius: 6px;
  font-size: .72rem; font-weight: 800; line-height: 1.2;
}
.public-site .btn { min-height: 44px; line-height: 1.24; white-space: normal; text-align: center; }
.public-site .btn-cta { background: #a84206; }
.public-site .btn-cta:hover { background: #893404; }
.public-site .topbar .container { min-height: 36px; height: auto; flex-wrap: wrap; }
.public-site .site-header { background: #fff; backdrop-filter: none; }
.public-site .site-header .container { min-height: 70px; height: auto; gap: clamp(8px, 1.7vw, 24px); }
.public-site .brand img { width: auto; height: 43px; }
.public-site .site-nav { display: block; }
.public-site .nav-links { display: flex; gap: 3px; }
.public-site .nav-links > li > a, .nav-menu summary {
  display: inline-flex; align-items: center; gap: 7px; min-height: 44px;
  padding: 8px clamp(8px, 1.1vw, 15px); border-radius: 8px; color: #183047;
  font: inherit; font-size: .93rem; font-weight: 670; cursor: pointer;
}
.nav-menu { position: relative; }
.nav-menu summary { list-style: none; }
.nav-menu summary::-webkit-details-marker { display: none; }
.nav-menu summary:hover, .nav-menu summary.active, .nav-menu[open] summary { background: #e9f3f4; color: #00555b; }
.nav-menu summary i { font-size: .68rem; }
.nav-panel {
  position: absolute; inset: calc(100% + 9px) auto auto 0; z-index: 2;
  width: min(335px, 85vw); margin: 0; padding: 9px; list-style: none;
  background: white; border: 1px solid var(--public-line); border-radius: 16px;
  box-shadow: 0 20px 50px #0a192c26;
}
.public-site .nav-panel a { display: flex; gap: 12px; align-items: center; padding: 10px; }
.nav-panel a > i { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border-radius: 9px; color: #005c63; background: #e6f4f2; }
.nav-panel strong, .nav-panel small { display: block; }
.nav-panel small { color: #4f6374; font-weight: 500; font-size: .76rem; }
.public-site .site-header .burger { display: none; }
.public-site .site-header .nav-cta .btn { display: inline-flex; }
.public-site .drawer { width: min(92vw, 440px); height: 100%; height: 100dvh; padding: 18px 22px max(24px, env(safe-area-inset-bottom)); }
.public-site .drawer:not(.open) { visibility: hidden; }
.public-site .drawer .drawer-top { margin-bottom: 3px; }
.public-site .drawer .burger { display: inline-flex; }
.public-site .drawer .brand { padding: 0; }
.public-site .drawer .drawer-label { margin: 15px 0 4px; color: #496274; font-weight: 750; }
.drawer-group { margin: 0; padding: 0 0 10px; list-style: none; border-bottom: 1px solid var(--public-line); }
.drawer-group a { display: flex; align-items: center; min-height: 44px; }
.public-site .hero {
  padding-block: clamp(46px, 7vw, 96px);
  background: radial-gradient(ellipse at 90% 0%, #166374 0%, transparent 62%), linear-gradient(123deg, #0a192c 12%, #11394d 100%);
}
.public-site .hero::after { display: none; }
.public-site .hero .eyebrow { color: #c3f1e3; background: #1b4251; }
.public-site .hero :is(.lead, .hero-copy > p) { color: #e2edf3; }
.public-site .hero .hero-2 { grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr); gap: clamp(24px, 5vw, 72px); }
.public-site .hero .hero-illus { border: 1px solid #ffffff33; }
.public-site .hero .hero-cta { justify-content: flex-start; }
.public-site .hero .hero-cta .btn { min-width: 0; }
.public-site .hero .hero-points { gap: 12px 20px; }
.public-site .hero .hero-points i { color: var(--mint); }
.public-site .hp-hero { background: radial-gradient(ellipse at 86% 0%, #276f61, transparent 63%), linear-gradient(130deg, #0a192c, #133f3b); }
.public-site .bp-hero { background: radial-gradient(ellipse at 80% 5%, #7e2939, transparent 68%), linear-gradient(132deg, #240d19, #4f1829); }
.public-site .bp-hero .lead { color: #fae8eb; }
.public-site .hospitality-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: clamp(20px, 4vw, 60px); }
.public-site .hospitality-hero-grid > * { min-width: 0; }
.public-site .hospitality-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.public-site .hospitality-gallery picture { display: block; min-width: 0; }
.public-site .hospitality-gallery .gallery-lead { grid-column: 1 / -1; }
.public-site .hospitality-gallery img, .public-site .photo-frame img { display: block; width: 100%; height: auto; object-fit: cover; border-radius: 14px; }
.public-site .hospitality-gallery img:first-child { aspect-ratio: 3 / 2; }
.public-site .hospitality-gallery .gallery-lead img { aspect-ratio: 16 / 9; }
.photo-frame { display: block; margin: 0; overflow: hidden; border-radius: 18px; background: #dce8e9; }
.public-site .photo-frame img { border-radius: inherit; aspect-ratio: 3 / 2; }
.bp-story { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(22px, 4vw, 55px); align-items: center; }
.bp-story .section-head { margin: 0; }
.public-site .hero .home-hero-grid { display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(0, .97fr); gap: clamp(26px, 5vw, 70px); align-items: center; }
.home-hero-copy h1 { margin: 0 0 20px; }
.home-hero-copy p { max-width: 36rem; }
.home-hero .home-media {
  margin: 0; position: relative; border: 1px solid #ffffff38; border-radius: 20px;
  background: #17364b; overflow: hidden;
}
.home-media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.home-media figcaption { position: absolute; inset: auto 12px 12px; background: #0a192ce8; color: #f7fbfc; width: fit-content; max-width: calc(100% - 24px); border-radius: 8px; padding: 8px 12px; font-size: .8rem; }
.home-hero .slide-controls { display: flex; align-items: center; justify-content: flex-end; gap: 3px; margin-top: 9px; }
.home-hero .slide-controls button {
  display: grid; place-items: center; width: 38px; height: 34px; padding: 0;
  background: transparent; border: 0; color: #c7e4e8; cursor: pointer; border-radius: 8px;
}
.home-hero .slide-controls button::before { content: ""; width: 9px; height: 9px; border: 1px solid currentColor; border-radius: 50%; }
.home-hero .slide-controls button[aria-pressed="true"]::before { background: var(--mint); border-color: var(--mint); }
.home-hero .slide-controls button:focus-visible { outline-color: #7ff1e3; }
.edition-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(14px, 2vw, 24px); }
@media (max-width: 1180px) { .edition-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
.edition-card {
  display: flex; flex-direction: column; min-width: 0; color: #183047; background: #fff;
  border: 1px solid var(--public-line); border-radius: 17px; overflow: hidden; box-shadow: 0 6px 22px #0b324a0a;
}
.edition-card:hover { border-color: #86bfc0; color: #183047; box-shadow: 0 12px 26px #0b324a14; }
.edition-card picture { display: block; background: #e8eff0; }
.edition-card img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.edition-card-body { display: flex; flex: 1; flex-direction: column; padding: clamp(16px, 2.3vw, 26px); }
.edition-card h3 { font-size: clamp(1.18rem, 2vw, 1.52rem); margin: 0 0 8px; }
.edition-card p { margin: 0 0 15px; }
.edition-card .edition-link { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; font-weight: 780; color: #005c63; }
.edition-label { display: inline-block; width: fit-content; margin-bottom: 10px; font-size: .72rem; text-transform: uppercase; letter-spacing: .09em; font-weight: 790; color: #005c63; }
.edition-card.butchery .edition-label, .edition-card.butchery .edition-link { color: #872438; }
.edition-card.chain .edition-label, .edition-card.chain .edition-link { color: #6a2c8c; }
.page-jump {
  background: #fff; border-bottom: 1px solid var(--public-line); padding: 10px 0;
}
.page-jump .container { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 16px; }
.page-jump strong { color: #122e42; padding-block: 8px; }
.page-jump a { color: #075c65; padding: 8px 9px; border-radius: 7px; font-size: .9rem; font-weight: 690; }
.page-jump a:hover { background: #e7f4f1; }
.public-site .service-index { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.service-index a {
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: clamp(15px, 2.5vw, 27px);
  background: #fff; border: 1px solid var(--public-line); border-radius: 14px; color: #1c3347;
}
.service-index a:hover { border-color: #86bfc0; background: #f9fcfc; }
.service-index strong { color: #005a62; font-size: 1.05rem; }
.service-index span { color: #496274; font-size: .91rem; }
.service-index i { font-size: 1.1rem; margin-bottom: 4px; color: #00757a; }
.public-site .card, .public-site .quote, .public-site .hw, .public-site .help-card {
  border-color: var(--public-line); border-radius: 16px; box-shadow: 0 6px 24px #123b5610;
}
.public-site :is(.hp-grid, .hp-kinds, .hp-steps, .hp-apps, .bp-grid, .bp-flow, .bp-hw, .bp-steps) { gap: clamp(12px, 2vw, 20px); }
.public-site :is(.hp-kind, .hp-card, .hp-app, .bp-card, .bp-flow > div, .bp-hw > div) { border-radius: 16px; border-color: var(--public-line); }
.public-site .cta-band {
  background: linear-gradient(114deg, #0b2032, #165259); color: #dcecef;
  border-radius: 20px; padding: clamp(24px, 5vw, 64px); box-shadow: none;
}
.public-site .cta-band p { color: #dcecef; }
.public-site .legal { max-width: none; }
.public-site .legal article, .public-site .legal .container > :is(h2,p,ul,ol) { max-width: 78ch; }
.public-site .legal h2 { font-size: clamp(1.3rem, 2.3vw, 1.85rem); margin-top: 1.45em; }
.public-site .legal p, .public-site .legal li { line-height: 1.75; }
.public-site .site-footer { background: #0a192c; color: #c6d6e1; padding-top: clamp(34px, 6vw, 72px); }
.public-site .site-footer .cols { grid-template-columns: minmax(0,1.35fr) repeat(3,minmax(0,1fr)); gap: clamp(18px, 3vw, 42px); }
.public-site .site-footer img { height: auto; width: min(155px,100%); margin: 0 0 12px; }
.public-site .site-footer h2 { color: #fff; font-size: .9rem; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 12px; }
.public-site .site-footer a { color: #d5e1e8; }
.public-site .site-footer a:hover { color: #a4e6cf; }
.public-site .footer-info { margin-top: 12px; }
.public-site .footer-bottom { border-top: 1px solid #ffffff2c; display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; padding-block: 18px; }
.public-site .footer-bottom a { display: inline-flex; padding: 0; }
.public-site .footer-legal { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.public-site .nav-install {
  width: 100%; padding: 12px 10px; margin-top: 5px; border: 0; border-top: 1px solid var(--public-line);
  background: #fff; color: #005a62; text-align: left; font: inherit; font-size: .87rem; font-weight: 750; cursor: pointer;
}
.nav-install i { margin-right: 7px; }
.public-site .nav-install:hover { background: #f3f8f8; }
.public-site .hero .lead a { color: #bcf2e4; text-decoration: underline; }
.public-site .catalog-filters { padding: clamp(14px, 2vw, 24px); background: #fff; border: 1px solid var(--public-line); border-radius: 14px; }
.public-site .catalog-filters a { min-height: 38px; }
.public-site .catalog-filters a.on { background: #005c63; border-color: #005c63; }
.catalog-group { margin-top: clamp(24px, 5vw, 55px); }
.catalog-group:first-child { margin-top: 0; }
.catalog-group > h2 { margin-bottom: 14px; font-size: clamp(1.38rem, 2.4vw, 2rem); }
.catalog-group .help-card h3 { margin: 5px 0 3px; color: #183047; font-size: 1.13rem; }
.public-site .industry-card { border-top: 4px solid #218183; }
.public-site .faq-content { max-width: 850px; }
.public-site .faq-content > h2 { margin: clamp(22px, 4vw, 42px) 0 14px; font-size: clamp(1.4rem, 2.6vw, 1.94rem); }
.public-site .faq-content > h2:first-child { margin-top: 0; }
.public-site .contact-layout { align-items: start; }
.public-site .contact-layout > div { min-width: 0; }
.public-site .contact-layout .field :is(input,select,textarea) { font-size: 16px; }
.public-site .legal > .container {
  padding: clamp(16px, 4vw, 48px); border: 1px solid var(--public-line); border-radius: 18px; background: #fff;
}
.public-site .legal h1 { font-size: clamp(2rem, 4.7vw, 3.6rem); }
.public-site .legal h2 { border-top: 1px solid var(--public-line); padding-top: 1em; }
.public-site .help-layout { gap: clamp(18px, 4vw, 40px); }
.public-site .help-article { border-radius: 16px; padding: clamp(16px, 3vw, 34px); background: #fff; border: 1px solid var(--public-line); }
.public-site .help-sidebar a { display: block; padding-block: 5px; }
.public-site .quote blockquote { margin: 0; }
@media (max-width: 1000px) {
  .public-site .site-header .site-nav { display: none; }
  .public-site .site-header .burger { display: inline-flex; flex: 0 0 44px; }
}
@media (max-width: 820px) {
  .public-site .hero .hero-2, .public-site .hero .home-hero-grid, .public-site .hospitality-hero-grid, .bp-story { grid-template-columns: minmax(0,1fr); }
  .public-site .hero .hero-illus-wrap { max-width: 620px; }
  .public-site .home-media img { aspect-ratio: 16 / 9; }
  .public-site .hero .hero-cta { width: 100%; }
  .public-site .site-footer .cols { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .public-site .hero h1 { max-width: 23ch; }
}
@media (max-width: 610px) {
  .edition-grid, .public-site .service-index { grid-template-columns: minmax(0,1fr); }
  .edition-card { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .edition-card img { height: 100%; aspect-ratio: auto; }
  .edition-card-body { padding: 14px; }
  .edition-card p { font-size: .9rem; }
  .edition-card h3 { font-size: 1.08rem; }
  .public-site .site-header .nav-cta .nav-sign-in { display: none; }
  .public-site .site-header .container { min-height: 60px; }
  .public-site .brand img { height: 36px; }
  .public-site .nav-cta { gap: 7px; }
  .public-site .nav-cta .btn { padding-inline: 10px; font-size: .81rem; }
  .public-site .hero .hero-cta { gap: 10px; }
  .public-site .hero .hero-cta .btn { padding-inline: 14px; }
  .public-site .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 365px) {
  .edition-card { display: flex; }
  .edition-card img { height: auto; aspect-ratio: 16 / 9; }
}
@media (prefers-reduced-motion: reduce) {
  .public-site *, .public-site *::before, .public-site *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
