:root {
    --idy-ink: #2b2622;
    --idy-muted: #66605a;
    --idy-paper: #f7f4ef;
    --idy-copper: #b87333;
    --idy-gold: #aa8453;
    --idy-gap: 8px;
}
* { box-sizing: border-box; }
body {
    margin: 0;
    overflow-x: hidden;
    background: #fff;
    color: var(--idy-ink);
    font-family: "Barlow", Arial, sans-serif;
}


/* Idylease subpage side-padding rule */
.idy-subpage-body .container {
    max-width: 1170px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

@media screen and (min-width: 1400px) {
    .idy-subpage-body .container {
        max-width: 1170px;
    }
}

@media screen and (max-width: 991px) {
    .idy-subpage-body .container {
        padding-left: 22px;
        padding-right: 22px;
    }
}

@media screen and (max-width: 575px) {
    .idy-subpage-body .container {
        padding-left: 18px;
        padding-right: 18px;
    }
}
.idy-subhero {
    position: relative;
    width: 100%;
    aspect-ratio: 8 / 3;
    min-height: 0;
    overflow: hidden;
    background: #0d0a09;
}

.idy-subhero__image {
    position: absolute;
    top: 0;
    bottom: 0;
    left: -1px;
    right: -1px;
    z-index: 1;
    margin: 0;
    width: auto;
    height: auto;
}

.idy-subhero__image img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center center;
    object-position: center center;
}

.idy-subhero__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.63) 0%,
            rgba(0,0,0,.12) 24%,
            rgba(0,0,0,.12) 43%,
            rgba(0,0,0,.03) 62%,
            rgba(0,0,0,.015) 100%
        ),
        linear-gradient(
            180deg,
            rgba(0,0,0,.02) 0%,
            rgba(0,0,0,.015) 45%,
            rgba(0,0,0,.17) 100%
        );
}

.idy-subhero__content {
    position: absolute;
    left: max(15px, calc((100vw - 1170px) / 2 + 15px));
    bottom: clamp(42px, 5.4vw, 76px);
    z-index: 3;
    max-width: 690px;
    text-shadow: 0 2px 22px rgba(0,0,0,.48);
}

.idy-subhero__kicker {
    margin-bottom: 14px;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 13px;
    letter-spacing: .42em;
    text-transform: uppercase;
    color: var(--idy-gold);
}

.idy-subhero__title {
    margin: 0 0 14px;
    font-family: "Gilda Display", serif;
    font-size: clamp(48px, 5.25vw, 55px);
    line-height: .98;
    font-weight: 400;
    letter-spacing: -.045em;
    color: #fff;
}

.idy-subhero__text {
    max-width: 620px;
    margin: 0;
    color: rgba(255,255,255,.91);
    font-size: 15px;
    line-height: 1.65;
}

@supports not (aspect-ratio: 8 / 3) {
   .idy-subhero {
        height: 37.5vw;
    }
}

@media screen and (max-width: 991px) {
   .idy-subhero {
        aspect-ratio: auto;
        min-height: 500px;
    }

    .idy-subhero__content {
        left: 22px;
        right: 22px;
        bottom: 48px;
        max-width: 650px;
    }

    .idy-subhero__title {
        font-size: clamp(46px, 8vw, 68px);
    }

    .idy-subhero__overlay {
        background:
            linear-gradient(
                90deg,
                rgba(0,0,0,.66) 0%,
                rgba(0,0,0,.50) 56%,
                rgba(0,0,0,.20) 100%
            ),
            linear-gradient(
                180deg,
                rgba(0,0,0,.09) 0%,
                rgba(0,0,0,.09) 48%,
                rgba(0,0,0,.38) 100%
            );
    }
}

@media screen and (max-width: 575px) {
   .idy-subhero {
        min-height: 460px;
    }

    .idy-subhero__content {
        left: 18px;
        right: 18px;
        bottom: 42px;
    }

    .idy-subhero__title {
        font-size: clamp(42px, 13vw, 58px);
    }

    .idy-subhero__text {
        font-size: 14px;
        line-height: 1.6;
    }

    .idy-subhero__image img {
        -o-object-position: center center;
        object-position: center center;
    }
}
.idy-rooms-page {
    padding: clamp(60px, 6vw, 92px) 0 clamp(59px, 7vw, 60px);
}
.idy-rooms-spread {
    display: grid;
    grid-template-columns: minmax(250px, .31fr) auto minmax(0, .69fr);
    -moz-column-gap: clamp(28px, 4vw, 58px);
    column-gap: clamp(28px, 4vw, 58px);
    align-items: start;
}
.idy-rooms-left__sticky { position: sticky; top: 108px; }
.idy-rooms-kicker {
    margin: 0 0 14px;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 12px;
    line-height: 1.2;
    letter-spacing: .36em;
    text-transform: uppercase;
    color: var(--idy-copper);
}
.idy-rooms-left h2 {
    margin: 0 0 20px;
    font-family: "Gilda Display", serif;
    font-size: clamp(26px, 3vw, 28px);
    line-height: 1.16;
    font-weight: 400;
    letter-spacing: -.034em;
    color: #2d2824;
}
.idy-rooms-left p {
    margin: 0 0 18px;
    font-size: 15px;
    line-height: 1.68;
    color: var(--idy-muted);
}
.idy-rooms-contact,
.idy-rooms-form {
    margin: 28px 0 0;
    padding: 28px 0 0;
    border-top: 1px solid rgba(184,115,51,.28);
}
.idy-rooms-contact__item {
    display: grid;
    grid-template-columns: 28px minmax(0,1fr);
    -moz-column-gap: 12px;
    column-gap: 12px;
    align-items: start;
    margin: 0 0 17px;
}
.idy-rooms-contact__item i {
    color: var(--idy-copper); font-size: 18px; line-height: 1.25;
}
.idy-rooms-contact__item span,
.idy-rooms-contact__item a {
    display: block;
    text-decoration: none;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 14px;
    line-height: 1.35;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #5f5952;
}
.idy-rooms-form h3 {
    margin: 0 0 11px;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 13px;
    letter-spacing: .30em;
    text-transform: uppercase;
    color: #292522;
}
.idy-rooms-form__note { margin-bottom: 17px !important; font-size: 14px !important; line-height: 1.55 !important; }
.idy-rooms-landmark-note {
    position: relative;
    margin: 24px 0 0;
    padding: 19px 0 0 22px;
    border-top: 1px solid rgba(184,115,51,.28);
    font-family: "Gilda Display", serif;
    font-size: 18px;
    line-height: 1.48;
    font-style: normal;
    color: #3a332e;
}

