/**
 * ==========================================================
 * PHL FRONTEND FRAMEWORK
 * MODULE-001
 * Property Experience
 * ----------------------------------------------------------
 * File:
 * phl-property.css
 *
 * Version:
 * 1.0 Production
 *
 * Purpose:
 * Shared UI system for all Property Pages
 * Greenville
 * Emmanuel Grand Estate
 * Mercedes Heights
 * Alluvia Township
 * ==========================================================
 */

/* ==========================================================
   DESIGN TOKENS
========================================================== */

:root{

    --phl-primary:#0F766E;
    --phl-primary-dark:#115E59;

    --phl-secondary:#1E293B;

    --phl-background:#F8FAFC;
    --phl-surface:#FFFFFF;

    --phl-border:#E5E7EB;

    --phl-text:#111827;
    --phl-text-light:#64748B;

    --phl-radius-sm:12px;
    --phl-radius-md:18px;
    --phl-radius-lg:24px;

    --phl-shadow-sm:
        0 6px 18px rgba(15,23,42,.06);

    --phl-shadow-md:
        0 14px 32px rgba(15,23,42,.08);

    --phl-shadow-lg:
        0 24px 60px rgba(15,23,42,.12);

    --phl-transition:

        .30s cubic-bezier(.4,0,.2,1);

}

/* ==========================================================
   GLOBAL
========================================================== */

.phl-page{

    position:relative;

    color:var(--phl-text);

}

.phl-page *{

    box-sizing:border-box;

}

.phl-section{

    margin:5rem 0;

}

.phl-container{

    width:min(1320px,92%);

    margin:auto;

}

/* ==========================================================
   TYPOGRAPHY
========================================================== */

.phl-title{

    margin:0;

    font-size:clamp(2rem,3vw,3rem);

    font-weight:700;

    line-height:1.15;

    color:var(--phl-text);

}

.phl-heading{

    margin:0 0 18px;

    font-size:clamp(1.5rem,2vw,2rem);

    font-weight:700;

    line-height:1.25;

}

.phl-subheading{

    margin:0;

    color:var(--phl-text-light);

    line-height:1.8;

}

/* ==========================================================
   BUTTONS
========================================================== */

.phl-button{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    gap:10px;

    min-height:56px;

    padding:0 30px;

    border-radius:14px;

    text-decoration:none;

    font-weight:600;

    cursor:pointer;

    transition:var(--phl-transition);

}

.phl-button-primary{

    color:#FFF;

    background:var(--phl-primary);

    border:2px solid var(--phl-primary);

}

.phl-button-primary:hover{

    background:var(--phl-primary-dark);

    border-color:var(--phl-primary-dark);

    transform:translateY(-2px);

    box-shadow:

        0 16px 32px

        rgba(15,118,110,.25);

}

.phl-button-secondary{

    background:#FFF;

    color:var(--phl-primary);

    border:2px solid var(--phl-primary);

}

.phl-button-secondary:hover{

    background:#ECFDF5;

    transform:translateY(-2px);

}

/* ==========================================================
   CARDS
========================================================== */

.phl-card{

    background:#FFF;

    border:1px solid var(--phl-border);

    border-radius:var(--phl-radius-md);

    box-shadow:var(--phl-shadow-sm);

    transition:var(--phl-transition);

}

.phl-card:hover{

    transform:translateY(-6px);

    box-shadow:var(--phl-shadow-lg);

}

/* ==========================================================
   PAGE
========================================================== */

.phl-property-page{

    position:relative;

}

/* ==========================================================
   HOUSE MODELS
========================================================== */

.phl-house-models{

    margin-bottom:5rem;

}

/* ==========================================================
   HOUSE CAROUSEL
========================================================== */

.phl-house-carousel{

    display:flex;

    gap:28px;

    align-items:stretch;

    overflow-x:auto;

    padding:

        8px
        2px
        16px;

    scroll-snap-type:x mandatory;

    scroll-padding-left:20px;

    scrollbar-width:none;

    scroll-behavior:smooth;

}

