/* site-nav */
site-nav {
        
        display: block;
        height: var(--nav-h, 72px);
      }
      @media (max-width: 1020px) {
  site-nav { height: var(--nav-h-mobile, 64px); }
      }
  site-nav *,
  site-nav *::before,
  site-nav *::after { box-sizing: border-box; }
  site-nav .nav {
        position: fixed;
        top: 0; left: 0; right: 0;
        z-index: 1000;
        height: 72px;
        min-height: 72px;
        max-height: 72px;
        background: var(--color-bg);
        border-bottom: 1px solid var(--color-border);
        font-family: 'ApercuPro', -apple-system, BlinkMacSystemFont,
                     'Helvetica Neue', Arial, sans-serif;
        color: var(--color-text);
        -webkit-font-smoothing: antialiased;
        display: flex;
        align-items: center;
      }
  site-nav .nav__inner {
        width: 100%;
        
        height: 72px;
        min-height: 72px;
        max-height: 72px;
        max-width: 1400px;
        margin: 0 auto;
        padding: 0 clamp(20px, 4vw, 56px);
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
      }
  site-nav .nav__logo {
        display: flex;
        align-items: center;
        flex-shrink: 0;
        text-decoration: none;
      }
  site-nav .nav__logo img {
        height: 32px;
        max-height: 32px;
        min-height: 32px;
        width: auto;
        display: block;
        max-width: none;
      }
  site-nav .nav__right {
        display: flex;
        align-items: center;
        gap: 36px;
      }
  site-nav .nav__links {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        align-items: center;
        gap: 36px;
      }
  site-nav .nav__link {
        font-size: 15px;
        color: var(--color-text-soft);
        text-decoration: none;
        letter-spacing: -0.005em;
        transition: color .2s ease;
        white-space: nowrap;
      }
  site-nav .nav__link:hover,
  site-nav .nav__link:focus-visible { color: var(--color-text-strong); outline: none; }
  site-nav .nav__link.is-active {
        color: var(--color-text-strong);
        font-weight: 600;
      }
  site-nav .nav__link.is-active:hover,
  site-nav .nav__link.is-active:focus-visible { color: var(--color-text-strong); }
  site-nav .nav__drawer .nav__link.is-active { color: var(--color-text-strong); }
  site-nav .nav__cta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: var(--color-accent);
        color: var(--color-on-accent);
        font-size: 14px;
        letter-spacing: -0.005em;
        padding: 8px 20px;
        border-radius: 999px;
        text-decoration: none;
        white-space: nowrap;
        transition: transform .2s ease;
      }
  site-nav .nav__cta:hover { transform: translateY(-1px); }
  site-nav .nav__toggle {
        display: none;
        background: transparent;
        border: 0;
        color: var(--color-text);
        width: 44px;
        height: 44px;
        padding: 0;
        margin-right: -8px;  
        cursor: pointer;
        align-items: center;
        justify-content: center;
        border-radius: 8px;
        flex-shrink: 0;
      }
  site-nav .nav__toggle:focus-visible {
        outline: 2px solid var(--color-accent);
        outline-offset: 2px;
      }
  site-nav .nav__toggle svg {
        width: 24px;
        height: 24px;
        stroke: currentColor;
        fill: none;
        stroke-width: 1.75;
        stroke-linecap: round;
      }
  site-nav .nav__toggle .icon-close { display: none; }
  site-nav .nav.is-open .nav__toggle .icon-menu { display: none; }
  site-nav .nav.is-open .nav__toggle .icon-close { display: block; }
  site-nav .nav__drawer {
        position: fixed;
        top: 64px;          
        left: 0; right: 0;
        max-height: calc(100dvh - 64px);
        overflow-y: auto;
        background: var(--color-bg);
        border-bottom: 1px solid var(--color-phone-inner-border);
        padding: 24px clamp(20px, 4vw, 56px) 32px;
        display: flex;
        flex-direction: column;
        gap: 4px;
        visibility: hidden;
        opacity: 0;
        transform: translateY(-8px);
        transition: opacity .25s ease, transform .25s ease, visibility .25s;
        z-index: 999;
      }
  site-nav .nav.is-open .nav__drawer {
        visibility: visible;
        opacity: 1;
        transform: translateY(0);
      }
  site-nav .nav__drawer .nav__links {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        width: 100%;
      }
  site-nav .nav__drawer .nav__link {
        display: block;
        font-size: 18px;
        color: var(--color-text);
        padding: 24px 0;
        border-bottom: 1px solid var(--color-phone-inner-border);
      }
  site-nav .nav__drawer .nav__cta {
        margin-top: 24px;
        padding: 8px 20px;
        font-size: 15px;
        align-self: flex-start;
      }

      
      @media (max-width: 1020px) {
  site-nav .nav,
  site-nav .nav__inner {
          height: 64px;
          min-height: 64px;
          max-height: 64px;
        }
  site-nav .nav__right { display: none; }
  site-nav .nav__toggle { display: inline-flex; }
      }
      @media (min-width: 1021px) {
  site-nav .nav__drawer { display: none; }
      }

      @media (prefers-reduced-motion: reduce) {
  site-nav .nav__drawer,
  site-nav .nav__cta { transition: none; }
      }

