/*
Theme Name: Whitemarsh Jewelers
Theme URI: https://whitemarshjewelers.com/
Author: Whitemarsh Jewelers
Description: A custom responsive theme for Whitemarsh Jewelers.
Version: 1.1.8

html {
    scroll-behavior: smooth;
}
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: whitemarsh-jewelers
*/

.wj-default-page {
    min-height: 60vh;
    padding: 80px 0;
    color: #25211f;
    font-family: "Montserrat", Arial, sans-serif;
    line-height: 1.75;
}

.wj-default-page h1 {
    margin: 0 0 28px;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(2.8rem, 6vw, 5rem);
    line-height: 1.08;
}


/* Shared brand color and default link color. */
:root {
    --wj-ink: #25211f;
}

a {
    color: var(--wj-ink);
}

.wj-site-header,
.wj-site-header *,
.wj-site-footer,
.wj-site-footer * {
    box-sizing: border-box;
}

.wj-shell-container {
    width: min(1200px, calc(100% - 40px));
    margin-inline: auto;
}

.wj-site-header {
    position: relative;
    z-index: 10;
    border-bottom: 1px solid #ded7cd;
    color: #25211f;
    background: #fff;
    font-family: "Montserrat", Arial, sans-serif;
}

.wj-site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 82px;
    gap: 35px;
}

.wj-site-brand {
    flex: 0 0 auto;
    color: #25211f;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.5rem, 2.6vw, 2.15rem);
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
}

.wj-nav-toggle,
.wj-nav-toggle-label {
    display: none;
}

/* Space standalone links and buttons below the paragraphs. */
.wj-home .wj-action-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  width: 100%;
  margin-top: 24px;
}

.wj-home .wj-action-row > a {
  margin: 0;
}

/* Neutralize empty paragraphs and link wrappers added by WordPress. */
.wj-site-header ~ p,
.wj-site-header ~ br,
.wj-home > p:empty,
.wj-hero > p:empty {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.wj-button-group > p {
    display: contents;
    margin: 0;
}

.wj-button-group .wj-button {
    width: auto;
    height: 50px !important;
    min-height: 50px !important;
    max-height: 50px !important;
    margin: 0;
    padding: 0 24px !important;
    line-height: 1.4;
}

/* Keep WordPress-generated wrappers from adding gaps around card images. */
.wj-card > p {
    display: contents;
    margin: 0;
    padding: 0;
}

.wj-card > br,
.wj-card > p > br:only-child,
.wj-card__image-link > br,
.wj-card__image-link > p > br:only-child {
    display: none;
}

.wj-card__image-link,
.wj-card__image-link p {
    margin: 0;
    padding: 0;
    line-height: 0;
}

.wj-card__image-link img {
    margin: 0;
}

.wj-site-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(18px, 2.5vw, 34px);
}

.wj-site-nav a {
    position: relative;
    padding: 31px 0 27px;
    color: #6b625c;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .08em;
    line-height: 1.4;
    text-decoration: none;
    text-transform: uppercase;
}

.wj-site-nav a::after {
    position: absolute;
    right: 0;
    bottom: 20px;
    left: 0;
    height: 2px;
    background: #9a7745;
    content: "";
    transform: scaleX(0);
    transition: transform .2s ease;
}

.wj-site-nav a:hover,
.wj-site-nav a[aria-current="page"] {
    color: #25211f;
}

.wj-site-nav a:hover::after,
.wj-site-nav a[aria-current="page"]::after {
    transform: scaleX(1);
}

.wj-site-footer {
    padding: 65px 0 28px;
    color: #fff;
    background: #181615;
    font-family: "Montserrat", Arial, sans-serif;
}

.wj-site-footer__grid {
    display: grid;
    grid-template-columns: minmax(240px, 1.2fr) repeat(3, minmax(150px, .7fr));
    gap: clamp(35px, 7vw, 90px);
    padding-bottom: 48px;
}

.wj-site-footer__brand {
    display: inline-block;
    margin-bottom: 18px;
    color: #fff;
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: clamp(1.9rem, 3vw, 2.6rem);
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
}

.wj-site-footer p,
.wj-site-footer address {
    margin: 0;
    color: #c9c1ba;
    font-size: .88rem;
    font-style: normal;
    line-height: 1.8;
}

.wj-site-footer__intro {
    max-width: 390px;
}

.wj-site-footer h2 {
    margin: 0 0 16px;
    color: #d6ba8e;
    font-family: "Montserrat", Arial, sans-serif;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .13em;
    line-height: 1.4;
    text-transform: uppercase;
}

.wj-site-footer ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.wj-site-footer li + li {
    margin-top: 8px;
}

.wj-site-footer a:not(.wj-site-footer__brand) {
    color: #c9c1ba;
    font-size: .88rem;
    text-decoration: none;
}