.phl-house-carousel::-webkit-scrollbar{

    display:none;

}

/* ==========================================================
   HOUSE CARD
========================================================== */

.phl-house-card{

    display:flex;

    flex-direction:column;

    flex:0 0 clamp(290px,28vw,340px);

    background:#FFF;

    border:1px solid var(--phl-border);

    border-radius:22px;

    overflow:hidden;

    cursor:pointer;

    opacity:.72;

    scroll-snap-align:start;

    transition:var(--phl-transition);

}

.phl-house-card:hover{

    opacity:1;

    transform:translateY(-8px);

    box-shadow:var(--phl-shadow-lg);

}

.phl-house-card--active{

    opacity:1;

    border:2px solid var(--phl-primary);

    transform:translateY(-6px);

    box-shadow:

        0 20px 48px

        rgba(15,118,110,.18);

}

/* ==========================================================
   HOUSE IMAGE
========================================================== */

.phl-house-card-image{

    overflow:hidden;

    background:var(--phl-background);

    aspect-ratio:16/10;

}

.phl-house-card-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:

        transform .45s ease,

        opacity .30s ease;

}

.phl-house-card:hover
.phl-house-card-image img{

    transform:scale(1.06);

    opacity:1;

}

/* ==========================================================
   HOUSE CONTENT
========================================================== */

.phl-house-card-content{

    display:flex;

    flex-direction:column;

    flex:1;

    padding:24px;

}

.phl-house-card-title{

    margin:0 0 18px;

    font-size:1.35rem;

    font-weight:700;

}

.phl-house-card-specs{

    display:flex;

    flex-wrap:wrap;

    gap:14px;

    margin-bottom:22px;

    color:var(--phl-text-light);

    font-size:.92rem;

}

.phl-house-select-button{

    width:100%;

    margin-top:auto;

}

.phl-house-card--active
.phl-house-select-button{

    background:var(--phl-primary);

    color:#FFF;

}

/* ==========================================================
   PROPERTY DETAILS
========================================================== */

.phl-property-details{

    margin-bottom:6rem;

}

.phl-property-layout{

    display:grid;

    grid-template-columns:1.25fr .75fr;

    gap:56px;

    align-items:center;

}

/* ==========================================================
   PROPERTY MEDIA
========================================================== */

.phl-property-media{

    position:relative;

    overflow:hidden;

    border-radius:28px;

    background:var(--phl-background);

    box-shadow:var(--phl-shadow-lg);

}

.phl-property-media img{

    display:block;

    width:100%;

    aspect-ratio:16/10;

    object-fit:cover;

    transition:

        transform .45s ease,

        opacity .35s ease;

}

.phl-property-media:hover img{

    transform:scale(1.03);

}

/* ==========================================================
   PROPERTY CONTENT
========================================================== */

.phl-property-content{

    display:flex;

    flex-direction:column;

    gap:30px;

}

.phl-property-title{

    margin:0;

    font-size:clamp(2rem,2.8vw,3rem);

    font-weight:700;

    line-height:1.15;

}

.phl-property-description{

    margin:0;

    color:var(--phl-text-light);

    line-height:1.9;

}

/* ==========================================================
   PROPERTY SNAPSHOT
========================================================== */

.phl-property-snapshot{

    display:grid;

    grid-template-columns:

        repeat(auto-fit,minmax(130px,1fr));

    gap:18px;

    margin-top:10px;

}

/* ==========================================================
   SNAPSHOT CARD
========================================================== */

.phl-property-stat{

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    min-height:125px;

    padding:22px;

    background:#FFF;

    border:1px solid var(--phl-border);

    border-radius:18px;

    box-shadow:var(--phl-shadow-sm);

    transition:var(--phl-transition);

}

.phl-property-stat:hover{

    transform:translateY(-6px);

    box-shadow:var(--phl-shadow-md);

}

