   /* -------------------------------------------------
       AIVELLE Privacy Modal
    -------------------------------------------------- */

    body.privacy-modal-open {
      overflow: hidden;
    }

    .privacy-modal {
      position: fixed;
      inset: 0;
      z-index: 5000;

      display: grid;
      place-items: center;

      padding:
        clamp(18px, 4vw, 60px)
        var(--page-gutter);

      visibility: hidden;
      opacity: 0;

      transition:
        opacity .35s ease,
        visibility .35s ease;
    }

    .privacy-modal.is-open {
      visibility: visible;
      opacity: 1;
    }

    .privacy-modal-backdrop {
      position: absolute;
      inset: 0;

      background: rgba(0, 0, 0, .78);

      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }

    .privacy-modal-dialog {
      position: relative;
      z-index: 2;

      width: min(920px, 100%);
      max-height: min(840px, calc(100svh - 48px));

      display: grid;
      grid-template-rows: auto minmax(0, 1fr) auto;

      overflow: hidden;

      background: #0b0b0b;

      border: 1px solid var(--line);
      border-radius: 16px;

      box-shadow:
        0 34px 90px rgba(0, 0, 0, .68);

      opacity: 0;

      transform:
        translateY(22px)
        scale(.975);

      transition:
        opacity .38s ease,
        transform .48s var(--ease);
    }

    .privacy-modal.is-open .privacy-modal-dialog {
      opacity: 1;

      transform:
        translateY(0)
        scale(1);
    }

    .privacy-modal-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 30px;

      padding:
        clamp(26px, 4vw, 48px)
        clamp(24px, 4.5vw, 54px)
        24px;

      border-bottom: 1px solid var(--line);
    }

    .privacy-modal-header .eyebrow {
      margin-bottom: 12px;
    }

    .privacy-modal-header h2 {
      margin: 0;

      color: var(--white);

      font-size: clamp(32px, 4vw, 58px);
      font-weight: 400;
      line-height: 1;
      letter-spacing: -.04em;
    }

    .privacy-modal-close {
      flex: 0 0 auto;

      width: 46px;
      height: 46px;

      display: inline-grid;
      place-items: center;

      padding: 0;

      border: 1px solid var(--line);
      border-radius: 50%;

      color: var(--paper);
      background: transparent;

      font-size: 28px;
      font-weight: 200;
      line-height: 1;

      cursor: pointer;

      transition:
        color .35s ease,
        border-color .35s ease,
        transform .45s var(--ease);
    }

    .privacy-modal-close:hover,
    .privacy-modal-close:focus-visible {
      color: var(--accent);
      border-color: var(--accent);
      transform: rotate(90deg);
    }

    .privacy-modal-content {
      min-height: 0;
      overflow-y: auto;
      overscroll-behavior: contain;

      padding:
        clamp(28px, 4vw, 46px)
        clamp(24px, 4.5vw, 54px)
        50px;

      color: var(--mist);

      scrollbar-width: thin;
      scrollbar-color: var(--accent) var(--graphite);
    }

    .privacy-modal-content::-webkit-scrollbar {
      width: 7px;
    }

    .privacy-modal-content::-webkit-scrollbar-track {
      background: var(--graphite);
    }

    .privacy-modal-content::-webkit-scrollbar-thumb {
      background: var(--accent);
      border-radius: 20px;
    }

    .privacy-effective-date {
      margin: 0 0 40px;

      color: var(--muted);

      text-transform: uppercase;
      letter-spacing: .16em;
      font-size: 10px;
    }

    .privacy-modal-content section {
      max-width: 720px;

      margin: 0 0 42px;
      padding: 0;
    }

    .privacy-modal-content section:last-child {
      margin-bottom: 0;
    }

    .privacy-modal-content h3 {
      margin: 0 0 15px;

      color: var(--paper);

      font-size: clamp(20px, 2vw, 28px);
      font-weight: 400;
      letter-spacing: -.025em;
      line-height: 1.2;
    }

    .privacy-modal-content p {
      margin: 0 0 16px;
    }

    .privacy-modal-content ul {
      margin: 18px 0 0;
      padding-left: 20px;
    }

    .privacy-modal-content li {
      margin-bottom: 9px;
    }

    .privacy-modal-content a {
      color: var(--accent);
      transition: opacity .3s ease;
    }

    .privacy-modal-content a:hover,
    .privacy-modal-content a:focus-visible {
      opacity: .7;
    }

    .privacy-modal-footer {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 24px;

      padding:
        20px
        clamp(24px, 4.5vw, 54px);

      border-top: 1px solid var(--line);

      color: var(--muted);

      text-transform: uppercase;
      letter-spacing: .18em;
      font-size: 10px;
    }

    .privacy-modal-footer button {
      padding: 0;

      border: 0;

      color: var(--accent);
      background: transparent;

      text-transform: uppercase;
      letter-spacing: .18em;
      font-size: 10px;

      cursor: pointer;
    }

    .privacy-modal-footer button:hover,
    .privacy-modal-footer button:focus-visible {
      color: var(--white);
    }

    @media (max-width: 600px) {

      .privacy-modal {
        padding: 12px;
      }

      .privacy-modal-dialog {
        max-height: calc(100svh - 24px);
        border-radius: 12px;
      }

      .privacy-modal-header {
        padding: 24px 20px 20px;
      }

      .privacy-modal-header h2 {
        font-size: 34px;
      }

      .privacy-modal-close {
        width: 40px;
        height: 40px;
        font-size: 25px;
      }

      .privacy-modal-content {
        padding: 28px 20px 40px;
      }

      .privacy-modal-footer {
        padding: 18px 20px;
      }
    }

    @media (prefers-reduced-motion: reduce) {

      .privacy-modal,
      .privacy-modal-dialog,
      .privacy-modal-close {
        transition: none;
      }
    }

