/* pages.css — consolidated per-page <style> blocks from the ext-frontend prototype.
   Each prototype page kept its design in an inline <style>; these are extracted
   here (identical detail blocks deduped to one). Vendored — see ext-frontend/SYNC.md. */

/* ===== login.html ===== */
      .account-header {
        background:
          linear-gradient(rgba(0, 24, 48, 0.35), rgba(0, 24, 48, 0.35)),
          url("assets/hero-dive-center-sale.1d717b7b0538.jpg") center 58% / cover no-repeat;
      }

      .account-header .listings-hero-inner {
        padding: 128px 0 72px;
      }

      .account-header .listings-hero-inner h1,
      .account-header .listings-hero-inner p {
        color: #fff;
      }

      .account-header .listings-hero-inner h1 {
        max-width: 760px;
        margin: 12px 0 16px;
        font-size: 48px;
        line-height: 1.08;
      }

      .account-header .listings-hero-inner p {
        max-width: 760px;
        font-size: 18px;
      }

      .account-main {
        display: grid;
        justify-items: center;
        padding: 56px 0 0;
      }

      .account-card {
        width: min(100%, 480px);
        padding: 32px;
        border: 1px solid #dceaf5;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 18px 42px rgba(15, 62, 101, 0.1);
      }

      .account-card h2 {
        margin: 0;
        color: #0d2d4a;
        font-size: 30px;
        line-height: 1.12;
      }

      .account-card > p {
        margin: 10px 0 0;
        color: #53677d;
        font-size: 15px;
        line-height: 1.65;
      }

      .account-form {
        display: grid;
        gap: 16px;
        margin-top: 24px;
      }

      .account-form label {
        display: grid;
        gap: 8px;
        color: #102c46;
        font-size: 13px;
        font-weight: 850;
      }

      .account-label-text {
        display: inline-flex;
        gap: 4px;
        align-items: baseline;
      }

      .account-required {
        color: #EF4444;
        font-size: inherit;
        font-weight: 900;
        line-height: inherit;
      }

      .account-form input {
        width: 100%;
        min-height: 48px;
        padding: 12px 14px;
        color: #102c46;
        border: 1px solid #cfe0ed;
        border-radius: 8px;
        background: #fff;
        font: inherit;
        outline: none;
        transition: border-color 0.18s ease, box-shadow 0.18s ease;
      }

      .account-form input:focus {
        border-color: #0075ff;
        box-shadow: 0 0 0 3px rgba(0, 117, 255, 0.14);
      }

      .account-form input[aria-invalid="true"] {
        border-color: rgba(239, 68, 68, 0.74);
      }

      /* Password field with an eye toggle fused over the input's right edge. */
      .password-field {
        position: relative;
      }

      .password-field input {
        padding-right: 46px;
      }

      .password-field__toggle {
        position: absolute;
        top: 0;
        right: 0;
        height: 48px;
        width: 46px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        border: 0;
        background: none;
        color: #5f7186;
        cursor: pointer;
      }

      .password-field__toggle:hover {
        color: #0075ff;
      }

      .password-field__toggle:focus-visible {
        outline: 2px solid #0075ff;
        outline-offset: -2px;
        border-radius: 8px;
      }

      .account-form-message {
        padding: 12px 14px;
        color: #9f1d1d;
        border: 1px solid rgba(239, 68, 68, 0.26);
        border-radius: 8px;
        background: #fff5f5;
        font-size: 14px;
        font-weight: 800;
        line-height: 1.45;
      }

      .account-links {
        display: grid;
        gap: 10px;
        justify-items: center;
        margin-top: 4px;
        font-size: 14px;
        font-weight: 800;
      }

      .account-links a {
        color: #0075ff;
        text-decoration: none;
      }

      .account-links a:hover,
      .account-links a:focus-visible {
        text-decoration: underline;
      }

      .captcha-placeholder {
        display: flex;
        align-items: center;
        min-height: 54px;
        padding: 14px 16px;
        color: #53677d;
        border: 1px dashed #a9c3d8;
        border-radius: 8px;
        background: #f7fbff;
        font-size: 14px;
        font-weight: 800;
      }

      @media (max-width: 720px) {
        .account-header .listings-hero-inner {
          padding: 92px 0 58px;
        }

        .account-header .listings-hero-inner h1 {
          font-size: 38px;
        }

        .account-card {
          padding: 24px;
        }
      }
    

/* (register.html: identical to login.html, deduped) */
/* ===== favorites.html ===== */
      .about-header {
        background:
          linear-gradient(rgba(0, 24, 48, 0.35), rgba(0, 24, 48, 0.35)),
          url("assets/hero-dive-center-sale.1d717b7b0538.jpg") center 58% / cover no-repeat;
      }

      .about-header .listings-hero-inner {
        padding: 128px 0 72px;
      }

      .about-header .listings-hero-inner h1,
      .about-header .listings-hero-inner p {
        color: #fff;
      }

      .about-header .listings-hero-inner h1 {
        max-width: 760px;
        margin: 12px 0 16px;
        font-size: 48px;
        line-height: 1.08;
      }

      .about-header .listings-hero-inner p {
        max-width: 760px;
        font-size: 18px;
      }

      .about-main {
        display: grid;
        gap: 42px;
        padding: 56px 0 0;
      }

      .about-section {
        display: grid;
        gap: 18px;
      }

      .about-section h2 {
        margin: 0;
        color: #0d2d4a;
        font-size: 30px;
        line-height: 1.12;
      }

      .about-section p {
        max-width: 920px;
        margin: 0;
        color: #41566d;
        font-size: 17px;
        line-height: 1.72;
      }

      .about-card-grid {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 16px;
      }

      .about-card,
      .about-notice,
      .about-step,
      .about-benefit {
        border: 1px solid #dceaf5;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 14px 30px rgba(15, 62, 101, 0.08);
      }

      .about-card {
        padding: 22px 18px;
      }

      .about-card h3,
      .about-step h3 {
        margin: 0 0 8px;
        color: #0d2d4a;
        font-size: 18px;
        line-height: 1.2;
      }

      .about-card p,
      .about-step p,
      .about-notice p {
        margin: 0;
        color: #53677d;
        font-size: 14px;
        line-height: 1.6;
      }

      .about-benefits {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 14px;
      }

      .about-benefit {
        display: flex;
        gap: 10px;
        align-items: center;
        min-height: 58px;
        padding: 14px 16px;
        color: #102c46;
        font-size: 15px;
        font-weight: 800;
      }

      .about-benefit svg {
        flex: 0 0 auto;
        width: 20px;
        height: 20px;
        color: #0075ff;
        stroke-width: 2.5;
      }

      .about-steps {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 16px;
      }

      .about-step {
        padding: 22px 18px;
      }

      .about-step-number {
        display: inline-grid;
        place-items: center;
        width: 34px;
        height: 34px;
        margin-bottom: 14px;
        color: #fff;
        border-radius: 50%;
        background: #0075ff;
        font-weight: 900;
      }

      .about-notice {
        padding: 24px;
        background: linear-gradient(180deg, #f7fbff 0%, #ffffff 100%);
      }

      .about-cta {
        display: flex;
        justify-content: space-between;
        gap: 28px;
        align-items: center;
        padding: 30px;
        color: #fff;
        border-radius: 8px;
        background:
          linear-gradient(90deg, rgba(0, 45, 94, 0.92), rgba(0, 117, 255, 0.72)),
          url("assets/cta-dive.7b49858cba51.jpg") center center / cover no-repeat;
        box-shadow: 0 20px 44px rgba(0, 55, 112, 0.24);
      }

      .about-cta h2,
      .about-cta p {
        color: #fff;
      }

      .about-cta p {
        max-width: 650px;
      }

      .about-cta-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
      }

      @media (max-width: 1100px) {
        .about-card-grid {
          grid-template-columns: repeat(3, minmax(0, 1fr));
        }

        .about-steps,
        .about-benefits {
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }
      }

      @media (max-width: 720px) {
        .about-header .listings-hero-inner {
          padding: 92px 0 58px;
        }

        .about-header .listings-hero-inner h1 {
          font-size: 38px;
        }

        .about-card-grid,
        .about-steps,
        .about-benefits {
          grid-template-columns: 1fr;
        }

        .about-cta {
          align-items: flex-start;
          flex-direction: column;
          padding: 24px;
        }
      }
    