.phl-property-stat strong{

    display:block;

    margin-bottom:8px;

    font-size:1.9rem;

    font-weight:700;

    color:var(--phl-primary);

}

.phl-property-stat span{

    text-align:center;

    font-size:.90rem;

    color:var(--phl-text-light);

    line-height:1.5;

}

/* ==========================================================
   PROPERTY ACTIONS
========================================================== */

.phl-property-actions{

    display:flex;

    flex-direction:column;

    gap:16px;

    margin-top:18px;

}

.phl-property-actions
.phl-button{

    width:100%;

}

/* ==========================================================
   PROPERTY INFO
========================================================== */

.phl-property-meta{

    display:grid;

    gap:14px;

}

.phl-property-meta-item{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding-bottom:14px;

    border-bottom:1px solid var(--phl-border);

}

.phl-property-meta-item:last-child{

    border-bottom:none;

}

.phl-property-meta-label{

    color:var(--phl-text-light);

    font-weight:600;

}

.phl-property-meta-value{

    color:var(--phl-text);

    font-weight:700;

}

/* ==========================================================
   PRICE CARD
========================================================== */

.phl-property-price{

    display:flex;

    flex-direction:column;

    gap:6px;

    padding:28px;

    border-radius:20px;

    background:linear-gradient(
        135deg,
        #ECFDF5,
        #F8FAFC
    );

    border:1px solid #D1FAE5;

}

.phl-property-price-label{

    color:var(--phl-text-light);

    font-size:.90rem;

}

.phl-property-price-value{

    font-size:2rem;

    font-weight:700;

    color:var(--phl-primary);

}

/* ==========================================================
   FEATURE BADGES
========================================================== */

.phl-property-badges{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

}

.phl-property-badge{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    padding:8px 16px;

    border-radius:999px;

    background:#ECFDF5;

    color:var(--phl-primary);

    font-size:.82rem;

    font-weight:600;

}

/* ==========================================================
   IMAGE OVERLAY
========================================================== */

.phl-property-media::after{

    content:"";

    position:absolute;

    inset:0;

    background:

        linear-gradient(

            transparent,

            rgba(0,0,0,.05)

        );

    pointer-events:none;

}

/* ==========================================================
   HOUSE EXPERIENCE
========================================================== */

.phl-house-experience{

    margin:6rem 0;

}

.phl-house-experience-header{

    text-align:center;

    margin-bottom:42px;

}

.phl-house-experience-title{

    margin:0 0 12px;

    font-size:clamp(2rem,2.5vw,2.6rem);

    font-weight:700;

}

.phl-house-experience-subtitle{

    margin:0 auto;

    max-width:760px;

    color:var(--phl-text-light);

    line-height:1.8;

}

/* ==========================================================
   EXPERIENCE TABS
========================================================== */

.phl-experience-tabs{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:14px;

    margin-bottom:40px;

}

.phl-tab{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    min-width:170px;

    height:52px;

    padding:0 24px;

    border:none;

    border-radius:999px;

    background:#F1F5F9;

    color:var(--phl-text-light);

    cursor:pointer;

    font-weight:600;

    transition:var(--phl-transition);

}

.phl-tab:hover{

    background:#E2E8F0;

}

.phl-tab--active{

    background:var(--phl-primary);

    color:#FFF;

    box-shadow:

        0 12px 24px

        rgba(15,118,110,.25);

}

.phl-tab-panel{

    display:none;

    animation:

        phlFade .35s ease;

}

.phl-tab-panel--active{

    display:block;

}

/* ==========================================================
   FLOOR PLAN
========================================================== */

.phl-floor-plan{

    margin-top:24px;

}

.phl-floor-plan-card{

    overflow:hidden;

    border-radius:28px;

    background:#FFF;

    border:1px solid var(--phl-border);

    box-shadow:var(--phl-shadow-md);

}

.phl-floor-plan img{

    display:block;

    width:100%;

    height:auto;

    transition:

        transform .45s ease;

}