.idy-rooms-landmark-note::before {
    content: "";
    position: absolute;
    left: -1px;
    top: 0;
    width: 1px;
    height: 44px;

}

.idy-rooms-left-resources {
    margin: 26px 0 0;
    padding: 25px 0 0;
    border-top: 1px solid rgba(184,115,51,.22);
}

.idy-rooms-left-resources__item {
    margin: 0 0 18px;
}

.idy-rooms-left-resources__item span {
    display: block;
    margin: 0 0 8px;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 12px;
    line-height: 1.2;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--idy-copper);
}

.idy-rooms-left-resources__item img {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid rgba(184,115,51,.22);
    background: #fff;
}

.idy-rooms-left-resources__item:nth-child(2) img,
.idy-rooms-left-resources__item:nth-child(3) img {
    padding: 10px;
    object-fit: contain;
}

.idy-rooms-left-resources__item p {
    margin: 8px 0 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--idy-muted);
}

.idy-rooms-left-resources__item a {
    display: block;
    text-decoration: none;
}

.idy-rooms-left-resources__item h4 {
    margin: 9px 0 6px;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 13px;
    line-height: 1.25;
    letter-spacing: .18em;
    text-transform: uppercase;
    font-weight: 400;
    color: #332d28;
}

.idy-rooms-left-resources__item--transit p {
    margin-top: 7px;
}

/* Left column: frame the NJ Transit item with horizontal dividers only. */
.idy-rooms-left-resources__item--transit {
    margin: 22px 0 22px;
    padding: 22px 0 22px;
    border-top: 1px solid rgba(184,115,51,.28);
    border-bottom: 1px solid rgba(184,115,51,.28);
}
.idy-rooms-separator {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 100%;
    height: 100%;
}
.idy-rooms-separator span {
    display: block;
    width: 1px;
    flex: 1 1 auto;
    min-height: 0;
    background: linear-gradient(to bottom, rgba(170,132,83,0), rgba(170,132,83,.62), rgba(170,132,83,0));
}
.idy-rooms-separator em {
    flex: 0 0 auto;
    display: block; margin: 22px 0; writing-mode: vertical-rl; transform: rotate(180deg);
    font-family: "Barlow Condensed", sans-serif; font-style: normal; font-size: 12px; letter-spacing: .46em;
    text-transform: uppercase; color: rgba(170,132,83,.94);
}
.idy-rooms-editorial__head { margin: 0 0 22px; max-width: 850px; }
.idy-rooms-editorial__head .idy-rooms-editorial__title {
    margin: 0 0 14px;
    font-family: "Gilda Display", serif;
    font-size: clamp(38px, 4.6vw, 40px);
    line-height: 1.02; font-weight: 400; letter-spacing: -.045em;
}
.idy-rooms-editorial__head p {
    margin: 0; font-size: 16px; line-height: 1.7; color: var(--idy-muted);
}



/* Editorial arrival feature: lobby sits outside the room grid.
   Two larger images give the arrival space enough visual weight before the room gallery. */
.idy-rooms-arrival {
    display: block;
    margin: clamp(28px, 4vw, 44px) 0 clamp(34px, 4.4vw, 52px);
    padding: 0 0 clamp(30px, 4vw, 46px);
    border-bottom: 1px solid rgba(184,115,51,.22);
}

.idy-rooms-arrival__media {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 18px;
    margin: 0 0 clamp(24px, 3vw, 34px);
}

.idy-rooms-arrival__image {
    position: relative;
    margin: 0;
    overflow: hidden;
    background: #16110e;
    border: 1px solid #b87333;
    aspect-ratio: 1000 / 613;
}

.idy-rooms-arrival__image--primary,
.idy-rooms-arrival__image--secondary {
    aspect-ratio: 1000 / 613;
}

