/* ==========================================================================
   The Cedars at Woodland Hills — main stylesheet
   Built from Figma "CEDR Web Development" › Desktop for Review_r5 (1512px frames)
   ========================================================================== */

/* ---------- Tokens ---------- */
:root {
    --c-green: #2d6e44;
    --c-mint: #d7ebcb;
    --c-blue: #a9dcde;
    --c-blue-25: rgba(169, 220, 222, 0.25);
    --c-orange: #f17a2a;
    --c-brown: #925d37;
    --c-brown-dark: #41281a;
    --c-ink: #1a1a1a;
    --c-black: #000;
    --c-white: #fff;
    --c-rule: #d9d9d9;

    --f-sans: "filson-pro", "Filson Pro", "Figtree", "Helvetica Neue", Arial, sans-serif;
    --f-script: "parkside", "Parkside", "Pacifico", "Brush Script MT", cursive;

    /* 100px side padding at 1512, shrinking on small screens; content never wider than 1312. */
    --gutter: clamp(20px, 6.62vw, 100px);
    --pad-x: max(var(--gutter), calc((100% - 1312px) / 2));

    --fs-h3: clamp(30px, 2.8vw, 42px);
    --fs-h4: clamp(26px, 2.12vw, 32px);
    --fs-h5: clamp(21px, 1.6vw, 24px);
    --fs-h6: clamp(19px, 1.46vw, 22px);
    --fs-p: clamp(16px, 1.19vw, 18px);
}

/* ---------- Base ---------- */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }
}

body {
    margin: 0;
    background: var(--c-white);
    color: var(--c-black);
    font-family: var(--f-sans);
    font-size: var(--fs-p);
    font-weight: 400;
    line-height: 28px;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

img,
svg,
video {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
}

p {
    margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0;
    font-weight: 700;
}

button,
input,
select,
textarea {
    font: inherit;
    color: inherit;
}

button {
    cursor: pointer;
}

address {
    font-style: normal;
}

:focus-visible {
    outline: 3px solid var(--c-orange);
    outline-offset: 3px;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: absolute;
    left: 16px;
    top: -100px;
    z-index: 1000;
    background: var(--c-brown-dark);
    color: var(--c-white);
    padding: 10px 16px;
    text-decoration: none;
}

.skip-link:focus {
    top: 16px;
}

/* ---------- Type styles (Figma text styles) ---------- */
.h3 {
    font-size: var(--fs-h3);
    line-height: 1;
    letter-spacing: 0.05em;
    font-weight: 700;
}

.h4 {
    font-size: var(--fs-h4);
    line-height: 1;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: var(--c-ink);
}

.h5 {
    font-size: var(--fs-h5);
    line-height: 1;
    letter-spacing: 0.05em;
    font-weight: 700;
    text-transform: capitalize;
}

.h6 {
    font-size: var(--fs-h6);
    line-height: 1.05;
    letter-spacing: 0.05em;
    font-weight: 700;
    text-transform: capitalize;
}

.script-title {
font-family: var(--f-sans);
    font-weight: 400;
    font-size: clamp(34px, 3.18vw, 48px);
    line-height: 0.8;
    color: var(--c-ink);
}

/* ---------- Buttons ---------- */
.c-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    text-decoration: none;
    text-align: center;
    white-space: nowrap;
    font-family: var(--f-sans);
    font-weight: 500;
    font-size: 16px;
    transition: filter 0.15s ease;
}

.c-btn:hover {
    filter: brightness(0.93);
}

.c-btn--pill {
    padding: 5px 16px;
    line-height: 33px;
}

/* CTA Button_Learn More */
.c-btn--block {
    padding: 10px 20px;
    line-height: 1.2;
    text-transform: capitalize;
}

/* CTA Button_Schedule A Visit / Submit */
.c-btn--mint {
    background: var(--c-mint);
    color: var(--c-black);
}

.c-btn--blue {
    background: var(--c-blue);
    color: var(--c-black);
}

.c-btn--orange {
    background: var(--c-brown-dark);
    color: var(--c-white);
}

.c-btn--green {
    background: var(--c-green);
    color: var(--c-white);
}

.c-btn--brown {
    background: var(--c-brown-dark);
    color: var(--c-white);
    min-height: 45.5px;
}

.news-card--news .c-btn--mint {
    color: var(--c-brown-dark);
}

.c-arrow-link {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    font-weight: 500;
    font-size: 16px;
    line-height: 22px;
    text-decoration: none;
}

.c-arrow-link--light {
    color: var(--c-white);
}

.c-arrow-link img {
    width: 15px;
    height: 15px;
    transition: transform 0.15s ease;
}

a.c-arrow-link:hover img {
    transform: translateX(3px);
}

.button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.c-tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 20px;
    letter-spacing: 0.02em;
    text-transform: capitalize;
    line-height: normal;
}

.c-tag--orange {
    background: var(--c-orange);
    color: var(--c-white);
}

.c-tag--green {
    background: var(--c-green);
    color: var(--c-white);
}

.c-tag--mint {
    background: var(--c-mint);
    color: var(--c-brown-dark);
}

.c-tag--sm {
    font-weight: 400;
    font-size: 14px;
    letter-spacing: 0;
    line-height: 22px;
    padding: 4px 9px;
    text-transform: none;
}

/* ==========================================================================
   Header
   ========================================================================== */
.utility-bar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 32px;
    min-height: 68px;
    padding: 12px 80px;
    background: var(--c-brown);
}

.utility-bar__phone {
    padding: 10px;
    color: var(--c-white);
    font-weight: 500;
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: 0.02em;
    text-decoration: none;
}

.utility-bar__phone:hover {
    text-decoration: underline;
}

.nav-bar {
    background: var(--c-green);
    padding: 25px var(--gutter);
    position: relative;
    z-index: 50;
}

.nav-bar__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(24px, 13.4vw, 203px);
}

.site-logo {
    flex: none;
    display: block;
    width: 261px;
}

.site-logo img {
    width: 261px;
    height: auto;
}

.primary-nav__menu {
    display: flex;
    align-items: center;
    gap: 26px;
    padding: 10px;
    margin: 0;
    list-style: none;
}

.primary-nav__menu>li {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
}

.primary-nav__menu a {
    color: var(--c-white);
    font-weight: 500;
    font-size: 20px;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    text-transform: capitalize;
}

.primary-nav__menu>li>a:hover {
    color: var(--c-mint);
}

.primary-nav__menu>.current-menu-item>a,
.primary-nav__menu>.current-menu-ancestor>a,
.primary-nav__menu>.current_page_parent>a {
    color: var(--c-mint);
    font-weight: 800;
}

/* Down-chevron (Figma "Layer_1" rotated 90°) */
.submenu-toggle {
    width: 12px;
    height: 11px;
    padding: 0;
    border: 0;
    background: transparent;
    position: relative;
    overflow: hidden;
}

.submenu-toggle::before {
    content: "";
    position: absolute;
    left: -9.5px;
    top: -10.5px;
    width: 31px;
    height: 32px;
    background: url("../icons/chevron-right.svg") no-repeat center / 31px 32px;
    transform: rotate(90deg);
    transition: transform 0.2s ease;
}

.submenu-toggle[aria-expanded="true"]::before {
    transform: rotate(-90deg);
}

.sub-menu {
    position: absolute;
    left: -16px;
    top: calc(100% + 34px);
    min-width: 240px;
    margin: 0;
    padding: 12px 0;
    list-style: none;
    background: var(--c-green);
    border-top: 4px solid var(--c-mint);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}

.sub-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -38px;
    height: 34px;
}

/* hover bridge */
.sub-menu a {
    display: block;
    padding: 10px 20px;
    font-size: 18px;
}

.sub-menu a:hover,
.sub-menu .current-menu-item>a {
    color: var(--c-mint);
}

.menu-item-has-children:hover>.sub-menu,
.menu-item-has-children:focus-within>.sub-menu,
.menu-item-has-children.is-open>.sub-menu {
    opacity: 1;
    visibility: visible;
    transform: none;
}

.nav-toggle {
    display: none;
}

.primary-nav__mobile-extra {
    display: none;
}

@media (max-width: 1280px) {
    .nav-bar__inner {
        justify-content: space-between;
    }

    .primary-nav__menu {
        gap: 18px;
        padding: 10px 0;
    }

    .primary-nav__menu a {
        font-size: 17px;
    }

    .site-logo,
    .site-logo img {
        width: 210px;
    }
}

@media (max-width: 1080px) {
    .utility-bar {
        padding: 8px var(--gutter);
        gap: 16px;
        min-height: 56px;
    }

    .utility-bar__phone {
        font-size: 17px;
    }

    .nav-bar {
        padding-block: 16px;
    }

    .site-logo,
    .site-logo img {
        width: 180px;
    }

    .nav-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        border: 2px solid var(--c-mint);
        background: transparent;
        padding: 0;
    }

    .nav-toggle__bars,
    .nav-toggle__bars::before,
    .nav-toggle__bars::after {
        display: block;
        width: 22px;
        height: 2px;
        background: var(--c-white);
        position: relative;
        transition: transform 0.2s ease, background 0.2s;
    }

    .nav-toggle__bars::before,
    .nav-toggle__bars::after {
        content: "";
        position: absolute;
        left: 0;
    }

    .nav-toggle__bars::before {
        top: -7px;
    }

    .nav-toggle__bars::after {
        top: 7px;
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle__bars {
        background: transparent;
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle__bars::before {
        transform: translateY(7px) rotate(45deg);
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle__bars::after {
        transform: translateY(-7px) rotate(-45deg);
    }

    .primary-nav {
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        background: var(--c-green);
        padding: 8px var(--gutter) 24px;
        border-top: 1px solid rgba(255, 255, 255, 0.2);
        display: none;
        max-height: calc(100vh - 140px);
        overflow-y: auto;
    }

    .primary-nav.is-open {
        display: block;
    }

    .primary-nav__menu {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .primary-nav__menu>li {
        flex-wrap: wrap;
        justify-content: space-between;
        border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    }

    .primary-nav__menu>li>a {
        padding: 14px 0;
        font-size: 20px;
    }

    .submenu-toggle {
        width: 44px;
        height: 44px;
    }

    .submenu-toggle::before {
        left: 6.5px;
        top: 6px;
    }

    .sub-menu {
        position: static;
        width: 100%;
        opacity: 1;
        visibility: visible;
        transform: none;
        display: none;
        border: 0;
        padding: 0 0 12px;
        min-width: 0;
    }

    .sub-menu::before {
        display: none;
    }

    .menu-item-has-children.is-open>.sub-menu {
        display: block;
    }

    .sub-menu a {
        padding: 8px 16px;
    }

    .primary-nav__mobile-extra {
        display: block;
        padding-top: 16px;
    }

    .primary-nav__mobile-extra a {
        color: var(--c-mint);
        font-weight: 700;
        font-size: 20px;
        text-decoration: none;
    }
}

/* ==========================================================================
   Homepage
   ========================================================================== */

/* Homepage Banner — 1512×736, photo mirrored, green panel 768 wide */
.home-hero {
    position: relative;
    min-height: 736px;
    overflow: hidden;
    margin-bottom: 54px;
    display: flex;
    align-items: center;
}

/* Updated design: banner sits under the nav, white gap below */
.home-hero__img {
    /* Figma (r5 Internal): photo scaled to 130.72% × 179.11%, pinned left, top -21.12% (the two mirrors in the file cancel out) */
    position: absolute;
    left: 0;
    top: -21.12%;
    width: 130.72%;
    height: 179.11%;
    max-width: none;
    object-fit: cover;
}

.home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(89.5deg, rgba(0, 0, 0, 0.3) 8.66%, rgba(102, 102, 102, 0) 61.5%);
}

.home-hero__panel {
    position: relative;
    z-index: 2;
    width: 50.82%;
    min-height: 425px;
    background: var(--c-green);
    display: flex;
    align-items: center;
    padding: 63px 50px 57px 100px;
    padding-left: var(--pad-x);
}

.home-hero__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    max-width: 615px;
    color: var(--c-white);
}

.home-hero__script {
font-family: var(--f-sans);
    font-size: 20px;
    line-height: 22px;
    padding-top: 6px;
}

.home-hero__title {
    font-size: var(--fs-h3);
    line-height: 1;
    letter-spacing: 0.05em;
    font-weight: 700;
}

.home-hero__title span {
    display: block;
}

.home-hero__text {
    max-width: 533px;
}

.home-hero__rating {
    display: inline-flex;
    align-items: center;
    gap: 24px;
    text-decoration: none;
    flex-wrap: wrap;
    row-gap: 6px;
}

.home-hero__rating strong {
    font-weight: 500;
    font-size: 20px;
    letter-spacing: 0.02em;
    text-transform: capitalize;
}

.home-hero__rating img {
    width: 94.7px;
    height: 14.7px;
}

.home-hero__actions {
    display: flex;
    align-items: center;
    gap: 25px;
    flex-wrap: wrap;
}

/* Overview of Cedar — 914 tall photo with centred white copy over the sky */
.home-overview {
    position: relative;
    min-height: 914px;
    overflow: hidden;
}

.home-overview:before{
	 content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4); 
  z-index: 1;
}

