/* ===================================================
   GT CONCEPT — Dark Editorial Garage
   Organic, asymmetric, hand-crafted feel
   Fonts: Fraunces (serif display) + Outfit (sans body)
   =================================================== */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root {
    --serif: 'Fraunces', Georgia, serif;
    --sans: 'Outfit', system-ui, sans-serif;
    --gold: #c5952c;
    --gold-l: #e2b44d;
    --gold-d: #8a6418;
    --cream: #f0e6d2;
    --bg: #080604;
    --bg2: #0e0c09;
    --bg3: #151210;
    --txt: #d6d0c5;
    --txt2: #8a847a;
    --txt3: #4a453d;
    --ease: cubic-bezier(.4,0,.2,1);
}

html { scroll-behavior: smooth }
body {
    font-family: var(--sans);
    font-weight: 400;
    color: var(--txt);
    background: var(--bg);
    line-height: 1.6;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}
img { max-width:100%; display:block }
a { color:inherit; text-decoration:none }
ul { list-style:none }
button { cursor:pointer; border:none; background:none; font:inherit; color:inherit }
input,select,textarea { font:inherit; color:inherit }
fieldset { border:none; padding:0 }

/* --- Grain overlay --- */
.grain {
    position:fixed; inset:0; z-index:9999; pointer-events:none;
    opacity:.04;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
    background-size: 150px;
}

/* --- Layout --- */
.wrap { max-width:1060px; margin:0 auto; padding:0 1.5rem }
.wrap--narrow { max-width:640px }

/* --- Editorial Typography --- */
.t-editorial {
    font-family: var(--serif);
    font-weight: 900;
    font-size: clamp(2.8rem, 10vw, 5.5rem);
    line-height: .9;
    letter-spacing: -.03em;
    color: var(--cream);
    font-style: italic;
    margin-bottom: 1rem;
}
.t-lead {
    font-weight: 300;
    font-size: clamp(.95rem, 2.5vw, 1.15rem);
    color: var(--txt2);
    max-width: 440px;
    line-height: 1.7;
    margin-bottom: 2.5rem;
}

/* --- Buttons --- */
.btn-main {
    display: inline-flex; align-items:center; gap:.6rem;
    padding: .9rem 2.2rem;
    background: var(--gold);
    color: #000;
    font-weight: 600; font-size: .9rem;
    border-radius: 4px;
    transition: all .3s var(--ease);
    letter-spacing: .01em;
}
.btn-main:hover { background: var(--gold-l); transform:translateY(-1px) }
.btn-main:active { transform:translateY(0) }
.btn-main--full { width:100%; justify-content:center; padding:1rem }
.btn-main:disabled { opacity:.3; cursor:not-allowed; transform:none !important }

.btn-wpp {
    display: inline-flex; align-items:center; gap:.5rem;
    padding: .9rem 1.8rem;
    border: 1px solid var(--txt3);
    color: var(--txt);
    font-weight: 500; font-size: .9rem;
    border-radius: 4px;
    transition: all .3s var(--ease);
}
.btn-wpp:hover { border-color: var(--gold); color: var(--gold-l) }

/* ============================
   NAVIGATION
   ============================ */
