.hero{
    background:#f7f1e6;
    padding:42px;
    border-radius:var(--radius);
    border:1px solid rgba(20,61,49,.06);
    box-shadow:0 10px 24px rgba(8,38,31,.06);
}

.contact-page{
    position:relative;
    overflow:hidden;
    padding:46px;
    background:
        radial-gradient(circle at top left, rgba(201,168,106,.18), transparent 22%),
        linear-gradient(135deg,#dcc7a7 0%, #c7ae87 100%);
    border-radius:28px;
    border:1px solid rgba(20,61,49,.07);
    box-shadow:0 14px 30px rgba(8,38,31,.10);
}

.contact-page::before{
    content:"";
    position:absolute;
    right:-70px;
    top:-70px;
    width:220px;
    height:220px;
    border-radius:50%;
    background:rgba(20,61,49,.12);
}

.contact-page > *{
    position:relative;
    z-index:1;
}

.contact-page h2{
    font-size:52px;
    margin-bottom:18px;
}

.contact-page p{
    max-width:760px;
    margin-bottom:28px;
    font-size:18px;
    color:#2e3d36;
}

.contact-page .admin-form{
    padding:24px;
    border-radius:22px;
    background:linear-gradient(135deg,#d9c3a1 0%, #cfb38a 100%);
    border:1px solid rgba(20,61,49,.10);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.20),
        0 10px 22px rgba(8,38,31,.08);
}

.contact-page .admin-form input,
.contact-page .admin-form textarea,
.contact-page .admin-form select{
    background:#efe0c8;
    border:1px solid rgba(20,61,49,.16);
}

.contact-page .admin-form label{
    color:#21352d;
}

.contact-page .privacy-check{
    display:flex;
    align-items:flex-start;
    gap:10px;
    background:rgba(239,224,200,.78);
    padding:14px 16px;
    border-radius:14px;
    border:1px solid rgba(20,61,49,.12);
}

.contact-page .privacy-check input[type="checkbox"]{
    width:18px;
    height:18px;
    margin-top:3px;
    flex:0 0 auto;
    accent-color:#143d31;
}

.contact-page .contact-waitlist-check{
    margin-bottom:10px;
}

.contact-waitlist-fields{
    display:none;
    padding:16px;
    border-radius:16px;
    background:rgba(239,224,200,.52);
    border:1px solid rgba(20,61,49,.10);
}

.contact-waitlist-fields.is-visible{
    display:block;
}

.contact-form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

@media(max-width:640px){
    .contact-form-row{
        grid-template-columns:1fr;
    }
}

.contact-page .button{
    background:linear-gradient(135deg,#143d31 0%, #08261f 100%);
    box-shadow:0 10px 24px rgba(8,38,31,.18);
}

.contact-page .button:hover{
    background:linear-gradient(135deg,#1a4b3d 0%, #0a2f25 100%);
}

.cards{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
    margin-top:32px;
}

.card{
    background:#fff;
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow-soft);
    display:flex;
    flex-direction:column;
    height:100%;
}

.card img{
    width:100%;
    height:260px;
    object-fit:cover;
    display:block;
    flex-shrink:0;
}

.card-content{
    padding:24px;
    flex:1;
}

.card-content h3{
    font-size:30px;
    margin-bottom:12px;
}

/* Listing pagina's */

.listing-hero{
    margin-bottom:34px;
    padding:30px 34px;
    background:linear-gradient(135deg,#f6eee0 0%, #e9dcc7 100%);
    border-radius:22px;
    border:1px solid rgba(20,61,49,.08);
    box-shadow:0 14px 30px rgba(8,38,31,.06);
    display:flex;
    justify-content:space-between;
    gap:28px;
    align-items:flex-end;
}

.listing-hero-copy{
    max-width:760px;
}

.listing-hero-side{
    flex-shrink:0;
    min-width:220px;
    padding:20px 22px;
    border-radius:18px;
    background:rgba(242,232,218,.86);
    border:1px solid rgba(20,61,49,.07);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
}

.listing-hero-side strong{
    display:block;
    color:var(--green-dark);
    font-size:28px;
    line-height:1;
    margin-bottom:8px;
}

.listing-hero-side small{
    color:#5d6a64;
    font-size:14px;
}

.listing-hero span{
    display:block;
    margin-bottom:12px;
    color:var(--red);
    font-size:14px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:1px;
}

.listing-hero h1{
    font-size:56px;
    margin-bottom:16px;
}

.listing-hero p{
    max-width:760px;
    font-size:18px;
}

.listing-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
    margin-top:32px;
}

.listing-card{
    background:#f6efe3;
    border-radius:20px;
    overflow:hidden;
    border:1px solid rgba(20,61,49,.07);
    box-shadow:0 12px 26px rgba(8,38,31,.07);
    display:flex;
    flex-direction:column;
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.listing-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 36px rgba(8,38,31,.10);
    border-color:rgba(20,61,49,.14);
}

.listing-image{
    position:relative;
    height:248px;
    overflow:hidden;
    background:#e8ece8;
}

.listing-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:.45s ease;
}

.listing-card:hover .listing-image img{
    transform:scale(1.05);
}

.listing-image .status{
    position:absolute;
    left:16px;
    top:16px;
}

.listing-photo-ribbon{
    position:absolute;
    left:-56px;
    top:34px;
    z-index:2;
    width:230px;
    padding:10px 18px;
    transform:rotate(-35deg);
    background:#7f1d1d;
    color:#fff;
    text-align:center;
    font-size:13px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.7px;
    box-shadow:0 10px 24px rgba(8,38,31,.22);
}

.listing-content{
    padding:22px 22px 20px;
    display:flex;
    flex-direction:column;
    gap:16px;
    flex:1;
}

.listing-content-top{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:flex-start;
}

.listing-price{
    color:var(--green-dark);
    font-size:19px !important;
    line-height:1.2;
    text-align:left;
}

.listing-content h3{
    font-size:28px;
    line-height:1.08;
}

.listing-content strong{
    font-size:20px;
    color:var(--green-dark);
}

.listing-address{
    color:#35453e;
    line-height:1.6;
}

.listing-empty{
    background:#f6efe3;
    padding:42px;
    border-radius:var(--radius);
    border:1px solid rgba(20,61,49,.07);
    box-shadow:0 12px 26px rgba(8,38,31,.07);
}

.listing-specs{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
    margin:2px 0 0;
}

.spec-box{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    padding:14px 12px;
    border-radius:14px;
    background:#ede4d6;
    border:1px solid rgba(20,61,49,.05);
}

.spec-box svg{
    width:22px;
    height:22px;

    stroke:#ff7a1a;
    stroke-width:1.8;

    fill:none;

    stroke-linecap:round;
    stroke-linejoin:round;
}

.spec-box strong{
    color:var(--green-dark);
    font-size:20px;
    line-height:1;
}

.spec-box small{
    color:#5f6c66;
    font-size:13px;
    line-height:1.2;
}

.listing-card-footer{
    margin-top:auto;
    padding-top:16px;
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:center;
    border-top:1px solid rgba(20,61,49,.08);
}

.listing-card-note{
    color:#61706a;
    font-size:13px;
    line-height:1.4;
}

.listing-content .button{
    margin-top:0;
    width:auto;
    min-width:158px;
    justify-content:center;
}

/* Chalet detailpagina */

.detail-back-link{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:20px;
    color:var(--green);
    text-decoration:none;
    font-weight:800;
}

.detail-hero{
    margin-bottom:30px;
    padding:28px 32px;
    background:linear-gradient(135deg,#f5ecde 0%, #e8dbc7 100%);
    border-radius:22px;
    border:1px solid rgba(20,61,49,.08);
    box-shadow:0 14px 30px rgba(8,38,31,.06);
}

.detail-hero-main{
    max-width:none;
}

.detail-hero-top{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    gap:24px;
    align-items:center;
}

.detail-hero-copy{
    max-width:560px;
}

.detail-hero-meta{
    margin-bottom:14px;
}

.detail-hero h1{
    font-size:50px;
    margin-bottom:14px;
}

.detail-address{
    color:#35453e;
    font-size:18px;
    line-height:1.7;
}

.detail-section-head span{
    display:block;
    margin-bottom:10px;
    color:#63716b;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.9px;
}

.detail-inline-info strong{
    display:block;
    color:var(--green-dark);
    font-size:20px;
    line-height:1.1;
    margin-bottom:4px;
    text-align:center;
}

.detail-inline-info span{
    color:#45544d;
    font-size:14px;
    line-height:1.5;
    text-align:center;
}

.detail-gallery{
    background:linear-gradient(135deg,#efe7d8 0%, #e5ddd0 100%);
    padding:16px;
    border-radius:22px;
    border:1px solid rgba(20,61,49,.07);
    box-shadow:0 12px 26px rgba(8,38,31,.07);
    margin-bottom:34px;
}

.detail-main-photo{
    position:relative;
    min-height:560px;
    overflow:hidden;
    border-radius:18px;
    background:#ddd6c8;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.22),
        0 8px 18px rgba(8,38,31,.08);
}

.gallery-count{
    position:absolute;
    top:16px;
    right:16px;
    z-index:3;
    padding:8px 12px;
    border-radius:999px;
    background:rgba(247,241,232,.92);
    border:1px solid rgba(20,61,49,.10);
    color:var(--green-dark);
    font-size:13px;
    font-weight:800;
    box-shadow:0 8px 18px rgba(8,38,31,.10);
}

.detail-photo-ribbon{
    left:-72px;
    top:58px;
    width:300px;
    font-size:15px;
    z-index:4;
}

.detail-main-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    border-radius:14px;
    transition:opacity .22s ease, transform .22s ease;
}

.detail-main-photo img.is-changing{
    opacity:.82;
    transform:scale(1.01);
}

.detail-thumbs{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(130px,1fr));
    gap:12px;
    margin-top:14px;
}

.detail-thumbs img{
    width:100%;
    height:95px;
    object-fit:cover;
    border-radius:10px;
    cursor:pointer;
    border:2px solid rgba(255,255,255,.28);
    transition:.25s ease;
    box-shadow:0 6px 14px rgba(8,38,31,.08);
}

.detail-thumbs img:hover{
    transform:translateY(-2px);
    border-color:#fff;
}

.detail-thumbs img.is-active{
    border-color:var(--green);
    box-shadow:
        0 8px 18px rgba(8,38,31,.12),
        0 0 0 3px rgba(20,61,49,.12);
    transform:translateY(-2px);
}

.gallery-arrow{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:50px;
    height:50px;
    border:0;
    border-radius:50%;
    background:rgba(247,241,232,.94);
    box-shadow:0 8px 20px rgba(8,38,31,.14);
    border:1px solid rgba(20,61,49,.08);
    color:var(--green-dark);
    font-size:34px;
    cursor:pointer;
}

.gallery-prev{
    left:18px;
}

.gallery-next{
    right:18px;
}

.detail-layout{
    display:grid;
    grid-template-columns:430px 1fr;
    gap:30px;
    align-items:start;
}

.detail-description,
.detail-features{
    background:#f7f0e4;
    border-radius:22px;
    padding:30px;
    border:1px solid rgba(20,61,49,.07);
    box-shadow:0 12px 26px rgba(8,38,31,.07);
}

.detail-section-head{
    margin-bottom:22px;
}

.detail-section-head h2{
    font-size:34px;
}

.detail-description{
    display:flex;
    flex-direction:column;
}

.detail-description,
.detail-description p,
.description-text{
    font-size:18px;
    line-height:1.9;
}

.detail-features{
    display:flex;
    flex-direction:column;
    gap:0;
}

.detail-feature-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.feature-item{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:14px;
    border-radius:14px;
    background:#ece2d4;
    border:1px solid rgba(20,61,49,.05);
}

.feature-item svg{
    width:22px;
    height:22px;

    stroke:#ff7a1a;
    stroke-width:1.8;

    fill:none;

    stroke-linecap:round;
    stroke-linejoin:round;

    flex-shrink:0;
}

.feature-item small{
    display:block;
    color:var(--muted);
    margin-bottom:5px;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.4px;
}

.feature-item strong{
    font-size:18px;
    line-height:1.15;
    color:var(--green-dark);
}

.contact-box{
    margin-top:40px;
    position:relative;
    overflow:hidden;
    padding:46px;
    border-radius:28px;
    background:
        radial-gradient(circle at top left, rgba(201,168,106,.18), transparent 22%),
        linear-gradient(135deg,#dcc7a7 0%, #c7ae87 100%);
    color:var(--text);
    border:1px solid rgba(20,61,49,.07);
    box-shadow:0 14px 30px rgba(8,38,31,.10);
}

.contact-box::before{
    content:"";
    position:absolute;
    right:-70px;
    top:-70px;
    width:220px;
    height:220px;
    border-radius:50%;
    background:rgba(20,61,49,.12);
}

.contact-box > *{
    position:relative;
    z-index:1;
}

.contact-box h3{
    color:var(--green-dark);
    font-size:52px;
    margin-bottom:18px;
}

.contact-box p{
    max-width:760px;
    margin-bottom:28px;
    font-size:18px;
    color:#2e3d36;
}

.contact-box form{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin-top:30px;
    padding:24px;
    border-radius:22px;
    background:linear-gradient(135deg,#d9c3a1 0%, #cfb38a 100%);
    border:1px solid rgba(20,61,49,.10);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.20),
        0 10px 22px rgba(8,38,31,.08);
}

.contact-box textarea{
    grid-column:1 / -1;
    min-height:180px;
}

.contact-box input,
.contact-box textarea{
    width:100%;
    border:1px solid rgba(20,61,49,.16);
    border-radius:14px;
    padding:18px;
    font-size:16px;
    background:#efe0c8;
}

.contact-box .privacy-check{
    background:rgba(239,224,200,.78);
    padding:14px 16px;
    border-radius:14px;
    border:1px solid rgba(20,61,49,.12);
}

.contact-box button{
    width:fit-content;
}

/* Info pagina */

.hero.info-intro,
.hero.info-wide{
    background:none;
    box-shadow:none;
}

.info-intro{
    position:relative;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:54px;
    align-items:center;
    margin-bottom:54px;
    padding:48px;
    overflow:hidden;
    background:
        radial-gradient(circle at top left, rgba(201,168,106,.18), transparent 24%),
        linear-gradient(135deg,#efdfd2 0%, #e1ceb8 100%);
    border-radius:28px;
    border:1px solid rgba(20,61,49,.07);
    box-shadow:0 12px 26px rgba(8,38,31,.07);
}

.info-intro::before{
    content:"";
    position:absolute;
    right:-80px;
    top:-80px;
    width:240px;
    height:240px;
    border-radius:50%;
    background:rgba(20,61,49,.08);
}

.info-intro img{
    position:relative;
    z-index:1;
    width:100%;
    height:460px;
    object-fit:cover;
    border-radius:24px;
    box-shadow:0 18px 40px rgba(8,38,31,.12);
}

.info-label{
    position:relative;
    z-index:1;
    display:block;
    margin-bottom:12px;
    color:var(--red);
    font-size:13px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:1px;
}

.info-intro h2{
    position:relative;
    z-index:1;
    font-size:58px;
    margin-bottom:22px;
}

.info-intro p{
    position:relative;
    z-index:1;
    font-size:19px;
    margin-bottom:18px;
}

.info-section{
    position:relative;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:54px;
    align-items:center;
    padding:54px;
    overflow:hidden;
    border-radius:28px;
    border:1px solid rgba(20,61,49,.07);
    box-shadow:0 12px 26px rgba(8,38,31,.07);
    margin-top:42px;
}

.info-section-park{
    background:
        linear-gradient(135deg,#e8eadb 0%, #d7dec9 100%);
}

.info-section-area{
    background:
        linear-gradient(135deg,#e3d7c9 0%, #ece2d4 100%);
}

.info-section::before{
    content:"";
    position:absolute;
    width:180px;
    height:180px;
    border-radius:50%;
    background:rgba(255,255,255,.18);
    filter:blur(2px);
}

.info-section-park::before{
    right:-60px;
    bottom:-60px;
}

.info-section-area::before{
    left:-40px;
    top:-40px;
}

.info-dino{
    position:relative;
    background:
        radial-gradient(circle at top right, rgba(201,168,106,.16), transparent 22%),
        linear-gradient(135deg, rgba(63,70,37,.98) 0%, rgba(22,49,39,.96) 100%);
}

.info-dino .info-label,
.info-dino h2,
.info-dino p{
    color:#fff;
}

.info-dino p{
    color:rgba(255,255,255,.86);
}

.info-dino::before{
    content:"";
    position:absolute;
    left:-60px;
    bottom:-60px;
    width:220px;
    height:220px;
    border-radius:50%;
    background:rgba(201,168,106,.12);
}

.info-text,
.info-image{
    position:relative;
    z-index:1;
}

.info-image img{
    width:100%;
    height:400px;
    object-fit:cover;
    border-radius:24px;
    box-shadow:0 18px 40px rgba(8,38,31,.12);
}

.info-text h2{
    font-size:46px;
    margin-bottom:22px;
}

.info-text p{
    font-size:18px;
    margin-bottom:18px;
}

.info-wide{
    position:relative;
    margin-top:50px;
    text-align:center;
    padding:74px 50px;
    overflow:hidden;
    background:
        radial-gradient(circle at 15% 20%, rgba(201,168,106,.18), transparent 18%),
        radial-gradient(circle at 85% 10%, rgba(20,61,49,.10), transparent 16%),
        linear-gradient(135deg,#e4d5be 0%, #d4bf9d 100%);
    border-radius:28px;
    border:1px solid rgba(20,61,49,.07);
    box-shadow:0 12px 26px rgba(8,38,31,.07);
}

.info-wide > *{
    position:relative;
    z-index:1;
}

.info-wide h2{
    font-size:54px;
    margin-bottom:22px;
}

.info-wide p{
    max-width:900px;
    margin:0 auto 20px;
    font-size:19px;
}

/* Responsive */

@media(max-width:1100px){
    .listing-grid,
    .cards{
        grid-template-columns:repeat(2,1fr);
    }

    .info-intro,
    .info-section{
        grid-template-columns:1fr;
    }
}

@media(max-width:900px){
    .detail-layout{
        grid-template-columns:1fr;
    }

    .contact-box{
        padding:30px;
    }

    .contact-box form{
        grid-template-columns:1fr;
    }

    .contact-box textarea{
        grid-column:auto;
    }
}

@media(max-width:700px){
    .listing-hero{
        padding:28px 24px;
        flex-direction:column;
        align-items:flex-start;
    }

    .listing-hero h1{
        font-size:40px;
    }

    .listing-hero-side{
        width:100%;
        min-width:0;
    }

    .listing-grid,
    .cards{
        grid-template-columns:1fr;
    }

    .listing-image{
        height:240px;
    }

    .listing-content-top,
    .listing-card-footer{
        flex-direction:column;
        align-items:flex-start;
    }
}
.description-text{
    max-height:220px;
    overflow:hidden;
    position:relative;
    transition:.35s ease;
}

.description-text.expanded{
    max-height:2000px;
}

.read-more-btn{
    margin-top:18px;
    background:none;
    border:0;
    color:var(--green);
    font-size:15px;
    font-weight:800;
    cursor:pointer;
}
.contact-box .button {
    background: linear-gradient(
        135deg,
        #8dc63f 0%,
        #6ea52f 100%
    );
    
    color: #ffffff;
    
    border: none;
    
    box-shadow:
        0 10px 25px rgba(141, 198, 63, 0.25);
}

.contact-box .button:hover {
    background: linear-gradient(
        135deg,
        #9fd84a 0%,
        #7cb637 100%
    );

    transform: translateY(-2px);

    box-shadow:
        0 16px 35px rgba(141, 198, 63, 0.35);
}