.wj-site-footer a:hover {
    color: #fff;
}

.wj-site-footer__phone {
    display: inline-block;
    margin-top: 12px;
}

.wj-site-footer__bottom {
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, .14);
}

.wj-site-footer__bottom p {
    font-size: .75rem;
}

@media only screen and (max-width: 900px) {
    .wj-site-header {
        position: sticky;
        top: 0;
        z-index: 100;
    }

    .wj-site-header__inner {
        position: relative;
        align-items: center;
        flex-direction: row;
        min-height: 72px;
        padding: 0;
        gap: 24px;
    }

    .wj-nav-toggle {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        opacity: 0;
        pointer-events: none;
    }

    .wj-nav-toggle-label {
        display: inline-flex;
        flex: 0 0 auto;
        align-items: center;
        justify-content: center;
        width: 46px;
        height: 46px;
        margin-left: auto;
        border: 1px solid #ded7cd;
        cursor: pointer;
    }

    .wj-nav-toggle-label__icon,
    .wj-nav-toggle-label__icon::before,
    .wj-nav-toggle-label__icon::after {
        display: block;
        width: 20px;
        height: 2px;
        background: #25211f;
        content: "";
        transition: transform .2s ease, opacity .2s ease;
    }

    .wj-nav-toggle-label__icon {
        position: relative;
    }

    .wj-nav-toggle-label__icon::before {
        position: absolute;
        top: -6px;
    }

    .wj-nav-toggle-label__icon::after {
        position: absolute;
        top: 6px;
    }

    .wj-nav-toggle:focus-visible + .wj-nav-toggle-label {
        outline: 2px solid #9a7745;
        outline-offset: 3px;
    }

    .wj-nav-toggle:checked + .wj-nav-toggle-label .wj-nav-toggle-label__icon {
        background: transparent;
    }

    .wj-nav-toggle:checked + .wj-nav-toggle-label .wj-nav-toggle-label__icon::before {
        top: 0;
        transform: rotate(45deg);
    }

    .wj-nav-toggle:checked + .wj-nav-toggle-label .wj-nav-toggle-label__icon::after {
        top: 0;
        transform: rotate(-45deg);
    }

    .wj-site-nav {
        position: absolute;
        top: 100%;
        right: -15px;
        left: -15px;
        display: none;
        align-items: stretch;
        flex-direction: column;
        gap: 0;
        padding: 10px 15px 18px;
        border-top: 1px solid #ded7cd;
        border-bottom: 1px solid #ded7cd;
        background: #fff;
        box-shadow: 0 16px 30px rgba(37, 33, 31, .1);
    }

    .wj-site-nav a {
        padding: 13px 4px;
        border-bottom: 1px solid #eee9e2;
    }

    .wj-site-nav a::after {
        display: none;
    }

    .wj-site-nav a:last-child {
        border-bottom: 0;
    }

    .wj-site-nav a[aria-current="page"] {
        color: #9a7745;
    }

    .wj-nav-toggle:checked ~ .wj-site-nav {
        display: flex;
    }

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

    .wj-site-footer__about {
        grid-column: 1 / -1;
    }
}

/* Keep the sticky header below WordPress's fixed admin toolbar. */
@media only screen and (min-width: 783px) and (max-width: 900px) {
    .admin-bar .wj-site-header {
        top: 32px;
    }
}

@media only screen and (min-width: 601px) and (max-width: 782px) {
    .admin-bar .wj-site-header {
        top: 46px;
    }
}

@media only screen and (max-width: 560px) {
    .wj-shell-container {
        width: min(100% - 30px, 1200px);
    }

    .wj-site-footer {
        padding-top: 52px;
    }

    .wj-site-footer__grid {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .wj-site-footer__about {
        grid-column: auto;
    }

    .wj-button-group .wj-button {
        width: 100%;
    }
}

/* Mobile tap-to-call control beside the menu toggle. */
.wj-mobile-phone {
    display: none;
}

@media only screen and (max-width: 900px) {
    .wj-site-header__inner {
        gap: 12px;
    }

    .wj-site-header .wj-site-brand {
        flex: 0 1 auto;
        min-width: 0;
        font-size: clamp(1.2rem, 5vw, 1.5rem);
    }

    .wj-mobile-phone {
        display: inline-flex;
        flex: 0 0 46px;
        align-items: center;
        justify-content: center;
        width: 46px;
        height: 46px;
        margin-left: auto;
        color: #25211f;
        text-decoration: none;
    }

    .wj-mobile-phone:hover {
        color: #9a7745;
    }

    .wj-mobile-phone:focus-visible {
        outline: 2px solid #9a7745;
        outline-offset: 3px;
    }

    .wj-nav-toggle-label {
        margin-left: 0;
    }
}