.idy-rooms-arrival__image img {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center center;
    object-position: center center;
}

.idy-rooms-arrival__copy {
    position: relative;
    z-index: 1;
    max-width: 880px;
    margin: 0;
    padding: 0;
    background: transparent;
}

.idy-rooms-arrival__copy h2 {
    margin: 0 0 18px;
    font-family: "Gilda Display", serif;
    font-size: clamp(28px, 4vw, 30px);
    line-height: 1.05;
    font-weight: 400;
    letter-spacing: -.04em;
    color: #2b2622;
}

.idy-rooms-arrival__copy p {
    max-width: 850px;
    margin: 0 0 14px;
    font-size: 15px;
    line-height: 1.72;
    color: var(--idy-muted);
}

.idy-rooms-living p {
    margin: 0 0 14px;
    font-size: 15px;
    line-height: 1.72;
    color: var(--idy-muted);
}

.idy-rooms-arrival__copy p:last-child,
.idy-rooms-living p:last-child {
    margin-bottom: 0;
}


.idy-rooms-living {
    margin: 0 0 28px;
    padding: 0 0 28px;
    border-bottom: 1px solid rgba(184,115,51,.18);
}

.idy-rooms-details {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin: 28px 0 34px;
    background: rgba(184,115,51,.18);
    border: 1px solid rgba(184,115,51,.18);
}

.idy-rooms-details > div {
    background: #fff;
    padding: 17px 18px 18px;
    min-height: 0;
}

.idy-rooms-details span {
    display: block;
    margin: 0 0 10px;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 11px;
    line-height: 1.1;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--idy-copper);
}

.idy-rooms-details p {
    margin: 0;
    max-width: 230px;
    font-size: 13px;
    line-height: 1.46;
    font-weight: 400;
    color: var(--idy-muted);
}


.idy-visit-footer__license {
    margin: 32px 0 0;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 12px;
    line-height: 1.45;
    letter-spacing: .24em;
    text-transform: uppercase;
    color: rgba(255,255,255,.72);
}

@media screen and (max-width: 575px) {
    .idy-rooms-arrival {
        margin-top: 28px;
        padding: 24px 0;
    }
}

/* =============================================
   Mosaic math system
   ---------------------------------------------
   The point here is not a guessed masonry stack.
   Each row is solved by ratio math so every tile
   is either 16:9, 4:3, or 3:4.
   ---------------------------------------------
   Row A:  16:9 rotator + two stacked 4:3 tiles.
   Row B:  4:3 + 3:4 + 4:3 + 3:4.
   Row C:  3:4 + 16:9 + 4:3.
   Row D:  4:3 + 16:9 + 4:3.
   No slivers. No vertical columns lining up.
   ============================================= */
.idy-room-mosaic { --gap: var(--idy-gap); }
.idy-room-row { display: flex; gap: var(--gap); margin-bottom: var(--gap); align-items: stretch; }
.idy-room-row:last-child { margin-bottom: 0; }
.idy-room-tile,
.idy-room-rotator {
    position: relative;
    display: block;
    overflow: hidden;
    background: #16110e;
    color: #fff;
    text-decoration: none;
    flex: 0 0 auto;
}
.idy-room-tile figure,
.idy-room-rotator figure { margin: 0; position: absolute; inset: 0; }
.idy-room-tile img,
.idy-room-rotator__slide {
    display: block; width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover;
    transform: scale(1); transition: transform 950ms cubic-bezier(.16,1,.3,1), filter 950ms cubic-bezier(.16,1,.3,1);
}
.idy-room-tile:hover img,
.idy-room-tile:focus img { transform: scale(1.045); filter: saturate(1.03) contrast(1.04); }
.idy-room-tile::after,
.idy-room-rotator::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 34%, rgba(0,0,0,.46) 100%);
    z-index: 1; pointer-events: none;
}
.idy-room-tile__zoom {
    position: absolute; right: 12px; bottom: 12px; z-index: 4; width: 31px; height: 31px;
    border-radius: 50%; border: 1px solid rgba(255,255,255,.78); background: rgba(0,0,0,.36);
    color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 13px;
}
.idy-room-tile__caption {
    position: absolute; left: 16px; right: 56px; bottom: 16px; z-index: 4;
    font-family: "Barlow Condensed", sans-serif; font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
    color: rgba(255,255,255,.88);
}

.idy-room-row--a { align-items: stretch; }
.idy-room-row--a .idy-room-row__stack {
    --stack-w: calc((100% * 3 / 11) - (var(--gap) * 25 / 33));
    width: var(--stack-w);
    display: grid; gap: var(--gap);
    grid-template-rows: 1fr 1fr;
}
.idy-room-row--a .idy-room-rotator {
    width: calc(100% - var(--gap) - ((100% * 3 / 11) - (var(--gap) * 25 / 33)));
    aspect-ratio: 16 / 9;
}
.idy-room-row--a .idy-room-tile { width: 100%; aspect-ratio: 4 / 3; }

