/*
 * WILEY NOTE TO SELF:
 * FLOORPLANS PAGE ONLY
 *
 * This file is additive and does not replace the main Sea Colony stylesheet.
 * It keeps the floorplan work isolated while the rest of /new-site/ continues
 * to evolve.
 */

.floorplansHero{
    border-bottom:1px solid #d8e4e2;
    background:
        radial-gradient(circle at 85% 0%,rgba(215,231,238,.9),rgba(215,231,238,0) 35%),
        linear-gradient(180deg,#fffdf8 0%,#edf5f2 100%);
}

.floorplansHeroInner{
    width:min(1200px,calc(100% - 34px));
    margin:0 auto;
    padding:58px 0 54px;
}

.floorplansHero h1{
    max-width:800px;
    margin:0;
    color:var(--navy2);
    font-size:clamp(42px,6vw,66px);
    line-height:1;
    letter-spacing:-.045em;
}

.floorplansHero p{
    max-width:760px;
    margin:18px 0 0;
    color:#5c7486;
    font-size:18px;
    line-height:1.65;
}

.floorplansPage{
    width:min(1200px,calc(100% - 34px));
    margin:0 auto;
    padding:34px 0 64px;
}

.floorplansIntro,
.floorplansSection,
.floorplansBottomNote{
    border:1px solid #d9e4e1;
    border-radius:17px;
    background:rgba(255,253,248,.97);
    box-shadow:0 8px 28px rgba(12,45,72,.06);
}

.floorplansIntro{
    display:grid;
    grid-template-columns:minmax(0,1.5fr) minmax(280px,.75fr);
    gap:28px;
    padding:30px;
}

.floorplansIntro h2,
.floorplansSection h2,
.floorplansBottomNote h2{
    margin:0;
    color:var(--navy2);
    font-size:30px;
    line-height:1.12;
    letter-spacing:-.025em;
}

.floorplansIntro p,
.floorplansSectionHead p,
.floorplansBottomNote p{
    margin:12px 0 0;
    color:#607688;
    font-size:14px;
    line-height:1.7;
}

.floorplansIntroNote{
    align-self:start;
    padding:18px;
    border:1px solid #cfe0db;
    border-radius:13px;
    background:#eef6f3;
}

.floorplansIntroNote strong{
    color:#295a58;
    font-size:10px;
    letter-spacing:.08em;
}

.floorplansIntroNote p{
    margin-top:7px;
    font-size:12px;
}

.floorplansSection{
    margin-top:24px;
    padding:30px;
}

.floorplansSectionHead{
    display:flex;
    justify-content:space-between;
    gap:24px;
}

.floorplansSectionHead > div{
    max-width:830px;
}

.addressGuide{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin-top:24px;
}

.addressGuide a{
    display:block;
    padding:14px 12px;
    border:1px solid #d7e5e5;
    border-radius:11px;
    background:linear-gradient(180deg,#f9fcfb,#edf5f2);
    text-align:center;
    text-decoration:none;
}

.addressGuide span{
    display:block;
    color:var(--blue);
    font-size:11px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.addressGuide strong{
    display:block;
    margin-top:5px;
    color:var(--navy2);
    font-size:15px;
}

.floorplansCaution{
    margin:14px 0 0;
    color:#768993;
    font-size:11px;
    line-height:1.55;
}

.floorplanGrid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
    margin-top:26px;
}

.floorplanGrid > div{
    min-width:0;
}

.floorplanCard{
    height:100%;
    overflow:hidden;
    border:1px solid #d8e3e7;
    border-radius:15px;
    background:#fff;
    box-shadow:0 7px 23px rgba(14,42,68,.055);
}

.floorplanImageLink{
    position:relative;
    display:block;
    overflow:hidden;
    min-height:360px;
    background:#f7f7f5;
    text-decoration:none;
}

.floorplanImageLink img{
    display:block;
    width:100%;
    height:420px;
    object-fit:contain;
    background:#fff;
}

.floorplanImageLink span{
    position:absolute;
    right:12px;
    bottom:12px;
    padding:8px 10px;
    border-radius:8px;
    background:rgba(10,35,65,.88);
    color:#fff;
    font-size:10px;
    font-weight:900;
    letter-spacing:.02em;
}

.floorplanCardBody{
    padding:20px;
}

.floorplanCardTopline{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
}

.floorplanModelLabel{
    color:var(--blue);
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.floorplanCard h3{
    margin:4px 0 0;
    color:var(--navy2);
    font-size:25px;
    line-height:1.1;
    letter-spacing:-.025em;
}

.floorplanSuffix{
    flex:0 0 auto;
    min-width:92px;
    padding:8px 10px;
    border-radius:9px;
    background:#eef6f3;
    text-align:right;
}

.floorplanSuffix span{
    display:block;
    color:#72868e;
    font-size:8px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.floorplanSuffix strong{
    display:block;
    margin-top:2px;
    color:#295a58;
    font-size:14px;
}

.floorplanFacts{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:15px;
}

.floorplanFacts span{
    padding:6px 8px;
    border:1px solid #dbe7ea;
    border-radius:999px;
    background:#f7faf9;
    color:#556d7b;
    font-size:10px;
    font-weight:800;
}

.floorplanAreas{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin:17px 0 0;
}

.floorplanAreas div{
    padding:10px;
    border-top:1px solid #e4eaed;
}

.floorplanAreas dt{
    color:#80919b;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.floorplanAreas dd{
    margin:4px 0 0;
    color:#334f62;
    font-size:12px;
    font-weight:800;
}

.floorplanPlanNote{
    margin:14px 0 0;
    padding-top:12px;
    border-top:1px solid #e4eaed;
    color:#71838d;
    font-size:10px;
    line-height:1.55;
}

.floorplansBottomNote{
    margin-top:24px;
    padding:30px;
    background:linear-gradient(135deg,#fffdf8,#eaf4f1);
}

.floorplansContactIdentity{
    color:#334f62 !important;
}

.floorplanLightbox{
    width:min(980px,calc(100% - 30px));
    max-height:94vh;
    padding:16px;
    border:0;
    border-radius:14px;
    background:#fff;
    box-shadow:0 26px 70px rgba(4,24,41,.28);
}

.floorplanLightbox::backdrop{
    background:rgba(4,24,41,.78);
}

.floorplanLightboxClose{
    display:block;
    margin:0 0 10px auto;
    padding:8px 11px;
    border:1px solid #ccd9df;
    border-radius:8px;
    background:#fff;
    color:var(--navy2);
    font:inherit;
    font-size:11px;
    font-weight:900;
    cursor:pointer;
}

.floorplanLightboxFrame{
    display:flex;
    align-items:center;
    justify-content:center;
    max-height:78vh;
    overflow:auto;
    background:#f5f5f2;
}

.floorplanLightboxFrame img{
    display:block;
    max-width:100%;
    height:auto;
}

.floorplanLightboxTitle{
    margin:10px 0 0;
    color:#607688;
    text-align:center;
    font-size:12px;
}

@media (max-width:940px){
    .floorplansIntro{
        grid-template-columns:1fr;
    }

    .addressGuide{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media (max-width:760px){
    .floorplanGrid{
        grid-template-columns:1fr;
    }

    .floorplanImageLink img{
        height:auto;
        max-height:560px;
    }
}

@media (max-width:560px){
    .floorplansHeroInner{
        padding:42px 0 38px;
    }

    .floorplansPage{
        padding-top:22px;
    }

    .floorplansIntro,
    .floorplansSection,
    .floorplansBottomNote{
        padding:22px;
    }

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

    .floorplanCardTopline{
        flex-direction:column;
    }

    .floorplanSuffix{
        width:100%;
        text-align:left;
    }

    .floorplanAreas{
        grid-template-columns:1fr;
    }
}

/* Shared-sidebar version of the Floorplans page */
.floorplansIntroSingle{grid-template-columns:1fr}

@media (max-width:1180px){
    .addressGuide{grid-template-columns:repeat(3,minmax(0,1fr))}
}


/* Shared PHP layout corrections */
.floorplansSharedPage .floorplansIntro,
.floorplansSharedPage .floorplansSection,
.floorplansSharedPage .floorplansBottomNote{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
}

.floorplansSharedPage .addressGuide a,
.floorplansSharedPage .floorplanImageLink{
    text-decoration:none;
}

/* The page now has a sidebar, so the cards need to fit the main column cleanly. */
.floorplansSharedPage .floorplanGrid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.floorplansSharedPage .floorplanImageLink{
    min-height:0;
}

.floorplansSharedPage .floorplanImageLink img{
    width:100%;
    height:auto;
    aspect-ratio:325 / 420;
    object-fit:contain;
}

@media (max-width:1180px){
    .floorplansSharedPage .floorplanGrid{
        grid-template-columns:1fr;
    }

    .floorplansSharedPage .floorplanImageLink img{
        max-height:680px;
        aspect-ratio:auto;
    }
}
