:root {
    --ink: #292721;
    --muted: #746e63;
    --sage: #b99a58; /* Existing variable retained for compatibility: gold */
    --sage-dark: #92753d; /* Deep gold */
    --gold: #b99a58;
    --gold-light: #e6d5ad;
    --charcoal: #292721;
    --cream: #f8f5ef;
    --sand: #eee6d9;
    --line: #ded4c3;
}
* {
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
}
body {
    margin: 0;
    background: #fffdf9;
    color: var(--ink);
    font-family: 'DM Sans', sans-serif;
}
h1, h2, h3, .serif {
    font-family: 'Playfair Display', serif;
    font-weight: 400;
}
a {
    color: inherit;
    text-decoration: none;
}
img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.eyebrow {
    text-transform: uppercase;
    letter-spacing: .23em;
    font-size: 20px;
    font-weight: 700;
    color: var(--sage);
}
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 15px 25px;
    background: var(--sage-dark);
    color: white;
    border: 1px solid var(--sage-dark);
    font-size: 12px;
    letter-spacing: .12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: .2s;
}
.btn:hover {
    background: #745b30;
}
.btn.outline {
    background: transparent;
    color: var(--ink);
    border-color: #b6a88d;
}
.btn.outline:hover {
    background: #eee3d0;
}
.announcement {
    background: var(--sage-dark);
    color: #fff;
    text-align: center;
    padding: 10px;
    font-size: 11px;
    letter-spacing: .11em;
}
header.site-header {
    background: rgba(41, 39, 33, .98);
    position: sticky;
    top: 0;
    z-index: 30;
    border-bottom: 1px solid rgba(185, 154, 88, .28);
}
nav.site-nav {
    /* height: 150px; */
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px;
}
.brand {
    font-family: 'Playfair Display', serif;
    font-size: 27px;
    letter-spacing: .02em;
    line-height: 1;
}
.brand small {
    display: block;
    font-family: 'DM Sans', sans-serif;
    font-size: 8px;
    letter-spacing: .35em;
    text-align: center;
    margin-top: 8px;
}
.links {
    display: flex;
    gap: 30px;
    align-items: center;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.links a:hover {
    color: var(--sage);
}
.nav-cta {
    padding: 12px 19px;
}
.menu {
    display: none;
    background: none;
    border: 0;
    font-size: 24px;
    cursor: pointer;
}

.hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    /*padding: 75px max(50px, calc((100vw - 1200px)/2 + 28px)) 75px max(35px, calc((100vw - 1200px)/2 + 28px));*/
	padding:50px;
}
.hero h1 {
    font-size: clamp(47px, 5.1vw, 78px);
    line-height: 1.08;
    letter-spacing: -.03em;
    margin: 22px 0;
}
.hero p {
    font-size: 15px;
    color: var(--muted);
    line-height: 1.9;
    max-width: 460px;
}
.hero-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
}
.hero-photo {
    position: relative;
    min-height: 580px;
}
.hero-photo:after {
    content: 'A LITTLE TIME FOR YOU';
    position: absolute;
    bottom: 32px;
    right: 30px;
    background: rgba(255, 255, 255, .92);
    padding: 16px 20px;
    font-size: 10px;
    letter-spacing: .25em;
}
.intro {
    padding: 95px 0;
    text-align: center;
}
.intro h2 {
    font-size: clamp(32px, 4vw, 51px);
    max-width: 810px;
    line-height: 1.25;
    margin: 18px auto;
}
.intro p {
    max-width: 700px;
    margin: 0 auto;
    color: var(--muted);
    line-height: 1.9;
    font-size: 14px;
}
.services {
    background: var(--cream);
    padding: 95px 0;
}
.section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 20px;
    margin-bottom: 35px;
}
.section-head h2 {
    font-size: clamp(35px, 4vw, 52px);
    margin: 13px 0 0;
}

.service-card {
    background: #fff;
}
.service-card .photo {
    height: 300px;
    overflow: hidden;
}
.service-card img {
    transition: transform .5s;
}
.service-card:hover img {
    transform: scale(1.05);
}
.service-card .body {
    padding: 25px;
}
.service-card h3 {
    font-size: 26px;
    margin: 0 0 9px;
}
.service-card p {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.75;
    min-height: 47px;
}
.text-link {
    display: inline-block;
    border-bottom: 1px solid var(--sage);
    padding-bottom: 5px;
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    margin-top: 13px;
}