.idy-room-row--b { --usable: calc(100% - (var(--gap) * 3)); }
.idy-room-row--b .is-landscape { width: calc(var(--usable) * 8 / 25); aspect-ratio: 4 / 3; }
.idy-room-row--b .is-portrait  { width: calc(var(--usable) * 9 / 50); aspect-ratio: 3 / 4; }

.idy-room-row--c { --usable: calc(100% - (var(--gap) * 2)); }
.idy-room-row--c .is-portrait  { width: calc(var(--usable) * 27 / 139); aspect-ratio: 3 / 4; }
.idy-room-row--c .is-wide      { width: calc(var(--usable) * 64 / 139); aspect-ratio: 16 / 9; }
.idy-room-row--c .is-landscape { width: calc(var(--usable) * 48 / 139); aspect-ratio: 4 / 3; }

.idy-room-row--d {
    --usable: calc(100% - (var(--gap) * 2));
}

/* Bottom rhythm break:
   Row D is 16:9 + 3:4 + 4:3, not another evenly stacked band.
   Math: 16/9 + 3/4 + 4/3 = 139/36
   widths: 64/139 + 27/139 + 48/139 */
.idy-room-row--d .is-wide {
    width: calc(var(--usable) * 64 / 139);
    aspect-ratio: 16 / 9;
}

.idy-room-row--d .is-portrait {
    width: calc(var(--usable) * 27 / 139);
    aspect-ratio: 3 / 4;
}

.idy-room-row--d .is-landscape {
    width: calc(var(--usable) * 48 / 139);
    aspect-ratio: 4 / 3;
}

.idy-room-rotator__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1050ms ease; }
.idy-room-rotator__slide.is-active { opacity: 1; }
.idy-room-rotator__dots { position: absolute; left: 28px; bottom: 22px; z-index: 5; display: flex; gap: 7px; }
.idy-room-rotator__dots button {
    width: 7px; height: 7px; padding: 0; border: 1px solid rgba(255,255,255,.78); border-radius: 50%; background: transparent;
    text-indent: -999px; overflow: hidden;
}
.idy-room-rotator__dots button.is-active { background: rgba(255,255,255,.86); }

.idy-rooms-grid-note {
    margin: 26px auto 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    color: var(--idy-copper);
    font-family: "Barlow Condensed", sans-serif;
    font-size: 12px;
    letter-spacing: .24em;
    text-transform: uppercase;
}

.idy-rooms-grid-note::before,
.idy-rooms-grid-note::after {
    content: ""; display: block; width: 92px; height: 1px; background: rgba(184,115,51,.42);
}