/* =================================================
       AIVELLE Terms Modal
    ================================================= */

    .footer-legal-copy {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 7px;
    }

    .footer-legal-copy a {
      color: inherit;
      text-decoration: none;

      transition:
        color .35s ease,
        opacity .35s ease;
    }

    .footer-legal-copy a:hover,
    .footer-legal-copy a:focus-visible {
      color: var(--accent);
    }

    .footer-legal-divider {
      color: var(--muted);
    }

    body.terms-modal-open {
      overflow: hidden;
    }

    .terms-modal {
      position: fixed;
      inset: 0;
      z-index: 5100;

      display: grid;
      place-items: center;

      padding:
        clamp(18px, 4vw, 60px)
        var(--page-gutter);

      visibility: hidden;
      opacity: 0;

      transition:
        opacity .35s ease,
        visibility .35s ease;
    }

    .terms-modal.is-open {
      visibility: visible;
      opacity: 1;
    }

    .terms-modal-backdrop {
      position: absolute;
      inset: 0;

      background: rgba(0, 0, 0, .82);

      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }

    .terms-modal-dialog {
      position: relative;
      z-index: 2;

      width: min(940px, 100%);
      max-height: min(860px, calc(100svh - 48px));

      display: grid;
      grid-template-rows: auto minmax(0, 1fr) auto;

      overflow: hidden;

      background: #0b0b0b;

      border: 1px solid var(--line);
      border-radius: 16px;

      box-shadow:
        0 34px 90px rgba(0, 0, 0, .72);

      opacity: 0;

      transform:
        translateY(22px)
        scale(.975);

      transition:
        opacity .38s ease,
        transform .48s var(--ease);
    }

    .terms-modal.is-open .terms-modal-dialog {
      opacity: 1;

      transform:
        translateY(0)
        scale(1);
    }

    .terms-modal-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 30px;

      padding:
        clamp(25px, 3.5vw, 42px)
        clamp(24px, 4.5vw, 54px)
        22px;

      border-bottom: 1px solid var(--line);
    }

    .terms-modal-header .eyebrow {
      margin-bottom: 11px;
    }

    .terms-modal-header h2 {
      margin: 0;

      color: var(--white);

      font-size: clamp(30px, 3.8vw, 54px);
      font-weight: 400;
      line-height: 1;
      letter-spacing: -.04em;
    }

    .terms-modal-close {
      flex: 0 0 auto;

      width: 46px;
      height: 46px;

      display: inline-grid;
      place-items: center;

      padding: 0;

      border: 1px solid var(--line);
      border-radius: 50%;

      color: var(--paper);
      background: transparent;

      font-size: 28px;
      font-weight: 200;
      line-height: 1;

      cursor: pointer;

      transition:
        color .35s ease,
        border-color .35s ease,
        transform .45s var(--ease);
    }

    .terms-modal-close:hover,
    .terms-modal-close:focus-visible {
      color: var(--accent);
      border-color: var(--accent);

      transform: rotate(90deg);
    }

    .terms-modal-content {
      min-height: 0;
      overflow-y: auto;
      overscroll-behavior: contain;

      padding:
        clamp(27px, 3.5vw, 42px)
        clamp(24px, 4.5vw, 54px)
        50px;

      color: var(--mist);

      /*
       * Smaller, professional small-print typography.
       */
      font-size: 12.5px;
      line-height: 1.78;
      letter-spacing: .01em;

      scrollbar-width: thin;
      scrollbar-color: var(--accent) var(--graphite);
    }

    .terms-modal-content::-webkit-scrollbar {
      width: 7px;
    }

    .terms-modal-content::-webkit-scrollbar-track {
      background: var(--graphite);
    }

    .terms-modal-content::-webkit-scrollbar-thumb {
      background: var(--accent);
      border-radius: 20px;
    }

    .terms-effective-date {
      margin: 0 0 30px;

      color: var(--muted);

      text-transform: uppercase;
      letter-spacing: .16em;
      font-size: 9px;
    }

    .terms-introduction {
      max-width: 730px;

      margin: 0 0 42px;

      color: var(--paper);

      font-size: 13px;
      line-height: 1.8;
    }

    .terms-modal-content section {
      max-width: 730px;

      margin: 0 0 34px;
      padding: 0;
    }

    .terms-modal-content section:last-child {
      margin-bottom: 0;
    }

    .terms-modal-content h3 {
      margin: 0 0 12px;

      color: var(--paper);

      font-size: 14px;
      font-weight: 400;
      line-height: 1.35;
      letter-spacing: .015em;
    }

    .terms-modal-content p {
      margin: 0 0 12px;
    }

    .terms-modal-content ul {
      margin: 15px 0 0;
      padding-left: 19px;
    }

    .terms-modal-content li {
      margin-bottom: 8px;
      padding-left: 3px;
    }

    .terms-modal-content a {
      color: var(--accent);

      transition: opacity .3s ease;
    }

    .terms-modal-content a:hover,
    .terms-modal-content a:focus-visible {
      opacity: .7;
    }

    .terms-modal-footer {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 24px;

      padding:
        19px
        clamp(24px, 4.5vw, 54px);

      border-top: 1px solid var(--line);

      color: var(--muted);

      text-transform: uppercase;
      letter-spacing: .18em;
      font-size: 9px;
    }

    .terms-modal-footer button {
      padding: 0;

      border: 0;

      color: var(--accent);
      background: transparent;

      text-transform: uppercase;
      letter-spacing: .18em;
      font-size: 9px;

      cursor: pointer;

      transition: color .3s ease;
    }

    .terms-modal-footer button:hover,
    .terms-modal-footer button:focus-visible {
      color: var(--white);
    }

    @media (max-width: 600px) {

      .footer-legal-copy {
        justify-content: center;
      }

      .terms-modal {
        padding: 12px;
      }

      .terms-modal-dialog {
        max-height: calc(100svh - 24px);

        border-radius: 12px;
      }

      .terms-modal-header {
        padding: 24px 20px 20px;
      }

      .terms-modal-header h2 {
        font-size: 34px;
      }

      .terms-modal-close {
        width: 40px;
        height: 40px;

        font-size: 25px;
      }

      .terms-modal-content {
        padding: 27px 20px 40px;

        /*
         * Slightly larger on mobile for readability.
         */
        font-size: 12px;
        line-height: 1.75;
      }

      .terms-introduction {
        font-size: 12.5px;
      }

      .terms-modal-content h3 {
        font-size: 13.5px;
      }

      .terms-modal-footer {
        padding: 18px 20px;
      }

    }

    @media (prefers-reduced-motion: reduce) {

      .terms-modal,
      .terms-modal-dialog,
      .terms-modal-close {
        transition: none;
      }

    }


/* =================================================
   AIVELLE Registered Office
================================================= */

.aivelle-registered-office p {
    margin-bottom: 0;
}

.aivelle-registered-office {
    font-style: normal;
}