.feature-image {
    min-height: 500px;
}
.feature-content {
    background: #eee6d9;
    display: flex;
    justify-content: center;
    flex-direction: column;
    padding: 70px clamp(30px, 7vw, 110px);
}
.feature h2 {
    font-size: clamp(35px, 4vw, 55px);
    line-height: 1.18;
    margin: 20px 0;
}
.feature p {
    line-height: 1.85;
    color: var(--muted);
    font-size: 14px;
}
.team {
    padding: 100px 0;
}

.person img {
    height: 365px;
}
.person h3 {
    font-size: 26px;
    margin: 18px 0 5px;
}
.person p {
    font-size: 15px;
    color: var(--ink);
    margin: 0;
}
.brands {
    padding: 85px 0;
    background: #f3ede2;
    text-align: center;
    background: url('/wp-content/uploads/2026/10/result-bg.webp');
	background-repeat:no-repeat;
}
.brands h2 {
    font-size: 50px;
    margin: 15px 0 20px;
}

.brand-tile {
    background: white;
    border: 1px solid #ded4c3;
    padding: 36px 15px;
    font-family: 'Playfair Display', serif;
    font-size: 23px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 125px;
}
.brands p {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.8;
}
.community {
    padding: 90px 0;
}

.community-card {
    border: 1px solid var(--line);
    padding: 35px;
    background: #fff;
}
.community-card h3 {
    font-size: 27px;
    margin: 10px 0;
}
.community-card p {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.8;
}
.social {
    padding: 75px 0;
    background: var(--cream);
    text-align: center;
}
.social h2 {
    font-size: 42px;
    margin: 15px 0 30px;
}

.social-grid img {
    height: 260px;
}
.newsletter {
    background: var(--sage-dark);
    color: white;
    padding: 75px 0;
}

.newsletter h2 {
    font-size: 41px;
    margin: 12px 0;
}
.newsletter p {
    font-size: 13px;
    line-height: 1.8;
    color: #f0e7d6;
}
.newsletter form {
    display: flex;
    gap: 8px;
}
.newsletter input {
    padding: 16px;
    border: 1px solid #d6c5a4;
    background: #fff;
    min-width: 0;
    flex: 1;
    font: inherit;
}
.newsletter button {
    border: 1px solid white;
    background: #fff;
    color: var(--charcoal);
    padding: 0 22px;
    cursor: pointer;
    font-weight: 700;
}

.visit-copy {
    padding: 85px max(28px, calc((100vw - 1200px)/2 + 28px));
    background: #f4eee3;
}
.visit h2 {
    font-size: 48px;
    margin: 16px 0;
}
.visit p {
    font-size: 14px;
    color: var(--muted);
    line-height: 1.85;
}
.visit-photo {
    min-height: 420px;
}
footer.site-footer {
    background: var(--charcoal);
    color: #f4ead7;
    padding: 55px 0 25px;
}
.footer-inner {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    flex-wrap: wrap;
}
.footer-links {
    display: flex;
    gap: 24px;
    font-size: 12px;
}
.fine {
    border-top: 1px solid rgba(185,154,88,.35);
    padding-top: 20px;
    margin-top: 50px;
    color: #d2c5ac;
    font-size: 11px;
}
.notice {
    font-size: 11px;
    color: #8b8b83;
    margin-top: 12px;
}
.mobile-book {
    display: none;
}
/* Pacific NW Beauty Bar Logo */

.site-logo {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    flex-shrink: 0;
    text-decoration: none;
}

.site-logo-img {
    display: block;
    width: auto;
    height: auto;
    max-width: 180px;
    /* max-height: 76px; */
    object-fit: contain;
}


/* ============================================================
   PACIFIC NW BEAUTY BAR — GOLD / CHARCOAL BRAND REFINEMENTS
   These overrides use the existing theme class names.
   ============================================================ */