/* ===== blog.html ===== */
      .blog-page-header {
        background:
          linear-gradient(rgba(0, 24, 48, 0.35), rgba(0, 24, 48, 0.35)),
          url("assets/hero-dive-center-sale.1d717b7b0538.jpg") center 58% / cover no-repeat;
      }

      .blog-page-header .listings-hero-inner {
        padding: 128px 0 72px;
      }

      .blog-page-header .listings-hero-inner h1,
      .blog-page-header .listings-hero-inner p {
        color: #fff;
      }

      .blog-page-header .listings-hero-inner h1 {
        max-width: 780px;
        margin: 12px 0 16px;
        font-size: 48px;
        line-height: 1.08;
      }

      .blog-page-header .listings-hero-inner p {
        max-width: 780px;
        font-size: 18px;
      }

      .blog-hub-main {
        display: grid;
        gap: 46px;
        padding: 56px 0 0;
      }

      .blog-hub-section {
        display: grid;
        gap: 18px;
      }

      .blog-hub-section-header {
        display: flex;
        justify-content: space-between;
        gap: 20px;
        align-items: end;
      }

      .blog-hub-section h2 {
        margin: 0;
        color: #0d2d4a;
        font-size: 30px;
        line-height: 1.12;
      }

      .blog-hub-section p {
        margin: 0;
        color: #53677d;
        line-height: 1.65;
      }

      .blog-category-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 18px;
      }

      .blog-category-card,
      .blog-latest-card,
      .blog-newsletter-card {
        border: 1px solid #dceaf5;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 14px 30px rgba(15, 62, 101, 0.08);
      }

      .blog-category-card {
        display: grid;
        grid-template-rows: auto 1fr;
        width: 100%;
        overflow: hidden;
        color: inherit;
        font: inherit;
        text-align: left;
        cursor: pointer;
        transition:
          border-color 180ms ease,
          background 180ms ease,
          box-shadow 180ms ease,
          transform 180ms ease;
      }

      .blog-category-card-img {
        display: block;
        align-self: start;
        width: 100%;
        aspect-ratio: 16 / 10;
        object-fit: cover;
      }

      .blog-category-card-img--placeholder {
        background: linear-gradient(135deg, #0075ff 0%, #002d5e 100%);
      }

      .blog-category-card:hover,
      .blog-category-card:focus-visible {
        transform: translateY(-2px);
        border-color: rgba(0, 117, 255, 0.62);
        box-shadow: 0 18px 34px rgba(0, 117, 255, 0.14);
      }

      .blog-category-card.is-active {
        border-color: #0075ff;
        background: linear-gradient(180deg, #eef8ff 0%, #ffffff 100%);
        box-shadow: 0 18px 34px rgba(0, 117, 255, 0.16);
      }

      .blog-category-card span,
      .blog-latest-card span {
        color: #0075ff;
        font-size: 12px;
        font-weight: 900;
        text-transform: uppercase;
      }

      .blog-category-card h3,
      .blog-latest-card h3 {
        margin: 0;
        color: #0d2d4a;
        line-height: 1.2;
      }

      .blog-category-card h3 {
        margin: 0;
        padding: 16px 18px;
        font-size: 18px;
      }

      .blog-latest-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
      }

      .blog-latest-card {
        display: grid;
        grid-template-rows: auto 1fr;
        overflow: hidden;
      }

      .blog-latest-card-img {
        display: block;
        align-self: start;
        width: 100%;
        aspect-ratio: 44 / 30;
        object-fit: cover;
      }

      .blog-latest-card-img--placeholder {
        background: linear-gradient(135deg, #0075ff 0%, #002d5e 100%);
      }

      .blog-latest-card-body {
        display: grid;
        gap: 10px;
        padding: 20px;
      }

      .blog-latest-card[hidden] {
        display: none;
      }

      .blog-empty-state {
        padding: 22px;
        color: #53677d;
        border: 1px solid #dceaf5;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 14px 30px rgba(15, 62, 101, 0.08);
        font-size: 16px;
        font-weight: 800;
      }

      .blog-empty-state[hidden] {
        display: none;
      }

      .blog-latest-card h3 {
        font-size: 19px;
      }

      .blog-latest-card a {
        display: inline-flex;
        align-items: center;
        width: max-content;
        color: #0074dc;
        font-size: 14px;
        font-weight: 900;
      }

      .blog-newsletter-card {
        display: grid;
        grid-template-columns: minmax(260px, 1fr) minmax(280px, 420px);
        gap: 28px;
        align-items: center;
        padding: 30px;
        color: #fff;
        background:
          linear-gradient(90deg, rgba(0, 45, 94, 0.92), rgba(0, 117, 255, 0.72)),
          url("assets/cta-dive.7b49858cba51.jpg") center center / cover no-repeat;
        box-shadow: 0 20px 44px rgba(0, 55, 112, 0.24);
      }

      .blog-newsletter-card h2,
      .blog-newsletter-card p {
        color: #fff;
      }

      .blog-newsletter-form {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 10px;
      }

      .blog-newsletter-form input {
        min-height: 42px;
        min-width: 0;
        padding: 0 14px;
        border: 0;
        border-radius: 6px;
        background: #fff;
        color: #10243a;
      }

      .blog-newsletter-form button {
        min-height: 42px;
        padding: 0 18px;
        color: #fff;
        border-radius: 6px;
        background: #0075ff;
        font-weight: 900;
      }

      @media (max-width: 1100px) {
        .blog-category-grid {
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .blog-latest-grid {
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }
      }

      @media (max-width: 860px) {
        .blog-newsletter-card {
          grid-template-columns: 1fr;
        }
      }

      @media (max-width: 560px) {
        .blog-category-grid {
          grid-template-columns: 1fr;
        }
      }

      @media (max-width: 720px) {
        .blog-page-header .listings-hero-inner {
          padding: 92px 0 58px;
        }

        .blog-page-header .listings-hero-inner h1 {
          font-size: 38px;
        }

        .blog-hub-section-header {
          align-items: flex-start;
          flex-direction: column;
        }

        .blog-category-grid,
        .blog-latest-grid {
          grid-template-columns: 1fr;
        }

        .blog-newsletter-card {
          padding: 24px;
        }

        .blog-newsletter-form {
          grid-template-columns: 1fr;
        }
      }
    

/* ===== blog-detail.html ===== */
      .blog-page-header {
        background:
          linear-gradient(rgba(0, 24, 48, 0.35), rgba(0, 24, 48, 0.35)),
          url("assets/hero-dive-center-sale.1d717b7b0538.jpg") center 58% / cover no-repeat;
      }

      .blog-page-header .listings-hero-inner {
        padding: 128px 0 72px;
      }

      .blog-page-header .listings-hero-inner h1,
      .blog-page-header .listings-hero-inner p {
        color: #fff;
      }

      .blog-page-header .listings-hero-inner h1 {
        max-width: 820px;
        margin: 12px 0 16px;
        font-size: 48px;
        line-height: 1.08;
      }

      .blog-page-header .listings-hero-inner p {
        max-width: 780px;
        font-size: 18px;
      }

      .blog-detail-main {
        padding: 56px 0 0;
      }

      .blog-article,
      .blog-sidebar-card {
        border: 1px solid #dceaf5;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 14px 30px rgba(15, 62, 101, 0.08);
      }

      .blog-article {
        overflow: hidden;
      }

      .blog-article-header,
      .blog-article-body {
        display: grid;
        gap: 16px;
        padding: 28px;
      }

      .blog-article-category,
      .related-article span {
        color: #0075ff;
        font-size: 12px;
        font-weight: 900;
        text-transform: uppercase;
      }

      .blog-article h2,
      .blog-sidebar-card h2 {
        margin: 0;
        color: #0d2d4a;
        line-height: 1.15;
      }

      .blog-article h2 {
        font-size: 36px;
      }

      .blog-article-excerpt,
      .blog-article-body p,
      .blog-sidebar-card p {
        margin: 0;
        color: #53677d;
        line-height: 1.7;
      }

      .blog-article-image {
        width: 100%;
        aspect-ratio: 44 / 30;
        object-fit: cover;
      }

      .blog-article-body ul {
        display: grid;
        gap: 8px;
        margin: 0;
        padding-left: 22px;
        color: #53677d;
        line-height: 1.65;
      }

      .blog-article-actions {
        padding-top: 8px;
      }

      .blog-sidebar {
        display: grid;
        gap: 18px;
      }

      .blog-sidebar-card {
        display: grid;
        gap: 16px;
        padding: 22px;
      }

      .related-list,
      .category-link-list {
        display: grid;
        gap: 12px;
      }

      .related-article,
      .blog-category-link {
        display: grid;
        gap: 7px;
        padding: 14px;
        border: 1px solid #dceaf5;
        border-radius: 8px;
        background: #f8fbff;
        transition:
          border-color 180ms ease,
          box-shadow 180ms ease,
          transform 180ms ease;
      }

      .related-article:hover,
      .blog-category-link:hover,
      .related-article:focus-visible,
      .blog-category-link:focus-visible {
        transform: translateY(-1px);
        border-color: rgba(0, 117, 255, 0.58);
        box-shadow: 0 12px 24px rgba(0, 117, 255, 0.12);
      }

      .related-article h3,
      .blog-category-link strong {
        margin: 0;
        color: #0d2d4a;
        font-size: 15px;
        line-height: 1.25;
      }

      .related-article a {
        width: max-content;
        color: #0074dc;
        font-size: 13px;
        font-weight: 900;
      }

      .blog-category-link {
        color: inherit;
      }

      .blog-detail-newsletter {
        color: #fff;
        background:
          linear-gradient(90deg, rgba(0, 45, 94, 0.92), rgba(0, 117, 255, 0.72)),
          url("assets/cta-dive.7b49858cba51.jpg") center center / cover no-repeat;
      }

      .blog-detail-newsletter h2,
      .blog-detail-newsletter p {
        color: #fff;
      }

      .blog-detail-newsletter form {
        display: grid;
        gap: 10px;
      }

      .blog-detail-newsletter input {
        min-height: 42px;
        min-width: 0;
        padding: 0 14px;
        border: 0;
        border-radius: 6px;
        background: #fff;
        color: #10243a;
      }

      .blog-detail-newsletter button {
        min-height: 42px;
        padding: 0 18px;
        color: #fff;
        border-radius: 6px;
        background: #0075ff;
        font-weight: 900;
      }

      @media (max-width: 720px) {
        .blog-page-header .listings-hero-inner {
          padding: 92px 0 58px;
        }

        .blog-page-header .listings-hero-inner h1,
        .blog-article h2 {
          font-size: 36px;
        }

        .blog-article-header,
        .blog-article-body,
        .blog-sidebar-card {
          padding: 22px;
        }
      }
    

/* (about.html: identical to favorites.html, deduped) */
/* ===== faq.html ===== */
      .faq-header {
        background:
          linear-gradient(rgba(0, 24, 48, 0.35), rgba(0, 24, 48, 0.35)),
          url("assets/hero-dive-center-sale.1d717b7b0538.jpg") center 58% / cover no-repeat;
      }

      .faq-header .listings-hero-inner {
        padding: 128px 0 72px;
      }

      .faq-header .listings-hero-inner h1,
      .faq-header .listings-hero-inner p {
        color: #fff;
      }

      .faq-header .listings-hero-inner h1 {
        max-width: 780px;
        margin: 12px 0 16px;
        font-size: 48px;
        line-height: 1.08;
      }

      .faq-header .listings-hero-inner p {
        max-width: 780px;
        font-size: 18px;
      }

      .faq-main {
        display: grid;
        gap: 34px;
        padding: 56px 0 0;
      }

      .faq-section {
        display: grid;
        gap: 14px;
      }

      .faq-section h2,
      .faq-cta h2 {
        margin: 0;
        color: #0d2d4a;
        font-size: 28px;
        line-height: 1.14;
      }

      .faq-list {
        display: grid;
        gap: 12px;
      }

      .faq-item {
        border: 1px solid #dceaf5;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 14px 30px rgba(15, 62, 101, 0.08);
        overflow: hidden;
      }

      .faq-question {
        display: flex;
        width: 100%;
        min-height: 64px;
        align-items: center;
        justify-content: space-between;
        gap: 18px;
        padding: 18px 22px;
        color: #0d2d4a;
        background: #fff;
        text-align: left;
        font-weight: 900;
        line-height: 1.35;
      }

      .faq-question:hover,
      .faq-question:focus-visible {
        color: #0074dc;
        background: #f5fbff;
      }

      .faq-icon {
        display: inline-grid;
        width: 28px;
        height: 28px;
        flex: 0 0 28px;
        place-items: center;
        color: #0075ff;
        border: 1px solid #cfe5f5;
        border-radius: 50%;
        background: #f2f9ff;
        font-size: 20px;
        font-weight: 900;
        line-height: 1;
      }

      .faq-answer {
        max-height: 0;
        overflow: hidden;
        transition: max-height 260ms ease;
      }

      .faq-item.is-open .faq-answer {
        max-height: 520px;
      }

      .faq-answer-inner {
        padding: 0 22px 20px;
        color: #53677d;
        line-height: 1.7;
      }

      .faq-answer-inner p {
        margin: 0;
      }

      .faq-item.is-open {
        border-color: rgba(0, 117, 255, 0.42);
      }

      .faq-item.is-open .faq-question {
        color: #0074dc;
        background: #f5fbff;
      }

      .faq-cta {
        display: grid;
        gap: 14px;
        justify-items: start;
        padding: 30px;
        border: 1px solid rgba(0, 117, 255, 0.3);
        border-radius: 8px;
        color: #fff;
        background:
          linear-gradient(90deg, rgba(0, 45, 94, 0.92), rgba(0, 117, 255, 0.72)),
          url("assets/cta-dive.7b49858cba51.jpg") center center / cover no-repeat;
        box-shadow: 0 20px 44px rgba(0, 55, 112, 0.24);
      }

      .faq-cta h2,
      .faq-cta p {
        color: #fff;
      }

      .faq-cta p {
        max-width: 720px;
        margin: 0;
        line-height: 1.65;
      }

      @media (max-width: 720px) {
        .faq-header .listings-hero-inner {
          padding: 92px 0 58px;
        }

        .faq-header .listings-hero-inner h1 {
          font-size: 38px;
        }

        .faq-section h2,
        .faq-cta h2 {
          font-size: 24px;
        }

        .faq-question {
          min-height: 58px;
          padding: 16px 18px;
        }

        .faq-answer-inner {
          padding: 0 18px 18px;
        }

        .faq-cta {
          padding: 24px;
        }
      }
    

/* ===== terms.html ===== */
      .terms-header {
        background:
          linear-gradient(rgba(0, 24, 48, 0.35), rgba(0, 24, 48, 0.35)),
          url("assets/hero-dive-center-sale.1d717b7b0538.jpg") center 58% / cover no-repeat;
      }

      .terms-header .listings-hero-inner {
        padding: 128px 0 72px;
      }

      .terms-header .listings-hero-inner h1,
      .terms-header .listings-hero-inner p {
        color: #fff;
      }

      .terms-header .listings-hero-inner h1 {
        max-width: 760px;
        margin: 12px 0 16px;
        font-size: 48px;
        line-height: 1.08;
      }

      .terms-header .listings-hero-inner p {
        max-width: 760px;
        font-size: 18px;
      }

      .terms-main {
        padding: 56px 0 0;
      }

      .terms-panel {
        max-width: 940px;
        padding: 34px;
        border: 1px solid #dceaf5;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 14px 30px rgba(15, 62, 101, 0.08);
      }

      .terms-panel h2 {
        margin: 0 0 8px;
        color: #0d2d4a;
        font-size: 32px;
        line-height: 1.15;
      }

      .terms-panel h3 {
        margin: 28px 0 10px;
        color: #0d2d4a;
        font-size: 22px;
        line-height: 1.24;
      }

      .terms-panel p {
        margin: 0 0 10px;
        color: #41566d;
        font-size: 16px;
        line-height: 1.72;
      }

      .terms-panel ul {
        margin: 0 0 16px 22px;
        padding: 0;
        color: #41566d;
        font-size: 16px;
        line-height: 1.72;
      }

      .terms-panel li {
        margin: 0 0 6px;
        padding-left: 4px;
      }

      .terms-panel .terms-updated {
        color: #0075ff;
        font-size: 14px;
        font-weight: 850;
      }

      .terms-spacer {
        height: 10px;
      }

      @media (max-width: 720px) {
        .terms-header .listings-hero-inner {
          padding: 92px 0 58px;
        }

        .terms-header .listings-hero-inner h1 {
          font-size: 38px;
        }

        .terms-panel {
          padding: 24px;
        }
      }
    

/* ===== contact.html ===== */
      .contact-header {
        background:
          linear-gradient(rgba(0, 24, 48, 0.35), rgba(0, 24, 48, 0.35)),
          url("assets/hero-dive-center-sale.1d717b7b0538.jpg") center 58% / cover no-repeat;
      }

      .contact-header .listings-hero-inner {
        padding: 128px 0 72px;
      }

      .contact-header .listings-hero-inner h1,
      .contact-header .listings-hero-inner p {
        color: #fff;
      }

      .contact-header .listings-hero-inner h1 {
        max-width: 760px;
        margin: 12px 0 16px;
        font-size: 48px;
        line-height: 1.08;
      }

      .contact-header .listings-hero-inner p {
        max-width: 760px;
        font-size: 18px;
      }

      .contact-main {
        padding: 56px 0 0;
      }

      .contact-layout {
        display: grid;
        grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1fr);
        gap: 34px;
        align-items: start;
      }

      .contact-intro,
      .contact-form-card {
        border: 1px solid #dceaf5;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 14px 30px rgba(15, 62, 101, 0.08);
      }

      .contact-intro {
        padding: 30px;
      }

      .contact-intro h2,
      .contact-form-card h2 {
        margin: 0;
        color: #0d2d4a;
        font-size: 30px;
        line-height: 1.12;
      }

      .contact-subtitle {
        margin: 8px 0 18px;
        color: #0075ff;
        font-size: 13px;
        font-weight: 900;
        letter-spacing: 0.08em;
        text-transform: uppercase;
      }

      .contact-intro p {
        margin: 0;
        color: #41566d;
        font-size: 17px;
        line-height: 1.72;
      }

      .contact-info-list {
        display: grid;
        gap: 12px;
        margin-top: 24px;
      }

      .contact-info-item {
        display: flex;
        gap: 10px;
        align-items: center;
        min-height: 56px;
        padding: 14px 16px;
        color: #102c46;
        border: 1px solid #dceaf5;
        border-radius: 8px;
        background: #f7fbff;
        font-size: 15px;
        font-weight: 850;
      }

      .contact-info-item svg {
        flex: 0 0 auto;
        width: 20px;
        height: 20px;
        color: #0075ff;
        stroke-width: 2.5;
      }

      .contact-form-card {
        padding: 30px;
      }

      .contact-form {
        display: grid;
        gap: 16px;
        margin-top: 22px;
      }

      .contact-form label {
        display: grid;
        gap: 8px;
        color: #102c46;
        font-size: 13px;
        font-weight: 850;
      }

      .contact-form input,
      .contact-form select,
      .contact-form textarea {
        width: 100%;
        min-height: 48px;
        padding: 12px 14px;
        color: #102c46;
        border: 1px solid #cfe0ed;
        border-radius: 8px;
        background: #fff;
        font: inherit;
        outline: none;
        transition: border-color 0.18s ease, box-shadow 0.18s ease;
      }

      .contact-form textarea {
        min-height: 140px;
        resize: vertical;
      }

      .contact-form input:focus,
      .contact-form select:focus,
      .contact-form textarea:focus {
        border-color: #0075ff;
        box-shadow: 0 0 0 3px rgba(0, 117, 255, 0.14);
      }
      .contact-label-text {
        display: inline-flex;
        gap: 4px;
        align-items: baseline;
      }

      .required-marker {
        color: #EF4444;
        font-size: inherit;
        font-weight: 900;
        line-height: inherit;
      }

      .contact-form-message {
        padding: 12px 14px;
        border-radius: 8px;
        font-size: 14px;
        font-weight: 800;
        line-height: 1.45;
      }

      .contact-form-message.is-error {
        color: #9f1d1d;
        border: 1px solid rgba(239, 68, 68, 0.26);
        background: #fff5f5;
      }

      .contact-form-message.is-success {
        color: #0b6b4f;
        border: 1px solid rgba(16, 185, 129, 0.3);
        background: #effdf7;
      }

      .contact-form-note {
        margin: 2px 0 0;
        color: #617488;
        font-size: 13px;
        line-height: 1.55;
      }

      @media (max-width: 980px) {
        .contact-layout {
          grid-template-columns: 1fr;
        }
      }

      @media (max-width: 720px) {
        .contact-header .listings-hero-inner {
          padding: 92px 0 58px;
        }

        .contact-header .listings-hero-inner h1 {
          font-size: 38px;
        }

        .contact-intro,
        .contact-form-card {
          padding: 24px;
        }
      }
    

/* ===== pricing.html ===== */
      .pricing-header {
        background:
          linear-gradient(rgba(0, 24, 48, 0.35), rgba(0, 24, 48, 0.35)),
          url("assets/hero-dive-center-sale.1d717b7b0538.jpg") center 58% / cover no-repeat;
      }

      .pricing-header .listings-hero-inner {
        padding: 128px 0 72px;
      }

      .pricing-header .listings-hero-inner h1,
      .pricing-header .listings-hero-inner p {
        color: #fff;
      }

      .pricing-header .listings-hero-inner h1 {
        max-width: 760px;
        margin: 12px 0 16px;
        font-size: 48px;
        line-height: 1.08;
      }

      .pricing-header .listings-hero-inner p {
        max-width: 720px;
        font-size: 18px;
      }

      .pricing-main {
        display: grid;
        gap: 46px;
        padding: 56px 0 0;
      }

      .pricing-section {
        display: grid;
        gap: 18px;
      }

      .pricing-section h2,
      .pricing-card h3,
      .pricing-callout h2 {
        margin: 0;
        color: #0d2d4a;
        line-height: 1.12;
      }

      .pricing-section h2,
      .pricing-callout h2 {
        font-size: 30px;
      }

      .pricing-intro {
        max-width: 860px;
        margin: 0;
        color: #53677d;
        font-size: 18px;
        line-height: 1.7;
      }

      .pricing-applies {
        display: grid;
        gap: 10px;
        margin: 0;
        color: #53677d;
      }

      .pricing-applies small {
        color: #0075ff;
        font-size: 12px;
        font-weight: 900;
        text-transform: uppercase;
      }

      .pricing-applies ul,
      .pricing-card ul,
      .pricing-benefits ul {
        display: grid;
        gap: 8px;
        margin: 0;
        padding: 0;
        list-style: none;
      }

      .pricing-applies ul {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 10px;
      }

      .pricing-applies li,
      .pricing-benefits li {
        display: flex;
        gap: 8px;
        align-items: flex-start;
        color: #53677d;
        line-height: 1.5;
      }

      .pricing-check {
        color: #0075ff;
        font-weight: 900;
      }

      .pricing-card,
      .pricing-callout,
      .pricing-announcement,
      .pricing-benefits {
        border: 1px solid #dceaf5;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 14px 30px rgba(15, 62, 101, 0.08);
      }

      .pricing-card {
        display: grid;
        gap: 18px;
        position: relative;
        align-content: start;
        padding: 26px;
      }

      .pricing-card.featured-business {
        grid-template-columns: minmax(0, 0.9fr) minmax(300px, 1.1fr);
        gap: 32px;
        align-items: start;
        padding: 32px;
        border-color: rgba(0, 117, 255, 0.35);
        background: linear-gradient(180deg, #f3fbff 0%, #ffffff 100%);
        box-shadow: 0 22px 46px rgba(0, 117, 255, 0.14);
      }

      .pricing-card h3 {
        font-size: 24px;
      }

      .pricing-price {
        color: #0075ff;
        font-size: 36px;
        font-weight: 900;
        line-height: 1;
      }

      .pricing-card p,
      .pricing-callout p,
      .pricing-announcement p,
      .pricing-note {
        margin: 0;
        color: #53677d;
        line-height: 1.65;
      }

      .pricing-callout .button {
        justify-self: start;
      }

      .pricing-card ul li {
        display: flex;
        gap: 8px;
        align-items: flex-start;
        color: #223f5f;
        line-height: 1.45;
      }

      .upgrade-grid,
      .equipment-grid {
        display: grid;
        gap: 18px;
      }

      .upgrade-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .equipment-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .pricing-badge {
        position: absolute;
        top: 22px;
        right: 22px;
        width: max-content;
        padding: 6px 10px;
        color: #fff;
        border-radius: 999px;
        background: linear-gradient(135deg, #0a74ff 0%, #03a9ff 100%);
        font-size: 11px;
        font-weight: 900;
        text-transform: uppercase;
      }

      @media (min-width: 981px) {
        .equipment-grid .pricing-card h3 {
          font-size: 21px;
          white-space: nowrap;
        }

        .equipment-grid .pricing-card-popular h3 {
          padding-right: 96px;
        }

        .equipment-grid .pricing-card .pricing-price {
          font-size: 30px;
          white-space: nowrap;
        }
      }

      .pricing-announcement {
        display: grid;
        gap: 12px;
        padding: 28px;
        border-color: rgba(0, 117, 255, 0.32);
        background:
          linear-gradient(90deg, rgba(0, 45, 94, 0.92), rgba(0, 117, 255, 0.74)),
          url("assets/cta-dive.7b49858cba51.jpg") center center / cover no-repeat;
      }

      .pricing-announcement h2,
      .pricing-announcement p {
        color: #fff;
      }

      .pricing-announcement h2 {
        margin: 0;
        font-size: 28px;
      }

      .pricing-callout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 24px;
        align-items: center;
        padding: 30px;
        background: linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
      }

      .pricing-callout div {
        display: grid;
        gap: 10px;
      }

      .pricing-benefits {
        padding: 28px;
      }

      .pricing-benefits ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px 24px;
      }

      @media (max-width: 980px) {
        .pricing-card.featured-business,
        .upgrade-grid,
        .equipment-grid,
        .pricing-callout,
        .pricing-benefits ul {
          grid-template-columns: 1fr;
        }

        .pricing-applies ul {
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }
      }

      @media (max-width: 720px) {
        .pricing-header .listings-hero-inner {
          padding: 92px 0 58px;
        }

        .pricing-header .listings-hero-inner h1 {
          font-size: 38px;
        }

        .pricing-section h2,
        .pricing-callout h2 {
          font-size: 26px;
        }

        .pricing-card,
        .pricing-card.featured-business,
        .pricing-callout,
        .pricing-announcement,
        .pricing-benefits {
          padding: 22px;
        }

        .pricing-applies ul {
          grid-template-columns: 1fr;
        }

        .pricing-price {
          font-size: 32px;
        }
      }
    

/* ===== privacy.html ===== */
      .terms-header {
        background:
          linear-gradient(rgba(0, 24, 48, 0.35), rgba(0, 24, 48, 0.35)),
          url("assets/hero-dive-center-sale.1d717b7b0538.jpg") center 58% / cover no-repeat;
      }

      .terms-header .listings-hero-inner {
        padding: 128px 0 72px;
      }

      .terms-header .listings-hero-inner h1,
      .terms-header .listings-hero-inner p {
        color: #fff;
      }

      .terms-header .listings-hero-inner h1 {
        max-width: 760px;
        margin: 12px 0 16px;
        font-size: 48px;
        line-height: 1.08;
      }

      .terms-header .listings-hero-inner p {
        max-width: 760px;
        font-size: 18px;
      }

      .terms-main {
        padding: 56px 0 0;
      }

      .terms-panel {
        max-width: 940px;
        padding: 34px;
        border: 1px solid #dceaf5;
        border-radius: 8px;
        background: #fff;
        box-shadow: 0 14px 30px rgba(15, 62, 101, 0.08);
      }

      .terms-panel h2 {
        margin: 0 0 8px;
        color: #0d2d4a;
        font-size: 32px;
        line-height: 1.15;
      }

      .terms-panel h3 {
        margin: 28px 0 10px;
        color: #0d2d4a;
        font-size: 22px;
        line-height: 1.24;
      }

      .terms-panel p {
        margin: 0 0 10px;
        color: #41566d;
        font-size: 16px;
        line-height: 1.72;
      }

      .terms-panel h4 {
        margin: 18px 0 8px;
        color: #0d2d4a;
        font-size: 17px;
        line-height: 1.35;
      }

      .terms-panel ul {
        margin: 0 0 16px 22px;
        padding: 0;
        color: #41566d;
        font-size: 16px;
        line-height: 1.72;
      }

      .terms-panel li {
        margin: 0 0 6px;
        padding-left: 4px;
      }

      .terms-panel .terms-updated {
        color: #0075ff;
        font-size: 14px;
        font-weight: 850;
      }

      .terms-spacer {
        height: 10px;
      }

      @media (max-width: 720px) {
        .terms-header .listings-hero-inner {
          padding: 92px 0 58px;
        }

        .terms-header .listings-hero-inner h1 {
          font-size: 38px;
        }

        .terms-panel {
          padding: 24px;
        }
      }
    

/* (cookie-policy.html: identical to privacy.html, deduped) */
/* ===== listing-detail-* ===== */
      .detail-header {
        background:
          linear-gradient(rgba(0, 24, 48, 0.35), rgba(0, 24, 48, 0.35)),
          url("assets/hero-dive-center-sale.1d717b7b0538.jpg") center 58% / cover no-repeat;
      }

      .detail-header .listings-hero-inner {
        padding: 136px 0 40px;
      }

      .detail-header .listings-hero-inner h1,
      .detail-hero-breadcrumb,
      .detail-hero-breadcrumb a {
        color: #fff;
      }

      .detail-hero-label {
        display: block;
        margin-bottom: 12px;
        color: var(--cyan);
        font-size: 14px;
        font-weight: 900;
        line-height: 1.2;
        text-transform: uppercase;
      }

      .detail-header .listings-hero-inner h1 {
        max-width: 680px;
        margin: 0 0 16px;
        font-size: 26px;
        font-weight: 700;
        line-height: 1.12;
        letter-spacing: 0;
      }

      .detail-hero-breadcrumb {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        align-items: center;
        font-size: 14px;
        font-weight: 750;
      }

      .detail-hero-breadcrumb span[aria-hidden="true"] {
        color: var(--cyan);
      }
      .detail-title-section {
        padding: 28px 0 26px;
        border-bottom: 1px solid #dbe9f3;
        background: linear-gradient(180deg, rgba(247, 253, 255, 0.98) 0%, rgba(255, 255, 255, 0.98) 100%);
      }

      .breadcrumb {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        align-items: center;
        margin-bottom: 12px;
        color: #6a7d90;
        font-size: 13px;
        font-weight: 750;
      }

      .breadcrumb a {
        color: #0874dc;
      }

      .detail-title-section h1 {
        max-width: 780px;
        margin: 10px 0 10px;
        color: #0d2d4a;
        font-size: 26px;
        font-weight: 700;
        line-height: 1.12;
        letter-spacing: 0;
      }

      .detail-kicker {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        min-height: 28px;
        padding: 4px 10px;
        color: #0874dc;
        border: 1px solid #cfe5f5;
        border-radius: 999px;
        background: #edf8ff;
        font-size: 12px;
        font-weight: 900;
        text-transform: uppercase;
      }

      .detail-location {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        color: #526a80;
        font-size: 14px;
        font-weight: 800;
      }

      .detail-page {
        padding-top: 28px;
        padding-bottom: 16px;
      }

      .detail-shell {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 336px;
        gap: 24px;
        align-items: start;
      }

      .detail-panel,
      .seller-card,
      .inquiry-card {
        border: 1px solid #dbe9f3;
        border-radius: var(--radius);
        background: rgba(255, 255, 255, 0.98);
        box-shadow: 0 18px 46px rgba(8, 48, 82, 0.1);
      }

      .detail-gallery {
        overflow: hidden;
      }

      .detail-main-photo {
        position: relative;
        min-height: 420px;
        background: #eef6fb;
        touch-action: pan-y;
      }

      .detail-main-photo img {
        width: 100%;
        height: 100%;
        min-height: 420px;
        object-fit: cover;
      }

      .gallery-arrow {
        position: absolute;
        top: 50%;
        z-index: 3;
        display: grid;
        width: 42px;
        height: 42px;
        place-items: center;
        color: #fff;
        border-radius: 50%;
        background: rgba(4, 31, 54, 0.72);
        box-shadow: 0 12px 24px rgba(2, 20, 36, 0.25);
        transform: translateY(-50%);
        transition: background 160ms ease, transform 160ms ease;
      }

      .gallery-arrow:hover,
      .gallery-arrow:focus-visible {
        background: rgba(8, 116, 220, 0.92);
        transform: translateY(-50%) scale(1.04);
      }

      .gallery-arrow span {
        display: block;
        margin-top: -2px;
        font-size: 34px;
        font-weight: 800;
        line-height: 1;
      }

      .gallery-arrow.prev {
        left: 16px;
      }

      .gallery-arrow.next {
        right: 16px;
      }

      .detail-photo-badge {
        position: absolute;
        top: 16px;
        left: 16px;
        display: inline-flex;
        align-items: center;
        min-height: 28px;
        padding: 4px 9px;
        border-radius: 5px;
        background: #FAF7F0;
        color: #071a2e;
        font-size: 11px;
        font-weight: 900;
        text-transform: uppercase;
      }

      .detail-thumbs-viewport {
        overflow: hidden;
        padding: 12px;
        background: #fff;
      }

      .detail-thumbs {
        --thumb-width: 132px;
        --thumb-gap: 10px;
        display: flex;
        gap: var(--thumb-gap);
        width: min(100%, 700px);
        margin: 0 auto;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-behavior: smooth;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
      }

      .detail-thumbs::-webkit-scrollbar {
        display: none;
      }

      .detail-thumbs button {
        overflow: hidden;
        flex: 0 0 var(--thumb-width);
        scroll-snap-align: start;
        padding: 0;
        border: 2px solid transparent;
        border-radius: 6px;
        background: #eef6fb;
      }

      .detail-thumbs button[aria-pressed="true"] {
        border-color: #087aff;
      }

      .detail-thumbs img {
        width: 100%;
        aspect-ratio: 1.52;
        object-fit: cover;
      }

      .gallery-dots {
        display: flex;
        justify-content: center;
        gap: 7px;
        padding: 0 12px 14px;
        background: #fff;
      }

      .gallery-dots button {
        width: 8px;
        height: 8px;
        padding: 0;
        border-radius: 50%;
        background: #cbd8e3;
        transition: background 160ms ease, transform 160ms ease;
      }

      .gallery-dots button[aria-current="true"] {
        background: #087aff;
        transform: scale(1.25);
      }

      .detail-content {
        display: grid;
        gap: 18px;
        margin-top: 18px;
      }

      .detail-section {
        padding: 24px;
      }

      .detail-section h2,
      .seller-card h2,
      .inquiry-card h2 {
        margin: 0 0 14px;
        color: #0d2d4a;
        font-size: 24px;
        font-weight: 850;
        line-height: 1.15;
      }

      .detail-section p {
        margin: 0;
        color: #4e667c;
        font-size: 15px;
        line-height: 1.68;
      }

      /* Mirror the h2's 14px bottom gap so the reference is spaced evenly
         between the "Description" heading and the description text. */
      .detail-section p.detail-reference {
        margin-bottom: 14px;
      }

      .fact-grid,
      .financial-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
        gap: 12px;
      }

      .fact-card,
      .financial-card {
        padding: 16px;
        border: 1px solid #e1edf5;
        border-radius: 7px;
        background: #f8fcff;
      }

      .fact-card span,
      .financial-card span {
        display: block;
        margin-bottom: 6px;
        color: #667c91;
        font-size: 11px;
        font-weight: 900;
        text-transform: uppercase;
      }

      .fact-card strong,
      .financial-card strong {
        color: #0c2d4b;
        font-size: 18px;
        line-height: 1.2;
      }

      .detail-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px 18px;
        margin: 0;
        padding: 0;
        list-style: none;
      }

      .detail-list li {
        display: flex;
        gap: 9px;
        align-items: flex-start;
        color: #36566f;
        font-size: 14px;
        font-weight: 700;
      }

      .detail-list svg {
        flex: 0 0 auto;
        margin-top: 2px;
        color: #087aff;
      }

      .equipment-list {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px 18px;
        margin: 0;
        padding: 0;
        list-style: none;
      }

      .equipment-list li {
        display: flex;
        gap: 9px;
        align-items: center;
        min-height: 30px;
        color: #36566f;
        font-size: 14px;
        font-weight: 750;
      }

      .equipment-list li[hidden] {
        display: none;
      }

      .equipment-list svg {
        flex: 0 0 auto;
        color: #087aff;
      }

      .feature-toggle {
        --primary-blue: #0075ff;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: auto;
        height: auto;
        margin-top: 18px;
        padding: 6px 12px;
        color: var(--primary-blue);
        border: 1px solid var(--primary-blue);
        border-radius: 8px;
        background: transparent;
        box-shadow: none;
        font-size: 14px;
        font-weight: 500;
        transition: transform 160ms ease, background 160ms ease;
      }

      .feature-toggle:hover,
      .feature-toggle:focus-visible {
        background: #f8fcff;
        box-shadow: none;
        transform: translateY(-1px);
      }

      .detail-side {
        position: sticky;
        top: 18px;
        display: grid;
        gap: 14px;
      }

      .price-card {
        position: relative;
        padding: 20px;
      }.price-card small {
        display: block;
        margin-bottom: 4px;
        color: #697d90;
        font-size: 12px;
        font-weight: 850;
        text-transform: uppercase;
      }

      .detail-price {
        display: block;
        margin-bottom: 14px;
        color: #071f36;
        font-size: 26px;
        font-weight: 700;
        line-height: 1.12;
      }

      .price-seller {
        margin-bottom: 16px;
      }

      .price-seller span {
        display: block;
        margin-bottom: 4px;
        color: #697d90;
        font-size: 12px;
        font-weight: 850;
        text-transform: uppercase;
      }

      .price-seller strong {
        display: block;
        color: #0d2d4a;
        font-size: 16px;
        line-height: 1.25;
      }

      .price-actions {
        display: grid;
        gap: 10px;
      }

      .price-actions .button {
        width: 100%;
        min-height: 44px;
      }

      .price-actions .detail-website {
        color: #0874dc;
        word-break: break-word;
        text-align: center;
      }

      .inquiry-card {
        padding: 20px;
      }

      .inquiry-card form {
        display: grid;
        gap: 10px;
      }

      .inquiry-card input,
      .inquiry-card textarea {
        width: 100%;
        border: 1px solid #d7e7f2;
        border-radius: 6px;
        background: #f9fdff;
        color: #10243a;
        font: inherit;
        font-size: 13px;
      }

      .inquiry-card input {
        min-height: 40px;
        padding: 0 12px;
      }

      .inquiry-card textarea {
        min-height: 108px;
        padding: 10px 12px;
        resize: vertical;
      }

      body.modal-open {
        overflow: hidden;
      }

      .contact-modal[hidden] {
        display: none;
      }

      .contact-modal {
        position: fixed;
        inset: 0;
        z-index: 30;
        display: grid;
        place-items: center;
        padding: 24px;
        background: rgba(3, 18, 32, 0.62);
      }

      .contact-dialog {
        width: min(100%, 460px);
        padding: 22px;
        border: 1px solid #dbe9f3;
        border-radius: var(--radius);
        background: #fff;
        box-shadow: 0 24px 60px rgba(3, 18, 32, 0.24);
      }

      .contact-dialog header {
        display: flex;
        gap: 14px;
        align-items: flex-start;
        justify-content: space-between;
        margin-bottom: 16px;
      }

      .contact-dialog h2 {
        margin: 0;
        color: #0d2d4a;
        font-size: 22px;
        font-weight: 850;
        line-height: 1.15;
      }

      .contact-dialog p {
        margin: 6px 0 0;
        color: #60758a;
        font-size: 13px;
        font-weight: 650;
        line-height: 1.5;
      }

      .contact-close {
        display: grid;
        flex: 0 0 34px;
        width: 34px;
        height: 34px;
        place-items: center;
        color: #0d2d4a;
        border: 1px solid #d7e7f2;
        border-radius: 50%;
        background: #f8fcff;
        font-size: 22px;
        line-height: 1;
      }

      .contact-dialog form {
        display: grid;
        gap: 10px;
      }

      .contact-dialog input,
      .contact-dialog textarea {
        width: 100%;
        border: 1px solid #d7e7f2;
        border-radius: 6px;
        background: #f9fdff;
        color: #10243a;
        font: inherit;
        font-size: 13px;
      }

      .contact-dialog input {
        min-height: 40px;
        padding: 0 12px;
      }

      .contact-dialog textarea {
        min-height: 108px;
        padding: 10px 12px;
        resize: vertical;
      }

      .location-strip {
        display: grid;
        gap: 16px;
        align-items: stretch;
      }

      .map-preview {
        display: grid;
        width: 100%;
        min-height: 240px;
        place-items: center;
        border-radius: 7px;
        background:
          linear-gradient(135deg, rgba(3, 118, 255, 0.2), rgba(0, 117, 255, 0.14)),
          url("assets/map-uploaded-world.56dc571c7178.jpg") center / cover no-repeat;
      }

      .back-to-top-wrap {
        display: flex;
        justify-content: center;
        margin-top: 18px;
      }

      .back-to-top {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        color: #0075ff;
        font-size: 14px;
        font-weight: 500;
      }

      .back-to-top:hover,
      .back-to-top:focus-visible {
        color: #005eb8;
        text-decoration: underline;
      }

      /* Individual map pins — a small dot with a white ring (Leaflet divIcon). */
      .map-pin {
        display: flex;
        align-items: center;
        justify-content: center;
        background: transparent;
        border: none;
      }

      .map-pin__dot {
        display: block;
        width: 14px;
        height: 14px;
        border-radius: 50%;
        background: var(--blue);
        border: 2.5px solid #fff;
        box-shadow: 0 2px 6px rgba(2, 132, 199, 0.45);
        cursor: pointer;
        transition: transform 0.15s ease;
      }

      .map-pin:hover .map-pin__dot {
        transform: scale(1.35);
      }

      .map-pin--featured .map-pin__dot {
        background: #f59e0b;
        box-shadow: 0 2px 8px rgba(245, 158, 11, 0.55);
      }

      /* Server-side cluster bubbles — navy circle with a white count. */
      .map-cluster {
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: var(--navy);
        border: 2px solid rgba(255, 255, 255, 0.85);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
        cursor: pointer;
        transition: transform 0.15s ease;
      }

      .map-cluster:hover {
        transform: scale(1.12);
      }

      .map-cluster span {
        color: #fff;
        font-size: 12px;
        font-weight: 700;
        line-height: 1;
        pointer-events: none;
      }

      /* Listing card rendered inside a map popup — strip card chrome and
         constrain it so the popup stays compact and centred on the pin. */
      .map-popup .leaflet-popup-content-wrapper {
        padding: 0;
        overflow: hidden;
        border-radius: 12px;
      }

      .map-popup .leaflet-popup-content {
        margin: 0;
        width: 240px !important;
      }

      .map-popup .listing-card {
        width: 240px;
        border: none;
        border-radius: 0;
        box-shadow: none;
      }

      .map-popup .listing-card:hover,
      .map-popup .listing-card:focus-within {
        transform: none;
        box-shadow: none;
      }

      .map-popup .listing-card img,
      .map-popup .listing-media-empty {
        height: 130px;
        min-height: 0;
      }

      .map-popup .listing-body {
        padding: 12px;
      }

      .map-popup .listing-card-button {
        margin-top: 8px;
      }

      .detail-note {
        margin-top: 14px;
        padding: 14px;
        border-radius: 7px;
        background: #f3f9fe;
        color: #49687f;
        font-size: 13px;
        font-weight: 700;
      }

      @media (max-width: 980px) {
        .detail-shell {
          grid-template-columns: 1fr;
        }

        .detail-side {
          position: static;
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .price-card,
        .inquiry-card {
          grid-column: span 2;
        }

        .fact-grid,
        .financial-grid {
          grid-template-columns: repeat(2, 1fr);
        }

        .detail-thumbs {
          --thumb-width: 112px;
          width: min(100%, 590px);
        }
      }

      @media (max-width: 980px) {
        .detail-header .listings-hero-inner h1 {
          font-size: 22px;
        }

        .detail-title-section h1 {
          font-size: 22px;
        }

        .detail-price {
          font-size: 22px;
        }
      }

      @media (max-width: 760px) {
        .detail-header .listings-hero-inner h1 {
          font-size: 20px;
        }

        .detail-title-section h1 {
          font-size: 20px;
        }

        .detail-price {
          font-size: 20px;
        }

        .detail-title-section {
          padding: 22px 0;
        }

        .detail-page {
          padding-top: 20px;
        }

        .detail-main-photo,
        .detail-main-photo img {
          min-height: 0;
        }

        .detail-main-photo img {
          aspect-ratio: 1.35;
        }

        .detail-thumbs {
          --thumb-width: 96px;
          width: min(100%, 308px);
        }

        .gallery-arrow {
          width: 36px;
          height: 36px;
        }

        .detail-side,
        .price-card,
        .inquiry-card,
        .location-strip {
          grid-template-columns: 1fr;
        }

        .equipment-list {
          grid-template-columns: 1fr;
        }

        .price-card,
        .inquiry-card {
          grid-column: auto;
        }

        .detail-list {
          grid-template-columns: 1fr;
        }
      }

      @media (max-width: 520px) {
        .fact-grid,
        .financial-grid {
          grid-template-columns: 1fr;
        }

        .detail-thumbs {
          --thumb-width: 96px;
          width: 202px;
        }

        .detail-section,
        .price-card,
        .inquiry-card {
          padding: 18px;
        }
      }
    


/* ===== Django integration helpers (not from the prototype) ===== */
/* Flash messages */
.messages { margin: 16px auto; display: grid; gap: 8px; }
.flash { padding: 12px 16px; border-radius: 8px; font-weight: 700; border: 1px solid var(--line); background: #fff; }
.flash--success { background: #f0fbf2; border-color: #b7e6c4; color: #1c7a3e; }
.flash--error, .flash--danger { background: #fff5f5; border-color: rgba(239,68,68,.3); color: #9f1d1d; }
.flash--warning { background: #fff8ef; border-color: rgba(255,148,30,.35); color: #9a5512; }
/* Static (non-carousel) card grid, used by listings/search/favourites */
.listing-grid--static { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 22px; transform: none !important; }
.listing-grid--static .listing-card { flex: initial !important; max-width: none !important; }
/* Placeholder when a listing has no photo */
.listing-media-empty { display: flex; align-items: center; justify-content: center; height: 100%; min-height: 180px; font-size: 2.5rem; background: var(--soft); }
/* Native selects/inputs inside the prototype .search-card */
.search-card .field select, .search-card .field input[type="search"],
.search-card .field input[type="text"], .search-card .field input[type="number"] {
  width: 100%; min-height: 38px; border: 1px solid var(--line); border-radius: 6px;
  padding: 0 12px; background: #fff; color: var(--ink); font-weight: 600;
}

/* ===== GAP screens (wizard, messaging) + form primitives =====
   These screens have no prototype page; style their existing markup with the
   prototype tokens so they read as part of the new theme without a rewrite. */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:38px; padding:0 16px; border:0; border-radius:6px; font-weight:800; font-size:14px; cursor:pointer; text-decoration:none; }
.btn--primary { color:#fff; background:linear-gradient(135deg,#0a74ff,#03a9ff); box-shadow:0 12px 24px rgba(0,111,255,.25); }
.btn--secondary, .btn--ghost, .btn--outline { color:var(--blue); background:#fff; border:1px solid var(--line); }
.btn--sm { min-height:32px; padding:0 12px; font-size:13px; }
.btn--full { width:100%; }
.btn--danger, .btn[style*="error"] { color:#b91c1c; }
.form__group { display:grid; gap:6px; margin-bottom:16px; }
.form__group:last-child { margin-bottom:0; }
.form__label { font-size:13px; font-weight:800; color:var(--ink); }
.form__req { color:#b91c1c; font-weight:700; }
.form__input, .form__select, input[type="text"].form__input, textarea, select {
  width:100%; min-height:42px; border:1.5px solid var(--line); border-radius:8px; padding:10px 12px; background:#fff; color:var(--ink); font:inherit; transition:border-color .15s, box-shadow .15s;
}
.form__input:hover, .form__select:hover, textarea:hover, select:hover { border-color:var(--blue); }
.form__input:focus, .form__select:focus, textarea:focus, select:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(0,117,255,.15); }
.form__group--error .form__input, .form__group--error .form__select, .form__group--error textarea, .form__group--error select { border-color:#b91c1c; }
.form__hint { font-size:12px; color:var(--muted); }
.form__error { color:#9f1d1d; font-size:13px; font-weight:700; margin:4px 0 0; }
.form__fieldset { border:1px solid var(--line); border-radius:12px; padding:22px; margin:0 0 16px; background:#fff; box-shadow:0 6px 18px rgba(8,37,61,.06); }
.form__fieldset:last-child { margin-bottom:0; }
.form__fieldset legend { padding:0 6px; font-size:18px; font-weight:850; color:var(--ink); margin-bottom:10px; }
/* USD money input: a "$" prefix box fused to the left of the input. */
.price-input { display:flex; align-items:stretch; }
.price-input__prefix { display:flex; align-items:center; padding:0 12px; border:1.5px solid var(--line); border-right:0; border-radius:8px 0 0 8px; background:var(--soft); font-weight:700; color:var(--muted); }
.price-input .form__input { border-radius:0 8px 8px 0; }
.form-page { max-width:760px; margin:0 auto; padding:28px 20px 64px; }
.form-page__title { font-size:26px; font-weight:850; }
.form-page__subtitle { color:var(--muted); }
/* Wizard */
.wizard { max-width:820px; margin:0 auto; padding:28px 20px 64px; }
/* Stepper: a number-circle stacked over a centered label, with a top accent
   line that fills in for the active/done steps. The column layout keeps all
   six steps on one row without truncating the labels. */
.wizard__steps { display:flex; gap:8px; list-style:none; padding:0; margin:0 0 32px; }
.wizard__step { flex:1 1 0; min-width:0; }
.wizard__step-btn { display:flex; flex-direction:column; align-items:center; gap:8px; width:100%; padding:8px 4px; background:none; border:none; border-top:3px solid var(--line); color:var(--muted); font:inherit; font-size:12px; font-weight:600; cursor:pointer; transition:color .15s, border-color .15s; }
.wizard__step-btn:hover { color:var(--blue); }
.wizard__step-num { display:grid; place-items:center; width:1.9rem; height:1.9rem; border-radius:50%; background:var(--soft); color:var(--muted); font-size:14px; font-weight:700; transition:background .15s, color .15s; }
.wizard__step-label { text-align:center; line-height:1.2; }
.wizard__step--active .wizard__step-btn,
.wizard__step--done .wizard__step-btn { color:var(--blue); border-top-color:var(--blue); }
.wizard__step--active .wizard__step-num,
.wizard__step--done .wizard__step-num { background:var(--blue); color:#fff; }
.wizard__step--locked .wizard__step-btn { opacity:.4; cursor:not-allowed; }
@media (max-width:560px) {
  .wizard__step-label { display:none; }
}
/* Transparent — each form__fieldset inside is its own card (PoC layout). */
.wizard__panel { padding:0; }
.wizard__nav { display:flex; gap:10px; align-items:center; margin-top:20px; flex-wrap:wrap; }
.wizard__nav-spacer { flex:1; }
.wizard__danger { margin-top:24px; }
.wizard__delete-link { color:#b91c1c; font-weight:700; }
.category-picker { display:grid; grid-template-columns:1fr; gap:12px; }
.category-card { display:block; border:1px solid var(--line); border-radius:8px; padding:14px; cursor:pointer; background:#fff; }
.category-card__label { font-weight:800; display:block; }
.category-card__desc { color:var(--muted); font-size:13px; }

/* Photo uploader (wizard step 4): drop area + thumbnail grid (PoC port).
   .dropzone__input MUST stay display:none — otherwise the native file input
   shows and the drop area collapses, so drag/click do nothing. */
.dropzone { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:32px 16px; border:2px dashed var(--line); border-radius:10px; background:var(--soft); color:var(--muted); cursor:pointer; text-align:center; transition:border-color .2s, background .2s; }
.dropzone:hover { border-color:var(--blue); }
.dropzone--over { border-color:var(--blue); background:rgba(0,117,255,.08); }
.dropzone--disabled { opacity:.55; cursor:not-allowed; }
.dropzone__input { display:none; }
.dropzone__label { margin:0; font-weight:600; color:var(--ink); }
.dropzone__hint { margin:0; font-size:12px; }
.photo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:12px; margin-top:16px; }
.photo-tile { position:relative; aspect-ratio:4 / 3; border-radius:6px; overflow:hidden; background:var(--soft); cursor:grab; }
.photo-tile img { width:100%; height:100%; object-fit:cover; display:block; }
.photo-tile--uploading img { opacity:.5; }
.photo-tile__remove { position:absolute; top:4px; right:4px; width:24px; height:24px; display:flex; align-items:center; justify-content:center; border:none; border-radius:50%; background:rgba(0,0,0,.6); color:#fff; font-size:15px; line-height:1; cursor:pointer; }
.photo-tile__remove:hover { background:#b91c1c; }
.photo-tile__spinner { position:absolute; top:50%; left:50%; width:24px; height:24px; margin:-12px 0 0 -12px; border:3px solid rgba(255,255,255,.5); border-top-color:#fff; border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.photo-guidance { margin:8px 0 0; font-size:0.85em; color:var(--muted); line-height:1.4; }
.photo-tile--main { border:2px solid var(--blue); }
.photo-tile__badge { position:absolute; top:4px; left:4px; padding:2px 6px; border-radius:5px; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.02em; color:#fff; pointer-events:none; }
.photo-tile__badge--main { background:var(--blue); }
.photo-tile__badge--warn { top:auto; bottom:4px; background:var(--orange); }

/* Wizard step 4 (category details): section titles, checkbox groups, custom rows.
   .attr-group MUST keep border:none — without it the <fieldset> shows the default
   browser box that clashes with the theme. (PoC port.) */
.attr-section { margin-bottom:24px; }
.attr-section:last-child { margin-bottom:0; }
.attr-section__title { margin:0 0 4px; font-size:18px; font-weight:700; color:var(--ink); }
.attr-group { border:none; padding:0; margin:0 0 16px; }
.attr-group__legend { margin-bottom:8px; padding:0; font-size:13px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
/* Django wraps the checkbox/radio set in a single <div id="…">; that wrapper is
   the layout container, so the grid goes on it (not on .attr-group__options). */
.attr-group__options > div { display:grid; gap:8px; }
.attr-group__options--grid > div { grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:8px 16px; }
.attr-group__options label { display:flex; align-items:center; gap:8px; font-weight:500; }
.attr-group__options input[type="checkbox"], .attr-group__options input[type="radio"] { width:auto; min-height:0; flex:none; margin:0; }
.attr-custom { margin-top:12px; }
.attr-custom .form__group { margin-bottom:8px; }

.phone-input { display:flex; gap:8px; } .phone-input__code { max-width:130px; }
/* Messaging */
.messaging-page { max-width:880px; margin:0 auto; padding:28px 20px 64px; }
.inbox-list { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.inbox-item { display:flex; gap:12px; align-items:center; padding:14px; border:1px solid var(--line); border-radius:10px; background:#fff; text-decoration:none; color:inherit; }
.inbox-item--unread { border-color:var(--blue); }
.inbox-item__avatar { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--soft); font-weight:800; }
.inbox-item__main { flex:1; } .inbox-item__title { font-weight:800; display:block; } .inbox-item__preview, .inbox-item__time { color:var(--muted); font-size:13px; }
.inbox-empty, .empty-state, .no-results { text-align:center; padding:48px 0; color:var(--muted); }
.thread { border:1px solid var(--line); border-radius:12px; background:#fff; padding:20px; }
.thread__header { display:flex; flex-wrap:wrap; gap:10px; align-items:center; border-bottom:1px solid var(--line); padding-bottom:12px; margin-bottom:12px; }
.thread__title { font-size:20px; font-weight:850; margin:0; flex:1; }
.thread__messages { display:flex; flex-direction:column; gap:8px; padding:20px; margin-bottom:16px; background:var(--soft); border-radius:12px; min-height:280px; max-height:60vh; overflow-y:auto; }
.thread__empty { margin:auto; color:var(--muted); font-size:14px; }
#thread-messages:has(.message-bubble) .thread__empty { display:none; }
.thread__notice { padding:12px; border-radius:8px; background:#fff5f5; color:#9f1d1d; }

/* Chat bubbles: sent = blue right-aligned, received = bordered white left-aligned. */
.message-bubble { max-width:75%; padding:12px 16px; border-radius:12px; font-size:14px; line-height:1.5; }
.message-bubble--sent { align-self:flex-end; background:var(--blue); color:#fff; border-bottom-right-radius:4px; }
.message-bubble--received { align-self:flex-start; background:#fff; color:var(--ink); border:1.5px solid var(--line); border-bottom-left-radius:4px; box-shadow:0 1px 2px rgba(8,37,61,.08); }
.message-bubble__body { margin:0; white-space:pre-wrap; }
.message-bubble__meta { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-top:4px; font-size:11px; opacity:.75; }
.message-bubble__sender { font-weight:700; }
.message-bubble__body--locked { position:relative; user-select:none; }
.message-bubble__blur { filter:blur(5px); opacity:.4; }
.message-bubble__locked-overlay { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; font-size:11px; font-weight:600; color:var(--muted); }
.message-bubble--sent .message-bubble__blur { opacity:.25; }
.message-bubble--sent .message-bubble__locked-overlay { color:rgba(255,255,255,.9); }
.unread-badge { display:inline-grid; place-items:center; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:#087aff; color:#fff; font-size:11px; font-weight:900; }
.breadcrumb { display:flex; gap:8px; color:var(--muted); font-weight:600; margin-bottom:12px; }
.badge { display:inline-flex; padding:3px 9px; border-radius:5px; background:var(--soft); font-size:11px; font-weight:900; text-transform:uppercase; }
.alert { padding:12px 16px; border-radius:8px; border:1px solid var(--line); margin-bottom:16px; }
.alert--warn { background:#fff8ef; border-color:rgba(255,148,30,.35); color:#9a5512; }
.pagination { display:flex; gap:8px; justify-content:center; align-items:center; }

/* Map containers need an explicit height for Leaflet to render. */
.map-wrap { position: relative; height: 440px; border-radius: 10px; overflow: hidden; }
.map-frame .map-wrap { height: 460px; }
.map, #hero-map, #listing-map, #map { height: 100%; min-height: 240px; }
/* Map-browse: scrollable compact list on the left, sticky map on the right. */
.map-browse-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 24px; align-items: start; margin: 20px auto 48px; }
.map-browse-layout__map { position: sticky; top: 16px; }
.map-browse-layout__map .map-wrap { height: calc(100vh - 132px); min-height: 420px; max-height: 760px; }
.map-listings { display: block; }
.map-listings__count { font-size: 13px; font-weight: 700; color: var(--muted); margin-bottom: 12px; }
.map-listings__grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.map-listings__empty { padding: 32px 0; text-align: center; color: var(--muted); }
.map-resize-handle { position: absolute; bottom: 0; left: 0; right: 0; height: 10px; cursor: ns-resize; }

/* Compact horizontal listing card used in the map list panel. */
.listing-card-compact { display: flex; gap: 10px; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: #fff; text-decoration: none; color: inherit; transition: box-shadow .15s, border-color .15s; }
.listing-card-compact:hover { border-color: var(--cyan); box-shadow: 0 8px 22px rgba(2, 12, 27, .1); }
.listing-card-compact__media { flex: 0 0 64px; width: 64px; height: 64px; border-radius: 8px; overflow: hidden; background: var(--soft); display: grid; place-items: center; }
.listing-card-compact__media img { width: 100%; height: 100%; object-fit: cover; }
.listing-card-compact__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; justify-content: center; }
.listing-card-compact__type { font-size: 10px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.listing-card-compact__title { font-size: 14px; font-weight: 800; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.listing-card-compact__location { font-size: 12px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.listing-card-compact__price { font-size: 13px; font-weight: 800; color: var(--cyan); margin-top: 2px; }

/* Slim hero on the map page — keep the band short so the map gets the screen.
   The header stays a plain (non-stacking) block so the filter bar can overlap
   its lower edge while the nav's Categories / profile dropdowns (z-index 20)
   still paint above that low-z filter — mirroring the main browse hero. */
.map-browse-hero__inner { padding: 32px 0; }
.map-browse-hero__inner h1 { font-size: 30px; margin: 0 0 6px; }
.map-browse-hero__inner p { max-width: 560px; }

/* Compact horizontal filter bar — lifted onto the hero's lower edge like the
   browse filter card (negative margin), and kept below the nav dropdowns. */
.map-filter-bar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px; position: sticky; top: 0; z-index: 4; margin: -68px auto 0; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 8px 24px rgba(2, 12, 27, .08); }
/* Field labels + controls mirror the main/browse filter (.field) so the map bar
   reads as the same control set: uppercase micro-labels and 38px selects. */
.map-filter-bar__field { display: flex; flex-direction: column; gap: 7px; }
.map-filter-bar__field > label { display: flex; align-items: baseline; gap: 6px; white-space: nowrap; color: #7c8ea4; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .02em; }
.map-filter-bar__field select { min-width: 160px; min-height: 38px; padding: 0 12px; border: 1px solid var(--line); border-radius: 6px; font-size: 14px; font-weight: 600; color: var(--ink); background: #fff; }
.map-filter-bar .range-field { min-width: 200px; }
.map-filter-bar .range-value { font-size: 12px; font-weight: 800; color: var(--ink, #0b1f33); }
/* Reserve the Budget field's height so the bar doesn't resize when the Equipment
   Type select replaces the taller slider, with the select kept on the baseline. */
.map-filter-bar__field--equipment { justify-content: flex-end; min-height: 67.3px; }
.map-filter-bar__submit { margin-left: auto; align-self: flex-end; }

@media (max-width: 900px) {
  .map-browse-layout { grid-template-columns: 1fr; }
  .map-browse-layout__map { position: static; order: -1; }
  .map-browse-layout__map .map-wrap { height: 56vh; min-height: 360px; }
  .map-listings__grid { grid-template-columns: 1fr; }
  .map-filter-bar { position: static; margin-top: 16px; }
  .map-filter-bar__submit { margin-left: 0; }
}

/* Checkout promo banner (SUMMER26) — brand gradient card advertising the
   one-month access code, above the stubbed "Pay by card" panel. Date-gated in
   the view; see PROMO_SUMMER26_ENDS. */
.checkout-promo {
  position: relative;
  overflow: hidden;
  margin-bottom: 16px;
  padding: 22px 24px;
  border-radius: var(--radius);
  background: linear-gradient(120deg, var(--navy) 0%, var(--blue) 62%, var(--cyan) 130%);
  color: #fff;
  box-shadow: var(--shadow);
}
.checkout-promo__eyebrow {
  display: inline-block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--cyan);
}
.checkout-promo__title {
  margin: 0 0 6px;
  font-size: 22px;
  line-height: 1.2;
  color: #fff;
}
.checkout-promo__body {
  margin: 0 0 12px;
  font-size: 15px;
  line-height: 1.5;
  color: rgba(255, 255, 255, .92);
}
.checkout-promo__code {
  display: inline-block;
  padding: 2px 10px;
  border: 1px dashed rgba(255, 255, 255, .7);
  border-radius: 6px;
  background: rgba(255, 255, 255, .12);
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-weight: 700;
  letter-spacing: .06em;
  white-space: nowrap;
}
.checkout-promo__terms {
  margin: 0;
  font-size: 13px;
  color: rgba(255, 255, 255, .75);
}