@media screen and (min-width: 1590px) {
	.home-overview {
		aspect-ratio: 1440 / 800;
	}
	
}
/* Grows with the window so the building stays below the text on wide screens */
.home-overview__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
}

.home-overview__copy {
    position: relative;
    max-width: calc(919px + 2 * var(--gutter));
    margin: 0 auto;
    padding: 99px var(--gutter) 0;
    text-align: center;
    color: var(--c-white);
	    z-index: 2;
}

.home-overview__copy .h4 {
    color: var(--c-white);
    margin-bottom: 20px;
}

.home-overview__copy p+p {
    margin-top: 28px;
}

/* Desktop_Headlines */
.c-headline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(32px, 6.6vw, 100px);
    padding: 50px var(--pad-x);
}

.c-headline__copy {
    flex: 1 1 auto;
    max-width: 1089px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.c-headline__copy .h4 {
    min-height: 45px;
    display: flex;
    align-items: center;
    text-transform: uppercase;
}

.c-headline__copy p+p {
    margin-top: 14px;
}

.c-headline>.c-btn {
    flex: none;
}

.c-headline--inset {
    padding-inline: max(var(--gutter), 150px, calc((100% - 1212px) / 2));
}

.c-headline--inset .c-headline__copy {
    max-width: 1019px;
}

.c-headline--reviews {
    margin-top: 54px;
    padding-top: 25px;
    padding-bottom: 35px;
}

.c-headline--reviews .c-headline__copy {
    gap: 15px;
    max-width: 793px;
}

.c-headline--reviews .script-title {
    line-height: 38.4px;
}

/* Floor Plan Updated */
.plan-cards {
    display: flex;
    justify-content: center;
    gap: 50px;
    padding: 0 var(--gutter) 50px;
}

.plan-card {
    width: 625px;
    max-width: 100%;
    display: flex;
    flex-direction: column;
}

.plan-card__media {
    position: relative;
    aspect-ratio: 625 / 403.3;
    border: 1px solid var(--c-rule);
    background: var(--c-white);
}

.plan-card__media img {
    position: absolute;
    inset: 2% 3%;
    width: 94%;
    height: 96%;
    object-fit: contain;
}

.plan-card__bar {
    flex: 1;
    background: var(--c-mint);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 25px 40px 25px 50px;
}

.plan-card__heading {
    flex: none;
    width: 190px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.plan-card__heading .h4 {
    color: var(--c-black);
}

.plan-card__size {
    font-weight: 500;
    font-size: 18px;
    line-height: normal;
    letter-spacing: 0.02em;
    text-transform: capitalize;
}

.plan-card__tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px 8px;
    margin: 0;
    padding: 0;
    list-style: none;
    max-width: 340px;
}

/* Lifestyle & Amenities carousel — 584 tall */
.amenities {
    position: relative;
    display: flex;
    align-items: stretch;
    min-height: 584px;
    background: var(--c-green);
    padding-left: max(20px, 9.33vw, calc((100% - 1512px) / 2 + 141px));
    gap: 77px;
    overflow: hidden;
    isolation: isolate;
}

.amenities::before {
    content: "";
    position: absolute;
    left: 0;
    top: -0.72%;
    width: 18.87%;
    height: 101.8%;
    z-index: -1;
    background: url("../images/leaf-texture.png") no-repeat left top / cover;
    mix-blend-mode: multiply;
    opacity: 0.2;
}

.amenities__copy {
    flex: 0 1 535px;
    min-width: 0;
    padding: 73px 0 50px;
    color: var(--c-white);
    display: flex;
    flex-direction: column;
    gap: 65px;
}

.amenities__hint {
    display: flex;
    align-items: center;
    gap: 24px;
    font-weight: 700;
    font-size: 18px;
    line-height: 1.16;
}

.amenities__hint img {
    width: 15px;
    height: 15px;
    flex: none;
}

.amenities__panel {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    animation: cedars-fade 0.3s ease;
}

.amenities__panel[hidden] {
    display: none;
}

.amenities__title {
font-family: var(--f-sans);
    font-weight: 700;
    font-size: clamp(34px, 2.8vw, 42px);
    line-height: 1;
    color: var(--c-mint);
    text-transform: capitalize;
    width: 100%;
    padding-bottom: 12px;
    border-bottom: 2.9px solid var(--c-orange);
}

.amenities__panel .c-btn {
    margin-top: 53px;
}

.amenities__stage {
    position: relative;
    flex: 0 0 550px;
    min-height: 584px;
}

.amenities__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.35s ease;
}

.amenities__img.is-active {
    opacity: 1;
}

.amenities__tabs {
    display: flex;
    margin-left: -77px;
}

.amenities__tab {
    width: 70px;
    border: 0;
    padding: 0 0 38px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    font-weight: 700;
    font-size: 24px;
    letter-spacing: 0.05em;
    text-transform: capitalize;
    transition: width 0.2s ease, filter 0.15s;
}

.amenities__tab[hidden] {
    display: none;
}

.amenities__tab:hover {
    filter: brightness(0.95);
}

.amenities__tab-label {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    line-height: 1;
    white-space: nowrap;
}

.amenities__tab--blue {
    background: var(--c-blue);
    color: var(--c-black);
}

.amenities__tab--mint {
    background: var(--c-mint);
    color: var(--c-black);
}

.amenities__tab--orange {
    background: var(--c-orange);
    color: var(--c-white);
}

.amenities__tab--brown {
    background: var(--c-brown);
    color: var(--c-white);
}

@keyframes cedars-fade {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* Desktop_Image Module (Our Location) */
.image-module {
    position: relative;
    min-height: 600px;
    margin-block: 54px;
    padding: 50px 0;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.image-module__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 35%;
}

.image-module__panel {
    position: relative;
    width: min(809px, 100%);
    min-height: 485px;
    background: var(--c-white);
    padding: 50px 50px 50px max(var(--gutter), calc((100vw - 1512px) / 2 + 100px));
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 16px;
}

.image-module__panel .h4 {
    color: var(--c-black);
    text-transform: uppercase;
}

.image-module__panel p {
    max-width: 610px;
}

.image-module__panel p+p {
    margin-top: 12px;
}

.image-module__panel .c-btn {
    margin-top: 12px;
}

/* Testimonial slider */
.testimonials {
    position: relative;
    overflow: hidden;
    padding: 0 1px 12px;
}

.testimonials__track {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 26px;
    min-height: 220px;
}

.quote-card {
    align-self: stretch;
}

.quote-card {
    flex: 0 0 680px;
    min-height: 220px;
    margin: 0;
    position: relative;
    overflow: hidden;
    background: var(--c-blue-25);
    box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 16px;
    padding: 31px 77px 31px 77px;
    order: 10;
    display: none;
}

.quote-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 16.3px;
    background: var(--c-green);
}

.quote-card.is-prev {
    display: flex;
    order: 1;
}

.quote-card.is-active {
    display: flex;
    order: 3;
}

.quote-card.is-next {
    display: flex;
    order: 5;
}

.quote-card blockquote {
    margin: 0;
}

.quote-card figcaption {
    line-height: normal;
}

.quote-card__name {
font-family: var(--f-sans);
    font-size: 26px;
    text-transform: capitalize;
}

.quote-card__source {
    font-size: 16px;
    line-height: 26px;
}

.testimonials:not(.is-ready) .quote-card:nth-child(-n+3) {
    display: flex;
}

.round-arrow {
    flex: none;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    padding: 0;
    background: var(--c-orange) url("../icons/chevron-right.svg") no-repeat 50% 50% / 31px 32px;
}

.round-arrow--prev {
    order: 2;
    transform: scaleX(-1);
}

.round-arrow--next {
    order: 4;
}

.round-arrow:hover {
    filter: brightness(0.93);
}

/* Divider_Desktop */
.c-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 25px var(--gutter);
}

.c-divider--top {
    padding: 50px var(--gutter) 0;
}

.c-divider__line {
    flex: 0 1 618px;
    height: 2px;
    background: var(--c-green);
}

.c-divider__mark {
    width: 44px;
    height: 44px;
    flex: none;
}

/* News & Events (homepage row) */
.home-news {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 50px var(--gutter);
}

.home-news__intro {
    flex: 0 1 348px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 26px;
    margin-right: 12px;
}

.home-news__intro .h4 {
    color: var(--c-black);
    text-transform: uppercase;
}

.home-news__cards {
    display: flex;
    gap: 16px;
}

/* News card */
.news-card {
    position: relative;
    overflow: hidden;
    color: var(--c-white);
    flex: none;
    isolation: isolate;
}

.news-card--tall {
    width: 305px;
    height: 349px;
}

.news-card--wide {
    width: 400px;
    height: 281px;
}

.news-card__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -2;
    transition: transform 0.4s ease;
}

.news-card:hover .news-card__img {
    transform: scale(1.04);
}

.news-card::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.45), rgba(102, 102, 102, 0) 64%);
}

.news-card--wide::after {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.45), rgba(102, 102, 102, 0) 77%);
}

.news-card__tag {
    position: absolute;
    left: 0;
    top: 25px;
    width: 149.3px;
    padding: 10px 15px 10px 28px;
    justify-content: flex-start;
}