.nav {
    position:fixed; top:0; left:0; right:0; z-index:1000;
    padding: .75rem 0;
    transition: background .5s, backdrop-filter .5s;
}
.nav--scrolled {
    background: rgba(8,6,4,.9);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.nav__inner {
    display:flex; align-items:center; justify-content:space-between;
    max-width:1060px; margin:0 auto; padding:0 1.5rem;
}
.nav__logo { height:40px; border-radius:4px }
.nav__toggle {
    display:flex; flex-direction:column; gap:6px; padding:8px; z-index:1001;
}
.nav__toggle span {
    width:20px; height:1.5px; background:var(--txt); border-radius:1px;
    transition: all .3s var(--ease); transform-origin:center;
}
.nav__toggle.active span:first-child { transform:translateY(3.75px) rotate(45deg) }
.nav__toggle.active span:last-child { transform:translateY(-3.75px) rotate(-45deg) }

.nav__menu {
    position:fixed; top:0; right:-100%; width:70%; max-width:280px; height:100vh;
    background:rgba(8,6,4,.98); backdrop-filter:blur(20px);
    display:flex; flex-direction:column; padding:5rem 2rem 2rem; gap:.5rem;
    transition: right .4s var(--ease); border-left:1px solid rgba(255,255,255,.04);
}
.nav__menu.open { right:0 }
.nav__menu a {
    display:block; padding:.8rem 0; font-size:1rem; font-weight:300;
    color:var(--txt2); transition:color .2s;
    border-bottom:1px solid rgba(255,255,255,.03);
}
.nav__menu a:hover { color:var(--cream) }
.nav__wpp { color:var(--gold) !important }

/* ============================
   HERO — editorial, cinematic
   ============================ */
.hero {
    min-height:100vh; min-height:100svh;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; position:relative; overflow:hidden;
    padding: 5rem 1.5rem 3rem;
}

/* Mosaic */
.mosaic {
    position:absolute; inset:-50%; z-index:0;
    display:flex; flex-direction:column; gap:10px;
    transform: rotate(-20deg);
    pointer-events:none;
}
.mosaic-row { display:flex; gap:10px; width:max-content; will-change:transform }
.mosaic-row--left { animation: mL 50s linear infinite }
.mosaic-row--right { animation: mR 55s linear infinite }
.mosaic-row--left-slow { animation: mL 65s linear infinite }
.mosaic-row--right-slow { animation: mR 60s linear infinite }
@keyframes mL { to { transform:translateX(-50%) } }
@keyframes mR { from { transform:translateX(-50%) } to { transform:translateX(0) } }

.mosaic-img {
    width:200px; height:140px; object-fit:cover; border-radius:6px;
    flex-shrink:0; opacity:.45; filter:saturate(.4) brightness(.6);
}

/* Fade over mosaic — asymmetric gradient */
.hero__fade {
    position:absolute; inset:0; z-index:1; pointer-events:none;
    background:
        linear-gradient(180deg, rgba(8,6,4,.2) 0%, rgba(8,6,4,.5) 40%, rgba(8,6,4,.95) 80%, var(--bg) 100%),
        radial-gradient(ellipse at 30% 40%, rgba(197,149,44,.06), transparent 60%);
}

.hero__content { position:relative; z-index:2; max-width:600px; margin-bottom:2rem }

.hero__logo {
    width:160px; margin:0 auto 1.5rem; border-radius:8px;
    filter:drop-shadow(0 0 60px rgba(197,149,44,.12));
    animation: fadeUp .8s var(--ease) both;
}

.hero__tagline {
    font-weight:400; font-size:.8rem; letter-spacing:.2em; text-transform:uppercase;
    color:var(--gold); margin-bottom:1rem;
    animation: fadeUp .8s .1s var(--ease) both;
}
.hero__title {
    font-family:var(--serif); font-weight:900; font-style:italic;
    line-height:.9; letter-spacing:-.03em; margin-bottom:1.5rem;
}
.hero__line1 {
    display:block; font-size:clamp(2.2rem, 8vw, 4.5rem);
    color:var(--cream);
    animation: fadeUp .8s .2s var(--ease) both;
}
.hero__line2 {
    display:block; font-size:clamp(2.2rem, 8vw, 4.5rem);
    color:var(--gold);
    animation: fadeUp .8s .35s var(--ease) both;
}

.hero__sub {
    font-weight:300; font-size:.9rem; color:var(--txt2); line-height:1.7;
    margin-bottom:2rem;
    animation: fadeUp .8s .45s var(--ease) both;
}

.hero__actions {
    display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap;
    animation: fadeUp .8s .6s var(--ease) both;
}

.hero__arrow {
    position:absolute; bottom:1.5rem; left:50%; transform:translateX(-50%);
    z-index:2; font-size:1.2rem; color:var(--txt3);
    animation: bob 2.5s ease-in-out infinite;
}
@keyframes bob { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(6px)} }
@keyframes fadeUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }

/* ============================
   SECTIONS
   ============================ */
.sec { padding: 5rem 0; position:relative }
.sec--dark { background: var(--bg2) }

.sec__intro { margin-bottom: 2.5rem }

/* ============================
   PACKAGES — editorial cards
   Each card has a thick gold left stripe
   ============================ */
.packages__grid { display:grid; gap:1.25rem; grid-template-columns:1fr }

.pkg-card {
    position:relative;
    background: var(--bg3);
    border-radius: 2px 12px 12px 2px;
    padding: 1.75rem 1.5rem 1.5rem;
    border-left: 3px solid var(--txt3);
    transition: all .4s var(--ease);
}
.pkg-card:hover { border-left-color: var(--gold); transform:translateX(4px) }
.pkg-card--highlight {
    border-left: 4px solid var(--gold);
    background: linear-gradient(135deg, rgba(197,149,44,.06), var(--bg3) 60%);
}