header.site-header, header.site-header .brand, header.site-header .links,
header.site-header .links a { color: #f8f5ef; }
header.site-header .links a:hover { color: var(--gold-light); background-color:#666;}
header.site-header .menu { color: var(--gold-light); }
header.site-header .site-logo-img { max-width: 230px; max-height: 92px; width: auto; height: auto; object-fit: contain; }
header.site-header .nav-cta { background: var(--gold); border-color: var(--gold); color: var(--charcoal); font-weight: 700; }
header.site-header .nav-cta:hover { background: var(--gold-light); border-color: var(--gold-light); color: var(--charcoal); }
.announcement { background: #1f1e1a; color: var(--gold-light); }
.btn:not(.outline) { background: var(--gold); border-color: var(--gold); color: var(--charcoal); font-weight: 700; }
.btn:not(.outline):hover { background: var(--gold-light); border-color: var(--gold-light); }
.hero-copy { min-width: 0; }
.hero h1 { font-size: clamp(42px, 4.2vw, 68px); overflow-wrap: normal; }
.hero-photo { overflow: hidden; }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.hero-photo:after { background: rgba(41,39,33,.88); color: var(--gold-light); }
.newsletter { background: var(--charcoal); }
.newsletter .eyebrow { color: var(--gold-light); }
.newsletter button { background: var(--gold); border-color: var(--gold); color: var(--charcoal); }
.newsletter button:hover { background: var(--gold-light); }
footer.site-footer a:hover { color: var(--gold-light); }
.mobile-book { background: var(--gold); color: var(--charcoal); font-weight: 700; }

@media (max-width: 767px) {
  header.site-header .site-logo-img { max-width: 165px; max-height: 70px; }
  .hero h1 { font-size: clamp(40px, 9vw, 54px); }
}

/* Grid layouts are owned by assets/css/grid.css. */
.container { padding-left: 24px; padding-right: 24px; }
.hero { background: var(--cream); }
.hero-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(45px,5vw,85px); min-width:0; }
.hero-photo { min-height:610px; position:relative; overflow:hidden; }
.hero-photo img,.feature-image img,.visit-photo img { width:100%; height:100%; object-fit:cover; }
.hero h1 { font-size:clamp(42px,4.3vw,68px); line-height:1.1; }
.feature-image { min-height:490px; }
.feature-content { height:100%; }
.service-card,.person,.community-card { height:100%; }
.person img { width:100%; object-fit:cover; }
.newsletter-wrap { align-items:center; }
.visit-copy { height:100%; }
.site-logo-img { width:auto; height:auto; max-width:230px; max-height:92px; object-fit:contain; }
.site-nav { min-height:106px; }
@media(max-width:991px){
 .links { display:none;position:absolute;top:100%;left:0;right:0;background:var(--charcoal);color:var(--cream);padding:24px;flex-direction:column;align-items:flex-start;z-index:40;border-top:1px solid var(--gold); }
 .links.open { display:flex; }
 .menu { display:block; }
 .hero-copy { padding:65px 28px; }
 .hero-photo { min-height:420px; }
 .feature-image { min-height:390px; }
 .visit-copy { padding:70px 28px; }
}
@media(max-width:575px){
 .container { padding-left:20px;padding-right:20px; }
 .site-nav { min-height:78px; padding:12px 0; }
 .site-logo-img,header.site-header .site-logo-img { max-width:165px;max-height:65px; }
 .hero-copy { padding:60px 24px; }
 .hero h1 { font-size:clamp(40px,10vw,54px); }
 .hero-photo { min-height:340px; }
 .intro,.services,.team,.brands,.community { padding-top:65px;padding-bottom:65px; }
 .section-head { align-items:flex-start;flex-direction:column; }
 .service-card .photo { height:260px; }
 .social-grid img { height:190px; }
 .newsletter form { flex-direction:column; }
 .newsletter button { padding:15px; }
 .mobile-book { display:block;position:fixed;bottom:0;left:0;right:0;text-align:center;background:var(--gold);color:var(--charcoal);padding:17px;z-index:40;font-size:12px;text-transform:uppercase;letter-spacing:.15em;font-weight:700; }
 footer.site-footer { padding-bottom:75px; }
}
.admin-bar .site-header { top:32px; }
@media(max-width:782px){.admin-bar .site-header{top:46px}}
.screen-reader-text { position:absolute;left:-9999px; }
/* ==========================================
   PACIFIC NW BEAUTY BAR - REVIEWS
========================================== */

.reviews-section {
    background: #f8f5ef;
    padding: 95px 0;
    overflow: hidden;
}

.reviews-heading {
    text-align: center;
    margin-bottom: 45px;
}

.reviews-heading .eyebrow {
    color: #b99a58;
}

.reviews-heading h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 400;
    line-height: 1.2;
    color: #292721;
    margin: 15px 0;
}

.reviews-heading p {
    font-size: 14px;
    color: #746e63;
    margin: 0;
}

/* Slider */

.reviews-slider {
    width: 100%;
    position: relative;
}

.reviews-viewport {
    width: 100%;
    overflow: hidden;
}

.reviews-track {
    display: flex;
    gap: 24px;
    align-items: stretch;
    transition: transform 0.6s ease;
    will-change: transform;
}

/* Cards */

.review-card {
    flex: 0 0 calc((100% - 48px) / 3);
    min-width: 0;
    display: flex;
}

.review-card-inner {
    background: #fff;
    border: 1px solid #e8dcc7;
    padding: 38px 32px;
    width: 100%;
    display: flex;
    flex-direction: column;
    min-height: 270px;
    transition: border-color 0.3s ease;
}

.review-card:hover .review-card-inner {
    border-color: #b99a58;
}

.review-stars {
    display: flex;
    gap: 4px;
    margin-bottom: 22px;
    font-size: 19px;
    line-height: 1;
}

.review-stars .filled {
    color: #b99a58;
}

.review-stars .empty {
    color: #dedbd3;
}

.review-content {
    flex: 1;
    color: #514e47;
    font-size: 14px;
    line-height: 1.85;
}

.review-content p {
    margin: 0 0 15px;
}

.review-content p:last-child {
    margin-bottom: 0;
}

.review-author {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 26px;
    color: #292721;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.review-author-line {
    display: block;
    width: 24px;
    height: 1px;
    background: #b99a58;
    flex-shrink: 0;
}

/* Controls */

.reviews-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: 35px;
}