.phl-floor-plan:hover img{

    transform:scale(1.02);

}

/* ==========================================================
   FLOOR PLAN CTA
========================================================== */

.phl-floor-plan-actions{

    display:flex;

    justify-content:center;

    gap:18px;

    padding:26px;

    border-top:1px solid var(--phl-border);

}

/* ==========================================================
   GALLERY
========================================================== */

.phl-gallery{

    margin-top:32px;

}

.phl-gallery-grid{

    display:grid;

    grid-template-columns:

        repeat(4,1fr);

    gap:20px;

}

/* ==========================================================
   GALLERY ITEM
========================================================== */

.phl-gallery-item{

    position:relative;

    overflow:hidden;

    border-radius:22px;

    background:#FFF;

    box-shadow:var(--phl-shadow-sm);

}

.phl-gallery-image{

    display:block;

    width:100%;

    aspect-ratio:1/1;

    object-fit:cover;

    transition:

        transform .45s ease,

        opacity .35s ease;

}

.phl-gallery-item:hover
.phl-gallery-image{

    transform:scale(1.08);

}

.phl-gallery-item::after{

    content:"";

    position:absolute;

    inset:0;

    background:

        linear-gradient(

            transparent,

            rgba(0,0,0,.12)

        );

    opacity:0;

    transition:var(--phl-transition);

}

.phl-gallery-item:hover::after{

    opacity:1;

}

/* ==========================================================
   GALLERY COUNT
========================================================== */

.phl-gallery-count{

    position:absolute;

    right:16px;

    bottom:16px;

    z-index:2;

    padding:8px 14px;

    border-radius:999px;

    background:rgba(17,24,39,.85);

    color:#FFF;

    font-size:.82rem;

    font-weight:600;

}

/* ==========================================================
   HOUSE SPECIFICATIONS
========================================================== */

.phl-house-spec-grid{

    display:grid;

    grid-template-columns:

        repeat(4,1fr);

    gap:20px;

    margin-top:32px;

}

.phl-house-spec{

    text-align:center;

    padding:24px;

    border-radius:18px;

    background:#FFF;

    border:1px solid var(--phl-border);

    box-shadow:var(--phl-shadow-sm);

}

.phl-house-spec strong{

    display:block;

    margin-bottom:10px;

    font-size:1.7rem;

    color:var(--phl-primary);

}

.phl-house-spec span{

    color:var(--phl-text-light);

}

/* ==========================================================
   FADE
========================================================== */

@keyframes phlFade{

    from{

        opacity:0;

        transform:translateY(12px);

    }

    to{

        opacity:1;

        transform:none;

    }

}

/* ==========================================================
   RESERVATION SUMMARY
========================================================== */

.phl-property-summary{

    margin:6rem 0;

}

.phl-summary-card{

    background:#FFF;

    border:1px solid var(--phl-border);

    border-radius:28px;

    padding:42px;

    box-shadow:var(--phl-shadow-md);

}

.phl-summary-title{

    margin:0 0 10px;

    font-size:2rem;

    font-weight:700;

}

.phl-summary-subtitle{

    margin:0 0 36px;

    color:var(--phl-text-light);

}

.phl-summary-content{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:56px;

}

.phl-summary-column{

    display:flex;

    flex-direction:column;

    gap:16px;

}

.phl-summary-column:first-child{

    padding-right:40px;

    border-right:1px solid var(--phl-border);

}

.phl-summary-heading{

    margin-bottom:10px;

    font-size:.85rem;

    letter-spacing:1px;

    text-transform:uppercase;

    color:var(--phl-text-light);

}

.phl-summary-item{

    display:grid;

    grid-template-columns:140px 1fr;

    gap:14px;

    padding:10px 0;

}

.phl-summary-label{

    font-weight:600;

    color:var(--phl-text-light);

}

.phl-summary-value{

    font-weight:700;

    color:var(--phl-text);

}

