:root{
    --pf-green:#2f3f2f;
    --pf-green-dark:#1f2b20;
    --pf-green-soft:#526b50;
    --pf-cream:#f7f1e7;
    --pf-cream-dark:#eadfcd;
    --pf-gold:#b99a5f;
    --pf-violet:#7b4f8f;
    --pf-violet-dark:#563567;
    --pf-white:#ffffff;
    --pf-black:#111111;
    --pf-text:#3b3b35;
    --pf-muted:#777267;
    --pf-shadow:0 25px 70px rgba(0,0,0,.14);
    --pf-radius:28px;
}

/* ================= RESET ================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Montserrat',sans-serif;
    background:var(--pf-cream);
    color:var(--pf-text);
    overflow-x:hidden;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
}

/* ================= GLOBAL ================= */

.pf-container{
    width:min(1180px,92%);
    margin:auto;
}

section{
    position:relative;
}

.pf-title{
    text-align:center;
    max-width:820px;
    margin:0 auto 60px;
}

.pf-title span,
.pf-intro span,
.pf-cta span,
.pf-hero span{
    display:inline-block;
    font-size:.78rem;
    letter-spacing:3px;
    font-weight:700;
    color:var(--pf-gold);
    text-transform:uppercase;
    margin-bottom:18px;
}

.pf-title h2,
.pf-intro h2{
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(2.4rem,5vw,4.8rem);
    line-height:1;
    color:var(--pf-green-dark);
    margin-bottom:22px;
}

.pf-title p,
.pf-intro p{
    font-size:1.05rem;
    line-height:1.9;
    color:var(--pf-muted);
}

/* ================= HERO ================= */

.pf-hero{
    min-height:100vh;
    background:
        linear-gradient(rgba(20,30,20,.45),rgba(20,30,20,.65)),
        url('/img/aquiles.png');
    background-size:cover;
    background-position:center;
    display:flex;
    align-items:center;
    color:#fff;
    padding:160px 0 100px;
}

.pf-overlay{
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 20% 30%,rgba(185,154,95,.22),transparent 35%),
        linear-gradient(90deg,rgba(31,43,32,.92),rgba(31,43,32,.45),rgba(31,43,32,.15));
}

.pf-hero .pf-container{
    position:relative;
    z-index:2;
    max-width:1180px;
}

.pf-hero h1{
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(3.4rem,8vw,7.8rem);
    line-height:.92;
    max-width:780px;
    margin-bottom:30px;
    color:#fff;
}

.pf-hero p{
    max-width:640px;
    font-size:1.08rem;
    line-height:1.9;
    color:rgba(255,255,255,.88);
    margin-bottom:38px;
}

/* ================= BUTTONS ================= */

.pf-buttons{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
    align-items:center;
}

.pf-btn-primary,
.pf-btn-secondary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:54px;
    padding:0 30px;
    border-radius:999px;
    font-weight:700;
    font-size:.9rem;
    letter-spacing:.5px;
    transition:.35s ease;
}

.pf-btn-primary{
    background:var(--pf-gold);
    color:#fff;
    box-shadow:0 16px 35px rgba(185,154,95,.35);
}

.pf-btn-primary:hover{
    background:#a8894f;
    color:#fff;
    transform:translateY(-4px);
}

.pf-btn-secondary{
    border:1px solid rgba(255,255,255,.55);
    color:#fff;
    backdrop-filter:blur(8px);
}

.pf-btn-secondary:hover{
    background:#fff;
    color:var(--pf-green-dark);
    transform:translateY(-4px);
}

/* ================= INTRO ================= */

.pf-intro{
    padding:110px 0;
    background:var(--pf-cream);
    text-align:center;
}

.pf-intro .pf-container{
    max-width:900px;
}

/* ================= QUOTE ================= */

.pf-quote{
    padding:120px 0;
    background:var(--pf-green-dark);
    text-align:center;
    overflow:hidden;
}

.pf-quote:before{
    content:"";
    position:absolute;
    width:420px;
    height:420px;
    border-radius:50%;
    background:rgba(185,154,95,.13);
    top:-120px;
    right:-120px;
}

.pf-quote h2{
    position:relative;
    z-index:2;
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(3rem,7vw,6.5rem);
    line-height:.95;
    color:#fff;
}

.pf-quote-light{
    background:var(--pf-cream-dark);
}

.pf-quote-light h2{
    color:var(--pf-green-dark);
}

/* ================= BENEFITS / CARDS ================= */

