
:root{
    --bg:#071521;
    --bg-soft:#0d2233;
    --card:#ffffff;
    --card-soft:#f6f8fb;
    --line:rgba(8,21,33,.10);
    --text:#081521;
    --muted:#5b6b7c;
    --gold:#d5a85e;
    --gold-strong:#b6843c;
    --teal:#2b8f8a;
    --success:#d9f8e8;
    --warning:#fff2cf;
    --error:#ffe2e2;
    --success-text:#14613f;
    --warning-text:#8a5a00;
    --error-text:#a22727;
    --radius:24px;
    --shadow:0 30px 80px rgba(8,21,33,.12);
    --max:1200px;
    --container:calc(100% - 32px);
    --font:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    font-family:var(--font);
    color:var(--text);
    background:#f2f5f9;
    line-height:1.5;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.container{
    width:min(var(--max), var(--container));
    margin-inline:auto;
}
.site-header{
    position:sticky;
    top:0;
    z-index:50;
    backdrop-filter:saturate(160%) blur(14px);
    background:rgba(7,21,33,.82);
    border-bottom:1px solid rgba(255,255,255,.08);
}
.topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:14px 0;
}
.brand{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
}
.brand-logo{
    width:118px;
    height:48px;
    flex:0 0 48px;
}
.brand-copy{
    display:flex;
    flex-direction:column;
    min-width:0;
}
.brand-copy strong{
    color:#fff;
    font-size:1rem;
    letter-spacing:.01em;
}
.brand-copy span{
    color:rgba(255,255,255,.68);
    font-size:.82rem;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.main-nav{
    display:flex;
    align-items:center;
    gap:24px;
}
.main-nav a{
    color:rgba(255,255,255,.82);
    font-weight:600;
    font-size:.95rem;
}
.main-nav a.active,
.main-nav a:hover{
    color:#fff;
}
.header-actions{
    display:flex;
    align-items:center;
    gap:14px;
}
.phone-link{
    color:#fff;
    font-weight:700;
    font-size:.95rem;
}
.lang-switch{
    display:inline-flex;
    border:1px solid rgba(255,255,255,.15);
    border-radius:999px;
    padding:4px;
    background:rgba(255,255,255,.04);
}
.lang-switch a{
    padding:6px 10px;
    border-radius:999px;
    color:rgba(255,255,255,.72);
    font-weight:700;
    font-size:.74rem;
}
.lang-switch a.active{
    background:#fff;
    color:var(--bg);
}
.nav-toggle{
    display:none;
    width:44px;
    height:44px;
    border:none;
    border-radius:12px;
    background:rgba(255,255,255,.08);
    padding:0;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:4px;
}
.nav-toggle span{
    display:block;
    width:18px;
    height:2px;
    background:#fff;
    border-radius:99px;
}
.button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:14px 20px;
    border-radius:999px;
    font-weight:700;
    border:none;
    transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.button:hover{transform:translateY(-1px)}
.button-primary{
    color:#06121d;
    background:linear-gradient(135deg, #f2c778, var(--gold));
    box-shadow:0 12px 30px rgba(213,168,94,.24);
}
.button-secondary{
    background:#fff;
    color:var(--text);
    border:1px solid rgba(8,21,33,.12);
}
.header-cta{
    padding:12px 18px;
}
.hero{
    position:relative;
    padding:86px 0 60px;
    background:
        linear-gradient(90deg, rgba(7,21,33,.88) 0%, rgba(7,21,33,.78) 34%, rgba(7,21,33,.54) 58%, rgba(7,21,33,.70) 100%),
        linear-gradient(180deg, rgba(7,21,33,.20) 0%, rgba(7,21,33,.50) 100%),
        url("../img/hero-bg.jpg?v=8") center center / cover no-repeat;
    overflow:hidden;
}
.hero::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(135deg, rgba(255,255,255,.03), transparent 24%),
        linear-gradient(315deg, rgba(255,255,255,.04), transparent 22%);
    pointer-events:none;
}
.hero-small{padding-bottom:48px}
.hero-grid{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,1.22fr) minmax(300px,400px);
    gap:28px;
    align-items:start;
}
.tours-hero-grid{
    grid-template-columns:minmax(0,1.1fr) minmax(280px,.65fr);
}
.hero-copy{
    color:#fff;
    padding-top:28px;
}
.eyebrow,
.section-tag{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 14px;
    border-radius:999px;
    font-size:.82rem;
    font-weight:800;
    letter-spacing:.02em;
    text-transform:uppercase;
}
.eyebrow{
    color:#f7d79a;
    background:rgba(247,215,154,.12);
    border:1px solid rgba(247,215,154,.18);
}
.hero h1{
    margin:18px 0 16px;
    font-size:clamp(2.4rem, 5vw, 4.7rem);
    line-height:.98;
    letter-spacing:-.04em;
    max-width:12ch;
}
.hero p{
    margin:0;
    color:rgba(255,255,255,.78);
    font-size:1.1rem;
    max-width:58ch;
}
.trust-row{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:24px 0 30px;
}
.trust-row span{
    padding:10px 14px;
    border-radius:999px;
    background:rgba(255,255,255,.09);
    color:#fff;
    font-weight:600;
    font-size:.84rem;
    border:1px solid rgba(255,255,255,.09);
}
.hero-buttons,
.button-row{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.quote-card,
.mini-panel,
.info-card,
.service-card,
.tour-card,
.private-tour-card,
.legal-card{
    background:var(--card);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
}
.quote-card{
    max-width:400px;
    width:100%;
    justify-self:end;
    padding:10px;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(12px);
    border:1px solid rgba(255,255,255,.28);
    box-shadow:0 30px 80px rgba(8,21,33,.18);
}
.quote-card-head{
    display:flex;
    flex-direction:column;
    gap:4px;
    margin-bottom:8px;
}
.quote-card-head h2{
    margin:0;
    font-size:1.08rem;
    line-height:1.08;
}
.quote-card-head p{
    margin:0;
    color:var(--muted);
}
.mini-badge{
    display:inline-block;
    margin-bottom:10px;
    background:#ecf7f3;
    color:#1b7250;
    padding:5px 9px;
    border-radius:999px;
    font-size:.8rem;
    font-weight:800;
    text-transform:uppercase;
}
.api-notice,
.flash{
    padding:8px 10px;
    border-radius:16px;
    margin:10px 0;
    font-weight:600;
}
.api-notice{
    background:#fff3de;
    color:#7a5516;
    border:1px solid rgba(190,134,60,.25);
}
.flash-success{background:var(--success);color:var(--success-text)}
.flash-warning{background:var(--warning);color:var(--warning-text)}
.flash-error{background:var(--error);color:var(--error-text)}
.quote-form{
    display:flex;
    flex-direction:column;
    gap:8px;
}
.field-grid{
    display:grid;
    gap:8px;
}
.field-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
label span,
.choice-group legend{
    display:block;
    margin-bottom:4px;
    font-weight:700;
    font-size:.8rem;
}
input,select,textarea{
    width:100%;
    padding:8px 10px;
    border:1px solid rgba(8,21,33,.11);
    border-radius:12px;
    background:#fff;
    color:var(--text);
    outline:none;
    transition:border-color .2s ease, box-shadow .2s ease;
}
input:focus,select:focus,textarea:focus{
    border-color:rgba(213,168,94,.75);
    box-shadow:0 0 0 4px rgba(213,168,94,.12);
}
textarea{resize:vertical;min-height:52px}
.choice-group{
    margin:0;
    padding:0;
    border:none;
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
}
.choice-group label{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
    font-weight:600;
}
.choice-group input{
    width:auto;
    margin:0;
}
.quote-bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
}
.quote-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    justify-content:flex-end;
}
.button-whatsapp{
    background:#25d366;
    color:#062b17;
    border:1px solid rgba(7,94,84,.12);
    box-shadow:0 14px 32px rgba(37,211,102,.22);
}
.button-whatsapp:hover{
    transform:translateY(-1px);
    box-shadow:0 18px 36px rgba(37,211,102,.28);
}
.consent-text{
    color:var(--muted);
    max-width:54ch;
    font-size:.84rem;
}