.news-card__body {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 27px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.news-card--wide .news-card__body {
    left: 24.4px;
    right: 24.4px;
    bottom: 26px;
    gap: 9px;
}

.news-card__title {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: normal;
    text-transform: capitalize;
}

.news-card__title--lg {
    font-size: var(--fs-h6);
    line-height: 1.05;
    letter-spacing: 0.05em;
}

.news-card__title a {
    text-decoration: none;
}

.news-card__title a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

/* whole card is the link */
.news-card__title a:focus-visible {
    outline: none;
}

.news-card:focus-within {
    outline: 3px solid var(--c-orange);
    outline-offset: 3px;
}

.news-card__date {
    font-size: 18px;
    line-height: 28px;
}

/* ==========================================================================
   Contact band (Desktop_Contact Form) — 722 tall, blue panel 744 wide on the right
   ========================================================================== */
.contact-band {
    position: relative;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    min-height: 722px;
    border-top: 4px solid var(--c-green);
    overflow: hidden;
    padding: 22px 0;
}

.contact-band__bg {
    position: absolute;
    left: -32.56%;
    top: -28.47%;
    width: 133.26%;
    max-width: none;
    height: 154.18%;
    object-fit: cover;
}

.contact-band__panel {
    position: relative;
    width: min(744px, 100%);
    min-height: 677px;
    background: var(--c-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px var(--gutter);
}

.contact-band__inner {
    width: 100%;
    max-width: 577px;
}

.inquiry {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.contact-band__intro strong {
    font-size: 16px;
}

.contact-band__intro a {
    text-decoration: none;
}

.contact-band__required {
    font-size: 12px;
    line-height: 22px;
    margin-top: 10px;
}

.c-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.c-form__hp {
    position: absolute;
    left: -9999px;
}

.c-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 15px;
    row-gap: 10px;
}

.c-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.c-field--full {
    grid-column: 1 / -1;
}

.c-field label {
    font-weight: 500;
    font-size: 14px;
    line-height: 22px;
    text-transform: uppercase;
}

.c-field input,
.c-field select {
    width: 100%;
    height: 42px;
    border: 0;
    border-radius: 0;
    background: var(--c-white);
    padding: 0 14px;
    font-size: 16px;
}

.c-field select {
    height: 44.4px;
    appearance: none;
    -webkit-appearance: none;
    padding-right: 56px;
    background: var(--c-white) no-repeat right 36px center / 12px 14px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='14' viewBox='0 0 13.84 14.73'%3E%3Cpath transform='rotate(90 6.92 7.36)' d='M1 6.36a1 1 0 0 0 0 2V6.36ZM13.54 8.07a1 1 0 0 0 0-1.41L7.18.29a1 1 0 0 0-1.41 1.41l5.66 5.66-5.66 5.66a1 1 0 0 0 1.41 1.41l6.36-6.36ZM1 8.36h11.84V6.36H1v2Z' fill='%2341281A'/%3E%3C/svg%3E");
}

.c-field input:focus,
.c-field select:focus {
    outline: 2px solid var(--c-brown-dark);
    outline-offset: 0;
}

.c-check {
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 500;
    font-size: 11px;
    line-height: 14px;
}

.c-check input {
    width: 13px;
    height: 13px;
    margin: 0;
    accent-color: var(--c-green);
}

.c-form__legal {
    font-weight: 500;
    font-size: 11px;
    line-height: 15px;
}

.c-form .c-btn {
    align-self: flex-start;
}

.form-notice {
    padding: 10px 14px;
    font-size: 16px;
    line-height: 22px;
}

/* .form-notice--success {
    background: var(--c-mint);
    border-left: 6px solid var(--c-green);
} */

.form-notice--error {
    background: #fde3d2;
    border-left: 6px solid var(--c-orange);
}


/* Form plugins (Gravity Forms, Contact Form 7, WPForms…) inside the Visit panels — match the Figma form */
.contact-band__plugin-form {
    font-size: 14px;
}

.contact-band__plugin-form .gform_wrapper.gform_wrapper,
.contact-band__plugin-form .wpcf7,
.contact-band__plugin-form .wpforms-container {
    margin: 0;
    --gf-ctrl-border-color: transparent;
    --gf-ctrl-radius: 0;
    --gf-ctrl-bg-color: #fff;
    --gf-ctrl-label-color-primary: #000;
    --gf-color-primary: var(--c-brown-dark);
}

.contact-band__plugin-form .gform_heading,
.contact-band__plugin-form .gform_required_legend {
    display: none;
}

.contact-band__plugin-form .gform_fields {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 15px !important;
    row-gap: 10px !important;
}

.contact-band__plugin-form .gfield {
    grid-column: 1 / -1;
    margin: 0 !important;
    padding: 0 !important;
}

.contact-band__plugin-form fieldset {
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    min-width: 0;
}

.contact-band__plugin-form .gfield--width-half,
.contact-band__plugin-form .gf_left_half,
.contact-band__plugin-form .gf_right_half {
    grid-column: span 1;
}

.contact-band__plugin-form .ginput_complex {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 15px;
}

.contact-band__plugin-form .ginput_complex>span {
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column-reverse;
    gap: 4px;
}

.contact-band__plugin-form label,
.contact-band__plugin-form legend,
.contact-band__plugin-form .gfield_label,
.contact-band__plugin-form .gform-field-label {
    font-family: var(--f-sans) !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    line-height: 22px !important;
    text-transform: uppercase;
    color: var(--c-black) !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
}

.contact-band__plugin-form .gfield_required,
.contact-band__plugin-form .gfield_required_text {
    color: inherit !important;
    font-size: inherit !important;
    font-style: normal;
}

.contact-band__plugin-form .gfield_required_text::before {
    content: "*";
}

.contact-band__plugin-form .gfield_required_text {
    font-size: 0 !important;
}

.contact-band__plugin-form .gfield_required_text::before {
    font-size: 14px;
}

.contact-band__plugin-form input[type="text"],
.contact-band__plugin-form input[type="email"],
.contact-band__plugin-form input[type="tel"],
.contact-band__plugin-form input[type="number"],
.contact-band__plugin-form select,
.contact-band__plugin-form textarea {
    width: 100% !important;
    min-height: 42px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background-color: var(--c-white) !important;
    padding: 0 14px !important;
    font-family: var(--f-sans) !important;
    font-size: 16px !important;
    color: var(--c-black) !important;
}

.contact-band__plugin-form textarea {
    padding: 10px 14px !important;
    min-height: 110px !important;
}

.contact-band__plugin-form select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 56px !important;
    background: var(--c-white) no-repeat right 36px center / 12px 14px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='14' viewBox='0 0 13.84 14.73'%3E%3Cpath transform='rotate(90 6.92 7.36)' d='M1 6.36a1 1 0 0 0 0 2V6.36ZM13.54 8.07a1 1 0 0 0 0-1.41L7.18.29a1 1 0 0 0-1.41 1.41l5.66 5.66-5.66 5.66a1 1 0 0 0 1.41 1.41l6.36-6.36ZM1 8.36h11.84V6.36H1v2Z' fill='%2341281A'/%3E%3C/svg%3E") !important;
}

.contact-band__plugin-form input:focus,
.contact-band__plugin-form select:focus,
.contact-band__plugin-form textarea:focus {
    outline: 2px solid var(--c-brown-dark) !important;
    outline-offset: 0 !important;
}

.contact-band__plugin-form .gfield--type-consent,
.contact-band__plugin-form .ginput_container_consent,
.contact-band__plugin-form .gfield_checkbox {
    font-size: 11px;
    line-height: 14px;
}

.contact-band__plugin-form .ginput_container_consent label,
.contact-band__plugin-form .gfield_checkbox label {
    font-size: 11px !important;
    line-height: 14px !important;
    text-transform: none;
    display: inline;
}

.contact-band__plugin-form .gfield_description {
    font-family: var(--f-sans) !important;
    font-weight: 500;
    font-size: 11px !important;
    line-height: 15px !important;
    padding: 4px 0 0 !important;
    color: var(--c-black) !important;
}

.contact-band__plugin-form .gform_footer,
.contact-band__plugin-form .gform-page-footer {
    margin: 18px 0 0 !important;
    padding: 0 !important;
}

.contact-band__plugin-form input[type="submit"],
.contact-band__plugin-form button[type="submit"],
.contact-band__plugin-form .gform_button {
    min-height: 45.5px !important;
    padding: 10px 20px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--c-brown-dark) !important;
    color: var(--c-white) !important;
    font-family: var(--f-sans) !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    line-height: 1.2 !important;
    text-transform: capitalize;
    box-shadow: none !important;
    cursor: pointer;
    width: auto !important;
}

.contact-band__plugin-form .gform_validation_errors,
.contact-band__plugin-form .validation_message {
    font-size: 14px;
    border-radius: 0 !important;
}

.contact-band__plugin-form .gform_confirmation_message {
    background: var(--c-mint);
    border-left: 6px solid var(--c-green);
    padding: 10px 14px;
    font-size: 16px;
}

