:root {
  --cream:#F8F3EC; --cream-dark:#EFE8DC; --ink:#1C1209; --ink-soft:#4A3728;
  --terracotta:#C4541A; --terra-light:#E8774A; --gold:#9A7B2F; --gold-light:#C9A84C;
  --sage:#5A6E52; --dust:#A8957E; --white:#FFFDF9;
  --card-shadow:0 4px 24px rgba(28,18,9,.10);
  --day1:#2E86AB; --day2:#A23B72; --day3:#C4541A; --day4:#7B3F8C;
  --day5:#2A6B4F; --day6:#B8860B; --day7:#3D8B6E; --day8:#8B4513;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden;background:var(--cream);font-family:'DM Sans',sans-serif;color:var(--ink)}

/* SCREENS */
.screen{position:fixed;inset:0;overflow-y:auto;overflow-x:hidden;transform:translateX(100%);transition:transform .38s cubic-bezier(.4,0,.2,1);background:var(--cream);will-change:transform;-webkit-overflow-scrolling:touch}
.screen.active{transform:translateX(0)}.screen.behind{transform:translateX(-8%)}
#screen-home{transform:translateX(0)}

/* HOME */
.home-hero{background:var(--ink);padding:54px 24px 32px;position:relative;overflow:hidden;min-height:260px;display:flex;flex-direction:column;justify-content:flex-end}
.home-hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none'%3E%3Cg fill='%23C9A84C' fill-opacity='0.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}
.home-hero-eyebrow{font-family:'DM Sans',sans-serif;font-weight:300;letter-spacing:.18em;font-size:10px;text-transform:uppercase;color:var(--gold-light);margin-bottom:10px;position:relative}
.home-hero h1{font-family:'Playfair Display',serif;font-size:40px;font-weight:700;color:var(--white);line-height:1.08;position:relative}
.home-hero h1 em{color:var(--terra-light);font-style:italic}
.home-hero-sub{font-family:'Lora',serif;font-style:italic;color:var(--dust);font-size:13px;margin-top:8px;position:relative}
.home-meta{display:flex;gap:10px;margin-top:16px;position:relative;flex-wrap:wrap}
.home-tag{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.6);font-size:10px;letter-spacing:.06em;padding:4px 9px;border-radius:4px}

/* JOURNEY BAR */
.journey-bar{display:flex;align-items:center;padding:16px 20px;gap:4px;overflow-x:auto;scrollbar-width:none;background:var(--white);border-bottom:1px solid var(--cream-dark);position:sticky;top:0;z-index:30}
.journey-bar::-webkit-scrollbar{display:none}
.jb-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:white;flex-shrink:0;cursor:pointer;transition:transform .15s,box-shadow .15s}
.jb-dot:active{transform:scale(.9)}
.jb-dot.today{box-shadow:0 0 0 3px var(--cream),0 0 0 5px currentColor}
.jb-line{width:12px;height:2px;background:var(--cream-dark);flex-shrink:0}

.home-section-title{font-family:'DM Sans',sans-serif;font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--dust);padding:20px 24px 12px}

/* DAY CARDS */
.day-card{margin:0 16px 14px;background:var(--white);border-radius:16px;box-shadow:var(--card-shadow);overflow:hidden;cursor:pointer;transition:transform .18s;position:relative}
.day-card:active{transform:scale(.98)}
.day-card-header{padding:16px 18px 14px;position:relative;overflow:hidden}
.day-card-header::before{content:'';position:absolute;right:-20px;top:-20px;width:100px;height:100px;border-radius:50%;opacity:.08}
.day-num{font-family:'DM Sans',sans-serif;font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;margin-bottom:4px}
.day-card-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--ink);line-height:1.2;padding-right:32px}
.day-card-subtitle{font-family:'Lora',serif;font-style:italic;color:var(--ink-soft);font-size:12px;margin-top:3px}
.day-card-sleep{font-size:10px;color:var(--dust);margin-top:6px;letter-spacing:.04em}
.day-card-sleep span{font-weight:500;color:var(--ink-soft)}
.day-card-stops{padding:10px 18px 12px;display:flex;flex-direction:column}
.day-stop-pill{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--cream-dark);font-size:12px;color:var(--ink-soft)}
.day-stop-pill:last-child{border-bottom:none}
.stop-time-small{font-size:10px;color:var(--dust);font-weight:500;min-width:34px;font-variant-numeric:tabular-nums}
.stop-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.day-card-arrow{position:absolute;right:18px;top:20px;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--cream-dark);color:var(--ink-soft);font-size:13px}
.drive-pill{font-size:11px;color:var(--dust);padding:5px 0;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--cream-dark)}
.drive-pill:last-child{border-bottom:none}
.drive-icon{font-size:12px}