.pf-benefits,
.pf-pack{
    padding:120px 0;
    background:#fff;
}

.pf-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
}

.pf-card{
    background:var(--pf-cream);
    border-radius:var(--pf-radius);
    padding:42px 34px;
    min-height:310px;
    box-shadow:0 14px 45px rgba(0,0,0,.06);
    border:1px solid rgba(185,154,95,.18);
    transition:.35s ease;
    position:relative;
    overflow:hidden;
}

.pf-card:before{
    content:"";
    position:absolute;
    width:140px;
    height:140px;
    border-radius:50%;
    background:rgba(123,79,143,.08);
    right:-60px;
    top:-60px;
    transition:.35s ease;
}

.pf-card:hover{
    transform:translateY(-10px);
    box-shadow:var(--pf-shadow);
}

.pf-card:hover:before{
    transform:scale(1.4);
}

.pf-card i{
    font-size:2.4rem;
    color:var(--pf-violet);
    margin-bottom:24px;
}

.pf-card h3{
    font-family:'Cormorant Garamond',serif;
    font-size:2rem;
    color:var(--pf-green-dark);
    margin-bottom:14px;
}

.pf-card p{
    color:var(--pf-muted);
    line-height:1.8;
    font-size:.98rem;
}

/* ================= RULES ================= */

.pf-rules{
    padding:120px 0;
    background:var(--pf-green-dark);
}

.pf-rules .pf-title h2,
.pf-rules .pf-title p{
    color:#fff;
}

.pf-rules .pf-title p{
    color:rgba(255,255,255,.75);
}

.pf-rules-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}

.pf-rule{
    background:rgba(255,255,255,.07);
    border:1px solid rgba(255,255,255,.12);
    border-radius:24px;
    padding:34px 28px;
    min-height:270px;
    backdrop-filter:blur(10px);
    transition:.35s ease;
}

.pf-rule:hover{
    background:rgba(255,255,255,.12);
    transform:translateY(-8px);
}

.pf-rule i{
    font-size:2rem;
    color:var(--pf-gold);
    margin-bottom:20px;
}

.pf-rule h3{
    font-family:'Cormorant Garamond',serif;
    font-size:1.75rem;
    color:#fff;
    margin-bottom:14px;
}

.pf-rule p{
    color:rgba(255,255,255,.76);
    line-height:1.75;
    font-size:.95rem;
}

/* ================= INCLUDES ================= */

.pf-includes{
    padding:120px 0;
    background:var(--pf-cream);
}

.pf-includes-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}

.pf-includes-grid div{
    background:#fff;
    border-radius:18px;
    padding:22px 20px;
    font-weight:600;
    color:var(--pf-green-dark);
    box-shadow:0 10px 30px rgba(0,0,0,.05);
    border:1px solid rgba(185,154,95,.16);
}

.pf-includes-grid i{
    color:var(--pf-gold);
    margin-right:8px;
}

/* ================= TIPS ================= */

.pf-tips{
    padding:120px 0;
    background:#fff;
}

.pf-tips-list{
    max-width:980px;
    margin:auto;
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:22px;
}

.pf-tips-list div{
    background:var(--pf-cream);
    border-radius:22px;
    padding:28px;
    display:flex;
    gap:18px;
    align-items:flex-start;
    line-height:1.75;
    color:var(--pf-muted);
    font-weight:500;
}

.pf-tips-list i{
    color:var(--pf-violet);
    font-size:1.6rem;
    margin-top:4px;
}

/* ================= FAQ ================= */

.pf-faq{
    padding:120px 0;
    background:var(--pf-cream);
}

.accordion{
    max-width:900px;
    margin:auto;
}

.accordion-item{
    border:0;
    margin-bottom:16px;
    border-radius:18px !important;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(0,0,0,.06);
}

.accordion-button{
    background:#fff;
    color:var(--pf-green-dark);
    font-weight:700;
    padding:24px 28px;
    box-shadow:none !important;
}

.accordion-button:not(.collapsed){
    background:var(--pf-green-dark);
    color:#fff;
}

.accordion-body{
    padding:26px 28px;
    line-height:1.8;
    color:var(--pf-muted);
}

/* ================= GALLERY ================= */

.pf-gallery{
    padding:120px 0;
    background:#fff;
}

.pf-gallery h2{
    text-align:center;
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(2.5rem,5vw,4.8rem);
    color:var(--pf-green-dark);
    margin-bottom:60px;
}

.pf-gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}