.pkg-card__badge {
    display:inline-block;
    font-size:.65rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
    color:var(--gold); margin-bottom:.5rem;
}

.pkg-card__name {
    font-family:var(--serif); font-size:1.6rem; font-weight:700;
    color:var(--cream); margin-bottom:.25rem;
}
.pkg-card__price {
    font-family:var(--serif); font-size:2.8rem; font-weight:300;
    color:var(--gold-l); line-height:1; margin-bottom:.15rem;
}
.pkg-card__price span { font-size:1.2rem; color:var(--txt2); margin-right:2px }
.pkg-card__suv { font-size:.75rem; color:var(--txt3); margin-bottom:1rem }

.pkg-card__features { display:flex; flex-direction:column; gap:.4rem; margin-bottom:1.25rem }
.pkg-card__features li {
    font-size:.85rem; color:var(--txt2); padding-left:1rem;
    position:relative;
}
.pkg-card__features li::before {
    content:''; position:absolute; left:0; top:.55em;
    width:4px; height:4px; border-radius:50%; background:var(--gold-d);
}

.pkg-card__cta {
    display:inline-block; padding:.6rem 1.4rem; font-size:.8rem; font-weight:600;
    letter-spacing:.04em; text-transform:uppercase;
    border:1px solid var(--txt3); border-radius:4px; color:var(--txt);
    transition:all .3s;
}
.pkg-card__cta:hover { border-color:var(--gold); color:var(--gold-l) }
.pkg-card--highlight .pkg-card__cta {
    background:var(--gold); border-color:var(--gold); color:#000;
}
.pkg-card--highlight .pkg-card__cta:hover { background:var(--gold-l) }

.packages__obs {
    font-size:.8rem; color:var(--txt3); margin-top:1.5rem;
    padding-left:1rem; border-left:2px solid var(--txt3);
}

/* ============================
   ADDONS — clean table-like
   ============================ */
.addons__categories { display:grid; gap:2rem; grid-template-columns:1fr }

.addon-cat { }
.addon-cat__title {
    font-family:var(--serif); font-size:1.1rem; font-weight:600; font-style:italic;
    color:var(--gold); margin-bottom:.75rem;
    padding-bottom:.5rem; border-bottom:1px solid rgba(255,255,255,.04);
}
.addon-item {
    display:flex; justify-content:space-between; align-items:center;
    padding:.65rem 0; border-bottom:1px solid rgba(255,255,255,.03);
    gap:1.5rem;
}
.addon-item:last-child { border-bottom:none }
.addon-item__name { font-size:.88rem; color:var(--txt2) }
.addon-item__price { font-family:var(--serif); font-size:1.1rem; font-weight:600; color:var(--cream); margin-right:5%; white-space:nowrap }

/* ============================
   DUAL (location options)
   ============================ */
.dual {
    display:grid; grid-template-columns:1fr; gap:0;
    border:1px solid rgba(255,255,255,.04); border-radius:12px;
    overflow:hidden; background:var(--bg2);
}
.dual__block { padding:2rem 1.5rem }
.dual__block--accent {
    background:linear-gradient(135deg, rgba(197,149,44,.05), transparent);
    border-top:1px solid rgba(255,255,255,.04);
}
.dual__divider { display:none }
.dual__eyebrow {
    display:inline-block; font-size:.7rem; font-weight:500;
    color:var(--gold); letter-spacing:.1em; text-transform:uppercase;
    margin-bottom:.5rem;
}
.dual__title {
    font-family:var(--serif); font-size:1.4rem; font-weight:700;
    color:var(--cream); margin-bottom:.5rem;
}
.dual__block p { font-size:.88rem; color:var(--txt2); line-height:1.7 }

/* ============================
   BOOKING FORM
   ============================ */
.bk-form { margin-top:1rem }
.bk-field-group {
    margin-bottom:2rem; padding-bottom:2rem;
    border-bottom:1px solid rgba(255,255,255,.04);
}
.bk-field-group:last-of-type { border-bottom:none }

.bk-field-group legend {
    font-family:var(--serif); font-size:1.1rem; font-weight:600;
    color:var(--cream); margin-bottom:1rem; font-style:italic;
}
.legend-hint { font-family:var(--sans); font-style:normal; font-weight:300; font-size:.75rem; color:var(--txt3) }