.quote-card .button{padding:11px 14px;font-size:.92rem}
.quote-card .button-whatsapp{padding:11px 14px}
.hp-field{
    position:absolute !important;
    left:-9999px !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
}
.estimate-teaser{
    width:100%;
    display:block;
    margin-top:10px;
    padding:9px 11px;
    border-radius:16px;
    background:linear-gradient(180deg, #f8fbfd 0%, #eef4f9 100%);
    border:1px solid rgba(8,21,33,.06);
    text-align:left;
}
.estimate-teaser-copy{
    display:flex;
    flex-direction:column;
    gap:2px;
}
.estimate-teaser-copy strong{
    font-size:.92rem;
    line-height:1.2;
}
.estimate-teaser-copy small,
.estimate-box small{
    margin:0;
    color:var(--muted);
    font-size:.82rem;
    line-height:1.35;
}
.estimate-teaser:hover{
    border-color:rgba(213,168,94,.35);
    box-shadow:0 8px 22px rgba(8,21,33,.08);
}
.estimate-teaser:disabled{
    opacity:.72;
    cursor:wait;
}
.estimate-box{
    margin-top:12px;
    padding:0 12px 12px;
    border-radius:16px;
    background:linear-gradient(180deg, #f8fbfd 0%, #eef4f9 100%);
    border:1px solid rgba(8,21,33,.06);
    opacity:0;
    max-height:0;
    overflow:hidden;
    transform:translateY(-8px);
    transition:max-height .35s ease, opacity .25s ease, transform .25s ease, padding-top .25s ease;
}
.estimate-box.is-visible{
    opacity:1;
    max-height:260px;
    padding-top:12px;
    transform:translateY(0);
}
.estimate-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin-top:10px;
}
.estimate-grid > div{
    background:#fff;
    border-radius:16px;
    padding:14px;
    border:1px solid rgba(8,21,33,.06);
}
.estimate-grid span{
    display:block;
    margin-bottom:4px;
    color:var(--muted);
    font-size:.8rem;
}
.estimate-grid strong{
    display:block;
    font-size:1.12rem;
}
.section{
    padding:72px 0;
}
.alt-section{
    background:#f8fbfd;
}
.split-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:28px;
    align-items:stretch;
}
.split-grid.reverse .visual-card{order:0}
.info-card{
    padding:34px;
}
.section-tag{
    color:#936522;
    background:rgba(213,168,94,.14);
    border:1px solid rgba(213,168,94,.18);
}
.info-card h2{
    margin:18px 0 14px;
    font-size:clamp(1.8rem, 4vw, 2.8rem);
    line-height:1.02;
    letter-spacing:-.03em;
}
.info-card p{
    margin:0 0 22px;
    color:var(--muted);
    font-size:1.05rem;
}
.visual-card{
    min-height:360px;
    border-radius:var(--radius);
    position:relative;
    overflow:hidden;
    box-shadow:var(--shadow);
    background-size:cover;
    background-position:center;
}
.visual-transfer{
    background:
        linear-gradient(0deg, rgba(6,18,29,.42), rgba(6,18,29,.14)),
        url("/assets/img/transfer-hero.svg") center/cover no-repeat;
}
.visual-arrival{
    background:
        linear-gradient(0deg, rgba(6,18,29,.42), rgba(6,18,29,.12)),
        url("/assets/img/arrival-hero.svg") center/cover no-repeat;
}
.visual-overlay{
    position:absolute;
    left:22px;
    right:22px;
    bottom:22px;
    color:#fff;
    padding:16px 18px;
    border-radius:16px;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.14);
    backdrop-filter:blur(8px);
    font-weight:800;
}
.section-heading{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:28px;
}
.section-heading h2{
    margin:14px 0 0;
    font-size:clamp(1.8rem, 4vw, 3rem);
    letter-spacing:-.03em;
    line-height:1.02;
}
.section-heading p{
    margin:0;
    color:var(--muted);
    max-width:54ch;
}
.tour-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
}
.tour-card{
    overflow:hidden;
}
.tour-card img{
    aspect-ratio:16/11;
    object-fit:cover;
}
.tour-card-body{
    padding:20px;
}
.tour-meta,
.tour-subtitle{
    color:var(--muted);
    font-size:.93rem;
    margin-bottom:10px;
}
.tour-card h3,
.private-tour-body h3{
    margin:0 0 10px;
    font-size:1.35rem;
    letter-spacing:-.02em;
}
.tour-card p,
.private-tour-body p{
    margin:0 0 20px;
    color:var(--muted);
}
.business-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}
.service-card{
    padding:24px;
}
.service-card h3{
    margin:0 0 10px;
    font-size:1.14rem;
}
.service-card p{
    margin:0;
    color:var(--muted);
}
.mini-panel{
    padding:24px;
    align-self:start;
}
.mini-panel h3{
    margin:0 0 12px;
    font-size:1.6rem;
}
.mini-panel p{
    margin:0 0 18px;
    color:var(--muted);
}
.private-tour-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
}
.private-tour-card{
    overflow:hidden;
}
.private-tour-card img{
    aspect-ratio:16/10;
    object-fit:cover;
}
.private-tour-body{
    padding:22px;
}
.legal-section{
    padding-top:120px;
}
.legal-card{
    padding:36px;
}
.legal-card h1{
    margin:0 0 18px;
    font-size:clamp(2rem, 4vw, 3rem);
    line-height:1.02;
    letter-spacing:-.03em;
}
.legal-card p{
    margin:0;
    color:var(--muted);
    font-size:1.05rem;
}
.site-footer{
    background:#081521;
    color:#fff;
    padding:54px 0 24px;
}
.footer-grid{
    display:grid;
    grid-template-columns:1.3fr repeat(3,.9fr);
    gap:28px;
}
.footer-brand{
    display:flex;
    gap:14px;
}
.footer-brand strong{
    display:block;
    margin-bottom:8px;
    font-size:1rem;
}
.footer-brand p{
    margin:0;
    color:rgba(255,255,255,.72);
}
.site-footer h4{
    margin:0 0 14px;
    font-size:1rem;
}
.footer-links{
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    gap:8px;
}
.footer-links li,
.footer-links a{
    color:rgba(255,255,255,.72);
}
.footer-links a:hover{
    color:#fff;
}
.footer-bottom{
    margin-top:28px;
    padding-top:20px;
    border-top:1px solid rgba(255,255,255,.08);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
    color:rgba(255,255,255,.64);
    font-size:.95rem;
}
.footer-bottom-links{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
}
@media (max-width: 980px){
    .hero-grid{grid-template-columns:1fr;gap:18px}
    .quote-card{justify-self:stretch;max-width:none}
    .hero-copy{padding-top:0}
}