.pf-gallery-grid img{
    width:100%;
    height:330px;
    object-fit:cover;
    border-radius:26px;
    box-shadow:0 18px 50px rgba(0,0,0,.12);
    transition:.4s ease;
}

.pf-gallery-grid img:hover{
    transform:scale(1.035);
}

/* ================= CTA ================= */

.pf-cta{
    padding:150px 0;
    background:
        linear-gradient(rgba(31,43,32,.82),rgba(31,43,32,.9)),
        url('/img/cabana-principal.jpeg');
    background-size:cover;
    background-position:center;
    text-align:center;
    color:#fff;
}

.pf-cta .pf-container{
    max-width:900px;
}

.pf-cta h2{
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(2.8rem,6vw,6rem);
    line-height:.98;
    margin-bottom:26px;
}

.pf-cta p{
    font-size:1.05rem;
    line-height:1.9;
    color:rgba(255,255,255,.82);
    margin-bottom:38px;
}

.pf-cta .pf-buttons{
    justify-content:center;
}

/* ================= COMMITMENT ================= */

.pf-commitment{
    padding:120px 0;
    background:var(--pf-cream);
}

.pf-box{
    background:#fff;
    border-radius:28px;
    padding:42px 34px;
    height:100%;
    box-shadow:0 15px 45px rgba(0,0,0,.07);
    border:1px solid rgba(185,154,95,.18);
    transition:.35s ease;
}

.pf-box:hover{
    transform:translateY(-8px);
    box-shadow:var(--pf-shadow);
}

.pf-box i{
    font-size:2.3rem;
    color:var(--pf-gold);
    margin-bottom:22px;
}

.pf-box h3{
    font-family:'Cormorant Garamond',serif;
    font-size:2rem;
    color:var(--pf-green-dark);
    margin-bottom:16px;
}

.pf-box p{
    color:var(--pf-muted);
    line-height:1.85;
}

/* ================= ENDING ================= */

.pf-ending{
    padding:120px 0;
    background:var(--pf-green-dark);
    text-align:center;
    color:#fff;
}

.pf-ending h2{
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(3rem,7vw,6rem);
    line-height:.95;
    margin-bottom:12px;
}

.pf-ending h3{
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(2.5rem,6vw,5rem);
    color:var(--pf-gold);
    margin-bottom:22px;
}

.pf-ending p{
    color:rgba(255,255,255,.78);
    font-size:1.05rem;
}

/* ================= RESPONSIVE ================= */

@media(max-width:1100px){

    .pf-grid,
    .pf-rules-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .pf-includes-grid{
        grid-template-columns:repeat(3,1fr);
    }

    .pf-gallery-grid{
        grid-template-columns:repeat(2,1fr);
    }

}

@media(max-width:768px){

    .pf-hero{

        min-height:90vh;

        padding:140px 0 80px;

        text-align:left;

        background-size:cover;

        /* Mueve la imagen hacia la derecha */
        background-position:78% center;

    }

    .pf-overlay{
        background:
        linear-gradient(
            rgba(20,30,20,.72),
            rgba(20,30,20,.72)
        );
    }

    .pf-hero h1{
        font-size:3rem;
    }

    .pf-hero p{
        font-size:.95rem;
    }



    .pf-buttons{
        flex-direction:column;
        align-items:stretch;
    }

    .pf-btn-primary,
    .pf-btn-secondary{
        width:100%;
    }

    .pf-intro,
    .pf-benefits,
    .pf-rules,
    .pf-includes,
    .pf-pack,
    .pf-tips,
    .pf-faq,
    .pf-gallery,
    .pf-commitment{
        padding:80px 0;
    }

    .pf-grid,
    .pf-rules-grid,
    .pf-includes-grid,
    .pf-tips-list,
    .pf-gallery-grid{
        grid-template-columns:1fr;
    }

    .pf-card,
    .pf-rule,
    .pf-box{
        min-height:auto;
    }

    .pf-gallery-grid img{
        height:260px;
    }

    .pf-quote,
    .pf-cta,
    .pf-ending{
        padding:90px 0;
    }

}

@media(max-width:480px){

    .pf-container{
        width:90%;
    }

    .pf-hero h1{
        font-size:3rem;
    }

    .pf-title h2,
    .pf-intro h2{
        font-size:2.6rem;
    }

    .pf-card,
    .pf-rule,
    .pf-box{
        padding:32px 24px;
        border-radius:22px;
    }

    .pf-includes-grid div{
        padding:20px 18px;
    }

    .pf-gallery-grid img{
        height:230px;
        border-radius:20px;
    }

}