  /* =====================================================================
   PORCELAIN GODDESS — CUSTOM CSS
   Loaded after the Webflow stylesheet; everything here overrides it.
   1. Fonts & colour palette      6. Hamburger menu
   2. Type scale (clamp)          7. Age verification
   3. Buttons                     8. About image loop
   4. Overflow                    9. Portfolio, viewer, forms, status pages
   5. Navbar
   ===================================================================== */

  /* ---------- 1. Fonts & palette ---------- */
  @font-face {
    font-family: 'Baquine';
    src: url('../fonts/Baquine.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Urbanist';
    src: url('../fonts/urbanist-latin-wght-normal.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: 'Urbanist';
    src: url('../fonts/urbanist-latin-ext-wght-normal.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  @font-face {
    font-family: 'Urbanist';
    src: url('../fonts/urbanist-latin-wght-italic.woff2') format('woff2');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
  }

  :root {
    /* palette */
    --pink: #ec4f8e; /* was #b84b88 */
    --pink-light: #f47fae;
    --pink-deep: #b92e68;
    --pink-glow: rgba(236, 79, 142, 0.45);
    --background-black: #0c0809; /* was #0a0a0a — warmer black */
    --secondary-black: #1a1215; /* was #222 */
    --secondary-grey: #bfb4b8; /* was #b3b3b3 */
    --primary-grey: #85787d;
    --line: rgba(255, 255, 255, 0.1);

    /* fonts: one heading font for the WHOLE heading, spans included */
    --heading-font: 'Baquine', 'Arial Narrow', sans-serif-condensed, sans-serif;
    --heading-text: 'Baquine', 'Arial Narrow', sans-serif-condensed, sans-serif;
    --font-body: 'Urbanist', Arial, sans-serif;

    --ease-out: cubic-bezier(0.2, 0.7, 0.1, 1);
  }

  body {
    background-color: var(--background-black);
    font-family: var(--font-body);
  }
  ::selection {
    background: var(--pink);
    color: #fff;
  }

  /* Highlighted word inside a heading: same font, italic + pink */
  .featured-heading {
    font-family: inherit;
    font-style: italic;
    color: var(--pink);
    text-transform: inherit;
  }

  /* ---------- 2. Type scale ---------- */
  h1,
  .heading-style-h1 {
    font-family: var(--heading-font);
    font-size: clamp(3.5rem, 2rem + 5.5vw, 8rem);
    font-weight: 400;
    line-height: 0.95;
    letter-spacing: 0.01em;
  }
  h2,
  .heading-style-h2 {
    font-family: var(--heading-font);
    font-size: clamp(3rem, 1.9rem + 4.2vw, 6rem);
    font-weight: 400;
    line-height: 0.95;
    letter-spacing: 0.01em;
  }
  h3,
  .heading-style-h3 {
    font-family: var(--heading-font);
    font-size: clamp(2.25rem, 1.6rem + 2.6vw, 4rem);
    font-weight: 400;
    line-height: 1;
  }
  h4,
  .heading-style-h4 {
    font-family: var(--heading-font);
    font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.75rem);
    font-weight: 400;
    line-height: 1.05;
  }
  h5,
  .heading-style-h5 {
    font-family: var(--heading-font);
    font-size: clamp(1.5rem, 1.3rem + 0.8vw, 2rem);
    font-weight: 400;
    line-height: 1.1;
  }
  h6,
  .heading-style-h6 {
    font-family: var(--heading-font);
    font-size: clamp(1.25rem, 1.15rem + 0.4vw, 1.5rem);
    font-weight: 400;
    line-height: 1.15;
  }

  .text-size-small {
    font-size: clamp(0.875rem, 0.85rem + 0.1vw, 0.9375rem);
    line-height: 1.55;
    color: var(--secondary-grey);
  }
  .text-size-regular {
    font-size: clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
    line-height: 1.65;
    font-weight: 400;
  }
  .text-size-medium {
    font-size: clamp(1.125rem, 1.05rem + 0.35vw, 1.3125rem);
    line-height: 1.6;
    font-weight: 400;
    color: var(--secondary-grey);
  }
  .text-size-large {
    font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.625rem);
    line-height: 1.5;
    font-weight: 400;
  }
  .text-size-xlarge {
    font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
    line-height: 1.35;
    font-weight: 400;
  }

  /* Home hero: long 4-line title, sized to fit the first screen */
  .section-home-header .heading-style-h1 {
    font-size: clamp(3.25rem, 1.9rem + 4.4vw, 6.75rem);
  }
  .header-component-grid {
    height: auto;
    min-height: 100vh;
    min-height: 100svh;
    padding-top: 7rem;
    padding-bottom: 2rem;
  }

  /* heading-like pieces that aren't h tags */
  .service-title {
    font-family: var(--heading-font);
    font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem);
    line-height: 1;
    letter-spacing: 0.01em;
  }
  .case-name {
    font-family: var(--heading-font);
  }
  .card-number,
  .product-name {
    font-family: var(--heading-font);
    font-style: italic;
  }
  .product-name {
    font-size: clamp(2.5rem, 1.8rem + 2.6vw, 4.25rem);
    line-height: 1;
    color: var(--pink);
  }
  .product-price-element {
    font-family: var(--heading-font);
    font-size: clamp(2rem, 1.6rem + 1.4vw, 2.75rem);
  }
  .product-price-element.actual {
    font-size: clamp(1.125rem, 1rem + 0.4vw, 1.375rem);
  }
  .product-description {
    font-size: clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
    line-height: 1.65;
    font-weight: 400;
  }
  .case-service {
    font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
    line-height: 1.5;
  }
  .link-text {
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
  }
  .nav-link {
    font-family: var(--heading-font);
    font-size: clamp(2rem, 3.5vw, 3.5rem);
  }
  .logo-text,
  .alternate-logo-text {
    font-family: var(--heading-font);
    font-size: 1.85rem;
    letter-spacing: 0.02em;
  }
  .logo-wrapper {
    height: 1.85rem;
  }

  /* ---------- 3. Buttons ---------- */
  /* Main buttons become real pill buttons; Webflow's text-roll hover stays. */
  .main-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 1.75rem;
    border: 1px solid var(--pink);
    border-radius: 999px;
    background-color: var(--pink);
    color: #fff;
    box-shadow: 0 14px 34px -16px var(--pink-glow);
    transition:
      background-color 0.35s var(--ease-out),
      border-color 0.35s var(--ease-out),
      color 0.35s var(--ease-out),
      box-shadow 0.35s var(--ease-out);
  }
  .main-button:hover {
    background-color: #fff;
    border-color: #fff;
    color: var(--background-black);
    box-shadow: 0 14px 34px -16px rgba(255, 255, 255, 0.35);
  }
  .main-button:focus-visible {
    outline: 2px solid var(--pink-light);
    outline-offset: 4px;
  }
  .main-button .underline-wrapper {
    display: none;
  }
  .main-button .button-inner-flex {
    align-items: center;
    gap: 0.6rem;
  }
  .text-button {
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.08em;
  }

  /* Social buttons inside the menu: outlined */
  .nav-social-media-wrapper .main-button {
    background-color: transparent;
    border-color: rgba(255, 255, 255, 0.2);
    box-shadow: none;
    padding: 0.75rem 1.25rem;
  }
  .nav-social-media-wrapper .main-button:hover {
    background-color: var(--pink);
    border-color: var(--pink);
    color: #fff;
  }

  /* Shop + form buttons */
  .button-primary.w-button,
  .form-button.w-button {
    width: auto;
    padding: 1rem 2rem;
    border: 1px solid var(--pink);
    border-radius: 999px;
    background-color: var(--pink);
    color: #fff;
    font-weight: 600;
    font-size: 0.8125rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1;
    box-shadow: 0 14px 34px -16px var(--pink-glow);
    transition:
      background-color 0.35s var(--ease-out),
      color 0.35s var(--ease-out),
      border-color 0.35s var(--ease-out);
  }
  .button-primary.w-button:hover,
  .form-button.w-button:hover {
    background-color: #fff;
    border-color: #fff;
    color: var(--background-black);
  }
  .form-input.newsletter {
    border-radius: 999px;
    padding: 1.1rem 1.5rem;
    background-color: var(--secondary-black);
    border: 1px solid var(--line);
    color: #fff;
  }
  .form-input.newsletter:focus {
    border-color: var(--pink);
    outline: none;
  }

  /* Small reusable button used in the navbar */
  .pg-btn {
    display: inline-flex;
    align-items: center;
    height: 2.75rem;
    padding: 0 1.4rem;
    border-radius: 999px;
    background-color: var(--pink);
    color: #fff;
    text-decoration: none;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    transition:
      background-color 0.35s var(--ease-out),
      color 0.35s var(--ease-out);
  }
  .pg-btn:hover {
    background-color: #fff;
    color: var(--background-black);
  }

  /* Text roll used by the new navbar links (same feel as Webflow's hovers) */
  .pg-roll {
    display: inline-flex;
    flex-direction: column;
    height: 1em;
    line-height: 1;
    overflow: hidden;
  }
  .pg-roll > span {
    display: block;
    transition: transform 0.4s var(--ease-out);
  }
  .pg-roll > span + span {
    color: var(--pink);
  }
  a:hover > .pg-roll > span,
  a:focus-visible > .pg-roll > span {
    transform: translateY(-100%);
  }
  .pg-btn .pg-roll > span + span {
    color: inherit;
  }

  /* ---------- 4. No sideways scrolling anywhere ---------- */
  body {
    overflow-x: hidden;
  }
  .page-wrapper {
    overflow-x: clip;
  }

  /* ---------- 5. Navbar: fixed, background on scroll ---------- */
  .topbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
    transition: padding 0.4s var(--ease-out);
  }
  /* The background lives on a pseudo-element so the blur doesn't break the full-screen menu */
  .topbar::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(12, 8, 9, 0.82);
    -webkit-backdrop-filter: blur(16px) saturate(140%);
    backdrop-filter: blur(16px) saturate(140%);
    border-bottom: 1px solid var(--line);
    opacity: 0;
    transition: opacity 0.4s var(--ease-out);
    pointer-events: none;
  }
  .topbar.is-scrolled {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }
  .topbar.is-scrolled::before {
    opacity: 1;
  }
  body.pg-menu-open .topbar::before {
    opacity: 0;
  }

  .topbar-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
  }
  .topbar-container > .brand-link {
    order: 0;
    margin-right: auto;
  }
  .pg-desk-nav {
    order: 1;
    display: flex;
    align-items: center;
    gap: clamp(1.25rem, 2.4vw, 2.5rem);
  }
  .pg-desk-cta {
    order: 2;
  }
  .topbar-container > .navbar {
    order: 3;
  }
  .pg-desk-link {
    color: var(--white);
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    position: relative;
    padding: 0.4rem 0;
  }
  .pg-desk-link[aria-current='page']::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background-color: var(--pink);
  }
  @media screen and (max-width: 991px) {
    .pg-desk-nav {
      display: none;
    }
  }
  @media screen and (max-width: 479px) {
    .pg-desk-cta {
      display: none;
    }
  }

  /* Full-screen menu slides in from the right, under the hamburger */
  .nav-menu {
    inset: 0% 0% 0% auto;
  }
  .bg-nav {
    inset: 0% 0% auto auto;
    transform-origin: 100% 0;
  }
  .nav-wrapper {
    padding-left: clamp(2rem, 5vw, 5rem);
    padding-right: clamp(2rem, 5vw, 5rem);
  }
  .nav-social-media-wrapper {
    left: clamp(2rem, 5vw, 5rem);
    right: clamp(2rem, 5vw, 5rem);
  }

  /* ---------- 6. Hamburger → clean X ---------- */
  .menu-button {
    cursor: pointer;
  }
  .menu-wrapper {
    overflow: visible;
    width: 2rem;
    height: 2rem;
    gap: 6px;
  }
  .menu-line {
    height: 2px;
    transform-origin: 50% 50%;
    transition:
      transform 0.45s var(--ease-out),
      opacity 0.25s ease,
      width 0.45s var(--ease-out);
  }
  .menu-line.middle {
    width: 70%;
    align-self: flex-end;
  }
  .menu-button:hover .menu-line.middle {
    width: 100%;
  }
  .menu-button.w--open .menu-line.top {
    transform: translateY(8px) rotate(45deg);
  }
  .menu-button.w--open .menu-line.middle {
    opacity: 0;
    transform: scaleX(0);
  }
  .menu-button.w--open .menu-line.bottom {
    transform: translateY(-8px) rotate(-45deg);
  }

  /* ---------- 7. Age verification ---------- */
  html.pg-gated body {
    overflow: hidden;
  }
  html.pg-gated .page-wrapper {
    filter: blur(14px);
    pointer-events: none;
    user-select: none;
  }

  .pg-gate {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    overflow-y: auto;
    background:
      radial-gradient(120% 90% at 50% 0%, rgba(236, 79, 142, 0.22), transparent 60%),
      linear-gradient(180deg, rgba(12, 8, 9, 0.55), rgba(12, 8, 9, 0.92)),
      url('../images/porcelain_goddesss_1740509749_3575977418772432447_43551648167.jpg') center top / cover no-repeat;
    opacity: 1;
    transition: opacity 0.45s var(--ease-out);
  }
  .pg-gate.is-leaving {
    opacity: 0;
    pointer-events: none;
  }
  .pg-gate-card {
    width: 100%;
    max-width: 30rem;
    margin: auto;
    padding: clamp(1.75rem, 5vw, 2.75rem);
    border-radius: 28px;
    background: rgba(22, 15, 18, 0.86);
    border: 1px solid rgba(255, 255, 255, 0.09);
    box-shadow:
      0 40px 100px -30px rgba(0, 0, 0, 0.8),
      0 0 0 1px rgba(236, 79, 142, 0.08) inset;
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    color: #fff;
    animation: pg-rise 0.5s var(--ease-out) both;
  }
  @keyframes pg-rise {
    from {
      opacity: 0;
      transform: translateY(16px) scale(0.98);
    }
  }
  .pg-gate-brand {
    font-family: var(--heading-font);
    font-size: 1.5rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-align: center;
  }
  .pg-gate-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.25rem;
    height: 4.25rem;
    margin: 1.25rem auto 1rem;
    border-radius: 50%;
    border: 1px solid rgba(236, 79, 142, 0.5);
    color: var(--pink);
    font-family: var(--heading-font);
    font-size: 1.9rem;
    box-shadow: 0 0 40px -8px var(--pink-glow);
  }
  .pg-gate-title {
    font-family: var(--heading-font);
    font-size: clamp(2.5rem, 2rem + 2vw, 3.25rem);
    line-height: 0.95;
    text-transform: uppercase;
    text-align: center;
    margin: 0 0 0.75rem;
  }
  .pg-gate-lede {
    color: var(--secondary-grey);
    text-align: center;
    font-size: 0.95rem;
    line-height: 1.55;
    margin: 0 auto 1.75rem;
    max-width: 24rem;
  }
  .pg-field {
    margin-bottom: 1.1rem;
    border: 0;
    padding: 0;
    min-width: 0;
  }
  .pg-label {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 0.5rem;
    padding: 0;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #fff;
  }
  legend.pg-label {
    width: 100%;
    float: left;
  }
  .pg-dob {
    clear: both;
  }
  .pg-label small {
    font-weight: 400;
    letter-spacing: 0.04em;
    text-transform: none;
    color: var(--primary-grey);
    font-size: 0.75rem;
  }
  .pg-input,
  .pg-select {
    width: 100%;
    height: 3.25rem;
    padding: 0 1.1rem;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background-color: rgba(12, 8, 9, 0.7);
    color: #fff;
    font-family: var(--font-body);
    font-size: 1rem;
    transition:
      border-color 0.25s,
      box-shadow 0.25s,
      background-color 0.25s;
  }
  .pg-input::placeholder {
    color: #75686d;
  }
  .pg-input:focus,
  .pg-select:focus {
    outline: none;
    border-color: var(--pink);
    box-shadow: 0 0 0 4px rgba(236, 79, 142, 0.18);
    background-color: rgba(12, 8, 9, 0.9);
  }
  .pg-input[aria-invalid='true'],
  .pg-select[aria-invalid='true'] {
    border-color: #ff6b8b;
  }

  /* Date of birth: three pill selects in one row */
  .pg-dob {
    display: grid;
    grid-template-columns: 1.5fr 0.9fr 1.1fr;
    gap: 0.6rem;
  }
  .pg-select-wrap {
    position: relative;
  }
  .pg-select {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 2.25rem;
    cursor: pointer;
  }
  .pg-select option {
    background-color: #1a1215;
    color: #fff;
  }
  .pg-select.is-empty {
    color: #75686d;
  }
  .pg-select-wrap::after {
    content: '';
    position: absolute;
    right: 1rem;
    top: 50%;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid var(--pink);
    border-bottom: 1.5px solid var(--pink);
    transform: translateY(-70%) rotate(45deg);
    pointer-events: none;
  }
  .pg-gate-error {
    min-height: 1.25rem;
    margin: 0.25rem 0 1rem;
    font-size: 0.875rem;
    color: #ff8aa5;
    text-align: center;
  }
  .pg-gate-error:empty {
    margin-bottom: 0.5rem;
  }
  .pg-gate-actions {
    display: grid;
    gap: 0.75rem;
  }
  .pg-gate-enter {
    height: 3.5rem;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--pink-light), var(--pink) 45%, var(--pink-deep));
    color: #fff;
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 18px 40px -18px var(--pink-glow);
    transition:
      transform 0.3s var(--ease-out),
      box-shadow 0.3s var(--ease-out),
      filter 0.3s;
  }
  .pg-gate-enter:hover {
    transform: translateY(-1px);
    filter: brightness(1.06);
    box-shadow: 0 22px 44px -16px var(--pink-glow);
  }
  .pg-gate-leave {
    height: 3rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    background: transparent;
    color: var(--secondary-grey);
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    transition:
      border-color 0.3s,
      color 0.3s;
  }
  .pg-gate-leave:hover {
    border-color: #fff;
    color: #fff;
  }
  .pg-gate-enter:focus-visible,
  .pg-gate-leave:focus-visible {
    outline: 2px solid var(--pink-light);
    outline-offset: 3px;
  }
  .pg-gate-note {
    margin: 1.25rem 0 0;
    font-size: 0.75rem;
    line-height: 1.5;
    color: var(--primary-grey);
    text-align: center;
  }
  .pg-gate-denied {
    text-align: center;
  }
  .pg-gate-denied p {
    color: var(--secondary-grey);
    margin: 0 auto 1.5rem;
    max-width: 22rem;
    line-height: 1.6;
  }
  .pg-shake {
    animation: pg-shake 0.4s;
  }
  @keyframes pg-shake {
    20%,
    60% {
      transform: translateX(-6px);
    }
    40%,
    80% {
      transform: translateX(6px);
    }
  }
  @media screen and (max-width: 400px) {
    .pg-dob {
      grid-template-columns: 1fr 1fr;
    }
    .pg-dob .pg-select-wrap:first-child {
      grid-column: 1 / -1;
    }
  }

  /* ---------- 8. About page image row: endless loop ---------- */
  .row-about-image {
    display: flex;
    overflow: hidden;
  }
  .row-image-item {
    animation: pg-row-loop 60s linear infinite;
  }
  @keyframes pg-row-loop {
    from {
      transform: translate3d(0, 0, 0);
    }
    to {
      transform: translate3d(-100%, 0, 0);
    }
  }

  /* ---------- 9. Portfolio cards (Home + Portfolio page) ----------
   Replaces the old 100vh sticky panels that cropped every photo.
   Cards sit in a staggered two-column grid and show the whole photo. */
  .pg-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(1.25rem, 3vw, 3rem);
    row-gap: clamp(3rem, 6vw, 6rem);
    align-items: start;
  }
  .pg-grid > .pg-card:nth-child(even) {
    margin-top: clamp(0rem, 10vw, 10rem);
  }
  .pg-card {
    display: block;
    color: var(--white);
    text-decoration: none;
  }
  .pg-card-media {
    position: relative;
    overflow: hidden;
    background-color: var(--secondary-black);
  }
  .pg-card-media img {
    display: block;
    width: 100%;
    height: auto; /* natural shape — nothing cut off */
    transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.1, 1);
  }
  .pg-card:hover .pg-card-media img {
    transform: scale(1.03);
  }
  .pg-card-arrow {
    position: absolute;
    right: 1.5rem;
    bottom: 1.5rem;
    width: 6rem;
    height: 6rem;
    border-radius: 100%;
    background-color: var(--pink);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    transform: scale(0);
    transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.1, 1);
  }
  .pg-card-arrow svg {
    width: 1.25rem;
    height: 1.25rem;
  }
  .pg-card:hover .pg-card-arrow,
  .pg-card:focus-visible .pg-card-arrow {
    transform: scale(1);
  }
  .pg-card-body {
    padding-top: 1.75rem;
  }
  .pg-card .case-number {
    margin-bottom: 1rem;
    color: var(--pink);
  }
  .pg-card .case-name {
    margin-bottom: 0.75rem;
    font-size: 3rem;
  }
  .pg-card .case-service {
    color: var(--secondary-grey);
    max-width: 32rem;
  }
  .pg-card:focus-visible {
    outline: 2px solid var(--pink);
    outline-offset: 6px;
  }

  @media (hover: none) {
    .pg-card-arrow {
      transform: scale(0.7);
      transform-origin: 100% 100%;
    }
  }
  @media screen and (max-width: 767px) {
    .pg-grid {
      grid-template-columns: 1fr;
    }
    .pg-grid > .pg-card:nth-child(even) {
      margin-top: 0;
    }
    .pg-card .case-name {
      font-size: 2.5rem;
    }
  }

  /* ---------- Shoot page: show the whole photo ---------- */
  .main-image {
    aspect-ratio: auto;
    object-fit: contain;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 90vh; /* tall photos shrink to fit the screen instead of being cut */
    margin-left: auto;
    margin-right: auto;
  }
  .portfolio-images-collection .collection-image-item {
    break-inside: avoid;
  }
  .lightbox-image,
  .main-image {
    display: block;
    cursor: zoom-in;
  }

  /* ---------- 9b. Photo viewer ---------- */
  .pg-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background-color: rgba(10, 10, 10, 0.96);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4.5rem 5.5rem 2rem;
  }
  .pg-lightbox[hidden] {
    display: none;
  }
  .pg-lb-img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
  }
  .pg-lb-top {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1.5rem;
    color: var(--secondary-grey);
    font-size: 0.875rem;
  }
  .pg-lb-btn {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 100%;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: transparent;
    color: var(--white);
    font-size: 1.75rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition:
      background-color 0.25s,
      border-color 0.25s;
  }
  .pg-lb-btn:hover {
    background-color: var(--pink);
    border-color: var(--pink);
  }
  .pg-lb-btn:focus-visible {
    outline: 2px solid var(--pink);
    outline-offset: 3px;
  }
  .pg-lb-prev,
  .pg-lb-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
  }
  .pg-lb-prev {
    left: 1.25rem;
  }
  .pg-lb-next {
    right: 1.25rem;
  }
  @media screen and (max-width: 767px) {
    .pg-lightbox {
      padding: 4rem 0.75rem 5.5rem;
    }
    .pg-lb-prev,
    .pg-lb-next {
      top: auto;
      bottom: 1.25rem;
      transform: none;
    }
    .pg-lb-prev {
      left: calc(50% - 4rem);
    }
    .pg-lb-next {
      right: calc(50% - 4rem);
    }
  }

  /* ---------- Forms (replaces Webflow's form handling) ---------- */
  .pg-form {
    margin: 0 0 15px;
  }
  .pg-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
  }
  .product-description ul {
    padding-left: 1.25rem;
  }
  .product-description p:last-child {
    margin-bottom: 0;
  }

  /* ---------- Thank-you & 404 pages ---------- */
  .section-status {
    min-height: 80vh;
    display: flex;
    align-items: center;
  }
  .status-big {
    font-family: var(--heading-text);
    color: var(--pink);
    font-size: clamp(7rem, 22vw, 16rem);
    line-height: 0.9;
  }
  .status-actions {
    display: flex;
    justify-content: center;
    gap: 2.5rem;
    flex-wrap: wrap;
  }

  @media (prefers-reduced-motion: reduce) {
    .pg-card-media img,
    .pg-card-arrow {
      transition: none;
    }
  }

  /* ---------- 10. Privacy Policy & Terms pages ---------- */
  .section-legal {
    padding-bottom: clamp(5rem, 10vw, 9rem);
  }
  .pg-legal-head {
    max-width: 52rem;
    margin-bottom: clamp(3rem, 6vw, 5rem);
  }
  .pg-legal-date {
    color: var(--pink);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
    margin: 0 0 1.25rem;
  }
  .pg-legal-intro {
    max-width: 44rem;
    margin: 0;
  }
  .pg-legal-grid {
    display: grid;
    grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr);
    gap: clamp(2.5rem, 6vw, 6rem);
    align-items: start;
  }
  .pg-legal-toc {
    position: sticky;
    top: 7rem;
    padding: 1.5rem;
    border: 1px solid var(--line);
    border-radius: 20px;
    background-color: var(--secondary-black);
  }
  .pg-legal-toc > p:first-child {
    margin: 0 0 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 600;
    color: #fff;
    font-size: 0.75rem;
  }
  .pg-legal-toc ol {
    margin: 0;
    padding-left: 1.25rem;
    display: grid;
    gap: 0.5rem;
    color: var(--primary-grey);
    font-size: 0.9375rem;
  }
  .pg-legal-toc a {
    color: var(--secondary-grey);
    text-decoration: none;
    transition: color 0.25s;
  }
  .pg-legal-toc a:hover {
    color: var(--pink);
  }
  .pg-legal-other {
    margin: 1.25rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
  }
  .pg-legal-other a {
    color: #fff;
  }
  .pg-legal-content {
    max-width: 46rem;
  }
  .pg-legal-section {
    padding-bottom: 2.25rem;
    margin-bottom: 2.25rem;
    border-bottom: 1px solid var(--line);
    scroll-margin-top: 7rem;
  }
  .pg-legal-section:last-child {
    border-bottom: 0;
    margin-bottom: 0;
  }
  .pg-legal-section h2 {
    margin: 0 0 1rem;
    text-transform: uppercase;
  }
  .pg-legal-body {
    color: var(--secondary-grey);
  }
  .pg-legal-body p {
    margin: 0 0 1em;
  }
  .pg-legal-body p:last-child {
    margin-bottom: 0;
  }
  .pg-legal-body strong {
    color: #fff;
    font-weight: 600;
  }
  .pg-legal-body ul {
    margin: 0 0 1em;
    padding-left: 1.25rem;
    display: grid;
    gap: 0.5rem;
  }
  .pg-legal-body li::marker {
    color: var(--pink);
  }
  .pg-legal-body a,
  .pg-form-note a,
  .pg-gate-note a {
    color: var(--pink);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .pg-legal-body a:hover,
  .pg-form-note a:hover,
  .pg-gate-note a:hover {
    color: #fff;
  }
  .pg-form-note {
    margin: 1rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--primary-grey);
  }
  @media screen and (max-width: 991px) {
    .pg-legal-grid {
      grid-template-columns: 1fr;
    }
    .pg-legal-toc {
      position: static;
    }
  }