html {
      scroll-behavior: smooth;
    }

    .gold-glow:hover {
      box-shadow: 0 0 20px rgba(212, 175, 55, 0.3);
    }

    .letter-spacing-custom {
      letter-spacing: 0.15em;
    }

    .desaturated-gold {
      filter: grayscale(100%) sepia(100%) saturate(500%) hue-rotate(10deg) brightness(0.9);
    }

    details>summary::-webkit-details-marker {
      display: none;
    }

    details summary {
      list-style: none;
    }

    input:focus,
    textarea:focus,
    select:focus {
      outline: none !important;
      border-color: #D4AF37 !important;
      --tw-ring-color: #D4AF37 !important;
    }

    .geometric-bg {
      background-image: radial-gradient(circle at 2px 2px, rgba(201, 169, 110, 0.05) 1px, transparent 0);
      background-size: 40px 40px;
    }

    .fade-in {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    }

    .fade-in.visible {
      opacity: 1;
      transform: translateY(0);
    }

    .hamburger-line {
      transition: all 0.3s ease;
    }

    .mobile-menu {
      transform: translateX(100%);
      transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .mobile-menu.open {
      transform: translateX(0);
    }

/* Base reset */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    scroll-behavior: smooth;
}

body {
    font-family: 'Montserrat', sans-serif;
    background-color: #FFFFFF;
    color: #1F2D2B;
}

::selection {
    background-color: rgba(212, 175, 55, 0.3);
    color: #1A302D;
}

.font-display {
    font-family: 'Playfair Display', serif;
}

.font-heading {
    font-family: 'Manrope', sans-serif;
}


/* Custom scrollbar */
::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background: #F3F6F4;
}

::-webkit-scrollbar-thumb {
    background: #D4AF37;
    border-radius: 3px;
}

@keyframes luxuryBounce {
    from, to {
        transform: translateY(0) scale(1);
    }
    50% {
        transform: translateY(-8px) scale(1.02);
    }
}

.animate-luxury-bounce {
    animation: luxuryBounce 3s ease-in-out infinite;
}

.social-button-shadow {
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.12), 0 0 15px rgba(212, 175, 55, 0.1);
}

.social-button-shadow:hover {
    box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.18), 0 0 20px rgba(212, 175, 55, 0.2);
}

/* WordPress admin bar offset (logged-in view only) */
body.admin-bar header.fixed { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar header.fixed { top: 46px; }
}
/* Form notice */
.pg-honey { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }



/* MOBILE PASS (version 6) */
html, body { max-width: 100%; overflow-x: hidden; }
@supports (overflow: clip) { html, body { overflow-x: clip; } }

/* Parent theme (Astra) scroll-to-top: unstyled here, keep it hidden */
#ast-scroll-top, .ast-scroll-top-icon, #ast-scroll-top-link, .ast-scroll-to-top-right, .ast-scroll-to-top-left { display: none !important; }

/* Off-canvas menu must not exist for scrolling while closed */
.mobile-menu { visibility: hidden; transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0.4s; }
.mobile-menu.open { visibility: visible; transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s; }

/* Rounded corners on every content image and its frame (logos and the full-bleed hero are excluded) */
img:not(.pg-logo):not(.pg-bleed) { border-radius: 14px; }
div:has(> img:not(.pg-logo):not(.pg-bleed)), a:has(> img:not(.pg-logo):not(.pg-bleed)) { border-radius: 14px; overflow: hidden; }
[class*="-inset-2"], [class*="-inset-4"] { border-radius: 18px; }

img { max-width: 100%; height: auto; }
.pg-logo { border-radius: 0 !important; }

@media (max-width: 767px) {
  body { -webkit-text-size-adjust: 100%; }
  main p, main li { overflow-wrap: break-word; }
  summary h3 { padding-right: 0.5rem; }
}

/* Mobile menu (version 6): sits below the fixed header, never inside it */
.mobile-menu { top: 73px; bottom: 0; z-index: 60; }
.pg-menu-backdrop { position: fixed; top: 73px; left: 0; right: 0; bottom: 0; z-index: 55; background: rgba(26, 48, 45, 0.45); opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0s linear 0.3s; }
.pg-menu-backdrop.open { opacity: 1; visibility: visible; transition: opacity 0.3s ease, visibility 0s; }
html.pg-menu-open, html.pg-menu-open body { overflow: hidden; }
[data-menu-toggle] .hamburger-line { transform-origin: center; }
[data-menu-toggle][aria-expanded="true"] .hamburger-line:nth-child(1) { transform: translateY(8px) rotate(45deg); }
[data-menu-toggle][aria-expanded="true"] .hamburger-line:nth-child(2) { opacity: 0; }
[data-menu-toggle][aria-expanded="true"] .hamburger-line:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
body.admin-bar .pg-menu-backdrop, body.admin-bar .mobile-menu { top: 105px; }
@media (max-width: 782px) { body.admin-bar .pg-menu-backdrop, body.admin-bar .mobile-menu { top: 119px; } }
html.pg-menu-open .pg-float { display: none; }