.phl-summary-actions{

    display:flex;

    justify-content:center;

    gap:18px;

    flex-wrap:wrap;

    margin-top:40px;

    padding-top:30px;

    border-top:1px solid var(--phl-border);

}

.phl-summary-actions .phl-button{

    min-width:250px;

}

.phl-summary-copy{

    margin-top:20px;

    text-align:center;

}

.phl-copy-button{

    background:none;

    border:none;

    color:var(--phl-primary);

    cursor:pointer;

    font-weight:600;

}

.phl-copy-button:hover{

    text-decoration:underline;

}

/* ==========================================================
   SIMILAR PROPERTIES
========================================================== */

.phl-similar-properties{

    margin-top:7rem;

}

.phl-similar-grid{

    display:grid;

    grid-template-columns:

        repeat(auto-fit,minmax(320px,1fr));

    gap:32px;

    margin-top:40px;

}

.phl-property-card{

    display:flex;

    flex-direction:column;

    height:100%;

    overflow:hidden;

    border-radius:24px;

    background:#FFF;

    border:1px solid var(--phl-border);

    box-shadow:var(--phl-shadow-sm);

    transition:var(--phl-transition);

}

.phl-property-card:hover{

    transform:translateY(-8px);

    box-shadow:var(--phl-shadow-lg);

}

.phl-card-image{

    overflow:hidden;

    aspect-ratio:16/10;

}

.phl-card-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:transform .45s ease;

}

.phl-property-card:hover
.phl-card-image img{

    transform:scale(1.06);

}

.phl-card-body{

    display:flex;

    flex-direction:column;

    flex:1;

    gap:18px;

    padding:26px;

}

.phl-card-body h3{

    margin:0;

    font-size:1.35rem;

}

.phl-card-body p{

    flex:1;

    margin:0;

    line-height:1.8;

    color:var(--phl-text-light);

}

/* ==========================================================
   STICKY CTA
========================================================== */

.phl-property-bar{

    position:sticky;

    bottom:0;

    z-index:999;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

    padding:22px 32px;

    background:rgba(255,255,255,.96);

    backdrop-filter:blur(14px);

    border-top:1px solid var(--phl-border);

    box-shadow:

        0 -12px 30px rgba(15,23,42,.08);

}

.phl-property-bar-price{

    display:flex;

    flex-direction:column;

}

.phl-property-bar-price strong{

    font-size:1.5rem;

    color:var(--phl-primary);

}

.phl-property-bar-price span{

    color:var(--phl-text-light);

}

/* ==========================================================
   RESPONSIVE
========================================================== */

@media (max-width:1200px){

    .phl-gallery-grid{

        grid-template-columns:repeat(3,1fr);

    }

}

@media (max-width:992px){

    .phl-property-layout{

        grid-template-columns:1fr;

        gap:36px;

    }

    .phl-summary-content{

        grid-template-columns:1fr;

        gap:30px;

    }

    .phl-summary-column:first-child{

        border-right:none;

        padding-right:0;

        padding-bottom:30px;

        border-bottom:1px solid var(--phl-border);

    }

    .phl-house-spec-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media (max-width:768px){

    .phl-gallery-grid{

        grid-template-columns:repeat(2,1fr);

    }

    .phl-house-carousel{

        gap:18px;

    }

    .phl-house-card{

        flex:0 0 86%;

    }

    .phl-summary-card{

        padding:24px;

    }

    .phl-summary-item{

        grid-template-columns:1fr;

        gap:4px;

    }

    .phl-property-bar{

        flex-direction:column;

        align-items:stretch;

    }

    .phl-property-bar .phl-button{

        width:100%;

    }

}

@media (max-width:576px){

    .phl-gallery-grid{

        grid-template-columns:1fr;

    }

    .phl-house-spec-grid{

        grid-template-columns:1fr;

    }

    .phl-summary-actions{

        flex-direction:column;

    }

    .phl-summary-actions .phl-button{

        width:100%;

    }

}