@media (max-width: 640px) {

    .contact-band__plugin-form .gform_fields,
    .contact-band__plugin-form .ginput_complex {
        grid-template-columns: 1fr !important;
    }

    .contact-band__plugin-form .gfield--width-half {
        grid-column: 1 / -1;
    }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer {
    background: var(--c-brown-dark);
    color: var(--c-white);
    padding: 25px var(--gutter);
    min-height: 331px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
}

.site-footer a {
    text-decoration: none;
}

.site-footer a:hover {
    text-decoration: underline;
}

.site-footer__upper {
    width: 100%;
    max-width: 1204px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.site-footer__brand {
    width: 213px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
}

.site-footer__brand img {
    width: 213px;
}

.site-footer__brand address {
    font-weight: 500;
    font-size: 12px;
    line-height: 19px;
    text-transform: uppercase;
    text-align: center;
}

.site-footer__cols {
    display: flex;
    align-items: center;
    gap: 105px;
}

.site-footer__col {
    width: 121px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-size: 12px;
    line-height: normal;
}

.site-footer__col h2 {
    font-weight: 500;
    font-size: 12px;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.site-footer__menu {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.site-footer__badges {
    width: 121px;
    display: flex;
    align-items: center;
}

.site-footer__badges img {
    height: auto;
}

.site-footer__badges>img {
    width: 91px;
}

.site-footer__social {
    display: block;
    width: 30px;
    transition: opacity 0.15s;
}

.site-footer__social img {
    width: 30px;
}

.site-footer__social:hover {
    opacity: 0.8;
}

.site-footer__legal {
    width: 100%;
    max-width: 1204px;
    border-top: 1px solid var(--c-white);
    padding-top: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-size: 11px;
    line-height: normal;
}

.site-footer__legal p {
    text-transform: uppercase;
}

.site-footer__legal-menu {
    display: flex;
    gap: 18px;
    margin: 0;
    padding: 0 10px;
    list-style: none;
    white-space: nowrap;
}

/* ==========================================================================
   Inner pages
   ========================================================================== */

/* Inner banner (Homepage Banner, 400 tall) — panel colour varies per page */
.page-banner {
    position: relative;
    min-height: 400px;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.page-banner__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 45%;
}

.page-banner--flip .page-banner__img {
    transform: scaleX(-1);
    object-position: 70% 40%;
}

.page-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(89.1deg, rgba(0, 0, 0, 0.3) 8.66%, rgba(102, 102, 102, 0) 61.5%);
}

.page-banner--flip::before {
    background: linear-gradient(89.1deg, rgba(0, 0, 0, 0.3) 8.66%, rgba(102, 102, 102, 0) 61.5%), linear-gradient(270deg, rgba(0, 0, 0, 0) 60%, #3d2821 78.4%);
}

.page-banner__panel {
    position: relative;
    z-index: 2;
    width: 49.21%;
    min-width: min(560px, 100%);
    padding: 50px 70px 50px var(--pad-x);
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.page-banner__title {
font-family: var(--f-sans);
    font-weight: 700;
    font-size: clamp(36px, 3.6vw, 56px);
    line-height: 1.1;
    letter-spacing: 0.03em;
}

@media (min-width: 961px) {
    .page-banner__title {
        white-space: nowrap;
    }
}

.page-banner__panel p {
    max-width: 693px;
}

.page-banner--blue .page-banner__panel {
    background: var(--c-blue);
    color: var(--c-brown-dark);
    width: 47.28%;
}

.page-id-23 .page-banner--blue .page-banner__panel {
    width: 50%;
}

.page-banner--mint .page-banner__panel {
    background: var(--c-mint);
    color: var(--c-brown-dark);
    width: 57.1%;
}

.page-banner--brown .page-banner__panel {
    background: var(--c-brown-dark);
    color: var(--c-white);
}

.page-banner--orange .page-banner__panel {
    background: var(--c-orange);
    color: var(--c-white);
    width:51%;
}

.page-banner--blue .page-banner__title,
.page-banner--mint .page-banner__title {
    letter-spacing: 0;
}

.section-title {
    text-align: center;
    font-size: var(--fs-h4);
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 50px var(--gutter) 24px;
}

.section-title--sm {
    font-size: var(--fs-h5);
}

/* Anchors / filter pills */
.anchors {
    padding: 25px var(--gutter);
}

.anchors--left {
    padding-inline: max(var(--gutter), 150px, calc((100% - 1212px) / 2));
}

.anchors ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 46px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.anchors--left ul {
    justify-content: flex-start;
}

.anchors a,
.anchors button {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    padding: 5px 20px;
    border: 0;
    background: none;
    font-weight: 500;
    font-size: 18px;
    line-height: 25px;
    letter-spacing: 0.02em;
    text-transform: capitalize;
    text-decoration: none;
    color: var(--c-black);
    cursor: pointer;
}

.anchors a:hover,
.anchors button:hover {
    color: var(--c-green);
}

.anchors a.is-active,
.anchors button.is-active {
    background: var(--c-blue);
    color: var(--c-black);
}

.anchors .is-active::before {
    content: "";
    width: 15px;
    height: 15px;
    background: var(--c-brown-dark);
    -webkit-mask: url("../icons/arrow-link.svg") no-repeat center / contain;
    mask: url("../icons/arrow-link.svg") no-repeat center / contain;
}

.news-listing {
    padding: 25px var(--gutter) 75px;
}

.news-row {
    display: grid;
    grid-template-columns: repeat(auto-fill, 400px);
    justify-content: center;
    gap: 50px 16px;
    max-width: 1232px;
    margin: 0 auto;
}

.news-listing--related {
    padding-bottom: 75px;
}

.c-pagination {
    margin-top: 48px;
}

.c-pagination .nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.c-pagination .page-numbers {
    min-width: 44px;
    padding: 5px 14px;
    line-height: 33px;
    text-align: center;
    text-decoration: none;
    font-weight: 500;
    font-size: 16px;
    background: var(--c-blue);
    color: var(--c-black);
}

.c-pagination .page-numbers.current {
    background: var(--c-green);
    color: var(--c-white);
}

.c-pagination .prev,
.c-pagination .next {
    background: var(--c-orange);
    color: var(--c-white);
}

/* Blog / event detail */
.detail-hero {
    position: relative;
    margin-top: 36px;
    background: var(--c-blue);
    padding: 75px var(--pad-x);
    border-bottom: 8px solid var(--c-green);
    overflow: hidden;
    isolation: isolate;
}

.detail-hero::before {
    content: "";
    position: absolute;
    left: 0;
    top: -224%;
    width: 27.3%;
    height: 384%;
    z-index: -1;
    background: url("../images/leaf-texture.png") no-repeat left center / cover;
    mix-blend-mode: multiply;
    opacity: 0.5;
}

.detail-hero__title {
font-family: var(--f-sans);
    font-weight: 700;
    font-size: clamp(48px, 4.76vw, 72px);
    line-height: 38.4px;
    color: var(--c-brown-dark);
    padding-block: 8px;
}

.post-steps {
    display: flex;
    justify-content: center;
    gap: clamp(24px, 16.6vw, 251px);
    padding: 23px var(--gutter);
}

.post-steps>div {
    flex: 0 1 470px;
    display: flex;
}

.post-steps__next {
    justify-content: flex-end;
}

.post-steps a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--c-brown-dark);
    font-weight: 500;
    font-size: 16px;
    line-height: 22px;
    text-decoration: none;
}

.post-steps a:hover span {
    text-decoration: underline;
}

.post-steps img {
    width: 15px;
    height: 15px;
}

.post-steps__prev img {
    transform: scaleX(-1);
}

.feature-image {
    position: relative;
    margin: 0 auto;
    padding: 25px var(--gutter);
    max-width: calc(1308px + 2 * var(--gutter));
}

.feature-image img {
    width: 100%;
    aspect-ratio: 1308 / 404;
    object-fit: cover;
}

.feature-image::before {
    content: "";
    position: absolute;
    left: var(--gutter);
    top: 25px;
    bottom: 25px;
    width: 19.5px;
    background: var(--c-green);
    z-index: 1;
}

.entry {
    padding: 25px var(--pad-x) 50px;
}

.entry--post {
    padding-left: max(var(--gutter), 150px, calc((100% - 1212px) / 2));
    padding-right: max(var(--gutter), calc((100% - 1212px) / 2));
}

.entry-header {
    display: flex;
    flex-direction: column;
    gap: 26px;
    margin-bottom: 26px;
    max-width: 1200px;
}

.entry-date {
    font-weight: 500;
    font-size: 18px;
    line-height: normal;
}

.entry-title {
    font-size: var(--fs-h3);
    line-height: 1;
    letter-spacing: 0.05em;
}

/* Block content */
.entry-content {
    max-width: 1200px;
}

.entry:not(.entry--post) .entry-content {
    max-width: 1312px;
    margin-inline: auto;
}

.page .entry,
.error404 .entry-content,
.search .entry-content {
    padding-top: 50px;
}

.error404 .entry-content,
.search .entry-content {
    padding: 50px var(--pad-x) 75px;
    display: flex;
    flex-direction: column;
    gap: 26px;
}

.entry-content>*+* {
    margin-top: 26px;
}

.entry-content h2 {
    font-size: var(--fs-h6);
    line-height: 1.05;
    letter-spacing: 0.05em;
    text-transform: capitalize;
}

.entry-content h3 {
    font-size: 18px;
    line-height: 28px;
    color: var(--c-orange);
}

.entry-content h4 {
    font-size: 18px;
    line-height: 28px;
}

.entry-content a {
    color: var(--c-green);
    text-underline-offset: 3px;
}

.entry-content ul,
.entry-content ol {
    padding-left: 27px;
    margin-block: 0;
}

.entry-content li+li {
    margin-top: 10px;
}

.entry-content img {
    height: auto;
}

.entry-content .alignfull {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    max-width: 100vw;
    width: 100vw;
}

.entry--post .entry-content .alignfull {
    margin-left: calc(-1 * max(var(--gutter), 150px, (100vw - 1212px) / 2));
    margin-right: calc(-1 * max(var(--gutter), (100vw - 1212px) / 2));
}

.entry-content .alignwide {
    max-width: 1312px;
}

.entry-content blockquote {
    margin-inline: 0;
    padding: 24px 32px 24px 48px;
    background: var(--c-blue-25);
    box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.25);
    border-left: 16px solid var(--c-green);
}

/* Core button styles */
.wp-block-button__link {
    border-radius: 0;
    font-weight: 500;
    font-size: 16px;
    line-height: 33px;
    padding: 5px 16px;
    background: var(--c-blue);
    color: var(--c-black);
    text-decoration: none;
}

.entry-content .wp-block-button__link {
    color: var(--c-black);
}

.is-style-cedars-orange .wp-block-button__link {
    background: var(--c-orange);
    color: var(--c-white) !important;
}

.is-style-cedars-green .wp-block-button__link {
    background: var(--c-green);
    color: var(--c-white) !important;
}

.is-style-cedars-mint .wp-block-button__link {
    background: var(--c-mint);
    color: var(--c-brown-dark) !important;
}

/* Pattern: Key Takeaways */
.c-takeaways {
    position: relative;
    background: var(--c-mint);
    padding: 75px max(var(--gutter), 150px, calc((100vw - 1212px) / 2)) !important;
    isolation: isolate;
    overflow: hidden;
}

.c-takeaways::after {
    content: "";
    position: absolute;
    right: 0;
    top: -21.5%;
    width: 21%;
    height: 143%;
    z-index: -1;
    background: url("../images/leaf-texture-alt.png") no-repeat right center / cover;
    transform: scaleX(-1);
    mix-blend-mode: multiply;
    opacity: 0.5;
}

.entry-content :is(.c-takeaways, .c-takeaways > .wp-block-group__inner-container)>* {
    margin-block: 0;
}

.entry-content :is(.c-takeaways, .c-takeaways > .wp-block-group__inner-container)>*+* {
    margin-top: 26px;
}

.entry-content :is(.c-takeaways, .c-takeaways > .wp-block-group__inner-container)>h3 {
    margin-top: 20px;
}

.entry-content .c-takeaways__title,
.c-takeaways__title {
    font-size: var(--fs-h4);
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: none;
    color: var(--c-ink);
}

.c-takeaways h3 {
    color: var(--c-black);
    font-size: var(--fs-h6);
    line-height: 1.05;
    letter-spacing: 0.05em;
    text-transform: capitalize;
}

/* Pattern: FAQ accordion (core/details) */
.entry-content .c-faq {
    padding-block: 50px;
}

.entry-content :is(.c-faq, .c-faq > .wp-block-group__inner-container)>* {
    margin-block: 0;
}

.entry-content :is(.c-faq, .c-faq > .wp-block-group__inner-container)>*+* {
    margin-top: 26px;
}

.entry-content .c-faq__title,
.c-faq__title {
    color: var(--c-orange);
    font-size: var(--fs-h4);
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: none;
}

.wp-block-details {
    border-bottom: 3px solid var(--c-brown-dark);
    padding-bottom: 26px;
}

.wp-block-details summary {
    list-style: none;
    cursor: pointer;
    position: relative;
    padding-right: 56px;
    font-weight: 700;
    font-size: var(--fs-h6);
    line-height: 1.05;
    letter-spacing: 0.05em;
    text-transform: capitalize;
}

.wp-block-details summary::-webkit-details-marker {
    display: none;
}

.wp-block-details summary::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 24px;
    height: 24px;
    transform: translateY(-50%);
    background: url("../icons/faq-closed.svg") no-repeat center / contain;
}

.wp-block-details[open] summary::after {
    background-image: url("../icons/faq-open.svg");
}

.wp-block-details> :not(summary) {
    margin-top: 16px;
    max-width: 993px;
}

/* Pattern: Have questions band */
.c-help-band {
    background: var(--c-green);
    color: var(--c-white);
    padding: 50px var(--pad-x) !important;
}

.entry--post .entry-content .c-help-band {
    padding-left: max(var(--gutter), 100px, calc((100vw - 1312px) / 2)) !important;
}

.c-help-band__inner,
.c-help-band__inner>.wp-block-group__inner-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.c-help-band>.wp-block-group__inner-container {
    max-width: 1312px;
}

.c-help-band__inner,
.c-help-band__inner>.wp-block-group__inner-container {
    align-items: center;
    gap: 32px;
    max-width: 1312px;
}

.c-help-band__copy {
    max-width: 935px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.entry-content :is(.c-help-band__copy, .c-help-band__copy > .wp-block-group__inner-container)>* {
    margin-block: 0;
}

.entry-content :is(.c-help-band__copy, .c-help-band__copy > .wp-block-group__inner-container)>*+* {
    margin-top: 14px;
}

.entry-content .c-help-band__title,
.c-help-band__title {
    color: var(--c-white);
    font-size: var(--fs-h5);
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.c-help-band p {
    max-width: 640px;
}

.c-help-band a:not(.wp-block-button__link) {
    color: var(--c-white);
    text-decoration: none;
}

/* ==========================================================================
   Interior page modules
   ========================================================================== */

/* Copy & Image Modules: 525 copy column + 768×287 photo with a 15.6px edge bar */
.copy-image {
    display: flex;
    align-items: center;
    gap: clamp(32px, 7.8vw, 118px);
    padding: 50px var(--pad-x);
}

.copy-image--img-left {
    flex-direction: row-reverse;
}

.copy-image__copy {
    flex: 0 1 525px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 26px;
}

.copy-image__copy .h4 {
    color: var(--c-black);
    text-transform: uppercase;
}

.copy-image__copy p+p {
    margin-top: -26px;
    padding-top: 28px;
}

.copy-image__copy .c-btn {
    margin-top: -4px;
}

.copy-image__media {
    position: relative;
    flex: 0 1 768px;
    margin: 0;
    min-width: 0;
}

.copy-image__media img {
    width: 100%;
    aspect-ratio: 768 / 287;
    object-fit: cover;
}

.copy-image--bar-green .copy-image__media,
.copy-image--bar-orange .copy-image__media {
    padding-left: 15.6px;
}

.copy-image--bar-green .copy-image__media {
    background: var(--c-green);
}

.copy-image--bar-orange .copy-image__media {
    background: var(--c-orange);
}

.copy-image--img-left.copy-image--bar-green .copy-image__media,
.copy-image--img-left.copy-image--bar-orange .copy-image__media {
    padding-left: 15.6px;
}

/* Bleed the photo to the screen edge */
.copy-image--bleed.copy-image--img-right {
    padding-right: 0;
    justify-content: space-between;
}

.copy-image--bleed.copy-image--img-left {
    padding-left: 0;
    justify-content: space-between;
}

.copy-image--bleed .copy-image__media {
    flex-basis: 50.8%;
}

.copy-image--bleed.copy-image--img-left .copy-image__copy {
    margin-right: auto;
}

.copy-image--first {
    padding-top: 50px;
}

.copy-image:not(.copy-image--bleed) {
    gap: 40px;
    justify-content: center;
}

.copy-image--first .copy-image__media img {
    aspect-ratio: 768 / 300;
}

/* About: building photo + white copy panel over a blue top stripe */
.copy-image--about {
    padding-block: 25px;
    position: relative;
    isolation: isolate;
    align-items: stretch;
    gap: 0;
}

.copy-image--about::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 25px;
    height: 11px;
    background: #4a90d9;
    z-index: -1;
    opacity: 0.9;
}

.copy-image--about .copy-image__media {
    flex-basis: 48.5%;
}

.copy-image--about .copy-image__media img {
    height: 100%;
    aspect-ratio: auto;
    min-height: 547px;
}

.copy-image--about .copy-image__copy {
    flex: 1 1 51.5%;
    margin: 0;
    padding: 60px max(var(--gutter), 100px) 50px 64px;
    background: var(--c-white);
    justify-content: center;
    max-width: none;
}

.copy-image--about .copy-image__copy p {
    max-width: 560px;
}

/* Three-Image Module (About → leadership): taller photo */
.copy-image--tall {
    padding-block: 75px;
}

.copy-image--tall .copy-image__media img {
    aspect-ratio: 752 / 395;
}

.overlay-module.overlay-module--about {
    min-height: 547px;
    margin-top: 25px;
    align-items: flex-end;
    padding-bottom: 0;
}

.overlay-module.overlay-module--about .overlay-module__panel p {
    max-width: 560px;
}

.overlay-module.overlay-module--about .overlay-module__img {
    object-position: 0% 60%;
    height: calc(100% - 11px);
    top: 11px;
}

.overlay-module--about::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 11px;
    background: linear-gradient(90deg, #6aa5d8, #3f7fd0);
}

.overlay-module.overlay-module--about .overlay-module__panel {
    margin-bottom: 0;
    padding-block: 50px 40px;
    min-height: 476px;
    justify-content: center;
    gap: 22px;
}

/* Featured Event slider (News & Events) */
.featured-events {
    position: relative;
    padding: 25px var(--gutter) 0;
}

.featured-events__viewport {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
}

.featured-event {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 476px;
    border-top: 4px solid var(--c-green);
    overflow: hidden;
}

.featured-event[hidden] {
    display: none;
}

.featured-event__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.featured-event__panel {
    position: relative;
    width: min(551px, 100%);
    min-height: 431px;
    margin: 0;
    background: var(--c-orange);
    color: var(--c-white);
    padding: 50px 64px 50px 90px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 18px;
    align-self: flex-start;
    margin-top: 20px;
}

.featured-event__label {
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 28px;
}

.featured-event__title {
font-family: var(--f-sans);
    font-weight: 700;
    font-size: clamp(32px, 2.8vw, 42px);
    line-height: 1.05;
}

.featured-event__title a {
    text-decoration: none;
}

.featured-event__when {
    font-weight: 700;
    font-size: var(--fs-h5);
    line-height: 1.1;
    letter-spacing: 0.05em;
    text-transform: capitalize;
}

.featured-event__panel .c-btn {
    margin-top: 6px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 14px;
}

.featured-events__arrow {
    position: absolute;
    top: 50%;
    width: 32px;
    height: 28px;
    margin-top: -14px;
    border: 0;
    padding: 0;
    background: var(--c-brown-dark);
    -webkit-mask: url("../icons/arrow-big.svg") no-repeat center / 22px 19px;
    mask: url("../icons/arrow-big.svg") no-repeat center / 22px 19px;
}

.featured-events__arrow--prev {
    left: -66px;
    transform: scaleX(-1);
}

.featured-events__arrow--next {
    right: -66px;
}

.featured-events__dots {
    display: flex;
    justify-content: center;
    gap: 28px;
    padding: 24px 0 0;
    margin: 0;
    list-style: none;
}

.featured-events__dots button {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 0;
    padding: 0;
    background: #d9d9d9;
}

.featured-events__dots button[aria-current="true"] {
    background: var(--c-green);
}

.news-card__excerpt {
    font-size: 16px;
    line-height: 22px;
}

.news-card--excerpt {
    height: 400px;
}

.news-card--excerpt::after {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.6), rgba(102, 102, 102, 0) 75%);
}

