/*=========================================
   DOLPHIN RES — PREMIUM HOMEPAGE COMPONENTS
==========================================*/

/*================ HERO SLIDER ================*/

.hero-slider{

    position:absolute;

    inset:0;

    z-index:0;

}

.hero-slide{

    position:absolute;

    inset:0;

    background-size:cover;

    background-position:center;

    opacity:0;

    transition:opacity 1.2s var(--ease);

}

.hero-slide.active{

    opacity:1;

}

.hero-arrow{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    z-index:3;

    width:46px;

    height:46px;

    border-radius:50%;

    border:1px solid rgba(255,255,255,.35);

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

    backdrop-filter:blur(6px);

    color:white;

    font-size:20px;

    display:flex;

    align-items:center;

    justify-content:center;

    cursor:pointer;

    transition:background .3s var(--ease), transform .3s var(--ease);

}

.hero-arrow:hover{

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

    transform:translateY(-50%) scale(1.08);

}

.hero-arrow.prev{ left:24px; }
.hero-arrow.next{ right:24px; }

.hero-dots{

    position:absolute;

    left:50%;

    bottom:96px;

    transform:translateX(-50%);

    z-index:3;

    display:flex;

    gap:10px;

}

.hero-dot{

    width:9px;

    height:9px;

    border-radius:50%;

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

    cursor:pointer;

    transition:background .3s var(--ease), transform .3s var(--ease);

    border:none;

    padding:0;

}

.hero-dot.active{

    background:var(--accent);

    transform:scale(1.3);

}

@media(max-width:900px){

    .hero-arrow{

        width:38px;

        height:38px;

        font-size:16px;

    }

    .hero-arrow.prev{ left:12px; }
    .hero-arrow.next{ right:12px; }

    .hero-dots{ bottom:70px; }

}

/*================ TRUST BAR ================*/

.trust-bar{

    display:flex;

    flex-wrap:wrap;

    justify-content:center;

    align-items:center;

    gap:40px;

    padding:34px 8%;

    background:var(--surface);

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

}

.trust-item{

    display:flex;

    align-items:center;

    gap:10px;

    color:var(--text-muted);

    font-weight:600;

    font-size:15px;

}

.trust-item .trust-icon{

    font-size:20px;

}

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

.gallery-preview{

    padding:100px 8%;

    background:var(--surface);

}

.gallery-preview-grid{

    display:grid;

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

    grid-auto-rows:160px;

    gap:16px;

    max-width:1100px;

    margin:0 auto 40px;

}

.gallery-preview-grid a{

    position:relative;

    overflow:hidden;

    border-radius:14px;

    display:block;

}

.gallery-preview-grid a:nth-child(1){ grid-column:span 2; grid-row:span 2; }

.gallery-preview-grid img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:transform .6s var(--ease);

}

.gallery-preview-grid a:hover img{

    transform:scale(1.1);

}

.gallery-preview-cta{

    text-align:center;

}

@media(max-width:900px){

    .gallery-preview-grid{

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

        grid-auto-rows:130px;

    }

}

/*================ TESTIMONIALS CAROUSEL ================*/

.testimonials{

    position:relative;

    padding:100px 8%;

    background:var(--primary);

    color:white;

    overflow:hidden;

}

.testimonial-track{

    position:relative;

    max-width:720px;

    margin:0 auto;

    min-height:260px;

    touch-action:pan-y;

    border-radius:16px;

}

.testimonial-track:focus-visible{

    outline:2px solid var(--accent);

    outline-offset:6px;

}

.testimonial-slide{

    position:absolute;

    inset:0;

    opacity:0;

    transform:translateY(16px);

    transition:opacity .6s var(--ease), transform .6s var(--ease);

    pointer-events:none;

    text-align:center;

}

.testimonial-slide.active{

    opacity:1;

    transform:translateY(0);

    pointer-events:auto;

    position:relative;

}

.testimonial-avatar{

    width:140px;

    height:140px;

    border-radius:50%;

    margin:0 auto 20px;

    object-fit:cover;

    border:3px solid var(--accent);

}

.testimonial-avatar-fallback{

    width:140px;

    height:140px;

    border-radius:50%;

    margin:0 auto 20px;

    background:var(--accent);

    color:white;

    display:flex;

    align-items:center;

    justify-content:center;

    font-weight:700;

    font-size:22px;

}

.testimonial-quote{

    font-size:19px;

    line-height:1.8;

    color:#E2E8F0;

    margin-bottom:22px;

    font-style:italic;

}

.testimonial-name{

    font-weight:700;

}

.testimonial-role{

    color:#94A3B8;

    font-size:14px;

}

.testimonial-dots{

    display:flex;

    justify-content:center;

    gap:10px;

    margin-top:36px;

}

.testimonial-dot{

    width:9px;

    height:9px;

    border-radius:50%;

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

    border:none;

    cursor:pointer;

    transition:background .3s var(--ease), transform .3s var(--ease);

    padding:0;

}