.reviews-prev,
.reviews-next {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid #d9c9a9;
    background: transparent;
    color: #292721;
    font-size: 21px;
    cursor: pointer;
    transition: all 0.25s ease;
}

.reviews-prev:hover,
.reviews-next:hover {
    background: #b99a58;
    border-color: #b99a58;
    color: #fff;
}

.reviews-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.reviews-dot {
    display: block;
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #d9c9a9;
    cursor: pointer;
    transition: all 0.25s ease;
}

.reviews-dot.active {
    width: 22px;
    border-radius: 10px;
    background: #b99a58;
}

.reviews-controls [hidden],
.reviews-dots[hidden] {
    display: none !important;
}

/* Tablet: 2 reviews */

@media (max-width: 1023px) {
    .review-card {
        flex-basis: calc((100% - 24px) / 2);
    }

    .review-card-inner {
        padding: 30px 25px;
    }
}

/* Mobile: 1 review */

@media (max-width: 767px) {
    .reviews-section {
        padding: 65px 0;
    }

    .reviews-heading {
        margin-bottom: 30px;
    }

    .reviews-track {
        gap: 16px;
    }

    .review-card {
        flex-basis: 100%;
    }

    .review-card-inner {
        padding: 30px 25px;
        min-height: 240px;
    }

    .reviews-controls {
        margin-top: 25px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .reviews-track {
        transition: none;
    }
}
/* Contact Us page template */
.pnw-contact-page .pnw-contact-hero{background:var(--cream);border-bottom:1px solid var(--line);padding:85px 0 80px;text-align:center}
.pnw-contact-page .pnw-contact-hero-inner{max-width:780px;margin:auto}
.pnw-contact-page .eyebrow{font-size:12px;letter-spacing:.19em;text-transform:uppercase}
.pnw-contact-page .pnw-contact-hero h1{font-size:clamp(44px,6vw,76px);line-height:1.12;margin:15px 0 18px}
.pnw-contact-page .pnw-contact-hero p{font-size:17px;line-height:1.8;color:var(--muted);margin:0 auto;max-width:570px}
.pnw-contact-page .pnw-contact-section{padding:95px 0 110px}
.pnw-contact-page .pnw-contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(35px,6vw,100px);align-items:start}
.pnw-contact-page h2{font-size:clamp(32px,3.6vw,48px);line-height:1.2;margin:13px 0 18px}
.pnw-contact-page .pnw-contact-lead,.pnw-contact-page .pnw-contact-form-panel>p{font-size:15px;line-height:1.85;color:var(--muted);margin:0 0 34px}
.pnw-contact-page .pnw-contact-detail{display:flex;gap:19px;padding:24px 0;border-bottom:1px solid var(--line)}
.pnw-contact-page .pnw-contact-detail-icon{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border:1px solid var(--line);color:var(--sage-dark);font-size:22px}
.pnw-contact-page .pnw-contact-detail h3{font:600 13px 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.12em;margin:3px 0 10px}
.pnw-contact-page .pnw-contact-detail p{margin:0;color:var(--muted);font-size:15px;line-height:1.8}
.pnw-contact-page .pnw-contact-detail a:not(.btn){color:var(--sage-dark);text-decoration:underline;text-underline-offset:4px}
.pnw-contact-page .pnw-contact-booking{background:var(--cream);padding:30px;margin-top:38px;border-left:3px solid var(--gold)}
.pnw-contact-page .pnw-contact-booking h3{font-size:26px;margin:0 0 10px}
.pnw-contact-page .pnw-contact-booking p{color:var(--muted);font-size:14px;line-height:1.7;margin:0 0 20px}
.pnw-contact-page .pnw-contact-form-panel{background:#fff;border:1px solid var(--line);padding:clamp(25px,4vw,52px);box-shadow:0 14px 42px rgba(41,39,33,.055)}
.pnw-contact-page .pnw-contact-form-panel>p{margin-bottom:24px}
.pnw-contact-page .gform_wrapper .gform_fields{row-gap:20px}
.pnw-contact-page .gform_wrapper .gfield_label{font-family:'DM Sans',sans-serif;font-weight:600;font-size:13px;color:var(--ink);margin-bottom:8px}
.pnw-contact-page .gform_wrapper input:not([type=checkbox]):not([type=radio]):not([type=submit]),.pnw-contact-page .gform_wrapper textarea,.pnw-contact-page .gform_wrapper select{width:100%;min-height:49px;background:#fffdf9;border:1px solid var(--line);border-radius:0;padding:12px 14px;color:var(--ink);font:14px 'DM Sans',sans-serif}
.pnw-contact-page .gform_wrapper textarea{min-height:130px;resize:vertical}
.pnw-contact-page .gform_wrapper input:focus,.pnw-contact-page .gform_wrapper textarea:focus,.pnw-contact-page .gform_wrapper select:focus{outline:2px solid var(--gold);outline-offset:1px}
.pnw-contact-page .gform_wrapper .gform_button,.pnw-contact-page .gform_wrapper input[type=submit]{background:var(--gold);color:var(--charcoal);border:1px solid var(--gold);border-radius:0;padding:16px 28px;font:700 12px 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:background .2s}
.pnw-contact-page .gform_wrapper .gform_button:hover,.pnw-contact-page .gform_wrapper input[type=submit]:hover{background:var(--gold-light)}
.pnw-contact-page .pnw-contact-privacy{font-size:12px!important;line-height:1.7!important;color:var(--muted);margin:25px 0 0!important}
.pnw-contact-page .pnw-contact-setup{font-size:14px;line-height:1.7;background:var(--cream);padding:15px}
@media(max-width:800px){.pnw-contact-page .pnw-contact-grid{grid-template-columns:1fr;gap:48px}.pnw-contact-page .pnw-contact-hero{padding:65px 0}.pnw-contact-page .pnw-contact-section{padding:65px 0 85px}}
@media(max-width:480px){.pnw-contact-page .pnw-contact-hero{padding:50px 0}.pnw-contact-page .pnw-contact-form-panel{padding:24px 20px}.pnw-contact-page .pnw-contact-section{padding:48px 0 75px}}

/* PacificNW deals carousel */
.pnw-deals{padding:80px 0;background:#f8f6f2;overflow:hidden}
.pnw-deals-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}
.pnw-deals-heading h2{margin:8px 0 0}
.pnw-deals-controls{display:flex;gap:10px}
.pnw-deals-controls button{width:42px;height:42px;border:1px solid #bda57a;background:transparent;color:#403c35;border-radius:50%;cursor:pointer;font-size:20px}
.pnw-deals-viewport{overflow:hidden;scroll-behavior:smooth;scroll-snap-type:x mandatory}
.pnw-deals-track{display:flex;gap:20px}
.pnw-deal-slide{flex:0 0 calc((100% - 40px)/3);min-width:0;scroll-snap-align:start}
.pnw-deal-link{display:block;text-decoration:none;color:inherit}
.pnw-deal-slide img{display:block;width:100%;aspect-ratio:auto;object-fit:cover;border-radius:6px}
.pnw-deal-title{display:block;font-size:18px;margin-top:14px;font-weight:600}
.pnw-deals-dots{display:flex;justify-content:center;gap:8px;margin-top:24px}
.pnw-deals-dots button{width:9px;height:9px;border:0;border-radius:50%;background:#d2c9b8;padding:0;cursor:pointer}
.pnw-deals-dots button[aria-current="true"]{background:#a88c56}
@media(max-width:991px){.pnw-deal-slide{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:640px){.pnw-deals{padding:50px 0}.pnw-deal-slide{flex-basis:100%}}

/* WordPress-managed header and footer navigation */
.pnw-primary-menu, .pnw-footer-menu { display:flex; align-items:center; gap:24px; list-style:none; padding:0; margin:0; }
.pnw-primary-menu li, .pnw-footer-menu li { list-style:none; margin:0; padding:0; }
.pnw-primary-menu > li { position:relative; }
.pnw-primary-menu .sub-menu { display:none; position:absolute; top:100%; left:0; min-width:190px; padding:12px 0; margin:0; background:var(--charcoal); list-style:none; z-index:60; box-shadow:0 8px 18px rgba(0,0,0,.15); }
.pnw-primary-menu .sub-menu li a { display:block; padding:10px 18px; }
.pnw-primary-menu li:hover > .sub-menu, .pnw-primary-menu li:focus-within > .sub-menu { display:block; }
@media(max-width:991px) {
 .pnw-primary-menu { width:100%; flex-direction:column; align-items:flex-start; gap:16px; }
 .pnw-primary-menu .sub-menu { display:block; position:static; min-width:0; box-shadow:none; padding:8px 0 0 15px; }
}
@media(max-width:575px) { .pnw-footer-menu { flex-wrap:wrap; gap:15px 24px; } }

/* Infinite carousel: JS handles movement; no native snap/scroll rewinding. */
.pnw-deals-viewport {scroll-behavior:auto;scroll-snap-type:none;}
.pnw-deals-track {transition:transform 600ms ease;will-change:transform;}
.pnw-deal-slide {scroll-snap-align:none;}
@media (prefers-reduced-motion:reduce){.pnw-deals-track{transition:none!important;}}

/* Footer social links: accessible, responsive, and theme-aligned */
.pnw-footer-social{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin:26px auto 22px}
.pnw-footer-social .pnw-social-link{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;border:1px solid rgba(201,163,76,.55);border-radius:50%;color:inherit;text-decoration:none;transition:background .2s ease,color .2s ease,transform .2s ease,border-color .2s ease}
.pnw-footer-social .pnw-social-link i{font-size:18px;line-height:1}
.pnw-footer-social .pnw-social-link:hover{background:#c9a34c;color:#101b2d;border-color:#c9a34c;transform:translateY(-2px)}
.pnw-footer-social .pnw-social-link:focus-visible{outline:3px solid #c9a34c;outline-offset:3px}
@media(max-width:600px){.pnw-footer-social{gap:10px;margin:22px auto}.pnw-footer-social .pnw-social-link{width:42px;height:42px;flex-basis:42px}}
@media(prefers-reduced-motion:reduce){.pnw-footer-social .pnw-social-link{transition:none}.pnw-footer-social .pnw-social-link:hover{transform:none}}

/* Membership & Packages — warm luxury editorial CTA */
.pnw-membership { padding: clamp(56px, 8vw, 112px) 0; background: #fffdf9; }
.pnw-membership-panel { position: relative; isolation: isolate; overflow: hidden; min-height: 420px; display: grid; place-items: center; padding: clamp(46px, 7vw, 96px) clamp(22px, 6vw, 72px); background: linear-gradient(130deg,#292721 0%,#3b352c 55%,#554a37 100%); color: #fff9ec; border-radius: 5px; box-shadow: 0 22px 55px rgba(41,39,33,.13); }
.pnw-membership-panel::before { content: ''; position: absolute; inset: 13px; border: 1px solid rgba(230,213,173,.28); border-radius: 2px; pointer-events: none; z-index: 0; }
.pnw-membership-panel::after { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 0 0,rgba(185,154,88,.18),transparent 43%),radial-gradient(circle at 100% 100%,rgba(185,154,88,.18),transparent 43%); z-index: 0; pointer-events: none; }
.pnw-membership-content { position: relative; z-index: 2; text-align: center; max-width: 770px; margin: 0 auto; }
.pnw-membership-eyebrow { display: inline-flex; gap: 13px; align-items: center; justify-content: center; color: #e6d5ad; text-transform: uppercase; letter-spacing: .23em; font-size: 11px; font-weight: 700; }
.pnw-membership-sparkle { font-size: 11px; }
.pnw-membership h2 { color: #fff9ec; font-family: 'Playfair Display',serif; font-weight: 400; font-size: clamp(34px,5vw,64px); line-height: 1.15; letter-spacing: -.025em; margin: 20px 0 20px; }
.pnw-membership-description { color: #e4ddd0; font-size: clamp(15px,1.6vw,18px); line-height: 1.85; max-width: 640px; margin: 0 auto 28px; }
.pnw-membership-description p { margin: 0 0 12px; }
.pnw-membership-description p:last-child { margin-bottom: 0; }
.pnw-membership-button { display: inline-flex; align-items: center; justify-content: center; gap: 24px; background: #e6d5ad; color: #292721; border: 1px solid #e6d5ad; padding: 17px 25px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; transition: background .25s,color .25s,transform .25s; text-align: center; }
.pnw-membership-button:hover,.pnw-membership-button:focus-visible { background: #fff9ec; border-color: #fff9ec; color: #292721; transform: translateY(-2px); }
.pnw-membership-button:focus-visible { outline: 3px solid #b99a58; outline-offset: 4px; }
.pnw-membership-arrow { font-size: 18px; line-height: 1; }
.pnw-membership-note { display: block; margin-top: 25px; color: #cfc0a2; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.pnw-membership-ornament { position: absolute; width: 340px; height: 340px; border: 1px solid rgba(230,213,173,.14); border-radius: 50%; pointer-events: none; z-index: 1; }
.pnw-membership-ornament-one { left: -175px; top: -175px; box-shadow: 0 0 0 38px rgba(230,213,173,.035),0 0 0 77px rgba(230,213,173,.025); }
.pnw-membership-ornament-two { right: -175px; bottom: -175px; box-shadow: 0 0 0 38px rgba(230,213,173,.035),0 0 0 77px rgba(230,213,173,.025); }
@media (max-width: 767px) { .pnw-membership { padding: 55px 0; } .pnw-membership-panel { min-height: 360px; padding: 58px 27px; } .pnw-membership-panel::before { inset: 9px; } .pnw-membership-eyebrow { font-size: 10px; letter-spacing: .14em; gap: 8px; } .pnw-membership h2 { margin: 17px 0; } .pnw-membership-description { line-height: 1.7; } .pnw-membership-button { width: 100%; max-width: 340px; gap: 12px; padding: 16px 17px; } .pnw-membership-note { font-size: 10px; line-height: 1.6; } .pnw-membership-ornament { width: 220px; height: 220px; } .pnw-membership-ornament-one { left: -150px; top: -150px; } .pnw-membership-ornament-two { right: -150px; bottom: -150px; } }
@media (prefers-reduced-motion: reduce) { .pnw-membership-button { transition: none; } }.gform_button {
    background: var(--gold) !important;
    border: 2px solid var(--gold) !important;
    color: var(--charcoal) !important;
    font-weight: 700;
    font-size: 18px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    width: 300px !important;
    cursor: pointer;
    transition: background-color 0.3s ease,
                color 0.3s ease,
                border-color 0.3s ease,
                transform 0.3s ease;
}

/* Hover */
.gform_button:hover {
    background: var(--charcoal) !important;
    border-color: var(--gold) !important;
    color: var(--gold) !important;
    transform: translateY(-2px);
}

/* Keyboard Focus */
.gform_button:focus-visible {
    background: var(--charcoal) !important;
    border-color: var(--gold) !important;
    color: var(--gold) !important;
    outline: 2px solid var(--gold);
    outline-offset: 4px;
}

/* Click / Active */
.gform_button:active {
    transform: translateY(0);
}

/* Mobile */
@media (max-width: 480px) {
    .gform_button {
        width: 100% !important;
        max-width: 300px;
    }
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
    .gform_button {
        transition: none;
    }
}