/* Event detail */
.detail-hero--event {
    border-bottom-color: var(--c-orange);
}

.event-layout {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 64px;
    padding: 25px var(--pad-x) 50px;
}

.event-layout .entry {
    padding: 54px 0 0 25px;
    flex: 0 1 752px;
}

.event-layout .entry-title {
    font-size: var(--fs-h4);
    letter-spacing: 0.05em;
}

.event-when {
    font-weight: 700;
    font-size: var(--fs-h5);
    line-height: 1.1;
    letter-spacing: 0.05em;
    text-transform: capitalize;
    margin-top: -8px;
}

.rsvp {
    flex: 0 0 378px;
    background: var(--c-orange);
    color: var(--c-white);
    padding: 50px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rsvp h2 {
    font-size: var(--fs-h5);
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: capitalize;
}

.rsvp__intro {
    font-size: 16px;
    line-height: 20px;
}

.rsvp__intro a {
    color: inherit;
    text-decoration: none;
    font-weight: 700;
}

.rsvp form {
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.rsvp label {
    display: block;
    font-weight: 500;
    font-size: 14px;
    line-height: 20px;
    margin-bottom: 2px;
}

.rsvp input {
    width: 100%;
    height: 36px;
    border: 0;
    padding: 0 12px;
    font-size: 16px;
    background: var(--c-white);
    color: var(--c-black);
}

.rsvp .c-btn {
    align-self: flex-start;
    margin-top: 4px;
}

.feature-image--event::before {
    background: var(--c-orange);
}

.event-layout .entry-content .alignfull,
.event-layout .entry-content .alignwide {
    margin-left: 0;
    margin-right: 0;
    width: auto;
    max-width: none;
}

.event-layout .entry-content .c-takeaways,
.event-layout .entry-content .c-help-band {
    padding: 40px 32px !important;
}

.event-layout .entry-content .c-takeaways::after {
    width: 35%;
}

/* Contact page location teaser */
.copy-image--contact {
    padding-block: 85px;
    gap: 29px !important;
}

.copy-image--contact .copy-image__media {
    flex: 0 1 768px;
}

.copy-image--contact .copy-image__media img {
    aspect-ratio: 768 / 287;
}

/* Plans intro + includes */
.plans-intro {
    padding: 50px var(--pad-x) 25px;
    max-width: calc(1082px + 2 * var(--gutter));
    box-sizing: content-box;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.plans-intro .h4 {
    color: var(--c-black);
    text-transform: uppercase;
    margin-bottom: 28px;
}

.plans-intro p {
    max-width: 1082px;
}

.plans-intro p+p {
    margin-top: 28px;
}

.includes {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--c-mint);
    color: var(--c-brown-dark);
    padding: 35px max(var(--gutter), 150px) 35px max(var(--gutter), 275px, calc((100% - 1512px) / 2 + 275px));
    margin-top: 32px;
}

.includes::after {
    content: "";
    position: absolute;
    right: 0;
    top: -47%;
    width: 27%;
    height: 194%;
    z-index: -1;
    background: url("../images/leaf-texture-alt.png") no-repeat right center / cover;
    transform: scaleX(-1);
    mix-blend-mode: multiply;
    opacity: 0.5;
}

.includes__title {
    font-size: var(--fs-h5);
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: capitalize;
    margin-bottom: 26px;
}

.includes__cols {
    display: flex;
    flex-wrap: wrap;
    gap: 0 100px;
}

.includes__col {
    flex: 0 1 430px;
}

.includes ul {
    margin: 0;
    padding-left: 27px;
}

.includes li+li {
    margin-top: 10px;
}

.includes__note {
    font-size: 16px;
    line-height: 20px;
    margin-top: 28px;
    padding-left: 4px;
}

/* Floor plan rows */
.plan-list {
    padding-bottom: 25px;
}

.plan-list>.anchors {
    padding-top: 25px;
}

.plan-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 51px;
    padding: 0 var(--gutter);
}

.plan-row[hidden] {
    display: none;
}

.plan-row__img {
    flex: 0 1 700px;
    margin: 0;
    background: var(--c-white);
}

.plan-row__img img {
    width: 100%;
    aspect-ratio: 700 / 417;
    object-fit: contain;
    padding: 42px 0;
}

.plan-row__copy {
    flex: 0 1 559px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.plan-row__copy .h4 {
    color: var(--c-black);
}

.plan-row__meta {
    font-weight: 700;
    font-size: 20px;
    line-height: normal;
    letter-spacing: 0.02em;
    text-transform: capitalize;
}

.plan-row.is-even {
    flex-direction: row-reverse;
}

.plan-row.is-even .plan-row__copy {
    flex-basis: 380px;
}

/* Compare table */
.compare {
    padding: 50px var(--pad-x) 25px;
}

.compare__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 25px;
}

.compare__head>div {
    max-width: 893px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.compare__head .h5 {
    min-height: 54px;
    display: flex;
    align-items: center;
    text-transform: uppercase;
}

.compare__scroll {
    overflow-x: auto;
    max-width: 1176px;
    margin: 0 auto;
}

.compare__table {
    width: 100%;
    min-width: 640px;
    border-collapse: collapse;
    text-align: left;
}

.compare__table th,
.compare__table td {
    padding: 21px 0 21px 0;
    font-size: 18px;
    line-height: 28px;
    font-weight: 400;
}

.compare__table tr> :first-child {
    padding-left: 34px;
}

.compare__table thead th {
    background: rgba(169, 220, 222, 0.5);
    font-weight: 700;
    font-size: var(--fs-h6);
    line-height: 1.05;
    letter-spacing: 0.05em;
    text-transform: capitalize;
    padding-block: 25px 22px;
}

.compare__table tbody tr:nth-child(odd) {
    background: #e3e3e3;
}

.compare__table tbody tr:nth-child(even) {
    background: #efefef;
}

/* Gallery viewer */
.c-gallery {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    padding: 0 var(--gutter) 95px;
}

.c-gallery--thumbs-only {
    padding: 25px var(--gutter);
}

.c-gallery>.anchors {
    padding: 10px 0 30px;
}

.c-gallery__stage {
    margin: 0;
    width: min(930px, 100%);
}

.c-gallery--wide .c-gallery__stage {
    width: min(1303px, 100%);
}

.c-gallery__main {
    width: 100%;
    aspect-ratio: 930 / 402;
    object-fit: cover;
}

.c-gallery--wide .c-gallery__main {
    aspect-ratio: 1303 / 562;
}

.c-gallery__strip {
    display: flex;
    align-items: center;
    gap: 14px;
    width: min(930px, 100%);
}

.c-gallery__thumbs {
    flex: 1;
    display: flex;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-x: auto;
    scroll-behavior: smooth;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
}

.c-gallery__thumbs::-webkit-scrollbar {
    display: none;
}

.c-gallery__thumbs li {
    flex: 0 0 calc((100% - 56px) / 5);
    scroll-snap-align: start;
}

.c-gallery__thumbs li[hidden] {
    display: none;
}

.c-gallery__thumb {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    outline-offset: 2px;
}

.c-gallery__thumb img {
    width: 100%;
    aspect-ratio: 151 / 85;
    object-fit: cover;
    transition: opacity 0.15s;
}

.c-gallery__thumb:not(.is-active) img {
    opacity: 0.85;
}

.c-gallery__thumb.is-active {
    outline: 3px solid var(--c-green);
}

.c-gallery__arrow,
.features__arrow {
    flex: none;
    width: 24px;
    height: 24px;
    border: 0;
    padding: 0;
    background: var(--c-brown-dark);
    -webkit-mask: url("../icons/arrow-big.svg") no-repeat center / 15px 13px;
    mask: url("../icons/arrow-big.svg") no-repeat center / 15px 13px;
}

.c-gallery__arrow--prev,
.features__arrow--prev {
    transform: scaleX(-1);
}

.c-gallery__arrow:hover,
.features__arrow:hover {
    background: var(--c-orange);
}

/* Lifestyle checklists (Accordian) */
.checklists {
    padding: 50px var(--pad-x);
    display: flex;
    flex-direction: column;
    gap: 31px;
}

.checklist {
    border-bottom: 3px solid var(--c-green);
    padding-bottom: 31px;
}

.checklist:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.checklist__title {
    list-style: none;
    cursor: pointer;
    position: relative;
    padding-right: 48px;
    font-weight: 700;
    font-size: var(--fs-h5);
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: capitalize;
}

.checklist__title::-webkit-details-marker {
    display: none;
}

.checklist__title::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 24px;
    height: 24px;
    transform: translateY(-50%);
    background: url("../icons/faq-closed.svg") no-repeat center / contain;
}

.checklist[open] .checklist__title::after {
    background-image: url("../icons/faq-open.svg");
}

.checklist__body {
    display: flex;
    align-items: center;
    gap: clamp(32px, 8.2vw, 124px);
    margin-top: 31px;
}

.checklist__img {
    flex: 0 1 574px;
    margin: 0;
    padding-left: 13px;
    background: var(--c-green);
}

.checklist__img img {
    width: 100%;
    aspect-ratio: 561 / 273;
    object-fit: cover;
}

.checklist__items {
    flex: 0 1 560px;
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.checklist__items li {
    position: relative;
    padding-left: 24px;
    line-height: 22px;
}

.checklist__items li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    width: 10.7px;
    height: 12.1px;
    background: url("../icons/check.svg") no-repeat center / contain;
}

/* Amenities carousel — blue variant (Lifestyle page) */
.amenities--blue {
    background: var(--c-blue);
    min-height: 0;
}

.amenities--blue::before {
    width: 27%;
    opacity: 0.5;
    background-image: url("../images/leaf-texture-alt.png");
}

.amenities--blue {
    min-height: 584px;
}

.amenities--blue .amenities__copy {
    color: var(--c-brown-dark);
    flex-basis: 582px;
    padding-top: 52px;
    padding-bottom: 40px;
    gap: 66px;
    font-size: 16px;
    line-height: 22px;
}

.amenities--blue .amenities__title {
    color: var(--c-brown-dark);
    border-color: var(--c-green);
    font-size: clamp(32px, 2.8vw, 42px);
}

.amenities--blue .amenities__panel {
    color: var(--c-black);
}

.amenities--blue .amenities__panel p+p {
    margin-top: 12px;
}

.amenities--blue .amenities__stage {
    flex-basis: 549px;
    min-height: 584px;
}

.amenities__hint-icon {
    width: 15px;
    height: 15px;
    flex: none;
    background: currentColor;
    -webkit-mask: url("../icons/arrow-link.svg") no-repeat center / contain;
    mask: url("../icons/arrow-link.svg") no-repeat center / contain;
}

.amenities--blue .amenities__hint {
    font-weight: 700;
    justify-content: space-between;
    max-width: 535px;
}

/* Map module (Lifestyle → Our Location) */
.map-module {
    position: relative;
    min-height: 500px;
    display: flex;
    align-items: center;
    padding: 50px 0;
    overflow: hidden;
    margin-top: 23px;
}

.map-module__panel {
    min-height: 0 !important;
}

.map-module__map {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 68% 52%;
    transform: scale(1.6);
    transform-origin: 72% 52%;
}

.map-module__panel {
    position: relative;
    width: min(774px, 100%);
    min-height: 400px;
    background: var(--c-white);
    padding: 50px 64px 50px max(var(--gutter), calc((100vw - 1512px) / 2 + 100px));
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 16px;
}

.map-module__panel .h4 {
    color: var(--c-black);
    text-transform: uppercase;
}

.map-module__panel p {
    max-width: 610px;
}

.map-module__panel p+p {
    margin-top: 12px;
}

.map-module__panel .c-btn {
    margin-top: 12px;
}

.c-headline--tight {
    padding-block: 50px 25px;
}

.c-headline--flush {
    margin-top: 0;
}

/* Overlay module (Our Location → Stay connected) */
.overlay-module {
    position: relative;
    min-height: 725px;
    margin-top: 36px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    overflow: hidden;
}

.overlay-module__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 78% 35%;
}