@media (max-width: 1100px){
    .hero-grid,
    .tours-hero-grid,
    .split-grid,
    .tour-grid,
    .business-grid,
    .private-tour-grid,
    .footer-grid{
        grid-template-columns:1fr;
    }
    .hero-copy h1{max-width:14ch}
    .quote-card{
        max-width:none;
        justify-self:stretch;
    }
}
@media (max-width: 920px){
    .main-nav{
        display:none;
        position:absolute;
        left:16px;
        right:16px;
        top:calc(100% + 10px);
        flex-direction:column;
        align-items:flex-start;
        gap:14px;
        padding:14px;
        background:#0b1e2d;
        border:1px solid rgba(255,255,255,.08);
        border-radius:16px;
        box-shadow:var(--shadow);
    }
    .main-nav.open{display:flex}
    .nav-toggle{display:flex}
    .phone-link,.header-cta{display:none}
}
@media (max-width: 760px){
    .hero{padding-top:72px}
    .quote-card,
    .info-card,
    .service-card,
    .mini-panel,
    .private-tour-body,
    .tour-card-body{padding:18px}
    .field-grid.two,
    .field-grid.three,
    .estimate-grid{
        grid-template-columns:1fr;
    }
    .quote-bottom,
    .estimate-teaser,
    .section-heading{
        align-items:flex-start;
        flex-direction:column;
    }
    .quote-actions{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
    .topbar{
        gap:14px;
    }
    .brand-copy span{display:none}
    .button{width:100%}
    .hero-buttons .button,
    .button-row .button{width:100%}
}


.pac-container{z-index:99999 !important;border-radius:14px;box-shadow:0 20px 50px rgba(8,21,33,.18);font-family:var(--font);}
.pac-item{padding:8px 12px;}

.pac-container{z-index:99999 !important}
body.modal-open{overflow:hidden}
.quote-preview-modal{
    position:fixed;
    inset:0;
    z-index:10000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
}
.quote-preview-modal[hidden]{
    display:none !important;
}
.quote-preview-backdrop{
    position:absolute;
    inset:0;
    background:rgba(7,21,33,.68);
    backdrop-filter:blur(5px);
}
.quote-preview-dialog{
    position:relative;
    z-index:1;
    width:min(760px, 100%);
    max-width:760px;
    max-height:calc(100vh - 40px);
    overflow:auto;
    margin:0;
    background:linear-gradient(180deg, #ffffff 0%, #f8fbfd 100%);
    border-radius:28px;
    padding:22px;
    box-shadow:0 30px 90px rgba(8,21,33,.35);
}
.quote-preview-x{
    position:absolute;
    top:12px;
    right:12px;
    width:40px;
    height:40px;
    border:none;
    border-radius:999px;
    background:#eef4f9;
    color:#0b1a24;
    font-size:1.4rem;
    cursor:pointer;
}
.quote-preview-head h3{
    margin:0 0 8px;
    font-size:1.5rem;
    line-height:1.1;
}
.quote-preview-head p{
    margin:0;
    color:var(--muted);
}
.quote-preview-section{margin-top:18px}
.quote-preview-section h4{
    margin:0 0 10px;
    font-size:1rem;
}
.quote-preview-list,
.quote-preview-price{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin:0;
}
.quote-preview-price{grid-template-columns:repeat(3,minmax(0,1fr))}
.quote-preview-item{
    margin:0;
    padding:12px 14px;
    border-radius:16px;
    background:#fff;
    border:1px solid rgba(8,21,33,.07);
}
.quote-preview-item dt{
    margin:0 0 4px;
    color:var(--muted);
    font-size:.8rem;
    font-weight:700;
}
.quote-preview-item dd{
    margin:0;
    font-weight:700;
    line-height:1.35;
    word-break:break-word;
}
.quote-preview-price-card{
    padding:14px;
    border-radius:18px;
    background:#fff;
    border:1px solid rgba(8,21,33,.07);
}
.quote-preview-price-card span{
    display:block;
    color:var(--muted);
    font-size:.8rem;
    margin-bottom:6px;
}
.quote-preview-price-card strong{
    font-size:1.18rem;
}
.quote-preview-price-card.is-total{
    background:linear-gradient(135deg, rgba(213,168,94,.16), rgba(37,211,102,.16));
    border-color:rgba(213,168,94,.28);
}
.quote-preview-actions{
    margin-top:22px;
    display:flex;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}
@media (max-width: 720px){
    .quote-preview-modal{
        padding:12px;
    }
    .quote-preview-list,
    .quote-preview-price{grid-template-columns:1fr}
    .quote-preview-dialog{
        width:100%;
        max-width:100%;
        max-height:calc(100vh - 24px);
        padding:18px 16px 16px;
        border-radius:22px;
    }
}