.idy-room-modal {
    position: fixed; inset: 0; z-index: 99999; display: none; align-items: center; justify-content: center;
    padding: 32px; background: rgba(0,0,0,.88);
}
.idy-room-modal.is-open { display: flex; }
.idy-room-modal__inner { width: min(1120px, 92vw); max-height: 88vh; background: #050505; box-shadow: 0 24px 80px rgba(0,0,0,.55); }
.idy-room-modal figure { margin: 0; background: #050505; }
.idy-room-modal img { display: block; width: 100%; max-height: 78vh; -o-object-fit: contain; object-fit: contain; background: #050505; }
.idy-room-modal figcaption { padding: 16px 20px 18px; background: #111; color: #d8d0c3; }
.idy-room-modal figcaption strong {
    display: block; margin-bottom: 5px; color: #fff; font-family: "Barlow Condensed", sans-serif;
    font-size: 18px; letter-spacing: .08em; text-transform: uppercase; font-weight: 400;
}
.idy-room-modal figcaption span { display: block; font-size: 14px; line-height: 1.55; }
.idy-room-modal__close {
    position: fixed; right: 26px; top: 20px; z-index: 100000; width: 42px; height: 42px; border: 0; border-radius: 50%;
    background: rgba(255,255,255,.92); color: #111; font-size: 34px; line-height: 38px; cursor: pointer;
}

/* Keyboard focus treatment for the room gallery and image viewer. */
.idy-room-tile:focus-visible,
.idy-room-rotator__dots button:focus-visible,
.idy-room-modal__close:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}
body.idy-room-modal-open { overflow: hidden; }

@media screen and (max-width: 991px) {
    .idy-rooms-spread { grid-template-columns: 1fr; row-gap: 38px; }
    .idy-rooms-left__sticky { position: relative; top: auto; }
    .idy-rooms-separator { display: none; }
    .idy-rooms-arrival__media { grid-template-columns: 1fr 1fr; gap: 14px; }
    .idy-room-row { flex-wrap: wrap; }
    .idy-room-row--a .idy-room-rotator,
    .idy-room-row--a .idy-room-row__stack,
    .idy-room-row--b .is-landscape,
    .idy-room-row--b .is-portrait,
    .idy-room-row--c .is-portrait,
    .idy-room-row--c .is-wide,
    .idy-room-row--c .is-landscape,
    .idy-room-row--d .is-landscape,
    .idy-room-row--d .is-portrait,
    .idy-room-row--d .is-wide {
        width: calc(50% - (var(--gap) / 2));
        aspect-ratio: 4 / 3;
    }
    .idy-room-row--a .idy-room-row__stack { display: contents; }
    .idy-room-row--a .idy-room-rotator { width: 100%; aspect-ratio: 16 / 9; }
}
@media screen and (max-width: 575px) {
    .idy-rooms-arrival__media { grid-template-columns: 1fr; }
    .idy-room-row { display: grid; gap: var(--idy-gap); }
    .idy-room-row--a,
    .idy-room-row--b,
    .idy-room-row--c,
    .idy-room-row--d { grid-template-columns: 1fr; }
    .idy-room-row--a .idy-room-rotator,
    .idy-room-row--a .idy-room-row__stack,
    .idy-room-row--b .is-landscape,
    .idy-room-row--b .is-portrait,
    .idy-room-row--c .is-portrait,
    .idy-room-row--c .is-wide,
    .idy-room-row--c .is-landscape,
    .idy-room-row--d .is-landscape,
    .idy-room-row--d .is-portrait,
    .idy-room-row--d .is-wide { width: 100%; }
    .idy-room-row--a .idy-room-row__stack { display: grid; }
}


/* Extra bottom mosaic row:
   Row E is 4:3 + 4:3 + 16:9, shifted opposite Row D.
   Math: 4/3 + 4/3 + 16/9 = 40/9
   widths: 3/10 + 3/10 + 2/5 */
.idy-room-row--e {
    --usable: calc(100% - (var(--gap) * 2));
}

.idy-room-row--e .is-landscape {
    width: calc(var(--usable) * 3 / 10);
    aspect-ratio: 4 / 3;
}

.idy-room-row--e .is-wide {
    width: calc(var(--usable) * 2 / 5);
    aspect-ratio: 16 / 9;
}

/* Standard Idylease visit footer */
.idy-visit-footer {
    position: relative;
    overflow: hidden;
    min-height: 430px;
    padding: 66px 0 30px;
    color: #fff;
    background-color: #050a0e;
    background-image: url("../img/footer/idylease-footer-porch-twilight.webp");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

.idy-visit-footer::before {
    content: "";
    position: absolute;
    inset: 0;

    pointer-events: none;
}

.idy-visit-footer .container {
    position: relative;
    z-index: 2;
}

.idy-visit-footer__top {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
    gap: clamp(60px, 4.4vw, 64px);
    align-items: center;
}

.idy-visit-footer__kicker {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 0 0 18px;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 17px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: .44em;
    text-transform: uppercase;
    color: #d6a843;
}

.idy-visit-footer__kicker span {
    display: block;
    width: 70px;
    height: 3px;
    background: #d6a843;
}

.idy-visit-footer h2 {
    max-width: 720px;
    margin: 0 0 22px;
    font-family: "Barlow", sans-serif;
    font-size: clamp(34px, 2.75vw, 39px);
    line-height: 1.06;
    font-weight: 500;
    letter-spacing: -.035em;
    color: #fff;
    text-shadow: 0 2px 24px rgba(0,0,0,.28);
}

.idy-visit-footer p {
    max-width: 720px;
    margin: 0;
    font-size: 17px;
    line-height: 1.48;
    color: rgba(255,255,255,.82);
}

.idy-visit-footer__actions {
    display: flex;
    align-items: center;
    padding-top: 180px;
    justify-content: flex-end;
    gap: 22px;
    flex-wrap: wrap;
}

.idy-visit-footer__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: clamp(205px, 14vw, 250px);
    min-height: 48px;
    padding: 0 34px;
    border-radius: 999px;
    box-sizing: border-box;
    overflow: hidden;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .24em;
    text-transform: uppercase;
    text-decoration: none;
    transition: color .22s ease, background-color .22s ease, border-color .22s ease;
}

.idy-visit-footer__btn--gold {
    background: #d6a843;
    border: 1px solid #d6a843;
    color: #06121a;
}

.idy-visit-footer__btn--outline {
    background: rgba(255,255,255,.02);
    border: 1px solid rgba(255,255,255,.58);
    color: #fff;
}

.idy-visit-footer__btn:hover,
.idy-visit-footer__btn:focus {
    background: #aa8453;
    border-color: #aa8453;
    color: #fff;
}

.idy-visit-footer__rule {
    height: 1px;
    margin: 30px 0 24px;
    background: rgba(255,255,255,.22);
}

.idy-visit-footer__bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 26px;
    align-items: center;
}

.idy-visit-footer__bottom p {
    margin: 0;
    font-size: 15px;
    line-height: 1.3;
    color: rgba(255,255,255,.82);
}

.idy-visit-footer__social {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
}

.idy-visit-footer__social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 35px;
    border: 1px solid rgba(214,168,67,.68);
    border-radius: 50%;
    color: #d6a843;
    text-decoration: none;
    transition: color .22s ease, background-color .22s ease, border-color .22s ease;
}

.idy-visit-footer__social a:hover,
.idy-visit-footer__social a:focus {
    background: #d6a843;
    border-color: #d6a843;
    color: #06121a;
}

.idy-visit-footer__credit {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    flex-wrap: nowrap;
    white-space: nowrap;
    font-family: "Barlow", sans-serif;
    font-size: 14px;
    line-height: 1;
    color: rgba(255,255,255,.76);
}

.idy-visit-footer__credit a {
    color: #d6a843;
    text-decoration: none;
}

@media screen and (max-width: 991px) {
    .idy-room-row--e .is-landscape,
    .idy-room-row--e .is-wide {
        width: calc(50% - (var(--gap) / 2));
        aspect-ratio: 4 / 3;
    }

    .idy-visit-footer {
        min-height: 0;
        padding: 62px 0 34px;
    }

    .idy-visit-footer__top {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .idy-visit-footer__actions {
        justify-content: flex-start;
        padding-top: 0;
    }

    .idy-visit-footer__bottom {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }

    .idy-visit-footer__credit {
        justify-content: center;
        flex-wrap: wrap;
        line-height: 1.35;
    }
}

@media screen and (max-width: 575px) {
    .idy-room-row--e .is-landscape,
    .idy-room-row--e .is-wide {
        width: 100%;
    }

    .idy-visit-footer__actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
        gap: 14px;
    }

    .idy-visit-footer__btn {
        width: 100%;
        min-width: 0;
    }
}

@media screen and (max-width: 991px) {
    .idy-rooms-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .idy-rooms-details > div { padding: 18px 20px; }
    .idy-rooms-details p { max-width: none; }
}
@media screen and (max-width: 575px) {
    .idy-rooms-details { grid-template-columns: 1fr; }
}


/* Hand edits: left column order and graphic cleanup.
   Contact stays directly above the inline Green Forms inquiry form.
   Preserve the existing horizontal separators; remove only the graphic boxes. */
.idy-rooms-left .idy-rooms-form {
    margin-top: 28px;
}

.idy-rooms-left .idy-rooms-landmark-note {
    margin-top: 28px;
}

.idy-rooms-left .idy-rooms-left-resources {
    margin-top: 26px;
}

.idy-rooms-left .idy-rooms-left-resources__item img {
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.idy-rooms-left .leform-inline {
    margin-top: 14px;
}


/* Rooms page: resolves shared subpage hero conflicts while using the same media-page subhero structure. */
.idy-rooms-body .idy-subhero__image.rz-hero-image-load {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

.idy-rooms-body .idy-subhero__image.rz-hero-image-load img {
    opacity: 1;
    visibility: visible;
}

.idy-rooms-body .idy-rooms-left__sticky .rz-inward-left {
    will-change: opacity, transform;
}


/* =========================================================
   MOBILE GALLERY NORMALIZATION
   Preserve desktop mosaic; normalize all gallery tiles below 576px.
   ========================================================= */
@media screen and (max-width: 575px) {
    .idy-room-mosaic {
        --idy-mobile-gallery-gap: 10px;
    }

    .idy-room-row,
    .idy-room-row--a,
    .idy-room-row--b,
    .idy-room-row--c,
    .idy-room-row--d,
    .idy-room-row--e {
        display: grid;
        grid-template-columns: 1fr;
        gap: var(--idy-mobile-gallery-gap);
        margin-bottom: var(--idy-mobile-gallery-gap);
    }

    .idy-room-row:last-child {
        margin-bottom: 0;
    }

    .idy-room-row--a .idy-room-row__stack {
        display: contents;
    }

    .idy-room-row--a .idy-room-rotator,
    .idy-room-row--a .idy-room-tile,
    .idy-room-row--b .idy-room-tile,
    .idy-room-row--c .idy-room-tile,
    .idy-room-row--d .idy-room-tile,
    .idy-room-row--e .idy-room-tile,
    .idy-room-row--b .is-landscape,
    .idy-room-row--b .is-portrait,
    .idy-room-row--c .is-portrait,
    .idy-room-row--c .is-wide,
    .idy-room-row--c .is-landscape,
    .idy-room-row--d .is-wide,
    .idy-room-row--d .is-portrait,
    .idy-room-row--d .is-landscape,
    .idy-room-row--e .is-landscape,
    .idy-room-row--e .is-wide {
        width: 100% !important;
        aspect-ratio: 16 / 9 !important;
        min-height: 0 !important;
        margin: 0 !important;
    }

    .idy-room-tile figure,
    .idy-room-rotator figure {
        position: absolute;
        inset: 0;
        margin: 0;
    }

    .idy-room-tile img,
    .idy-room-rotator__slide {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center center;
    }

    .idy-room-tile__caption {
        left: 16px;
        right: 60px;
        bottom: 16px;
        line-height: 1.2;
    }

    .idy-room-tile__zoom {
        right: 14px;
        bottom: 14px;
        width: 36px;
        height: 36px;
    }

    .idy-room-rotator__dots {
        left: 18px;
        bottom: 18px;
    }
}

/* =========================================================
   Rooms for Let — mobile-only motion normalization
   Keep desktop directional motion unchanged. On phones,
   left/right/inward reveals become one restrained rise.
   ========================================================= */
@media screen and (max-width: 767px) {
    body.idy-rooms-body .rz-left,
    body.idy-rooms-body .rz-right,
    body.idy-rooms-body .rz-inward-left,
    body.idy-rooms-body .rz-inward-right,
    body.idy-rooms-body .rz-rise {
        transform: translate3d(0, 20px, 0) !important;
    }

    body.idy-rooms-body .rz-left.rz-visible,
    body.idy-rooms-body .rz-right.rz-visible,
    body.idy-rooms-body .rz-inward-left.rz-visible,
    body.idy-rooms-body .rz-inward-right.rz-visible,
    body.idy-rooms-body .rz-rise.rz-visible {
        transform: translate3d(0, 0, 0) !important;
    }

    /* Rooms page footer spacing only. */
    body.idy-rooms-body .mb-60 {
        margin-bottom: 30px !important;
    }
}

/* =========================================================
   Rooms for Let — mobile footer + ShopRite refinements
   ========================================================= */
@media screen and (max-width: 767px) {
    /* The Rooms footer markup has no .mb-60 utility class.
       Apply the intended 30px spacing to the actual button block. */
    body.idy-rooms-body .idy-visit-footer__actions {
        margin-bottom: 30px !important;
    }

    /* Center the ShopRite graphic independently of the other resources. */
    body.idy-rooms-body .idy-rooms-left-resources__item:nth-child(3) img {
        display: block !important;
        width: min(100%, 280px) !important;
        max-width: 280px !important;
        height: auto !important;
        margin-left: 55px !important;
        margin-right: auto !important;
        object-fit: contain !important;
    }
}

/* =========================================================
   Rooms for Let — correct mobile footer button offset
   A shared rule uses padding-top: 180px !important; override
   that actual source of the mobile dead space on this page only.
   ========================================================= */
@media screen and (max-width: 767px) {
    body.idy-rooms-body .idy-visit-footer__actions {
        padding-top: 0 !important;
        margin-top: 0 !important;
        margin-bottom: 30px !important;
    }
}

/* =========================================================
   Rooms for Let — full-width mobile navbar correction
   Preserve page container padding; remove it only from navbar.
   ========================================================= */
@media screen and (max-width: 991px) {
    body.idy-rooms-body .navbar .container {
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}


/* =========================================================
   ROOMS FOR LET — TABLET PORTRAIT / OPENING CONTACT COMPOSITION
   Recompose only the 768–991px portrait-tablet layout.
   Desktop, tablet landscape, and phone layouts remain untouched.
   ========================================================= */
@media screen and (min-width: 768px) and (max-width: 991px) and (orientation: portrait) {
    body.idy-rooms-body .idy-rooms-page > .container {
        padding-left: 58px !important;
        padding-right: 58px !important;
    }

    body.idy-rooms-body .idy-rooms-spread {
        row-gap: 46px !important;
    }

    body.idy-rooms-body .idy-rooms-left__sticky {
        display: grid !important;
        grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr) !important;
        column-gap: 48px !important;
        row-gap: 0 !important;
        position: relative !important;
        top: auto !important;
    }

    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-kicker,
    body.idy-rooms-body .idy-rooms-left__sticky > h2,
    body.idy-rooms-body .idy-rooms-left__sticky > p {
        grid-column: 1 / -1 !important;
        justify-self: center !important;
        text-align: center !important;
    }

    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-kicker {
        width: 100% !important;
        margin-bottom: 16px !important;
    }

    body.idy-rooms-body .idy-rooms-left__sticky > h2 {
        width: 100% !important;
        max-width: 790px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        margin-bottom: 22px !important;
    }

    body.idy-rooms-body .idy-rooms-left__sticky > p {
        width: 100% !important;
        max-width: 760px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        margin-bottom: 0 !important;
    }

    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-contact,
    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-form {
        margin-top: 36px !important;
        padding-top: 28px !important;
        align-self: start !important;
    }

    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-contact {
        grid-column: 1 !important;
    }

    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-form {
        grid-column: 2 !important;
    }

    /* Keep the existing landmark note and resource/image material below the
       new contact/form row for this stage. They can be redistributed after
       the portrait-tablet image choices are finalized. */
    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-landmark-note,
    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-left-resources {
        grid-column: 1 / -1 !important;
        width: 100% !important;
    }

    /* Rooms-page version of the accepted portrait-tablet footer rhythm.
       This stylesheet has its own 60–64px top-grid gap, so neutralize that
       locally rather than changing the shared footer contract. */
    body.idy-rooms-body .idy-visit-footer__top {
        gap: 0 !important;
        row-gap: 0 !important;
    }

    body.idy-rooms-body .idy-visit-footer__actions {
        padding-top: 30px !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }

    body.idy-rooms-body .idy-visit-footer__license {
        margin-top: 30px !important;
    }
}


/* =========================================================
   ROOMS FOR LET — TABLET PORTRAIT / CONTACT IMAGE STACK
   Three supplied assets appear only under the left contact
   information, balancing the inquiry form on the right.
   ========================================================= */
.idy-rooms-tablet-contact-media {
    display: none;
}

@media screen and (min-width: 768px) and (max-width: 991px) and (orientation: portrait) {
    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-contact {
        grid-column: 1 !important;
        grid-row: 4 !important;
    }

    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-form {
        grid-column: 2 !important;
        grid-row: 4 / span 2 !important;
    }

    body.idy-rooms-body .idy-rooms-tablet-contact-media {
        display: grid !important;
        grid-column: 1 !important;
        grid-row: 5 !important;
        grid-template-columns: 1fr !important;
        gap: 18px !important;
        width: 100% !important;
        margin: 20px 0 0 !important;
        align-self: start !important;
    }

    body.idy-rooms-body .idy-rooms-tablet-contact-media figure {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        background: #fff !important;
    }

    body.idy-rooms-body .idy-rooms-tablet-contact-media__room {
        aspect-ratio: 8 / 5 !important;
    }

    body.idy-rooms-body .idy-rooms-tablet-contact-media__room img {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center center !important;
    }

    body.idy-rooms-body .idy-rooms-tablet-contact-media__banner img {
        display: block !important;
        width: 100% !important;
        height: auto !important;
    }

    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-landmark-note,
    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-left-resources {
        grid-column: 1 / -1 !important;
    }

    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-landmark-note {
        grid-row: 6 !important;
    }

    body.idy-rooms-body .idy-rooms-left__sticky > .idy-rooms-left-resources {
        grid-row: 7 !important;
    }
}

/* =========================================================
   ROOMS FOR LET — TABLET PORTRAIT / RESOURCE ROW
   One unified resource band: room brochure at left;
   NJ Transit and ShopRite stacked at right.
   ========================================================= */
@media screen and (min-width: 768px) and (max-width: 991px) and (orientation: portrait) {
    body.idy-rooms-body .idy-rooms-left-resources {
        display: grid !important;
        grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr) !important;
        grid-template-areas:
            "brochure transit"
            "brochure grocery" !important;
        column-gap: 28px !important;
        row-gap: 24px !important;
        align-items: start !important;
        width: 100% !important;
        margin-top: 32px !important;
        padding-top: 28px !important;
    }

    body.idy-rooms-body .idy-rooms-left-resources__item {
        min-width: 0 !important;
        margin: 0 !important;
    }

    body.idy-rooms-body .idy-rooms-left-resources__item:nth-child(1) {
        grid-area: brochure !important;
        align-self: start !important;
    }

    body.idy-rooms-body .idy-rooms-left-resources__item--transit {
        grid-area: transit !important;
        margin: 0 !important;
        padding: 0 0 22px !important;
        border-top: 0 !important;
        border-bottom: 1px solid rgba(184,115,51,.28) !important;
    }

    body.idy-rooms-body .idy-rooms-left-resources__item:nth-child(3) {
        grid-area: grocery !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body.idy-rooms-body .idy-rooms-left-resources__item:nth-child(1) img,
    body.idy-rooms-body .idy-rooms-left-resources__item--transit img {
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        margin: 0 !important;
        object-fit: contain !important;
    }

    body.idy-rooms-body .idy-rooms-left-resources__item:nth-child(3) img {
        display: block !important;
        width: min(100%, 250px) !important;
        max-width: 250px !important;
        height: auto !important;
        margin: 4px auto 0 !important;
        object-fit: contain !important;
    }

    body.idy-rooms-body .idy-rooms-left-resources__item h4 {
        margin-top: 14px !important;
    }

    body.idy-rooms-body .idy-rooms-left-resources__item p {
        margin-top: 9px !important;
        line-height: 1.55 !important;
    }
}


/* =========================================================
   ROOMS FOR LET — TABLET PORTRAIT / RESOURCE PROMO IMAGE
   Additional editorial image beneath the room-information
   brochure, visible only on portrait tablet.
   ========================================================= */
.idy-rooms-tablet-resource-promo {
    display: none;
}

@media screen and (min-width: 768px) and (max-width: 991px) and (orientation: portrait) {
    body.idy-rooms-body .idy-rooms-tablet-resource-promo {
        display: block !important;
        width: 100% !important;
        margin: 28px 0 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        background: transparent !important;
    }

    body.idy-rooms-body .idy-rooms-tablet-resource-promo img {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        object-fit: cover !important;
    }
}

/* =========================================================
   ROOMS FOR LET — TABLET PORTRAIT / PROMO WIDTH MATCH
   Match the Getting It Right image to the brochure width above.
   ========================================================= */
@media screen and (min-width: 768px) and (max-width: 991px) and (orientation: portrait) {
    body.idy-rooms-body .idy-rooms-tablet-resource-promo {
        width: calc(100% - 40px) !important;
        margin: 28px auto 0 !important;
    }

    body.idy-rooms-body .idy-rooms-tablet-resource-promo img {
        width: 100% !important;
        height: auto !important;
    }
}

/* =========================================================
   ROOMS FOR LET — TABLET PORTRAIT / MOSAIC ODD-ROW FILL
   Rows C, D and E each contain three tiles. At portrait-tablet
   widths the shared two-column wrap left an empty second cell.
   Let the final tile in each odd row span the full width instead.
   Desktop, tablet landscape and phone remain unchanged.
   ========================================================= */
@media screen and (min-width: 768px) and (max-width: 991px) and (orientation: portrait) {
    body.idy-rooms-body .idy-room-row--c > .idy-room-tile:last-child,
    body.idy-rooms-body .idy-room-row--d > .idy-room-tile:last-child,
    body.idy-rooms-body .idy-room-row--e > .idy-room-tile:last-child {
        width: 100% !important;
        flex-basis: 100% !important;
        aspect-ratio: 16 / 9 !important;
    }
}