.overlay-module__panel {
    position: relative;
    width: min(780px, 51.6%);
    background: var(--c-white);
    padding: 50px max(var(--gutter), 100px) 50px 64px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 26px;
}

.overlay-module__panel .h4 {
    color: var(--c-black);
    text-transform: uppercase;
    max-width: 420px;
}

/* Local features + video slider */
.features {
    padding: 0 var(--gutter) 75px;
}

.features>.anchors {
    padding: 20px 0 50px;
}

.features__viewport {
    display: flex;
    align-items: center;
    gap: 36px;
    max-width: 1272px;
    margin: 0 auto;
}

.features__track {
    flex: 1;
    display: flex;
    gap: 25px;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.features__track::-webkit-scrollbar {
    display: none;
}

.features__arrow {
    background: var(--c-brown);
}

.feature-card {
    flex: 0 0 calc((100% - 50px) / 3);
    scroll-snap-align: start;
}

.feature-card[hidden] {
    display: none;
}

.feature-card__img {
    aspect-ratio: 390 / 270;
    background: #d9d9d9;
    margin-bottom: 10px;
    overflow: hidden;
}

.feature-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.feature-card__type {
    font-weight: 500;
    font-size: 18px;
    line-height: 25px;
    letter-spacing: 0.02em;
}

.feature-card__name {
    font-size: var(--fs-h6);
    line-height: 1.05;
    letter-spacing: 0.05em;
    text-transform: capitalize;
    margin-top: 10px;
}

.videos {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--c-mint);
    padding: 75px var(--gutter);
}

.videos::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: url("../images/leaf-texture-alt.png") repeat-x left center / auto 160%;
    mix-blend-mode: multiply;
    opacity: 0.35;
}

.videos .features__viewport {
    max-width: 1440px;
}

.videos__title {
    text-align: center;
    font-size: var(--fs-h4);
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--c-brown-dark);
    margin-bottom: 30px;
}

.video-card {
    flex: 0 0 calc((100% - 50px) / 3);
    scroll-snap-align: start;
}

.video-card__thumb {
    position: relative;
    display: block;
    overflow: hidden;
}

.video-card__thumb img {
    width: 100%;
    aspect-ratio: 415 / 234;
    object-fit: cover;
}

.video-card__play {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 32px;
    height: 32px;
    margin: -16px 0 0 -16px;
    border: 2px solid var(--c-white);
    border-radius: 50%;
}

.video-card__play::after {
    content: "";
    position: absolute;
    left: 11px;
    top: 8px;
    border-style: solid;
    border-width: 6px 0 6px 10px;
    border-color: transparent transparent transparent var(--c-white);
}

.video-card__title {
    margin-top: 16px;
    font-size: var(--fs-h6);
    line-height: 1.05;
    letter-spacing: 0.05em;
    text-transform: capitalize;
    color: var(--c-brown-dark);
}

/* Contact split (Figma: Schedule A Visit › Group 53)
   Light-green panel 880px tall across the full width; map 744×711 pinned top-right;
   address/hours/phone under the map; form 570 wide, 100px from the left, 81px down. */
.contact-split {
    position: relative;
    isolation: isolate;
    margin-top: 35px;
    margin-bottom: 45px;
    border-top: 8.5px solid var(--c-orange);
    background: var(--c-mint);
    min-height: 880px;
    display: grid;
    grid-template-columns: minmax(0, 50.7%) minmax(0, 49.3%);
    grid-template-rows: 711px auto;
}

.contact-split::before {
    content: "";
    position: absolute;
    left: 0;
    top: -15.43%;
    width: 47.24%;
    height: 130.87%;
    z-index: -1;
    background: url("../images/leaf-texture-contact.png") no-repeat left top / 100% 100%;
    mix-blend-mode: multiply;
    opacity: 0.2;
    pointer-events: none;
}

.contact-split {
    overflow: hidden;
}

.contact-split__form {
    grid-column: 1;
    grid-row: 1 / span 2;
    padding: 94px 40px 75px max(var(--gutter), calc((100% - 1512px) / 2 + 100px));
}

.contact-split__form .inquiry {
    max-width: 577px;
    gap: 24px;
}

.inquiry--big .h3 {
    font-size: var(--fs-h3);
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: capitalize;
    margin: 0;
}

.inquiry--big .contact-band__intro {
    color: var(--c-black);
}

.inquiry--big .contact-band__required {
    font-weight: 700;
    font-size: 14px;
    line-height: 22px;
    margin-top: 4px;
}

.contact-split__map {
    grid-column: 2;
    grid-row: 1;
    display: block;
    height: 711px;
    overflow: hidden;
    background: #efeee9;
}

.contact-split__map img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.contact-split__details {
    grid-column: 2;
    grid-row: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 24px 54px;
    margin: 0;
    padding: 36px 40px 56px 44px;
    align-self: start;
}