/* Without JavaScript, keep every primary link visible on narrow screens. */
@media (max-width: 1020px) {
  site-nav:not(:defined) { height: auto; }
  site-nav .nav:not(.is-enhanced) {
    position: static;
    height: auto;
    max-height: none;
  }
  site-nav .nav:not(.is-enhanced) .nav__inner {
    height: auto;
    max-height: none;
    flex-wrap: wrap;
    padding-block: 12px;
  }
  site-nav .nav:not(.is-enhanced) .nav__right,
  site-nav .nav:not(.is-enhanced) .nav__links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 18px;
  }
  site-nav .nav:not(.is-enhanced) .nav__toggle,
  site-nav .nav:not(.is-enhanced) .nav__drawer { display: none; }
}

/* site-footer */
site-footer {
        display: block;
        background: var(--color-bg);
        color: var(--color-text);
        font-family: 'ApercuPro', -apple-system, BlinkMacSystemFont,
                     'Helvetica Neue', Arial, sans-serif;
        font-size: 17px;
        line-height: 1.55;
        letter-spacing: -0.005em;
        -webkit-font-smoothing: antialiased;
      }
  site-footer *,
  site-footer *::before,
  site-footer *::after { box-sizing: border-box; }
  site-footer .footer {
        border-top: 1px solid var(--color-border-strong);
        padding: clamp(64px, 8vw, 96px) 0 40px;
        background: var(--color-bg);
      }
  site-footer .footer__container {
        width: 100%;
        max-width: 1400px;
        margin: 0 auto;
        padding: 0 clamp(20px, 4vw, 56px);
      }
  site-footer .footer__top {
        display: grid;
        grid-template-columns: 1.2fr 0.8fr 0.8fr;
        gap: clamp(32px, 4vw, 72px);
        margin-bottom: clamp(48px, 6vw, 72px);
      }
  site-footer .footer__brand { min-width: 0; }
  site-footer .footer__logo {
        display: inline-block;
        margin-bottom: 20px;
      }
  site-footer .footer__logo img {
        height: 32px;
        width: auto;
        display: block;
      }
  site-footer .footer__tagline {
        font-size: 17px;
        color: var(--color-text);
        margin: 0 0 12px 0;
        letter-spacing: -0.01em;
      }
  site-footer .footer__desc {
        color: var(--color-muted);
        font-size: 15px;
        line-height: 1.55;
        margin: 0 0 24px 0;
        max-width: 56ch;
      }
  site-footer .store-row {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        align-items: center;
      }
  site-footer .store-badge {
        display: inline-flex;
        align-items: center;
        gap: 12px;
        padding: 12px 22px;
        border-radius: 999px;
        border: 1px solid var(--color-white-30);
        background: var(--color-white-02);
        text-decoration: none;
        color: inherit;
        transition: border-color .25s ease, background .25s ease, transform .25s ease;
        width: 190px;
        min-width: 180px;
        justify-content: center;
      }
  site-footer .store-badge:hover {
        border-color: rgba(255,255,255,0.52);
        background: var(--color-white-05);
        transform: translateY(-1px);
      }
  site-footer .store-badge__image {
        width: 22px;
        height: 22px;
        object-fit: contain;
        flex-shrink: 0;
      }
  site-footer .store-badge__text {
        display: flex;
        flex-direction: column;
        line-height: 1.1;
      }
  site-footer .store-badge__top {
        font-size: 10px;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--color-muted);
      }
  site-footer .store-badge__bottom {
        font-size: 16px;
        color: var(--color-text);
        letter-spacing: -0.01em;
        margin-top: 2px;
      }
  site-footer .footer__col { min-width: 0; }
  site-footer .footer__heading {
        font-size: 12px;
        letter-spacing: 0.22em;
        text-transform: uppercase;
        color: var(--color-muted);
        margin: 0 0 20px 0;
        font-weight: 400;
      }
  site-footer .footer__links {
        list-style: none;
        padding: 0;
        margin: 0;
        display: flex;
        flex-direction: column;
        gap: 14px;
      }
  site-footer .footer__links a {
        color: var(--color-text);
        font-size: 15.5px;
        letter-spacing: -0.005em;
        text-decoration: none;
        transition: color .2s ease;
      }
  site-footer .footer__links a:hover { color: var(--color-accent); }
  site-footer .footer__bottom {
        border-top: 1px solid var(--color-border-subtle);
        padding-top: 28px;
        display: flex;
        flex-direction: column;
        gap: 16px;
      }
  site-footer .footer__disclaimer {
        color: var(--color-muted);
        font-size: 13.5px;
        line-height: 1.6;
        max-width: 80ch;
        margin: 0 auto;
        text-align: center;
      }
  site-footer .footer__copy {
        color: var(--color-muted);
        font-size: 13.5px;
        opacity: 0.7;
        margin: 0 auto;
        text-align: center;
      }

      
      @media (max-width: 960px) {
  site-footer .footer__top { grid-template-columns: 1fr 1fr; }
      }
      @media (max-width: 720px) {
  site-footer .footer__top { grid-template-columns: 1fr; }
  site-footer .footer__disclaimer,
  site-footer .footer__copy { font-size: 12.5px; }
      }
      @media (max-width: 600px) {
  site-footer .store-row {
          display: grid;
          grid-template-columns: repeat(2, minmax(0, 1fr));
          align-items: stretch;
        }
  site-footer .store-row .store-badge {
          width: 100%;
          min-width: 0;
          min-height: 52px;
          justify-content: center;
          gap: 8px;
          padding: 10px;
        }
  site-footer .store-row .store-badge__image {
          width: 20px;
          height: 20px;
        }
  site-footer .store-row .store-badge__text {
          min-width: 0;
        }
  site-footer .store-row .store-badge__top {
          font-size: 8.5px;
          letter-spacing: 0.08em;
          white-space: nowrap;
        }
  site-footer .store-row .store-badge__bottom {
          font-size: 14.5px;
          white-space: nowrap;
        }
      }