/* Pkg selector */
.pkg-selector { display:grid; gap:.5rem }
.pkg-sel-btn {
    display:flex; justify-content:space-between; align-items:center;
    padding:.85rem 1rem;
    background:transparent;
    border:1px solid rgba(255,255,255,.06);
    border-radius:6px; transition:all .25s;
}
.pkg-sel-btn:hover { border-color:rgba(255,255,255,.12) }
.pkg-sel-btn.active { border-color:var(--gold); background:rgba(197,149,44,.04) }
.pkg-sel-btn__name { font-weight:500; font-size:.9rem }
.pkg-sel-btn__price { font-family:var(--serif); font-size:1.2rem; font-weight:600; color:var(--gold-l) }

/* Addon selector */
.addon-selector { display:flex; flex-direction:column; gap:.4rem }
.addon-chk {
    display:flex; align-items:center; justify-content:space-between;
    padding:.7rem .9rem; border:1px solid rgba(255,255,255,.05);
    border-radius:6px; transition:all .2s; cursor:pointer;
}
.addon-chk:hover { border-color:rgba(255,255,255,.1) }
.addon-chk.active { border-color:var(--gold); background:rgba(197,149,44,.03) }
.addon-chk__left { display:flex; align-items:center; gap:.6rem }
.addon-chk__box {
    width:16px; height:16px; border-radius:3px;
    border:1.5px solid var(--txt3); transition:all .2s;
    display:flex; align-items:center; justify-content:center;
}
.addon-chk.active .addon-chk__box { background:var(--gold); border-color:var(--gold) }
.addon-chk.active .addon-chk__box::after {
    content:''; width:8px; height:8px;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 10 10' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 5l2.5 2.5L8 3' stroke='%23000' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-size:contain; background-repeat:no-repeat;
}
.addon-chk__name { font-size:.85rem }
.addon-chk__price { font-family:var(--serif); font-size:1rem; font-weight:500; color:var(--gold-l) }

/* Form fields — underline style */
.form-row { display:grid; gap:1rem; margin-bottom:1rem; grid-template-columns:1fr }
.form-field { display:flex; flex-direction:column; gap:.3rem }
.form-field label, .form-label-solo {
    font-size:.7rem; font-weight:500; letter-spacing:.08em;
    text-transform:uppercase; color:var(--txt3);
}
.form-label-solo { margin-bottom:.6rem; display:block }

.form-field input, .form-field select {
    padding:.7rem 0; background:transparent;
    border:none; border-bottom:1px solid rgba(255,255,255,.08);
    color:var(--txt); font-size:.95rem; transition:border-color .3s;
    border-radius:0; -webkit-appearance:none;
}
.form-field input:focus, .form-field select:focus {
    outline:none; border-bottom-color:var(--gold);
}
.form-field input::placeholder { color:var(--txt3) }
.form-field select { cursor:pointer }
.form-field select option { background:var(--bg2); color:var(--txt) }

.form-hint { font-size:.72rem; color:var(--txt3); margin-top:.5rem }

/* Time grid */
.time-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.4rem }
.time-btn {
    padding:.6rem .4rem;
    border:1px solid rgba(255,255,255,.06); border-radius:4px;
    font-size:.95rem; font-weight:300; text-align:center;
    transition:all .2s;
}
.time-btn:hover { border-color:rgba(255,255,255,.12) }
.time-btn.active { border-color:var(--gold); color:var(--gold-l); background:rgba(197,149,44,.04) }

/* Location toggle */
.loc-toggle { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; margin-bottom:.75rem }
.loc-btn {
    padding:.8rem .5rem; text-align:center; font-size:.85rem; font-weight:400;
    border:1px solid rgba(255,255,255,.06); border-radius:6px;
    transition:all .2s;
}
.loc-btn:hover { border-color:rgba(255,255,255,.1) }
.loc-btn.active { border-color:var(--gold); color:var(--gold-l) }

.address-field { animation: slideIn .3s var(--ease) }
@keyframes slideIn { from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:translateY(0)} }