.contact-split__details>div {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.contact-split__details>div:nth-child(1) {
    width: 177px;
}

.contact-split__details>div:nth-child(2) {
    width: 168px;
}

.contact-split__details dt {
    font-weight: 500;
    font-size: 18px;
    line-height: normal;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.contact-split__details dd {
    margin: 0;
    font-size: 18px;
    line-height: 28px;
}

.contact-split__details a {
    text-decoration: none;
}

.contact-split__details a:hover {
    text-decoration: underline;
}

/* FAQ page */
.faq-page {
    padding: 0 var(--pad-x) 50px;
}

.faq-page .c-divider {
    padding-inline: 0;
}

.faq-group {
    padding-block: 25px;
    scroll-margin-top: 24px;
}

.faq-group__title {
    color: var(--c-orange);
    font-size: var(--fs-h4);
    line-height: 1;
    letter-spacing: 0.05em;
    margin-bottom: 26px;
}

.faq-group .wp-block-details {
    padding-block: 0 36px;
    margin-bottom: 36px;
}

body.page .site-main>.anchors {
    padding-top: 60px;
    padding-bottom: 20px;
}

.faq-group .wp-block-details:last-child {
    border-bottom: 0;
    margin-bottom: 0;
}

.faq-group .wp-block-details summary {
    padding-left: 28px;
}

.faq-group .wp-block-details p {
    margin-top: 26px;
    max-width: 993px;
    padding-left: 28px;
}

.faq-page .c-divider--faq {
    padding-block: 0;
}

/* CTA band */
.cta-band {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 50px var(--pad-x);
    color: var(--c-white);
    min-height: 214px;
}

.cta-band::before {
    content: "";
    position: absolute;
    left: 0;
    top: -50%;
    width: 27%;
    height: 200%;
    z-index: -1;
    background: no-repeat left center / cover;
    mix-blend-mode: multiply;
    opacity: 0.35;
}

.cta-band--green {
    background: var(--c-green);
}

.cta-band--green::before {
    background-image: url("../images/leaf-texture.png");
}

.cta-band--orange {
    background: var(--c-orange);
    margin-block: 25px;
}

.cta-band--orange::before {
    background-image: url("../images/leaf-texture-orange.png");
    opacity: 0.6;
}

.cta-band__copy {
    max-width: 935px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.cta-band__title {
    font-size: var(--fs-h5);
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cta-band p {
    max-width: 900px;
}

.cta-band a:not(.c-btn) {
    color: inherit;
    text-decoration: none;
}

.cta-band>.c-btn {
    flex: none;
}

/* Team */
/* Team (Figma Leadership): 400x450 photos, 42px names, 24px roles */
.team {
    display: flex;
    justify-content: center;
    flex-wrap: no-wrap;
    gap: 40px 38px;
    margin: 0;
    padding: 50px var(--gutter);
    list-style: none;
}

.team__member {
    width: 400px;
    max-width: 100%;
    text-align: center;
}

.team__member img {
    width: 100%;
    aspect-ratio: 400 / 450;
    object-fit: cover;
    object-position: center 20%;
    margin-bottom: 26px;
}

.team__name {
    font-size: 23px;
    line-height: 1;
    letter-spacing: 0.05em;
    color: var(--c-black);
}

.team__role {
    font-size: 18px;
    line-height: normal;
    letter-spacing: 0.02em;
    text-transform: capitalize;
    margin-top: 10px;
}

.c-divider--tight {
    padding: 12px var(--gutter);
}

.c-divider--faq {
    padding: 0;
}

@media (max-width: 960px) {
    .anchors--left {
        padding-inline: var(--gutter);
    }

    .anchors a,
    .anchors button {
        white-space: nowrap;
        font-size: 16px;
        padding-inline: 14px;
    }

    .anchors ul {
        gap: 8px 12px;
    }

    .copy-image,
    .copy-image--img-left {
        flex-direction: column;
        align-items: stretch;
        padding: 40px var(--gutter) !important;
        gap: 28px;
    }

    .copy-image__copy {
        flex: none;
    }

    .copy-image__media {
        flex: none !important;
        order: -1;
    }

    .copy-image--about .copy-image__copy {
        padding: 0;
    }

    .copy-image--about .copy-image__media img {
        min-height: 0;
        aspect-ratio: 4 / 3;
    }

    .copy-image--about::before {
        display: none;
    }

    .includes {
        padding: 35px var(--gutter);
    }

    .includes__cols {
        gap: 10px;
    }

    .plan-row,
    .plan-row.is-even {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
        padding-block: 16px;
    }

    .plan-row__img {
        flex: none;
    }

    .compare__head {
        flex-direction: column;
        align-items: flex-start;
    }

    .checklist__body {
        flex-direction: column;
        align-items: stretch;
    }

    .checklist__img {
        flex: none;
    }

    .map-module {
        flex-direction: column;
        padding: 0;
        min-height: 0;
    }

    .map-module__map {
        position: relative;
        height: 280px;
    }

    .map-module__panel {
        width: 100%;
        min-height: 0;
        padding: 40px var(--gutter);
    }

    .overlay-module {
        flex-direction: column;
        min-height: 0;
    }

    .overlay-module__img {
        position: relative;
        height: 320px;
    }

    .overlay-module__panel {
        width: 100%;
        padding: 40px var(--gutter);
    }

    .feature-card,
    .video-card {
        flex-basis: 80%;
    }

    .contact-split {
        display: flex;
        flex-direction: column;
        min-height: 0;
    }

    .contact-split::before {
        width: 100%;
    }

    .contact-split__form {
        padding: 48px var(--gutter);
    }

    .contact-split__map {
        height: 320px;
    }

    .contact-split__details {
        padding: 25px var(--gutter) 40px;
    }

    .cta-band {
        flex-direction: column;
        align-items: flex-start;
        padding-block: 40px;
    }

    .featured-event {
        flex-direction: column;
    }

    .featured-event__img {
        position: relative;
        height: 260px;
    }

    .featured-event__panel {
        width: 100%;
        margin: 0;
        min-height: 0;
        padding: 32px var(--gutter);
    }

    .featured-events__arrow {
        top: 130px;
    }

    .featured-events__arrow--prev {
        left: 8px;
    }

    .featured-events__arrow--next {
        right: 8px;
    }

    .event-layout {
        flex-direction: column;
    }

    .event-layout .entry {
        padding-left: 0;
    }

    .rsvp {
        flex: none;
        width: 100%;
    }

    .faq-group .wp-block-details summary,
    .faq-group .wp-block-details p {
        padding-left: 0;
    }

    .page-banner__panel,
    .page-banner--blue .page-banner__panel,
    .page-banner--mint .page-banner__panel,
    .page-banner--orange .page-banner__panel {
        width: auto;
    }
}

@media (max-width: 640px) {
    .c-gallery__thumbs li {
        flex-basis: calc((100% - 28px) / 3);
    }

    .page-banner__panel p {
        font-size: 16px;
        line-height: 24px;
    }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1360px) {
    .plan-cards {
        gap: 24px;
    }

    .plan-card__bar {
        padding: 20px 28px;
        flex-direction: column;
        align-items: flex-start;
    }

    .plan-card__tags {
        justify-content: flex-start;
        max-width: none;
    }

    .amenities {
        gap: 40px;
    }

    .amenities__tabs {
        margin-left: -40px;
    }

    .amenities__stage {
        flex-basis: 420px;
    }

    .home-news {
        flex-wrap: wrap;
    }

    .home-news__intro {
        flex-basis: 100%;
        max-width: 640px;
        align-items: center;
        text-align: center;
        margin: 0 0 16px;
    }

    .site-footer__cols {
        gap: 48px;
    }
}

@media (max-width: 1100px) {
    .home-news__cards {
        flex: 1 1 100%;
        flex-wrap: wrap;
        justify-content: center;
    }

    .quote-card {
        flex-basis: min(560px, calc(100vw - 140px));
        padding: 28px 32px 28px 48px;
    }

    .quote-card.is-prev,
    .quote-card.is-next {
        display: none;
    }

    .testimonials:not(.is-ready) .quote-card:nth-child(n+2) {
        display: none;
    }
}

@media (max-width: 960px) {
    .home-hero {
        flex-direction: column;
        align-items: stretch;
        min-height: 0;
        margin-bottom: 0;
    }

    .home-hero__img {
        position: relative;
        height: 360px;
    }

    .home-hero::before {
        bottom: auto;
        height: 360px;
    }

    .home-hero__img {
        top: 0;
        width: 100%;
        height: 360px;
        object-position: 30% 40%;
    }

    .home-hero__panel {
        width: 100%;
        min-height: 0;
        padding: 40px var(--gutter) 48px;
    }

    .home-overview {
        min-height: 0;
        aspect-ratio: auto;
        display: flex;
        flex-direction: column;
    }

    .home-overview__img {
        position: relative;
        height: 320px;
        order: 2;
    }

    .home-overview__copy {
        background: var(--c-green);
        padding: 48px var(--gutter);
        max-width: none;
    }

    .c-headline {
        flex-direction: column;
        align-items: flex-start;
        padding-block: 40px;
    }

    .c-headline--inset {
        padding-inline: var(--gutter);
    }

    .plan-cards {
        flex-direction: column;
        align-items: center;
    }

    .amenities {
        flex-direction: column;
        padding: 0 0 0;
        gap: 0;
    }

    .amenities::before {
        width: 45%;
    }

    .amenities__copy {
        padding: 48px var(--gutter);
        gap: 32px;
        flex: none;
    }

    .amenities__panel .c-btn {
        margin-top: 24px;
    }

    .amenities__stage {
        flex: none;
        min-height: 300px;
        height: 56vw;
        max-height: 460px;
        order: 2;
    }

    .amenities--blue {
        min-height: 0;
    }

    .amenities--blue .amenities__stage {
        min-height: 300px;
    }

    .amenities--blue .amenities__copy {
        gap: 32px;
    }

    .amenities__tabs {
        order: 3;
        margin: 0;
    }

    .amenities__tab {
        flex: 1;
        width: auto;
        padding: 16px 8px;
        justify-content: center;
        align-items: center;
        font-size: 18px;
    }

    .amenities__tab-label {
        writing-mode: horizontal-tb;
        transform: none;
    }

    .image-module {
        flex-direction: column;
        min-height: 0;
        padding: 0;
    }

    .image-module__img {
        position: relative;
        height: 320px;
    }

    .image-module__panel {
        width: 100%;
        min-height: 0;
        padding: 40px var(--gutter);
    }

    .contact-band {
        flex-direction: column;
        min-height: 0;
        padding: 0;
    }

    .contact-band__bg {
        position: relative;
        left: 0;
        top: 0;
        width: 100%;
        height: 260px;
    }

    .contact-band__panel {
        width: 100%;
        min-height: 0;
        padding: 48px var(--gutter);
    }

    .site-footer__upper {
        flex-direction: column;
        gap: 36px;
    }

    .site-footer__cols {
        flex-wrap: wrap;
        justify-content: center;
        align-items: flex-start;
        gap: 32px 48px;
    }

    .site-footer__legal {
        flex-direction: column;
        text-align: center;
    }

    .site-footer__legal-menu {
        flex-wrap: wrap;
        justify-content: center;
        white-space: normal;
    }

    .page-banner {
        min-height: 300px;
    }

    .page-banner__panel {
        width: auto;
        min-width: 0;
        max-width: calc(100% - var(--gutter));
        padding: 32px 32px 32px var(--gutter);
    }
}

@media (max-width: 640px) {
    .news-row {
        grid-template-columns: minmax(0, 400px);
    }

    .utility-bar {
        justify-content: space-between;
    }

    .utility-bar__phone {
        padding-inline: 0;
    }

    .home-hero__img,
    .home-hero::before {
        height: 280px !important;
    }

    .home-hero__script {
        line-height: 1;
        padding-top: 0;
    }

    .c-form__grid {
        grid-template-columns: 1fr;
    }

    .news-card--tall,
    .news-card--wide {
        width: 100%;
        max-width: 400px;
    }

    .news-card--tall {
        height: 349px;
    }

    .quote-card {
        flex-basis: calc(100vw - 40px);
        padding: 24px 20px 24px 36px;
    }

    .testimonials__track {
        flex-wrap: wrap;
        gap: 16px;
    }

    .round-arrow--prev {
        order: 6;
    }

    .round-arrow--next {
        order: 7;
    }

    .testimonials__track {
        justify-content: center;
    }

    .post-steps {
        justify-content: space-between;
    }

    .feature-image::before {
        width: 10px;
    }

    .entry--post {
        padding-left: var(--gutter);
    }

    .entry--post .entry-content .alignfull {
        margin-left: calc(-1 * var(--gutter));
        margin-right: calc(-1 * var(--gutter));
    }

    .c-takeaways {
        padding: 48px var(--gutter) !important;
    }

    .c-help-band,
    .entry--post .entry-content .c-help-band {
        padding: 40px var(--gutter) !important;
    }
}

/* Rich text from the page editors (bold, italic, links, lists) */
:is(.copy-image__copy, .c-headline__copy, .home-overview__copy, .image-module__panel, .overlay-module__panel, .map-module__panel, .amenities__panel, .faq-answer, .cta-band__copy, .plans-intro, .home-news__intro, .home-hero__text, .page-banner__panel, .quote-card blockquote, .compare__head, .includes__note) :is(ul, ol) {
    margin: 0;
    padding-left: 24px;
}

:is(.copy-image__copy, .c-headline__copy, .home-overview__copy, .image-module__panel, .overlay-module__panel, .map-module__panel, .amenities__panel, .faq-answer, .cta-band__copy, .plans-intro, .home-news__intro) li+li {
    margin-top: 6px;
}

:is(.copy-image__copy, .c-headline__copy, .image-module__panel, .overlay-module__panel, .map-module__panel, .plans-intro, .home-news__intro, .faq-answer, .compare__head) a:not(.c-btn) {
    color: var(--c-green);
    text-underline-offset: 3px;
}

:is(.home-overview__copy, .amenities--green .amenities__panel, .cta-band__copy, .home-hero__text, .page-banner--brown .page-banner__panel, .page-banner--orange .page-banner__panel) a:not(.c-btn) {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.home-hero__text p+p,
.page-banner__panel p+p,
.quote-card blockquote p+p,
.includes__note p+p,
.faq-answer p+p {
    margin-top: 12px;
}

.c-headline__copy :is(ul, ol),
.copy-image__copy :is(ul, ol),
.home-overview__copy :is(ul, ol),
.image-module__panel :is(ul, ol),
.overlay-module__panel :is(ul, ol),
.map-module__panel :is(ul, ol),
.amenities__panel :is(ul, ol),
.plans-intro :is(ul, ol) {
    margin-top: 14px;
}

.home-overview__copy :is(ul, ol) {
    text-align: left;
    display: inline-block;
}

.faq-group .faq-answer {
    margin-top: 26px;
    max-width: 993px;
    padding-left: 28px;
}

.faq-group .faq-answer p {
    margin-top: 0 !important;
    padding-left: 0 !important;
}

.faq-group .faq-answer p+p {
    margin-top: 12px !important;
}

@media (max-width: 960px) {
    .faq-group .faq-answer {
        padding-left: 0;
    }
}

.amenities__title:focus {
    outline: none;
}

/* focused only to move screen readers to the new panel */


/* Local Features: three-column list with a coloured underline per filter */
.places {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 38px 32px;
    max-width: 1234px;
    margin: 0 auto;
    padding: 22px 0 0;
    list-style: none;
}

.place {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-bottom: 12px;
    border-bottom: 4px solid var(--c-green);
}

.place[hidden] {
    display: none;
}

.place--blue {
    border-bottom-color: var(--c-blue);
}

.place--orange {
    border-bottom-color: var(--c-orange);
}

.place--green {
    border-bottom-color: var(--c-green);
}

.place--mint {
    border-bottom-color: var(--c-mint);
}

.place--brown {
    border-bottom-color: var(--c-brown);
}

.place__link {
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: inherit;
    text-decoration: none;
}

.place__type {
    font-weight: 500;
    font-size: 18px;
    line-height: 1.2;
    letter-spacing: 0.02em;
}

.place__name {
    font-weight: 700;
    font-size: var(--fs-h6);
    line-height: 1.15;
    letter-spacing: 0.05em;
}

.place__link:hover .place__name {
    color: var(--c-green);
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 960px) {
    .places {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .places {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}

/* "Take a Look Inside" photo strip under the floor plans */
.plan-photos {
    padding: 25px 0 0;
}

.plan-photos .c-gallery {
    padding-bottom: 50px;
}

.plan-photos .section-title {
    padding-top: 25px;
}

.c-lightbox {
    border: 0;
    padding: 0;
    background: transparent;
    max-width: min(1200px, 92vw);
    max-height: 90vh;
    overflow: visible;
}

.c-lightbox::backdrop {
    background: rgba(26, 26, 26, 0.85);
}

.c-lightbox img {
    display: block;
    max-width: 100%;
    max-height: 90vh;
    object-fit: contain;
}

.c-lightbox__close {
    position: absolute;
    top: -44px;
    right: 0;
    width: 40px;
    height: 40px;
    border: 0;
    background: var(--c-orange);
    color: var(--c-white);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

/* ==========================================================================
   Amenities accordion (homepage + Lifestyle page)
   Open panel = its tab colour, copy + photo; closed panels = 70px coloured vertical tabs.
   ========================================================================== */
.amen {
    --tab-w: 70px;
    display: flex;
    align-items: stretch;
    min-height: 584px;
    overflow: hidden;
}

.amen__panel {
    position: relative;
    display: flex;
    flex: 0 0 var(--tab-w);
    min-width: 0;
    transition: flex 0.45s ease;
    isolation: isolate;
}

.amen__panel.is-open {
    flex: 1 1 auto;
}

.amen__tab {
    flex: 0 0 var(--tab-w);
    width: var(--tab-w);
    border: 0;
    padding: 0 0 38px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    font-family: var(--f-sans);
    font-weight: 700;
    font-size: 24px;
    letter-spacing: 0.05em;
    text-transform: capitalize;
    cursor: pointer;
    background: var(--amen-bg);
    color: var(--amen-fg);
    transition: filter 0.15s;
}

.amen__tab:hover {
    filter: brightness(0.95);
}

.amen__panel.is-open .amen__tab {
    display: none;
}

.amen__tab-label {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    line-height: 1;
    white-space: nowrap;
}

.amen__body {
    position: relative;
    display: flex;
	 isolation: isolate;
    align-items: stretch;
    width: 100%;
    min-width: 0;
    background: var(--amen-bg);
    color: var(--amen-fg);
    animation: amen-in 0.45s ease;
    overflow: hidden;
}

.amen__body[hidden] {
    display: none;
}

.amen__body::before {
    content: "";
    position: absolute;
    left: 0;
    top: -0.7%;
    width: 18.9%;
    min-width: 180px;
    height: 101.8%;
    z-index: -1;
    background: url("../images/leaf-texture.png") no-repeat left top / cover;
    mix-blend-mode: multiply;
    opacity: 0.2;
    pointer-events: none;
}

.amen__copy {
    flex: 1 1 auto;
    min-width: 0;
    padding: 73px 77px 50px clamp(24px, 9.3vw, 141px);
    display: flex;
    flex-direction: column;
    gap: 65px;
}

.amen__hint {
    display: flex;
    align-items: center;
    gap: 24px;
    max-width: 535px;
    justify-content: space-between;
    font-weight: 700;
    font-size: 18px;
    line-height: 1.16;
}

.amen__hint-icon {
    width: 15px;
    height: 15px;
    flex: none;
    background: currentColor;
    -webkit-mask: url("../icons/arrow-link.svg") no-repeat center / contain;
    mask: url("../icons/arrow-link.svg") no-repeat center / contain;
}

.amen__text {
    max-width: 535px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.amen__text p+p {
    margin-top: 0;
}

.amen__title {
    width: 100%;
    padding-bottom: 12px;
    border-bottom: 2.9px solid var(--amen-rule);
font-family: var(--f-sans);
    font-weight: 700;
    font-size: clamp(32px, 2.8vw, 42px);
    line-height: 1;
    color: var(--amen-title);
    text-transform: capitalize;
}

.amen__title:focus {
    outline: none;
}

.amen__text .c-btn {
    margin-top: 41px;
}

.amen__img {
    flex: 0 0 550px;
    width: 550px;
    max-width: 45%;
    height: auto;
    min-height: 584px;
    object-fit: cover;
}

@keyframes amen-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* Colours (tab, open panel, title, rule) */
.amen__panel--green {
    --amen-bg: var(--c-green);
    --amen-fg: var(--c-white);
    --amen-title: var(--c-mint);
    --amen-rule: var(--c-orange);
}

.amen__panel--brown {
    --amen-bg: var(--c-brown);
    --amen-fg: var(--c-white);
    --amen-title: var(--c-mint);
    --amen-rule: var(--c-orange);
}

.amen__panel--orange {
    --amen-bg: var(--c-orange);
    --amen-fg: var(--c-white);
    --amen-title: var(--c-white);
    --amen-rule: var(--c-white);
}

.amen__panel--blue {
    --amen-bg: var(--c-blue);
    --amen-fg: var(--c-black);
    --amen-title: var(--c-brown-dark);
    --amen-rule: var(--c-green);
}

.amen__panel--mint {
    --amen-bg: var(--c-mint);
    --amen-fg: var(--c-black);
    --amen-title: var(--c-brown-dark);
    --amen-rule: var(--c-green);
}

.amen__panel--blue .amen__hint,
.amen__panel--mint .amen__hint {
    color: var(--c-brown-dark);
}

.amen__panel--blue .amen__body::before,
.amen__panel--mint .amen__body::before {
    background-image: url("../images/leaf-texture-alt.png");
    opacity: 0.3;
    width: 27%;
}

/* Lifestyle page variant: smaller body copy, as in the design */
.amen--blue .amen__copy {
    padding-top: 52px;
    gap: 66px;
    font-size: 16px;
    line-height: 22px;
}

.amen--blue .amen__text p+p {
    margin-top: 12px;
}

.amen--blue .amen__img {
    flex-basis: 549px;
}

@media (max-width: 1100px) {
    .amen__copy {
        padding-right: 40px;
        gap: 40px;
    }

    .amen__img {
        flex-basis: 40%;
    }
}

@media (max-width: 960px) {

    /* Stack: each panel is a full-width bar; the open one shows copy then photo underneath. */
    .amen {
        flex-direction: column;
        min-height: 0;
    }

    .amen__panel,
    .amen__panel.is-open {
        flex: none;
        flex-direction: column;
    }

    .amen__tab,
    .amen__panel.is-open .amen__tab {
        display: flex;
        width: 100%;
        flex: none;
        padding: 16px var(--gutter);
        justify-content: flex-start;
        align-items: center;
        font-size: 20px;
    }

    .amen__panel.is-open .amen__tab {
        display: none;
    }

    .amen__tab-label {
        writing-mode: horizontal-tb;
        transform: none;
    }

    .amen__body {
        flex-direction: column;
    }

    .amen__body::before {
        width: 45%;
    }

    .amen__copy {
        padding: 40px var(--gutter);
        gap: 28px;
    }

    .amen__text .c-btn {
        margin-top: 20px;
    }

    .amen__hint {
        display: none;
    }

    /* "to the right" doesn't apply when the tabs stack */
    .amen__img {
        flex: none;
        width: 100%;
        max-width: none;
        min-height: 0;
        height: 56vw;
        max-height: 460px;
    }
}

/* Open section split: text 40%, photo 60% */
.amen__copy {
    flex: 0 0 40%;
    max-width: 40%;
    padding: 73px clamp(24px, 3.2vw, 48px) 50px clamp(24px, 4vw, 60px);
}

.amen__hint,
.amen__text {
    max-width: none;
}

.amen__img,
.amen--blue .amen__img {
    flex: 0 0 60%;
    width: 60%;
    max-width: 60%;
}

@media (max-width: 1100px) {
    .amen__copy {
        padding-right: 32px;
    }
}

@media (max-width: 960px) {
    .amen__copy {
        flex: none;
        max-width: none;
        padding: 40px var(--gutter);
    }

    .amen__img,
    .amen--blue .amen__img {
        flex: none;
        width: 100%;
        max-width: none;
    }
}

/* Photo fills the section's height (no taller than the text needs; at least 584px) */
.amen__img,
.amen--blue .amen__img {
    height: 0;
    min-height: 100%;
    align-self: stretch;
    object-fit: cover;
}

@media (max-width: 960px) {

    .amen__img,
    .amen--blue .amen__img {
        height: 56vw;
        min-height: 0;
        max-height: 460px;
    }
}

/* Live Google maps */
.map-module__map {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    border: 0;
    transform: none;
}

.map-module__map--wide {
    width: 100%;
}

.map-module__map--narrow {
    display: none;
}

.map-module {
    isolation: isolate;
}

.map-module__panel {
    z-index: 1;
}

.contact-split__map {
    position: relative;
}

.contact-split__iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.contact-split__directions {
    position: absolute;
    right: 16px;
    bottom: 36px;
    z-index: 1;
}

@media (max-width: 960px) {
    .map-module__map--wide {
        display: none;
    }

    .map-module__map--narrow {
        display: block;
        position: relative;
        width: 100%;
        height: 300px;
    }
}

/* "Ready to live at Cedars?" bar under the floor plans (Figma Desktop_Headlines 2289:2299) */
.ready-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    background: var(--c-mint);
    padding: 25px max(var(--gutter), 150px, calc((100% - 1212px) / 2));
    margin-top: 25px;
    min-height: 95px;
}

.ready-bar__title {
    font-size: var(--fs-h5);
    line-height: 1;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--c-ink);
}

.ready-bar .c-btn {
    flex: none;
}

@media (max-width: 640px) {
    .ready-bar {
        flex-direction: column;
        align-items: flex-start;
        padding: 28px var(--gutter);
        gap: 18px;
    }
}

/* Our Location rows: taller photos; bleeding photos stop at the 1512px design edge on wide screens */
.copy-image--location {
    padding-block: 50px;
}

.copy-image--location .copy-image__media img {
    aspect-ratio: auto;
    height: clamp(320px, 27vw, 440px);
    object-fit: cover;
}

.copy-image--bleed.copy-image--img-right {
    padding-right: max(0px, calc((100% - 1512px) / 2));
}

.copy-image--bleed.copy-image--img-left {
    padding-left: max(0px, calc((100% - 1512px) / 2));
}

/* White text panels over a photo/map (home + Lifestyle "Our Location"): on screens wider than the
   design the panel grows toward the left edge instead of squeezing the text. */
.image-module__panel {
    width: calc(min(809px, 100%) + max(0px, (100vw - 1512px) / 2));
    max-width: 100%;
}

.map-module__panel {
    width: calc(min(774px, 100%) + max(0px, (100vw - 1512px) / 2));
    max-width: 100%;
}

.image-module__panel>*,
.map-module__panel>* {
    max-width: 610px;
}

.image-module__panel>.c-btn,
.map-module__panel>.c-btn {
    max-width: none;
}

@media (max-width: 960px) {
    .copy-image--location .copy-image__media img {
        height: auto;
        aspect-ratio: 4 / 3;
    }

    .copy-image--bleed.copy-image--img-right,
    .copy-image--bleed.copy-image--img-left {
        padding-left: var(--gutter);
        padding-right: var(--gutter);
    }

    .image-module__panel,
    .map-module__panel {
        width: 100%;
    }
}

/* Gravity Forms (Visit The Cedars + Event RSVP) */
.contact-band__plugin-form .gform_wrapper .gform_fields {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    column-gap: 15px !important;
    row-gap: 10px !important;
}

.contact-band__plugin-form .gform_wrapper .gfield {
    grid-column: 1 / -1 !important;
}

.contact-band__plugin-form .gform_wrapper .gfield--width-half {
    grid-column: span 6 !important;
}

.contact-band__plugin-form .gform_wrapper .gfield--width-third {
    grid-column: span 4 !important;
}

.contact-band__plugin-form .gform_wrapper .gfield--width-quarter {
    grid-column: span 3 !important;
}

.contact-band__plugin-form .gform_wrapper .gfield--type-honeypot {
    display: none !important;
}

.gform_wrapper .gfield_consent_description {
    border: 0 !important;
    padding: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    margin-top: 10px !important;
    font-family: var(--f-sans) !important;
    font-weight: 500;
    font-size: 11px !important;
    line-height: 15px !important;
    color: inherit !important;
}

.contact-band__plugin-form .ginput_container_consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.contact-band__plugin-form .ginput_container_consent input {
    margin: 1px 0 0 !important;
    width: 13px;
    height: 13px;
    accent-color: var(--c-green);
}

.gform_wrapper .gform_required_legend {
    display: none !important;
}

.gform_wrapper .gfield_required {
    color: inherit !important;
}

.gform_wrapper .gform_validation_errors {
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #fde3d2 !important;
    border: 0 !important;
    border-left: 6px solid var(--c-orange) !important;
}

.gform_wrapper .gform_validation_errors h2 {
    font-size: 14px !important;
    color: var(--c-black) !important;
}

.gform_wrapper .gfield_validation_message,
.gform_wrapper .validation_message {
    background: transparent !important;
    border: 0 !important;
    padding: 4px 0 0 !important;
    color: #a3270c !important;
    font-size: 13px !important;
}

.gform_confirmation_message {
    background: var(--c-mint);
    border-left: 6px solid var(--c-green);
    padding: 12px 16px;
    font-size: 16px;
    line-height: 22px;
    color: var(--c-black);
}

/* RSVP box (orange) */
.rsvp__gf .gform_wrapper {
    margin: 4px 0 0 !important;
}

.rsvp__gf .gform_fields {
    display: flex !important;
    flex-direction: column;
    gap: 11px;
    grid-template-columns: none !important;
}

.rsvp__gf .gfield {
    margin: 0 !important;
    padding: 0 !important;
}

.rsvp__gf .gfield--type-honeypot,
.rsvp__gf .gfield--type-hidden {
    display: none !important;
}

.rsvp__gf label,
.rsvp__gf .gfield_label {
    font-family: var(--f-sans) !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    line-height: 20px !important;
    color: var(--c-white) !important;
    margin: 0 0 2px !important;
    padding: 0 !important;
}

.rsvp__gf input[type="text"],
.rsvp__gf input[type="email"],
.rsvp__gf input[type="tel"] {
    width: 100% !important;
    height: 36px !important;
    min-height: 36px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 12px !important;
    font-size: 16px !important;
    background: var(--c-white) !important;
    color: var(--c-black) !important;
}

.rsvp__gf .gform_footer {
    margin: 14px 0 0 !important;
    padding: 0 !important;
}

.rsvp__gf .gform_button,
.rsvp__gf input[type="submit"] {
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--c-blue) !important;
    color: var(--c-black) !important;
    font-family: var(--f-sans) !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    line-height: 33px !important;
    padding: 5px 16px !important;
    width: auto !important;
    cursor: pointer;
}

.rsvp__gf .gform_confirmation_message {
    color: var(--c-black);
}

.rsvp__gf .gfield_validation_message,
.rsvp__gf .validation_message {
    color: var(--c-white) !important;
    font-weight: 700;
}

@media (max-width: 640px) {
    .contact-band__plugin-form .gform_wrapper .gfield--width-half {
        grid-column: 1 / -1 !important;
    }
}

/* ==========================================================
   Promo Banner
========================================================== */

.promo-banner {
    background: #ffffff;
    border-bottom: 1px solid #e4e4e4;
}

.promo-banner__inner {
    display: grid;
    grid-template-columns: 400px 1fr 300px;
    align-items: center;
    gap: 24px;
    min-height: 83px;
}

.promo-banner__brand img {
    display: block;
    width: 100%;
    height: auto;
}

.promo-banner__content {
    text-align: center;
}

.promo-banner__content h3 {
    margin: 0 0 8px;
    font-size: 20px;
    font-weight: 700;
    color: #2f2f2f;
    line-height: 1.2;
}

.promo-banner__content p {
    margin: 0;
    color: #386C46;
    font-size: 1.6rem;
    font-weight: 700;
}

.promo-banner__cta {
    text-align: right;
	    background: #386C46;
    text-transform: uppercase;
    color: #FFF;
    text-align: center;
	text-decoration: none;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    padding: 15px;
	    margin-right: 30px;
}
}

.promo-banner__cta .btn {
    width: 100%;
    max-width: 240px;
    white-space: normal;
    line-height: 1.4;
	  
}
.promo-banner__cta .btn{
	  text-decoration: none !important;
}
@media (max-width: 992px) {

    .promo-banner__inner {
        grid-template-columns: 1fr;
        text-align: center;
        padding: 24px 0;
    }

    .promo-banner__brand img {
        max-width: 260px;
        margin: 0 auto;
    }

    .promo-banner__cta {
        text-align: center;
    }

    .promo-banner__cta .btn {
        max-width: 320px;
    }
}