/* editorial-article-footer */
editorial-article-footer {
        display: block;
        margin: clamp(64px, 9vw, 96px) 0;
        color: var(--color-text);
        font-family: 'ApercuPro', -apple-system, BlinkMacSystemFont,
                     'Helvetica Neue', Arial, sans-serif;
        letter-spacing: -0.005em;
        -webkit-font-smoothing: antialiased;
      }
  editorial-article-footer *,
  editorial-article-footer *::before,
  editorial-article-footer *::after { box-sizing: border-box; }
  editorial-article-footer .editorial-article-footer {
        display: grid;
        grid-template-columns: minmax(0, 1.25fr) minmax(190px, 0.75fr);
        gap: clamp(28px, 5vw, 52px);
        align-items: center;
        overflow: hidden;
        padding: clamp(28px, 5vw, 48px);
        border: 1px solid rgba(37, 234, 231, 0.24);
        border-radius: 24px;
        background:
          radial-gradient(circle at 92% 16%, rgba(37, 234, 231, 0.13), transparent 40%),
          linear-gradient(135deg, rgba(37, 234, 231, 0.06), rgba(255, 255, 255, 0.025));
      }
  editorial-article-footer .editorial-article-footer__copy {
        min-width: 0;
      }
  editorial-article-footer h2 {
        max-width: 24ch;
        margin: 0 0 20px;
        color: var(--color-text);
        font-size: clamp(28px, 4vw, 42px);
        font-weight: 400;
        letter-spacing: -0.03em;
        line-height: 1.14;
        text-wrap: balance;
      }
  editorial-article-footer p {
        max-width: 54ch;
        margin: 0;
        color: var(--color-text-soft, var(--color-muted));
        font-size: var(--fs-body-lg, 19px);
        letter-spacing: -0.005em;
        line-height: 1.65;
      }
  editorial-article-footer .editorial-article-footer__actions {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 14px;
        margin-top: 30px;
      }
  editorial-article-footer .editorial-article-footer__button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        padding: 16px 28px;
        border: 1px solid transparent;
        border-radius: 999px;
        background: var(--accent);
        color: var(--color-on-accent);
        font-size: 15px;
        letter-spacing: -0.005em;
        line-height: 1;
        text-decoration: none;
        white-space: nowrap;
        transition:
          transform .25s cubic-bezier(.2, .7, .2, 1),
          opacity .25s cubic-bezier(.2, .7, .2, 1);
        will-change: transform;
      }
  editorial-article-footer .editorial-article-footer__button:hover {
        transform: translateY(-1px);
        opacity: .92;
      }
  editorial-article-footer .editorial-article-footer__button:focus-visible {
        outline: 2px solid var(--accent);
        outline-offset: 3px;
      }
  editorial-article-footer .editorial-article-footer__visual {
        align-self: end;
        min-width: 0;
      }
  editorial-article-footer .editorial-article-footer__image {
        display: block;
        width: 100%;
        max-height: 390px;
        margin: 0 auto;
        object-fit: contain;
        object-position: center bottom;
      }

      @media (max-width: 680px) {
  editorial-article-footer {
          margin: 64px 0;
        }
  editorial-article-footer .editorial-article-footer {
          grid-template-columns: 1fr;
          padding: 28px 22px 0;
        }
  editorial-article-footer h2 {
          max-width: none;
          font-size: clamp(28px, 8vw, 38px);
        }
  editorial-article-footer .editorial-article-footer__button {
          width: 100%;
          padding: 15px 22px;
          font-size: 14.5px;
        }
  editorial-article-footer .editorial-article-footer__visual {
          width: min(100%, 300px);
          margin: 0 auto;
        }
  editorial-article-footer .editorial-article-footer__image {
          max-height: 340px;
        }
      }

      @media (prefers-reduced-motion: reduce) {
  editorial-article-footer .editorial-article-footer__button {
          transition: none;
        }
      }