.testimonial-dot.active{

    background:var(--accent);

    transform:scale(1.3);

}

/*================ AVAILABILITY ================*/

.availability{

    padding:100px 8%;

    background:var(--surface);

}

.availability-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));

    gap:24px;

    max-width:900px;

    margin:0 auto;

}

.availability-card{

    background:var(--background);

    border-radius:16px;

    padding:28px;

    text-align:center;

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

    transition:transform .4s var(--ease), box-shadow .4s var(--ease);

}

.availability-card:hover{

    transform:translateY(-8px);

    box-shadow:var(--shadow);

}

.availability-status{

    display:inline-block;

    padding:5px 14px;

    border-radius:999px;

    font-size:12px;

    font-weight:700;

    margin-bottom:14px;

}

.availability-status.open{

    background:#DCFCE7;

    color:#16A34A;

}

.availability-status.limited{

    background:#FEF3C7;

    color:#D97706;

}

.availability-card h3{

    color:var(--primary);

    margin-bottom:8px;

}

.availability-card .count{

    font-size:28px;

    font-weight:700;

    color:var(--accent);

    margin-bottom:6px;

}

.availability-card p{

    color:var(--text-muted);

    font-size:14px;

}

/*================ LATEST NEWS ================*/

.news{

    padding:100px 8%;

    background:var(--background);

}

.news-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:30px;

}

.news-card{

    background:var(--surface);

    border-radius:16px;

    overflow:hidden;

    box-shadow:var(--shadow);

    transition:transform .4s var(--ease), box-shadow .4s var(--ease);

}

.news-card:hover{

    transform:translateY(-8px);

    box-shadow:var(--shadow-hover);

}

.news-card-body{

    padding:26px;

}

.news-date{

    color:var(--accent);

    font-size:13px;

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:.5px;

    margin-bottom:10px;

    display:block;

}

.news-card h3{

    color:var(--primary);

    margin-bottom:10px;

    font-size:18px;

}

.news-card p{

    color:var(--text-muted);

    font-size:14px;

    line-height:1.7;

}

/*================ MAP SECTION ================*/

.home-map{

    padding:100px 8%;

    background:var(--surface);

}

.home-map-frame{

    max-width:1000px;

    margin:0 auto;

    border-radius:16px;

    overflow:hidden;

    box-shadow:var(--shadow);

}

.home-map-frame iframe{

    width:100%;

    height:400px;

    border:0;

    display:block;

}

/*================ FINAL CTA ================*/

.final-cta{

    position:relative;

    text-align:center;

    padding:110px 8%;

    background:linear-gradient(135deg, var(--primary), var(--primary-light));

    color:white;

    overflow:hidden;

}

.final-cta::before{

    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 15% 20%, rgba(220,38,38,.2), transparent 45%),
        radial-gradient(circle at 85% 80%, rgba(220,38,38,.16), transparent 45%);
    pointer-events:none;

}

.final-cta h2{

    position:relative;

    font-size:38px;

    margin-bottom:16px;

}

.final-cta p{

    position:relative;

    max-width:520px;

    margin:0 auto 34px;

    line-height:1.8;

    color:#E2E8F0;

}

/*================ PREMIUM FOOTER ================*/

.premium-footer{

    background:var(--primary);

    color:white;

    padding:80px 8% 0;

}

.footer-grid{

    display:grid;

    grid-template-columns:2fr 1fr 1fr;

    gap:40px;

    padding-bottom:50px;

    border-bottom:1px solid rgba(255,255,255,.1);

}

.footer-col h4{

    font-size:16px;

    margin-bottom:20px;

    color:white;

}

.footer-col p{

    color:#94A3B8;

    font-size:14px;

    line-height:1.8;

}

.footer-col ul{

    list-style:none;

}

.footer-col ul li{

    margin-bottom:12px;

}

.footer-col ul a{

    color:#94A3B8;

    text-decoration:none;

    font-size:14px;

    transition:color .3s var(--ease);

}

.footer-col ul a:hover{

    color:var(--accent);

}

.footer-bottom{

    display:flex;

    flex-wrap:wrap;

    justify-content:space-between;

    align-items:center;

    gap:14px;

    padding:26px 0;

    font-size:13px;

    color:#94A3B8;

}

.footer-bottom-links{

    display:flex;

    gap:20px;

}

.footer-bottom-links a{

    color:#94A3B8;

    text-decoration:none;

    transition:color .3s var(--ease);

}

.footer-bottom-links a:hover{

    color:var(--accent);

}

@media(max-width:900px){

    .footer-grid{

        grid-template-columns:1fr 1fr;

    }

    .footer-bottom{

        flex-direction:column;

        text-align:center;

    }

}

@media(max-width:520px){

    .footer-grid{

        grid-template-columns:1fr;

    }

}

/*================ SECTION-TITLE ON DARK BACKGROUND ================*/

.testimonials .section-title h2,
.final-cta h2{

    color:white;

}

.testimonials .section-title p{

    color:#8e9caf;

}