/* Summary */
.summary {
    background:var(--bg3); border-radius:8px; padding:1.25rem; margin:1.5rem 0;
    border-left:3px solid var(--gold);
}
.summary__title {
    font-family:var(--serif); font-size:1rem; font-weight:600; font-style:italic;
    color:var(--cream); margin-bottom:.75rem;
    padding-bottom:.5rem; border-bottom:1px solid rgba(255,255,255,.04);
}
.summary__empty { font-size:.85rem; color:var(--txt3); text-align:center; padding:.75rem 0 }
.summary__body ul { display:flex; flex-direction:column; gap:.35rem }
.summary__body li {
    display:flex; justify-content:space-between; font-size:.85rem; padding:.2rem 0;
}
.summary__body li span:last-child { font-family:var(--serif); font-weight:500; color:var(--gold-l) }
.summary__total {
    display:flex; justify-content:space-between; align-items:center;
    padding-top:.75rem; margin-top:.75rem;
    border-top:1px solid rgba(255,255,255,.06);
}
.summary__total span { font-size:.8rem; color:var(--txt2); text-transform:uppercase; letter-spacing:.05em }
.summary__total strong { font-family:var(--serif); font-size:1.6rem; font-weight:700; color:var(--gold-l) }

/* ============================
   FOOTER
   ============================ */
.foot {
    padding:2.5rem 0 1.5rem;
    border-top:1px solid rgba(255,255,255,.04);
}
.foot__top {
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:1.5rem; margin-bottom:2rem;
}
.foot__logo { height:50px; border-radius:6px }
.foot__links {
    display:flex; flex-wrap:wrap; gap:.75rem 1.5rem;
    font-size:.85rem; color:var(--txt2);
}
.foot__links a { transition:color .2s }
.foot__links a:hover { color:var(--gold) }
.foot__copy { font-size:.72rem; color:var(--txt3) }
.foot__dev { color:var(--gold); transition:color .2s }
.foot__dev:hover { color:var(--gold-l) }

/* ============================
   FLOATING WHATSAPP
   ============================ */
.wpp-float {
    position:fixed; bottom:1.25rem; right:1.25rem; z-index:900;
    width:52px; height:52px; border-radius:50%;
    background:#25d366; display:flex; align-items:center; justify-content:center;
    color:#fff; box-shadow:0 3px 12px rgba(37,211,102,.35);
    transition:all .3s; animation:bob 3s ease-in-out infinite;
}
.wpp-float:hover { transform:scale(1.06); box-shadow:0 4px 20px rgba(37,211,102,.45) }

/* ============================
   SCROLL REVEAL
   ============================ */
.rv { opacity:0; transform:translateY(18px); transition:opacity .6s var(--ease), transform .6s var(--ease) }
.rv.visible { opacity:1; transform:translateY(0) }

.pkg-card, .addon-cat, .dual {
    opacity:0; transform:translateY(16px);
    transition: opacity .5s var(--ease), transform .5s var(--ease);
}
.pkg-card.visible, .addon-cat.visible, .dual.visible { opacity:1; transform:translateY(0) }

/* CSS stagger */
.pkg-card:nth-child(2) { transition-delay:.1s }
.pkg-card:nth-child(3) { transition-delay:.2s }
.addon-cat:nth-child(2) { transition-delay:.1s }
.addon-cat:nth-child(3) { transition-delay:.2s }

/* ============================
   RESPONSIVE
   ============================ */
@media(min-width:540px) {
    .form-row { grid-template-columns:1fr 1fr }
    .time-grid { grid-template-columns:repeat(5,1fr) }
    .pkg-selector { grid-template-columns:repeat(3,1fr) }
    .addons__categories { grid-template-columns:1fr 1fr }
}

@media(min-width:768px) {
    .packages__grid { grid-template-columns:repeat(3,1fr) }
    .addons__categories { grid-template-columns:repeat(3,1fr) }
    .dual { grid-template-columns:1fr auto 1fr }
    .dual__block--accent { border-top:none }
    .dual__divider { display:block; width:1px; background:rgba(255,255,255,.04); margin:1.5rem 0 }

    .nav__toggle { display:none }
    .nav__menu {
        position:static; width:auto; max-width:none; height:auto;
        background:none; backdrop-filter:none; border:none;
        flex-direction:row; padding:0; gap:0;
    }
    .nav__menu a {
        padding:.4rem 1rem; font-size:.85rem; border-bottom:none;
    }

    .hero__logo { width:180px }
}

@media(min-width:1024px) {
    .sec { padding:6rem 0 }
    .hero__logo { width:200px }
    .mosaic-img { width:240px; height:160px }
}

/* Scrollbar */
::-webkit-scrollbar { width:5px }
::-webkit-scrollbar-track { background:var(--bg) }
::-webkit-scrollbar-thumb { background:#1a1714; border-radius:3px }

input[type="date"]::-webkit-calendar-picker-indicator { filter:invert(.6); cursor:pointer }