/* NAV */
.nav-bar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:12px;padding:14px 20px 12px;background:var(--cream);border-bottom:1px solid var(--cream-dark)}
.nav-back{width:34px;height:34px;border-radius:50%;background:var(--white);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 6px rgba(0,0,0,.1);color:var(--ink);font-size:15px;flex-shrink:0}
.nav-title{font-family:'DM Sans',sans-serif;font-weight:500;font-size:14px;color:var(--ink);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* DAY HERO */
.day-hero{padding:24px 24px 20px;position:relative;overflow:hidden}
.day-hero-day{font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px}
.day-hero h2{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;line-height:1.15;color:var(--ink)}
.day-hero p{font-family:'Lora',serif;font-style:italic;color:var(--ink-soft);font-size:13px;margin-top:6px;line-height:1.55}
.day-hero-sleep{margin-top:10px;font-size:11px;color:var(--dust);display:flex;align-items:center;gap:6px}
.day-hero-sleep strong{color:var(--ink-soft);font-weight:500}

/* TIMELINE */
.timeline{padding:0 0 80px}
.timeline-item{display:flex;gap:0;cursor:pointer;padding:0 20px;transition:background .15s}
.timeline-item:active{background:var(--cream-dark)}
.timeline-left{display:flex;flex-direction:column;align-items:center;width:48px;flex-shrink:0}
.tl-time{font-size:10px;font-weight:500;color:var(--dust);font-variant-numeric:tabular-nums;padding-top:16px;text-align:center;line-height:1.2}
.tl-line-wrap{display:flex;flex-direction:column;align-items:center;flex:1;padding-top:6px}
.tl-dot{width:10px;height:10px;border-radius:50%;border:2px solid;background:var(--white);flex-shrink:0;margin-top:10px}
.tl-line{width:2px;flex:1;margin-top:3px;min-height:24px}
.timeline-item:last-child .tl-line{opacity:0}
.tl-card{flex:1;margin:10px 0 10px 12px;background:var(--white);border-radius:12px;padding:14px;box-shadow:0 2px 12px rgba(28,18,9,.07);position:relative}
.tl-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}
.tl-card-name{font-family:'Playfair Display',serif;font-size:15px;font-weight:600;color:var(--ink);line-height:1.25;flex:1}
.tl-arrow{color:var(--dust);font-size:15px;flex-shrink:0;padding-top:1px}
.tl-duration{font-size:10px;color:var(--dust);margin-top:3px;letter-spacing:.04em}
.tl-card-desc{font-family:'Lora',serif;font-style:italic;font-size:12px;color:var(--ink-soft);margin-top:6px;line-height:1.5;border-top:1px solid var(--cream-dark);padding-top:6px}
.tl-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.tl-tag{font-size:9px;letter-spacing:.05em;padding:2px 7px;border-radius:4px;font-weight:500;text-transform:uppercase}
.tl-tag.museo{background:#FEF0E8;color:#B34A14}.tl-tag.iglesia{background:#EEF3FF;color:#3B5BDB}
.tl-tag.panorama{background:#ECFDF5;color:#1A7F5A}.tl-tag.reserva{background:#FFF9E0;color:#8A6800}
.tl-tag.parking{background:#E8F4FD;color:#1A5F8A}.tl-tag.termas{background:#F0FFF4;color:#276749}
.tl-tag.pueblo{background:#FFF5F0;color:#9C4221}.tl-tag.drive{background:#F0F0F0;color:#555}

/* DRIVE CARDS in timeline */
.timeline-drive{display:flex;gap:0;padding:0 20px}
.timeline-drive .timeline-left .tl-dot{background:var(--cream-dark);border-color:var(--dust);width:8px;height:8px}
.timeline-drive .tl-card{background:var(--cream-dark);box-shadow:none;padding:10px 14px}
.timeline-drive .tl-card-name{font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;color:var(--dust)}
.timeline-drive .tl-card-desc{font-style:normal;font-family:'DM Sans',sans-serif;font-size:11px;color:var(--dust);border:none;padding:0;margin-top:2px}

/* STOP SCREEN */
.stop-hero{padding:24px 24px 18px;position:relative}
.stop-hero-eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;margin-bottom:6px}
.stop-hero h2{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;color:var(--ink);line-height:1.15}
.stop-hero-meta{display:flex;gap:12px;margin-top:10px;flex-wrap:wrap}
.stop-meta-item{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--ink-soft)}
.stop-meta-icon{font-size:12px}

.tabs{display:flex;border-bottom:2px solid var(--cream-dark);position:sticky;top:60px;z-index:40;background:var(--cream);padding:0 20px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab-btn{background:none;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;color:var(--dust);padding:10px 12px;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .2s,border-color .2s;flex-shrink:0}
.tab-btn.active{color:var(--ink)}
.tab-panel{display:none;padding:18px 24px 100px}.tab-panel.active{display:block}

/* INFO */
.info-section{margin-bottom:20px}
.info-section-title{font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--dust);margin-bottom:10px}
.info-card{background:var(--white);border-radius:12px;padding:14px;box-shadow:0 1px 8px rgba(28,18,9,.06)}
.info-row{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--cream-dark)}
.info-row:last-child{border-bottom:none;padding-bottom:0}.info-row:first-child{padding-top:0}
.info-row-icon{font-size:14px;flex-shrink:0;margin-top:1px}
.info-row-label{font-size:10px;color:var(--dust);margin-bottom:1px;letter-spacing:.04em}
.info-row-value{font-size:13px;color:var(--ink);line-height:1.45}
.map-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:12px;background:var(--ink);color:var(--white);border:none;border-radius:10px;padding:12px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;transition:background .18s}
.map-btn:active{background:#3A2A1A}
.hours-grid{display:grid;gap:4px}
.hours-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:4px 0;border-bottom:1px solid var(--cream-dark)}
.hours-day{color:var(--ink-soft)}.hours-time{color:var(--ink);font-weight:500}.hours-closed{color:#CC3333;font-weight:500}

/* TICKETS */
.ticket-hero{background:linear-gradient(135deg,var(--ink) 0%,#3A2010 100%);border-radius:14px;padding:18px;margin-bottom:18px;position:relative;overflow:hidden}
.ticket-hero::before{content:'🎫';position:absolute;right:14px;top:14px;font-size:36px;opacity:.15}
.ticket-price-label{font-size:10px;color:rgba(255,255,255,.5);letter-spacing:.1em;text-transform:uppercase}
.ticket-price{font-family:'Playfair Display',serif;font-size:32px;font-weight:700;color:var(--white)}
.ticket-price-note{font-size:11px;color:var(--gold-light);margin-top:3px;font-family:'Lora',serif;font-style:italic}
.ticket-book-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:14px;background:var(--terracotta);color:var(--white);border:none;border-radius:10px;padding:12px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;transition:background .18s}
.ticket-book-btn:active{background:#A3431A}
.tip-card{background:var(--white);border-radius:12px;padding:14px;box-shadow:0 1px 8px rgba(28,18,9,.06);margin-bottom:10px;display:flex;gap:10px;align-items:flex-start}
.tip-icon{font-size:18px;flex-shrink:0}.tip-title{font-size:12px;font-weight:500;color:var(--ink);margin-bottom:2px}
.tip-text{font-size:12px;color:var(--ink-soft);line-height:1.5}

/* HISTORY */
.history-lede{font-family:'Playfair Display',serif;font-size:17px;font-weight:400;line-height:1.55;color:var(--ink);padding:0 0 14px;border-bottom:1px solid var(--cream-dark)}
.history-body{padding-top:14px;font-family:'Lora',serif;font-size:14px;color:var(--ink-soft);line-height:1.7}
.history-body p{margin-bottom:12px}
.history-body strong{color:var(--ink);font-weight:500}

/* HIGHLIGHTS */
.highlight-card{background:var(--white);border-radius:14px;padding:16px;box-shadow:0 2px 16px rgba(28,18,9,.07);margin-bottom:14px}
.hl-num{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dust);font-weight:500}
.hl-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:600;color:var(--ink);margin-top:4px}
.hl-artist{font-family:'Lora',serif;font-style:italic;font-size:12px;color:var(--ink-soft);margin-top:2px}
.hl-desc{font-family:'Lora',serif;font-size:13px;color:var(--ink-soft);margin-top:8px;line-height:1.6}
.hl-detail{margin-top:8px;padding-top:8px;border-top:1px solid var(--cream-dark);font-size:11px;color:var(--dust);display:flex;flex-wrap:wrap;gap:6px}
.hl-badge{background:var(--cream-dark);padding:2px 7px;border-radius:4px;font-weight:500}
.hl-links{display:flex;gap:8px;margin-top:10px}
.hl-link{font-size:11px;padding:6px 10px;border-radius:6px;text-decoration:none;font-weight:500}
.hl-link.wiki{background:#EEF3FF;color:#3B5BDB}.hl-link.google{background:#FEF0E8;color:#B34A14}

/* UTILS */
.pb-safe{padding-bottom:env(safe-area-inset-bottom,20px)}

/* Dynamic day colors */
.color-day1{color:var(--day1)}.color-day2{color:var(--day2)}.color-day3{color:var(--day3)}.color-day4{color:var(--day4)}
.color-day5{color:var(--day5)}.color-day6{color:var(--day6)}.color-day7{color:var(--day7)}.color-day8{color:var(--day8)}
.border-day1{border-color:var(--day1)}.border-day2{border-color:var(--day2)}.border-day3{border-color:var(--day3)}.border-day4{border-color:var(--day4)}
.border-day5{border-color:var(--day5)}.border-day6{border-color:var(--day6)}.border-day7{border-color:var(--day7)}.border-day8{border-color:var(--day8)}
.bg-day1{background:var(--day1)}.bg-day2{background:var(--day2)}.bg-day3{background:var(--day3)}.bg-day4{background:var(--day4)}
.bg-day5{background:var(--day5)}.bg-day6{background:var(--day6)}.bg-day7{background:var(--day7)}.bg-day8{background:var(--day8)}

.tab-active-day1 .tab-btn.active{color:var(--day1);border-bottom-color:var(--day1)}
.tab-active-day2 .tab-btn.active{color:var(--day2);border-bottom-color:var(--day2)}
.tab-active-day3 .tab-btn.active{color:var(--day3);border-bottom-color:var(--day3)}
.tab-active-day4 .tab-btn.active{color:var(--day4);border-bottom-color:var(--day4)}
.tab-active-day5 .tab-btn.active{color:var(--day5);border-bottom-color:var(--day5)}
.tab-active-day6 .tab-btn.active{color:var(--day6);border-bottom-color:var(--day6)}
.tab-active-day7 .tab-btn.active{color:var(--day7);border-bottom-color:var(--day7)}
.tab-active-day8 .tab-btn.active{color:var(--day8);border-bottom-color:var(--day8)}

/* Day card header gradients */
.day-card[data-day="1"] .day-card-header{background:linear-gradient(135deg,#EBF5FA,#D4EBF5)}
.day-card[data-day="1"] .day-card-header::before{background:var(--day1)}
.day-card[data-day="1"] .day-num,.day-card[data-day="1"] .stop-dot{color:var(--day1);background:var(--day1)}
.day-card[data-day="1"] .day-num{background:none}

.day-card[data-day="2"] .day-card-header{background:linear-gradient(135deg,#F5EFF9,#E8D8F5)}
.day-card[data-day="2"] .day-card-header::before{background:var(--day2)}
.day-card[data-day="2"] .day-num,.day-card[data-day="2"] .stop-dot{color:var(--day2);background:var(--day2)}
.day-card[data-day="2"] .day-num{background:none}

.day-card[data-day="3"] .day-card-header{background:linear-gradient(135deg,#FFF5EF,#FDE8D8)}
.day-card[data-day="3"] .day-card-header::before{background:var(--day3)}
.day-card[data-day="3"] .day-num,.day-card[data-day="3"] .stop-dot{color:var(--day3);background:var(--day3)}
.day-card[data-day="3"] .day-num{background:none}

.day-card[data-day="4"] .day-card-header{background:linear-gradient(135deg,#F3EDF7,#E4D6EF)}
.day-card[data-day="4"] .day-card-header::before{background:var(--day4)}
.day-card[data-day="4"] .day-num,.day-card[data-day="4"] .stop-dot{color:var(--day4);background:var(--day4)}
.day-card[data-day="4"] .day-num{background:none}

.day-card[data-day="5"] .day-card-header{background:linear-gradient(135deg,#EFF7F2,#D5EDDF)}
.day-card[data-day="5"] .day-card-header::before{background:var(--day5)}
.day-card[data-day="5"] .day-num,.day-card[data-day="5"] .stop-dot{color:var(--day5);background:var(--day5)}
.day-card[data-day="5"] .day-num{background:none}

.day-card[data-day="6"] .day-card-header{background:linear-gradient(135deg,#FDF8EB,#F5ECCC)}
.day-card[data-day="6"] .day-card-header::before{background:var(--day6)}
.day-card[data-day="6"] .day-num,.day-card[data-day="6"] .stop-dot{color:var(--day6);background:var(--day6)}
.day-card[data-day="6"] .day-num{background:none}

.day-card[data-day="7"] .day-card-header{background:linear-gradient(135deg,#EDF7F1,#D2EDDD)}
.day-card[data-day="7"] .day-card-header::before{background:var(--day7)}
.day-card[data-day="7"] .day-num,.day-card[data-day="7"] .stop-dot{color:var(--day7);background:var(--day7)}
.day-card[data-day="7"] .day-num{background:none}

.day-card[data-day="8"] .day-card-header{background:linear-gradient(135deg,#F5EFEA,#E8D9CC)}
.day-card[data-day="8"] .day-card-header::before{background:var(--day8)}
.day-card[data-day="8"] .day-num,.day-card[data-day="8"] .stop-dot{color:var(--day8);background:var(--day8)}
.day-card[data-day="8"] .day-num{background:none}

/* SABER MÁS BUTTON */
.info-more-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:10px;background:var(--sage);color:var(--white);border:none;border-radius:10px;padding:12px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;transition:background .18s}
.info-more-btn:active{background:#4A5D42}

/* HOTEL CARD */
.hotel-card{margin:0 20px 16px;background:linear-gradient(135deg,#1a2a3a 0%,#2a3a4a 100%);border-radius:14px;padding:16px;position:relative;overflow:hidden;cursor:pointer}
.hotel-card::before{content:'🏨';position:absolute;right:14px;top:12px;font-size:32px;opacity:.15}
.hotel-card-label{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:4px}
.hotel-card-name{font-family:'Playfair Display',serif;font-size:17px;font-weight:600;color:#fff;line-height:1.25}
.hotel-card-addr{font-size:11px;color:rgba(255,255,255,.55);margin-top:3px;font-family:'Lora',serif;font-style:italic}
.hotel-card-row{display:flex;gap:14px;margin-top:10px;flex-wrap:wrap}
.hotel-card-pill{font-size:10px;color:rgba(255,255,255,.7);background:rgba(255,255,255,.1);padding:3px 8px;border-radius:4px;display:flex;align-items:center;gap:4px}
.hotel-card-pill b{color:#fff;font-weight:500}
.hotel-detail{background:var(--white);border-radius:14px;margin:0 20px 14px;padding:16px;box-shadow:0 2px 12px rgba(28,18,9,.07);display:none}
.hotel-detail.open{display:block}
.hotel-detail-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--cream-dark);font-size:12px}
.hotel-detail-row:last-child{border-bottom:none}
.hotel-detail-label{color:var(--dust)}
.hotel-detail-value{color:var(--ink);font-weight:500;text-align:right;max-width:60%}
.hotel-map-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:10px;background:var(--ink);color:var(--white);border:none;border-radius:8px;padding:10px;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;cursor:pointer;text-decoration:none}
