@import url('https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,300;0,400;0,500;0,600;1,400&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Manrope:wght@400;500;600;700;800&family=Space+Mono:wght@400;700&display=swap');

:root{
  --bg:         #F0F8FA;
  --panel:      #FFFFFF;
  --panel-2:    #E1F0F4;
  --line:       #CFE3E9;
  --line-soft:  rgba(8,40,58,0.09);
  --ink:        #0A2B3A;
  --sand:       #0A2B3A;
  --sand-dim:   #4C6B78;
  --coral:      #0E7C9C;
  --coral-bright:#17A3C7;
  --seafoam:    #1F8A6F;
  --gold:       #A87424;
  --white:      #FFFFFF;
  --overlay-1:  rgba(6,28,42,0.32);
  --overlay-2:  rgba(6,28,42,0.74);
  --radius:     3px;
  --maxw:       1180px;
  color-scheme: light;
}

/* Dark mode — the same ocean, seen from the deep: near-black navy water, brighter
   bioluminescent-teal accents. Toggled via the sun/moon button; defaults to the
   visitor's OS preference on first visit, then remembers their choice. */
html[data-theme="dark"]{
  --bg:         #061821;
  --panel:      #0B2530;
  --panel-2:    #0F2E3B;
  --line:       rgba(170,220,235,0.14);
  --line-soft:  rgba(170,220,235,0.08);
  --ink:        #041219;
  --sand:       #E6F3F7;
  --sand-dim:   #8FB0BD;
  --coral:      #35C2E8;
  --coral-bright:#6FDCF5;
  --seafoam:    #3FD6A8;
  --gold:       #E3AE4E;
  --white:      #FFFFFF;
  --overlay-1:  rgba(2,10,15,0.4);
  --overlay-2:  rgba(2,10,15,0.8);
  color-scheme: dark;
}
html[data-theme="dark"] body{background:var(--bg);}
html[data-theme="dark"] .pkg-photo,html[data-theme="dark"] .hotel-photo,html[data-theme="dark"] .ticket-photo,
html[data-theme="dark"] .pillar-media,html[data-theme="dark"] .hf-photo,html[data-theme="dark"] .dest-photo{background:var(--panel-2);}
html[data-theme="dark"] .pagehero.photo::before{background:linear-gradient(180deg,rgba(2,10,15,0.15),rgba(2,10,15,0.75));}
html[data-theme="dark"] ::selection{background:var(--coral);color:var(--ink);}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--sand);
  font-family:'Manrope',sans-serif;
  font-weight:400;
  line-height:1.65;
  overflow-x:hidden;
}
body,.topbar,.mainnav,footer,.panel-bg,
.ticket,.pkg-card,.route-card,.hotel-full,.hotel-card,.transfer-card,.step-card,.pillar-card,
.dest-photo,.trip-tray,.detail-modal-panel,.chat-window{
  transition:background-color .35s ease,border-color .35s ease,color .35s ease;
}
h1,h2,h3,h4,.display{
  font-family:'Spectral',serif;
  color:var(--sand);
  letter-spacing:-0.01em;
  font-weight:500;
}
h1,h2,.display-lg{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;
  letter-spacing:0;
}
.ornament{display:flex;align-items:center;justify-content:center;margin:18px auto 0;width:120px;color:var(--coral);}
.ornament svg{width:100%;height:auto;display:block;}
.section-eyebrow{
  display:block;text-align:center;font-family:'Space Mono',monospace;font-size:0.68rem;
  letter-spacing:0.22em;text-transform:uppercase;color:var(--coral);margin-bottom:6px;
}
.section-center{text-align:center;max-width:760px;margin:0 auto 48px;}
.section-center h2{font-size:clamp(2.1rem,4.4vw,3.1rem);margin:8px 0 0;}
.section-center .lede-c{margin-top:20px;font-size:1.05rem;color:var(--sand-dim);font-style:italic;font-family:'Cormorant Garamond',serif;line-height:1.7;}
.mono{font-family:'Space Mono',monospace;letter-spacing:0.03em;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
::selection{background:var(--coral);color:#FFFFFF;}
:focus-visible{outline:2px solid var(--coral);outline-offset:3px;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
@media(max-width:640px){.wrap{padding:0 20px;}}
button{font-family:inherit;cursor:pointer;}

/* ===== RTL support ===== */
html[dir="rtl"] body{direction:rtl;}
html[dir="rtl"] .lang-menu{right:auto;left:0;}
html[dir="rtl"] .ticket-meta,html[dir="rtl"] .log-entry{direction:rtl;}

/* ===== NAV ===== */
nav.mainnav{
  position:sticky;top:0;z-index:200;
  background:rgba(240,248,250,0.93);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
}
nav.mainnav .wrap{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 32px;gap:20px;
}
.brand-lockup{display:flex;flex-direction:column;line-height:1.05;}
.brand-lockup .b1{font-family:'Spectral',serif;font-size:1.15rem;font-weight:600;color:var(--sand);}
.brand-lockup .b2{font-family:'Space Mono',monospace;font-size:0.6rem;color:var(--coral);letter-spacing:0.14em;text-transform:uppercase;margin-top:2px;}
.nav-links{display:flex;align-items:center;gap:22px;font-size:0.85rem;}
.nav-links a{color:var(--sand-dim);transition:color .2s;position:relative;}
.nav-links a:hover,.nav-links a.active{color:var(--sand);}
.nav-links a.active::after{
  content:'';position:absolute;bottom:-18px;left:0;right:0;height:2px;background:var(--coral);
}
.nav-cta{
  background:var(--coral);color:#FFFFFF!important;
  padding:10px 20px;font-family:'Space Mono',monospace;font-size:0.72rem;
  letter-spacing:0.06em;transition:background .2s,transform .2s;
}
.nav-cta:hover{background:var(--coral-bright);transform:translateY(-2px);}
.nav-toggle{display:none;background:none;border:1px solid var(--line);color:var(--sand);padding:8px 12px;}
@media(max-width:1140px){
  .nav-links{display:none;}
  .nav-toggle{display:block;}
}
.nav-links.open{
  display:flex;position:absolute;top:64px;left:0;right:0;
  background:var(--panel);flex-direction:column;padding:20px 32px;gap:18px;
  border-bottom:1px solid var(--line);box-shadow:0 16px 30px rgba(8,40,58,0.10);
}

/* language switcher */
.lang-switch{position:relative;}
.theme-btn{
  display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--line);
  color:var(--sand-dim);width:34px;height:34px;font-size:0.95rem;line-height:1;border-radius:50%;
  cursor:pointer;transition:border-color .2s,color .2s,transform .3s;
}
.theme-btn:hover{border-color:var(--coral);color:var(--coral);transform:rotate(20deg);}
.lang-btn{
  display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--line);
  color:var(--sand-dim);padding:8px 12px;font-family:'Space Mono',monospace;font-size:0.7rem;
}
.lang-btn:hover{border-color:var(--coral);color:var(--sand);}
.lang-menu{
  position:absolute;top:calc(100% + 8px);right:0;background:var(--panel);
  border:1px solid var(--line);min-width:190px;max-height:340px;overflow-y:auto;
  display:none;z-index:300;box-shadow:0 12px 30px rgba(8,40,58,0.18);
}
.lang-menu.open{display:block;}
.lang-menu button{
  width:100%;text-align:left;background:none;border:none;color:var(--sand-dim);
  padding:10px 14px;font-size:0.85rem;display:flex;justify-content:space-between;
}
.lang-menu button:hover{background:var(--panel-2);color:var(--sand);}
.lang-menu button.active{color:var(--coral);}

/* ===== HERO SLIDESHOW (image + video crossfade) ===== */
.hero-slideshow{
  position:relative;height:88vh;min-height:520px;max-height:820px;overflow:hidden;background:#082635;
}
.hero-slideshow .slide{
  position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease;z-index:1;
}
.hero-slideshow .slide.active{opacity:1;z-index:2;}
.hero-slideshow .slide img,
.hero-slideshow .slide video{width:100%;height:100%;object-fit:cover;display:block;}
.hero-slideshow::after{
  content:'';position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(180deg, rgba(6,28,42,0.30) 0%, rgba(6,28,42,0.35) 50%, rgba(6,28,42,0.80) 100%);
}
.hero-content{
  position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;justify-content:center;
}
.hero-content .wrap{width:100%;}
.hero-content .eyebrow-tag{
  display:inline-flex;align-items:center;gap:10px;font-family:'Space Mono',monospace;
  font-size:0.7rem;color:#EAF7FB;border:1px solid rgba(255,255,255,0.35);padding:7px 14px;
  margin-bottom:24px;letter-spacing:0.06em;background:rgba(8,38,53,0.35);backdrop-filter:blur(4px);
}
.hero-content h1{color:#FFFFFF;font-size:clamp(2.2rem,5.2vw,3.8rem);max-width:820px;line-height:1.08;}
.hero-content h1 em{font-style:italic;font-weight:300;color:#7FE0F0;}
.hero-content p.lede{max-width:560px;margin-top:20px;color:rgba(255,255,255,0.86);font-size:1.05rem;}
.hero-dots{
  position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;gap:9px;z-index:6;
}
.hero-dot{
  width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.4);border:none;padding:0;
  cursor:pointer;transition:all .25s;
}
.hero-dot.active{background:#FFFFFF;width:26px;border-radius:5px;}
@media(max-width:640px){.hero-slideshow{height:80vh;}}

/* ===== SIMPLE PAGE HERO (non-home pages, optional photo bg) ===== */
.pagehero{
  position:relative;padding:100px 0 80px;overflow:hidden;
  background:radial-gradient(ellipse 100% 70% at 50% -10%, rgba(14,124,156,0.10), transparent 60%),
             linear-gradient(180deg,#FFFFFF 0%,#E9F5F8 100%);
  border-bottom:1px solid var(--line-soft);
}
.pagehero.photo{
  background-size:cover;background-position:center;padding:150px 0 90px;
}
.pagehero-slides{position:absolute;inset:0;z-index:0;}
.pagehero-slides .p-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.3s ease;}
.pagehero-slides .p-slide.active{opacity:1;}
.pagehero-slides img{width:100%;height:100%;object-fit:cover;display:block;}
.pagehero-dots{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:8px;}
.pagehero-dots .p-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,0.45);border:none;padding:0;cursor:pointer;transition:all .25s;}
.pagehero-dots .p-dot.active{background:#FFFFFF;width:20px;border-radius:4px;}
.pagehero.photo::before{
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(6,28,42,0.45) 0%, rgba(6,28,42,0.72) 100%);
}
.pagehero.photo .wrap{position:relative;z-index:2;}
.pagehero.photo h1,.pagehero.photo p.lede{color:#FFFFFF;}
.pagehero.photo p.lede{color:rgba(255,255,255,0.86);}
.pagehero.photo .eyebrow-tag{background:rgba(8,38,53,0.4);border-color:rgba(255,255,255,0.35);color:#EAF7FB;}
.pagehero.photo .coords-row{color:rgba(255,255,255,0.8);}
.pagehero .eyebrow-tag{
  display:inline-flex;align-items:center;gap:10px;font-family:'Space Mono',monospace;
  font-size:0.7rem;color:var(--coral);border:1px solid var(--line);padding:7px 14px;
  margin-bottom:24px;letter-spacing:0.06em;background:var(--panel);
}
.pagehero h1{font-size:clamp(2.2rem,5vw,3.6rem);max-width:820px;line-height:1.08;}
.pagehero p.lede{max-width:560px;margin-top:20px;color:var(--sand-dim);font-size:1.05rem;}
.pagehero .coords-row{
  display:flex;gap:32px;margin-top:36px;flex-wrap:wrap;font-family:'Space Mono',monospace;font-size:0.78rem;color:var(--sand-dim);
}
.pagehero.centered .wrap{text-align:center;}
.pagehero.centered h1{margin-left:auto;margin-right:auto;}
.pagehero.centered p.lede{margin-left:auto;margin-right:auto;}
.pagehero.centered .eyebrow-tag{margin-left:auto;margin-right:auto;}
.pagehero .hero-ornament{color:#FFFFFF;opacity:.85;margin-top:14px;}
.pagehero:not(.photo) .hero-ornament{color:var(--coral);}
.hero-content.centered .wrap{text-align:center;}
.hero-content.centered h1,.hero-content.centered p.lede{margin-left:auto;margin-right:auto;}
.hero-content.centered .eyebrow-tag{margin-left:auto;margin-right:auto;}
.hero-content .hero-ornament{color:#FFFFFF;opacity:.85;}
.hero-quicklinks{display:flex;gap:0;justify-content:center;margin-top:40px;flex-wrap:wrap;}
.hero-quicklinks a{
  font-family:'Space Mono',monospace;font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:#FFFFFF;
  padding:0 28px;border-right:1px solid rgba(255,255,255,0.3);transition:color .2s;
}
.hero-quicklinks a:first-child{padding-left:0;}
.hero-quicklinks a:last-child{border-right:none;padding-right:0;}
.hero-quicklinks a:hover{color:#8FDCEF;}
@media(max-width:560px){.hero-quicklinks a{padding:0 14px;font-size:0.66rem;}}

.pagehero .coords-row .label{color:var(--coral);font-size:0.62rem;letter-spacing:0.1em;display:block;margin-bottom:3px;}

/* ===== STORY SECTIONS (full-bleed photo background, scroll storytelling) ===== */
.story-section{
  position:relative;padding:120px 0;overflow:hidden;background-size:cover;background-position:center;background-attachment:scroll;
}
.story-section::before{
  content:'';position:absolute;inset:0;background:linear-gradient(180deg, var(--overlay-1) 0%, var(--overlay-2) 100%);
}
.story-section.dark-flat::before{background:linear-gradient(180deg, rgba(6,28,42,0.62), rgba(6,28,42,0.62));}
.story-section .wrap{position:relative;z-index:2;}
.story-section h2,.story-section p,.story-section .eyebrow{color:#FFFFFF;}
.story-section .eyebrow{color:#8FE0F5;}
.story-section p.lede-lg{max-width:640px;color:rgba(255,255,255,0.88);font-size:1.08rem;margin-top:18px;}
.story-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px;}
@media(max-width:900px){.story-cards{grid-template-columns:1fr;}}
.story-card{
  background:rgba(8,38,53,0.45);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,0.18);
  padding:26px;
}
.story-card .num{font-family:'Space Mono',monospace;color:#7FE0F0;font-size:0.72rem;letter-spacing:0.08em;margin-bottom:10px;display:block;}
.story-card h3{color:#FFFFFF;font-size:1.1rem;margin-bottom:8px;}
.story-card p{color:rgba(255,255,255,0.82);font-size:0.88rem;}
@media(max-width:640px){.story-section{padding:80px 0;}}

/* ===== SECTIONS ===== */
section{padding:96px 0;position:relative;}
.section-tight{padding:64px 0;}
.eyebrow{
  font-family:'Space Mono',monospace;font-size:0.7rem;color:var(--coral);
  letter-spacing:0.14em;text-transform:uppercase;display:block;margin-bottom:14px;
}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;margin-bottom:52px;flex-wrap:wrap;}
.section-head h2{font-size:clamp(1.7rem,3.2vw,2.5rem);max-width:600px;}
.section-head p{max-width:340px;color:var(--sand-dim);font-size:0.94rem;padding-bottom:4px;}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

/* ===== FILTER TABS ===== */
.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px;}
.filter-btn{
  background:var(--panel);border:1px solid var(--line);color:var(--sand-dim);
  padding:9px 16px;font-family:'Space Mono',monospace;font-size:0.72rem;letter-spacing:0.04em;
  transition:all .2s;
}
.filter-btn:hover{border-color:var(--coral);color:var(--sand);}
.filter-btn.active{background:var(--coral);border-color:var(--coral);color:#FFFFFF;}

/* ===== EXCURSION / TICKET CARDS ===== */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
@media(max-width:980px){.card-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.card-grid{grid-template-columns:1fr;}}

.ticket{background:var(--panel);padding:0 0 22px;display:flex;flex-direction:column;min-height:340px;transition:background .25s;overflow:hidden;}
.ticket:hover{background:var(--panel-2);}
.ticket-photo{
  position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--panel-2);
}
.ticket-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.ticket:hover .ticket-photo img{transform:scale(1.06);}
.ticket-photo.no-photo{
  display:flex;align-items:center;justify-content:center;
  background:
    repeating-linear-gradient(135deg, rgba(14,124,156,0.07) 0px, rgba(14,124,156,0.07) 2px, transparent 2px, transparent 14px),
    linear-gradient(150deg, var(--panel-2), var(--panel));
}
.ticket-photo.no-photo svg{width:46%;height:46%;opacity:0.6;}
.ticket-body{padding:20px 24px 0;display:flex;flex-direction:column;flex-grow:1;}
.ticket-top{
  display:flex;justify-content:space-between;align-items:flex-start;font-family:'Space Mono',monospace;
  font-size:0.66rem;color:var(--coral);letter-spacing:0.05em;margin-bottom:16px;padding-bottom:14px;
  border-bottom:1px dashed var(--line);
}
.ticket h3{font-size:1.18rem;margin-bottom:8px;font-weight:500;}
.ticket p.desc{font-size:0.85rem;color:var(--sand-dim);flex-grow:1;}
.ticket-meta{
  margin-top:18px;padding-top:14px;border-top:1px dashed var(--line);
  display:flex;justify-content:space-between;align-items:flex-end;font-family:'Space Mono',monospace;font-size:0.65rem;color:var(--sand-dim);
}
.ticket-meta strong{display:block;color:var(--sand);font-size:0.92rem;font-family:'Manrope',sans-serif;margin-top:3px;font-weight:700;}
.ticket-book{
  margin-top:16px;margin-bottom:2px;display:inline-block;text-align:center;border:1px solid var(--coral);color:var(--coral);
  padding:9px 0;font-family:'Space Mono',monospace;font-size:0.68rem;letter-spacing:0.06em;transition:all .2s;
}
.ticket-book:hover{background:var(--coral);color:#FFFFFF;}

/* ===== LOG / STEPS ===== */
.log{border-top:1px solid var(--line);}
.log-entry{display:grid;grid-template-columns:140px 1fr 2fr;gap:26px;padding:26px 0;border-bottom:1px solid var(--line);align-items:start;}
@media(max-width:760px){.log-entry{grid-template-columns:1fr;gap:6px;}}
.log-time{font-family:'Space Mono',monospace;color:var(--coral);font-size:0.8rem;}
.log-entry h3{font-size:1.1rem;font-weight:500;}
.log-entry p{color:var(--sand-dim);font-size:0.9rem;max-width:480px;}

/* ===== HOTEL CARDS ===== */
.hotel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:980px){.hotel-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.hotel-grid{grid-template-columns:1fr;}}
.hotel-card{border:1px solid var(--line);overflow:hidden;transition:border-color .25s;background:var(--panel);}
.hotel-card:hover{border-color:var(--coral);}
.hotel-photo{
  aspect-ratio:16/10;background:linear-gradient(150deg,var(--panel-2),var(--panel));
  display:flex;align-items:center;justify-content:center;font-family:'Spectral',serif;font-size:1.6rem;color:var(--coral);
  border-bottom:1px solid var(--line);overflow:hidden;
}
.hotel-body{padding:20px;}
.hotel-body h3{font-size:1.05rem;margin-bottom:4px;}
.hotel-loc{font-family:'Space Mono',monospace;font-size:0.66rem;color:var(--coral);letter-spacing:0.05em;display:block;margin-bottom:10px;}
.hotel-body p{font-size:0.85rem;color:var(--sand-dim);}
.hotel-tags{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
.hotel-tag{font-family:'Space Mono',monospace;font-size:0.62rem;border:1px solid var(--line);padding:4px 9px;color:var(--sand-dim);}

/* ===== PHOTO GALLERY ===== */
.gallery-grid{
  display:grid;grid-template-columns:repeat(4, 1fr);grid-auto-rows:130px;gap:8px;
}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:100px;}}
@media(max-width:600px){.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:90px;}}
.gallery-grid figure{position:relative;overflow:hidden;margin:0;background:var(--panel-2);}
.gallery-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.gallery-grid figure:hover img{transform:scale(1.08);}
.gallery-grid .g-tall{grid-row:span 2;}
.gallery-grid .g-wide{grid-column:span 2;}
.gallery-grid figcaption{
  position:absolute;bottom:0;left:0;right:0;padding:8px 10px 6px;
  background:linear-gradient(180deg, transparent, rgba(6,28,42,0.68));
  color:#FFFFFF;font-family:'Space Mono',monospace;font-size:0.6rem;letter-spacing:0.04em;
  opacity:0;transition:opacity .25s;
}
.gallery-grid figure:hover figcaption{opacity:1;}

/* ===== FORMS ===== */
form{display:flex;flex-direction:column;gap:16px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:560px){.form-row{grid-template-columns:1fr;}}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;}
@media(max-width:640px){.form-row-3{grid-template-columns:1fr;}}
label{font-family:'Space Mono',monospace;font-size:0.63rem;color:var(--coral);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:6px;display:block;}
input,select,textarea{
  width:100%;background:var(--panel);border:1px solid var(--line);color:var(--sand);
  padding:12px 14px;font-family:'Manrope',sans-serif;font-size:0.9rem;transition:border-color .2s;
}
input:focus,select:focus,textarea:focus{border-color:var(--coral);outline:none;}
textarea{resize:vertical;min-height:90px;}
.field{display:flex;flex-direction:column;}
.submit-btn{
  align-self:flex-start;background:var(--coral);color:#FFFFFF;border:none;padding:15px 32px;
  font-family:'Space Mono',monospace;font-size:0.78rem;letter-spacing:0.08em;transition:background .2s,transform .2s;
}
.submit-btn:hover{background:var(--coral-bright);transform:translateY(-2px);}
.submit-btn:disabled{opacity:0.5;cursor:not-allowed;transform:none;}
.form-note{font-size:0.72rem;color:var(--sand-dim);}
.radio-group{display:flex;gap:14px;flex-wrap:wrap;}
.radio-pill{
  border:1px solid var(--line);padding:12px 18px;display:flex;align-items:center;gap:8px;
  font-size:0.86rem;color:var(--sand-dim);transition:all .2s;background:var(--panel);
}
.radio-pill input{width:auto;}
.radio-pill.active,.radio-pill:has(input:checked){border-color:var(--coral);color:var(--sand);background:rgba(14,124,156,0.07);}

/* ===== BOOKING STEPS ===== */
.steps-bar{display:flex;gap:0;margin-bottom:48px;border:1px solid var(--line);}
.step-pill{
  flex:1;text-align:center;padding:14px 8px;font-family:'Space Mono',monospace;font-size:0.68rem;
  color:var(--sand-dim);border-right:1px solid var(--line);letter-spacing:0.04em;background:var(--panel);
}
.step-pill:last-child{border-right:none;}
.step-pill.active{background:var(--coral);color:#FFFFFF;}
.step-pill.done{background:var(--panel-2);color:var(--seafoam);}
.booking-panel{display:none;}
.booking-panel.active{display:block;}
.summary-box{border:1px solid var(--line);padding:24px;background:var(--panel);margin-top:24px;}
.summary-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px dashed var(--line);font-size:0.88rem;}
.summary-row:last-child{border-bottom:none;}
.summary-row .k{color:var(--sand-dim);}
.confirm-box{
  text-align:center;padding:60px 20px;border:1px solid var(--seafoam);background:rgba(31,138,111,0.06);
}
.confirm-box .ref{font-family:'Space Mono',monospace;font-size:1.4rem;color:var(--seafoam);margin:16px 0;letter-spacing:0.1em;}

/* ===== ADMIN DASHBOARD ===== */
.admin-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh;background:var(--bg);}
@media(max-width:820px){.admin-shell{grid-template-columns:1fr;}}
.admin-side{background:var(--panel);border-right:1px solid var(--line);padding:26px 20px;}
@media(max-width:820px){.admin-side{border-right:none;border-bottom:1px solid var(--line);}}
.admin-side .b1{font-family:'Spectral',serif;font-size:1.1rem;margin-bottom:2px;}
.admin-side .b2{font-family:'Space Mono',monospace;font-size:0.6rem;color:var(--coral);letter-spacing:0.1em;margin-bottom:30px;display:block;}
.admin-nav a{display:block;padding:10px 12px;font-size:0.86rem;color:var(--sand-dim);border-left:2px solid transparent;}
.admin-nav a.active,.admin-nav a:hover{color:var(--sand);border-left-color:var(--coral);background:var(--panel-2);}
.admin-main{padding:36px;}
.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:36px;}
@media(max-width:760px){.admin-stats{grid-template-columns:repeat(2,1fr);}}
.stat-card{border:1px solid var(--line);padding:20px;background:var(--panel);}
.stat-card .num{font-family:'Spectral',serif;font-size:2.1rem;color:var(--coral);}
.stat-card .lbl{font-family:'Space Mono',monospace;font-size:0.65rem;color:var(--sand-dim);letter-spacing:0.06em;text-transform:uppercase;margin-top:4px;}
table.bookings{width:100%;border-collapse:collapse;font-size:0.85rem;background:var(--panel);}
table.bookings th{
  text-align:left;font-family:'Space Mono',monospace;font-size:0.62rem;letter-spacing:0.06em;
  text-transform:uppercase;color:var(--coral);padding:10px 12px;border-bottom:1px solid var(--line);
}
table.bookings td{padding:12px;border-bottom:1px solid var(--line-soft);color:var(--sand-dim);}
table.bookings tr:hover td{color:var(--sand);background:var(--panel-2);}
.badge{font-family:'Space Mono',monospace;font-size:0.62rem;padding:4px 9px;border:1px solid var(--line);}
.badge.new{border-color:var(--coral);color:var(--coral);}
.badge.notified{border-color:var(--seafoam);color:var(--seafoam);}
.empty-state{padding:60px 20px;text-align:center;color:var(--sand-dim);border:1px dashed var(--line);}

/* ===== PAGE PHOTO BANNER (used on non-home pages) ===== */
.page-banner{
  width:100%;height:280px;overflow:hidden;position:relative;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);
}
.page-banner img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.05);}
.page-banner::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(6,28,42,0.05) 0%, rgba(6,28,42,0.55) 100%);}
.page-banner .cap{
  position:absolute;bottom:16px;left:0;right:0;text-align:center;font-family:'Space Mono',monospace;
  font-size:0.7rem;color:rgba(255,255,255,0.92);letter-spacing:0.08em;z-index:2;
}
@media(max-width:640px){.page-banner{height:180px;}}

/* ===== FOOTER ===== */
footer{padding:0 0 36px;border:none;margin-top:0;background:var(--panel-2);}
.footer-inner{padding-top:60px;border-top:1px solid var(--line-soft);}
.footer-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:40px;padding-bottom:36px;border-bottom:1px solid var(--line);margin-bottom:24px;}
.footer-col h4{font-family:'Space Mono',monospace;font-size:0.66rem;color:var(--coral);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:14px;}
.footer-col a,.footer-col p{display:block;color:var(--sand-dim);font-size:0.85rem;margin-bottom:8px;}
.footer-col a:hover{color:var(--sand);}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-family:'Space Mono',monospace;font-size:0.66rem;color:var(--sand-dim);}

/* ===== CHATBOT WIDGET ===== */
#chat-launcher{
  position:fixed;bottom:24px;right:24px;z-index:900;width:60px;height:60px;border-radius:50%;
  background:var(--coral);border:none;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(8,40,58,0.30);transition:transform .2s;
}
html[dir="rtl"] #chat-launcher{right:auto;left:24px;}
#chat-launcher:hover{transform:scale(1.06);}
#chat-launcher svg{width:26px;height:26px;stroke:#FFFFFF;}
#chat-panel{
  position:fixed;bottom:96px;right:24px;z-index:900;width:360px;max-width:92vw;height:500px;max-height:70vh;
  background:var(--panel);border:1px solid var(--line);display:none;flex-direction:column;
  box-shadow:0 20px 50px rgba(8,40,58,0.24);
}
html[dir="rtl"] #chat-panel{right:auto;left:24px;}
#chat-panel.open{display:flex;}
.chat-head{
  padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;
  background:var(--panel-2);
}
.chat-head .who{display:flex;flex-direction:column;}
.chat-head .who .n{font-family:'Spectral',serif;font-size:1rem;}
.chat-head .who .s{font-family:'Space Mono',monospace;font-size:0.62rem;color:var(--seafoam);display:flex;align-items:center;gap:5px;}
.chat-head .who .s .dot{width:6px;height:6px;border-radius:50%;background:var(--seafoam);}
.chat-close{background:none;border:none;color:var(--sand-dim);font-size:1.2rem;}
.chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;}
.msg{max-width:82%;padding:10px 13px;font-size:0.86rem;border-radius:2px;line-height:1.5;}
.msg.bot{background:var(--panel-2);align-self:flex-start;border:1px solid var(--line);}
.msg.user{background:var(--coral);color:#FFFFFF;align-self:flex-end;}
.chat-quick{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 12px;}
.qbtn{
  font-size:0.74rem;border:1px solid var(--line);background:var(--panel);color:var(--sand-dim);padding:7px 11px;transition:all .2s;
}
.qbtn:hover{border-color:var(--coral);color:var(--sand);}
.chat-input-row{display:flex;border-top:1px solid var(--line);}
.chat-input-row input{border:none;background:transparent;flex:1;padding:14px;}
.chat-input-row input:focus{outline:none;border:none;}
.chat-input-row button{background:none;border:none;color:var(--coral);padding:0 16px;}

/* ===== EXCURSION DETAIL MODAL ===== */
.detail-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;}
.detail-modal.open{display:flex;}
.detail-modal-backdrop{position:fixed;inset:0;background:rgba(6,28,42,0.6);backdrop-filter:blur(2px);}
.detail-modal-panel{
  position:relative;z-index:2;background:var(--panel);max-width:740px;width:100%;
  box-shadow:0 30px 70px rgba(6,28,42,0.35);margin:auto;
}
.detail-modal-close{
  position:absolute;top:14px;right:14px;z-index:3;width:34px;height:34px;border-radius:50%;
  background:rgba(6,28,42,0.55);color:#fff;border:none;font-size:1rem;cursor:pointer;
}
html[dir="rtl"] .detail-modal-close{right:auto;left:14px;}
.detail-modal-photo{aspect-ratio:16/9;overflow:hidden;background:var(--panel-2);}
.detail-modal-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.detail-modal-photo.no-photo{display:flex;align-items:center;justify-content:center;}
.detail-modal-photo.no-photo svg{width:70px;height:70px;opacity:0.5;}
.detail-modal-body{padding:36px 40px 44px;}
.detail-modal-top{
  display:flex;justify-content:space-between;font-family:'Space Mono',monospace;font-size:0.68rem;
  color:var(--coral);letter-spacing:0.05em;margin-bottom:18px;
}
.detail-modal-body h3{font-size:1.55rem;margin-bottom:16px;line-height:1.3;}
.detail-modal-body p.desc{color:var(--sand-dim);font-size:0.96rem;line-height:1.7;margin-bottom:8px;}
.detail-section{margin-top:34px;padding-top:30px;border-top:1px solid var(--line);}
.detail-section h4{
  font-family:'Space Mono',monospace;font-size:0.7rem;color:var(--coral);letter-spacing:0.08em;
  text-transform:uppercase;margin-bottom:18px;
}
.tier-table{width:100%;border-collapse:collapse;font-size:0.9rem;}
.tier-table td{padding:12px 4px;border-bottom:1px dashed var(--line);}
.tier-table td:last-child{text-align:right;font-weight:700;font-family:'Space Mono',monospace;color:var(--sand);}
.tier-table tr:last-child td{border-bottom:none;}
.detail-list{list-style:none;display:flex;flex-direction:column;gap:14px;font-size:0.9rem;color:var(--sand-dim);line-height:1.6;}
.detail-list li{padding-left:22px;position:relative;}
.detail-list li::before{content:'—';position:absolute;left:0;color:var(--coral);}
html[dir="rtl"] .detail-list li{padding-left:0;padding-right:22px;}
html[dir="rtl"] .detail-list li::before{left:auto;right:0;}
.detail-modal-book{margin-top:36px;}

/* Simplified outer ticket card: photo + title + summary + details button */
.ticket-view-details{
  margin-top:16px;margin-bottom:2px;display:inline-block;text-align:center;background:var(--coral);color:#fff;
  padding:10px 0;font-family:'Space Mono',monospace;font-size:0.68rem;letter-spacing:0.06em;transition:all .2s;
  border:none;cursor:pointer;width:100%;
}
.ticket-view-details:hover{background:var(--coral-bright);}
.ticket-from-tag{
  font-family:'Space Mono',monospace;font-size:0.68rem;color:var(--coral);margin-top:14px;
}

/* ===== DUAL PHOTO SHOWCASE (deliberately spaced — not a single connected image) ===== */
.dual-photo-row{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:44px;}
@media(max-width:760px){.dual-photo-row{grid-template-columns:1fr;gap:20px;}}
.dual-photo-row figure{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;border:1px solid rgba(255,255,255,0.25);}
.dual-photo-row img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.dual-photo-row figure:hover img{transform:scale(1.05);}
.dual-photo-row figcaption{
  position:absolute;bottom:0;left:0;right:0;padding:14px 16px 12px;
  background:linear-gradient(180deg, transparent, rgba(6,28,42,0.75));
  color:#fff;font-family:'Space Mono',monospace;font-size:0.68rem;letter-spacing:0.05em;
}

/* ===== WAVE DIVIDER (blue sea motif, sits above the footer) ===== */
.wave-divider{position:relative;width:100%;line-height:0;z-index:5;pointer-events:none;}
.wave-divider svg{width:100%;height:90px;display:block;}
@media(max-width:640px){.wave-divider svg{height:50px;}}
.hero-slideshow .wave-divider.hero-wave{position:absolute;bottom:-1px;left:0;z-index:4;}
.hero-slideshow .wave-divider.hero-wave svg{height:110px;}
@media(max-width:640px){.hero-slideshow .wave-divider.hero-wave svg{height:60px;}}

/* ============================================================
   TOP BAR (contact details) — sits above the sticky nav
   ============================================================ */
.topbar{background:var(--ink);color:#DCEBF0;font-size:0.76rem;}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 32px;flex-wrap:wrap;}
.topbar a{color:#FFFFFF;transition:color .2s;}
.topbar a:hover{color:#8FDCEF;}
.tb-left,.tb-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.tb-label{font-family:'Space Mono',monospace;font-size:0.62rem;letter-spacing:0.08em;text-transform:uppercase;color:#8FDCEF;}
.tb-sep{opacity:.4;}
.tb-right a + a{padding-left:14px;border-left:1px solid rgba(255,255,255,0.25);}
@media(max-width:640px){
  .topbar .wrap{padding:7px 16px;justify-content:center;}
  .tb-email{display:none;}
  .tb-right a + a{border-left:none;padding-left:0;}
}

/* ============================================================
   TRIP PACKAGE — "Add to my trip" buttons, floating button, tray
   ============================================================ */
.trip-btn{
  background:transparent;color:var(--coral);border:1px solid var(--coral);padding:10px 14px;
  font-family:'Space Mono',monospace;font-size:0.66rem;letter-spacing:0.05em;cursor:pointer;
  transition:all .2s;white-space:nowrap;
}
.trip-btn:hover{background:rgba(14,124,156,0.08);}
.trip-btn.on{background:var(--seafoam);border-color:var(--seafoam);color:#FFFFFF;}
.trip-btn-lg{padding:14px 22px;font-size:0.72rem;}
.ticket-actions{display:flex;gap:8px;margin-top:16px;align-items:stretch;}
.ticket-actions .ticket-view-details{flex:1;width:auto;margin:0;}
.hotel-card-actions{margin-top:16px;}

.trip-fab{
  position:fixed;left:20px;bottom:22px;z-index:900;display:none;align-items:center;gap:8px;
  background:var(--ink);color:#FFFFFF;border:none;padding:13px 18px;border-radius:999px;cursor:pointer;
  font-family:'Space Mono',monospace;font-size:0.72rem;letter-spacing:0.05em;box-shadow:0 10px 28px rgba(6,28,42,0.35);
}
.trip-fab.show{display:flex;}
.trip-fab .trip-count{background:var(--coral-bright);color:#FFFFFF;border-radius:999px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:0.7rem;}
html[dir="rtl"] .trip-fab{left:auto;right:20px;}
.trip-overlay{position:fixed;inset:0;background:rgba(6,28,42,0.5);z-index:1100;display:none;}
.trip-overlay.open{display:block;}
.trip-tray{
  position:fixed;top:0;right:0;bottom:0;width:min(400px,92vw);background:var(--panel);z-index:1200;
  display:flex;flex-direction:column;transform:translateX(105%);transition:transform .3s ease;box-shadow:-20px 0 50px rgba(6,28,42,0.25);
}
html[dir="rtl"] .trip-tray{right:auto;left:0;transform:translateX(-105%);}
.trip-tray.open{transform:none;}
.trip-tray-head{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line);}
.trip-tray-head h3{font-size:1.15rem;}
.trip-x{background:none;border:none;font-size:1.1rem;color:var(--sand-dim);cursor:pointer;}
.trip-tray-body{flex:1;overflow-y:auto;padding:20px 24px;}
.trip-tray-body h4{font-family:'Space Mono',monospace;font-size:0.66rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--coral);margin:18px 0 8px;}
.trip-tray-body h4:first-child{margin-top:0;}
.trip-tray-body ul{list-style:none;}
.trip-tray-body li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 0;border-bottom:1px dashed var(--line);font-size:0.88rem;}
.trip-tray-body li button{background:none;border:none;color:var(--sand-dim);cursor:pointer;font-size:0.85rem;}
.trip-empty{color:var(--sand-dim);font-size:0.9rem;}
.trip-tray-foot{padding:18px 24px 22px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px;}
.trip-hint{font-size:0.78rem;color:var(--sand-dim);}
.trip-tray-foot .submit-btn{text-align:center;align-self:stretch;}
.trip-clear{background:none;border:none;color:var(--sand-dim);font-size:0.78rem;text-decoration:underline;cursor:pointer;align-self:center;}
@media(max-width:640px){ .trip-fab{left:14px;bottom:16px;padding:11px 15px;} }

/* ============================================================
   EXCURSION DETAIL POP-UP — adventure, facts, season
   ============================================================ */
.dm-adventure{margin:26px 0 8px;padding:22px 24px;background:var(--panel-2);border-left:3px solid var(--coral);}
html[dir="rtl"] .dm-adventure{border-left:none;border-right:3px solid var(--coral);}
.dm-adventure h4,.dm-season .k,.dm-fact .k{font-family:'Space Mono',monospace;font-size:0.66rem;color:var(--coral);letter-spacing:0.08em;text-transform:uppercase;display:block;margin-bottom:8px;}
.dm-adventure p{font-size:0.98rem;line-height:1.75;color:var(--sand);}
.dm-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px;}
@media(max-width:520px){.dm-facts{grid-template-columns:1fr;}}
.dm-fact{border:1px solid var(--line);padding:16px 18px;}
.dm-fact .v{font-size:1.05rem;font-weight:700;color:var(--sand);}
.dm-season{border:1px solid var(--line);padding:18px 20px;margin-top:16px;}
.dm-season .v{font-size:1.15rem;font-weight:700;color:var(--sand);margin-right:10px;}
.dm-badge{display:inline-block;font-family:'Space Mono',monospace;font-size:0.62rem;background:rgba(31,138,111,0.12);color:var(--seafoam);padding:4px 10px;letter-spacing:0.04em;}
.dm-tips{list-style:none;margin-top:14px;display:flex;flex-direction:column;gap:8px;font-size:0.88rem;color:var(--sand-dim);}
.dm-tips li{padding-left:20px;position:relative;}
.dm-tips li::before{content:'☀';position:absolute;left:0;color:var(--coral);font-size:0.8rem;}
html[dir="rtl"] .dm-tips li{padding-left:0;padding-right:20px;}
html[dir="rtl"] .dm-tips li::before{left:auto;right:0;}
.dm-chips{display:flex;flex-wrap:wrap;gap:8px;}
.dm-chip{font-family:'Space Mono',monospace;font-size:0.66rem;border:1px solid var(--line);padding:6px 12px;color:var(--sand-dim);background:var(--panel);}
.dm-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:36px;}
.dm-link{font-family:'Space Mono',monospace;font-size:0.72rem;color:var(--coral);letter-spacing:0.04em;}
.dm-link:hover{color:var(--coral-bright);}

/* ============================================================
   HOTELS PAGE — full information cards
   ============================================================ */
.hotel-tag.alt{background:rgba(14,124,156,0.07);border-color:transparent;color:var(--coral);}
.hotel-full-list{display:flex;flex-direction:column;gap:32px;}
.hotel-full{display:grid;grid-template-columns:minmax(260px,38%) 1fr;border:1px solid var(--line);background:var(--panel);overflow:hidden;}
@media(max-width:820px){.hotel-full{grid-template-columns:1fr;}}
.hf-photo{min-height:280px;background:var(--panel-2);}
.hf-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.hf-body{padding:30px 32px 32px;}
.hf-body h3{font-size:1.4rem;margin-bottom:12px;}
.hf-about{color:var(--sand-dim);font-size:0.95rem;line-height:1.75;margin-bottom:22px;}
.hf-facts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:22px;}
@media(max-width:520px){.hf-facts{grid-template-columns:1fr;}}
.hf-facts div{border:1px solid var(--line);padding:12px 16px;}
.hf-facts dt,.hf-label{font-family:'Space Mono',monospace;font-size:0.62rem;color:var(--coral);letter-spacing:0.08em;text-transform:uppercase;display:block;margin-bottom:6px;}
.hf-facts dd{font-weight:700;font-size:0.95rem;}
.hf-row{margin-top:18px;}
.hf-row .hotel-tags{margin-top:0;}
.hf-nearby{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:0.86rem;}
.hf-nearby a{color:var(--coral);border-bottom:1px solid transparent;}
.hf-nearby a:hover{border-bottom-color:var(--coral);}
.hf-actions,.tf-actions{margin-top:26px;}

/* ============================================================
   TRANSFERS PAGE — route cards
   ============================================================ */
.transfer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
@media(max-width:820px){.transfer-grid{grid-template-columns:1fr;}}
.transfer-card{border:1px solid var(--line);background:var(--panel);padding:28px 30px 30px;display:flex;flex-direction:column;}
.transfer-code{font-size:0.66rem;color:var(--coral);letter-spacing:0.08em;margin-bottom:10px;}
.transfer-card h3{font-size:1.2rem;margin-bottom:12px;}
.tf-desc{color:var(--sand-dim);font-size:0.92rem;line-height:1.7;margin-bottom:20px;flex-grow:1;}
.tf-facts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;}
.tf-facts div{border:1px solid var(--line);padding:12px 16px;}
.tf-facts dt{font-family:'Space Mono',monospace;font-size:0.62rem;color:var(--coral);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:6px;}
.tf-facts dd{font-weight:700;font-size:0.92rem;}
.tf-inc .hotel-tags{margin-top:0;}

/* ============================================================
   BOOKING PAGE — package picker, review, send buttons
   ============================================================ */
.pick-title{font-size:1.25rem;margin-bottom:6px;}
.pick-group{margin-top:28px;}
.pick-group > h4{font-family:'Space Mono',monospace;font-size:0.72rem;color:var(--coral);letter-spacing:0.08em;text-transform:uppercase;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:14px;}
.pick-sub{font-size:0.74rem;font-weight:700;color:var(--sand-dim);margin:16px 0 8px;}
.pick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;}
@media(max-width:600px){.pick-grid{grid-template-columns:1fr;}}
.pick-item{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);padding:11px 14px;background:var(--panel);cursor:pointer;font-family:'Manrope',sans-serif;font-size:0.86rem;color:var(--sand);text-transform:none;letter-spacing:0;margin:0;transition:border-color .2s,background .2s;}
.pick-item input{width:auto;margin-top:3px;flex-shrink:0;accent-color:var(--coral);}
.pick-item:hover{border-color:var(--coral);}
.pick-item:has(input:checked){border-color:var(--coral);background:rgba(14,124,156,0.07);}
.step-nav{display:flex;justify-content:space-between;align-items:center;margin-top:34px;gap:16px;}
.step-back{background:none;border:1px solid var(--line);color:var(--sand-dim);padding:13px 22px;font-family:'Space Mono',monospace;font-size:0.72rem;cursor:pointer;}
.step-back:hover{border-color:var(--coral);color:var(--sand);}
.form-error{color:#B3402A;font-size:0.86rem;margin-top:18px;}
.rv-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:24px;}
.rv-group{border:1px solid var(--line);padding:16px 18px;background:var(--panel);}
.rv-group h4{font-family:'Space Mono',monospace;font-size:0.64rem;color:var(--coral);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:10px;}
.rv-group ul{list-style:none;font-size:0.86rem;}
.rv-group li{padding:5px 0;border-bottom:1px dashed var(--line);}
.rv-group li:last-child{border-bottom:none;}
.send-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;align-items:stretch;}
.send-row .submit-btn{align-self:auto;display:inline-flex;align-items:center;gap:6px;}
.send-wa{background:#1F8A55;}
.send-wa:hover{background:#25A464;}
.send-copy{background:none;border:1px solid var(--line);color:var(--sand-dim);padding:0 20px;font-family:'Space Mono',monospace;font-size:0.72rem;cursor:pointer;}
.send-copy:hover{border-color:var(--coral);color:var(--sand);}

/* ============================================================
   FOOTER — contact + creator copyright
   ============================================================ */
.footer-wa{display:inline-block!important;margin-top:6px;color:#FFFFFF!important;background:#1F8A55;padding:9px 16px;font-family:'Space Mono',monospace;font-size:0.7rem!important;letter-spacing:0.05em;}
.footer-wa:hover{background:#25A464;}
.footer-credit{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:0.74rem;color:var(--sand-dim);line-height:1.9;}
.footer-credit strong{color:var(--sand);font-weight:700;}
.footer-credit .fc-link{color:var(--sand);font-weight:700;border-bottom:1px solid transparent;}
.footer-credit .fc-link:hover{color:var(--coral);border-bottom-color:var(--coral);}
.fc-sep{margin:0 8px;opacity:.5;}

/* ===== Homepage: "build your own package" steps ===== */
.step-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:820px){.step-cards{grid-template-columns:1fr;}}
.step-card{border:1px solid var(--line);background:var(--bg);padding:28px 28px 30px;}
.step-card .sc-num{font-family:'Space Mono',monospace;font-size:0.72rem;color:var(--coral);letter-spacing:0.1em;display:block;margin-bottom:12px;}
.step-card h3{font-size:1.25rem;margin-bottom:10px;}
.step-card p{color:var(--sand-dim);font-size:0.92rem;line-height:1.7;}

/* ============================================================
   ART FALLBACK + PARK / SAFARI CARDS
   ============================================================ */
.art-fill{width:100%;height:100%;display:block;}
.ticket-photo svg.art-fill{position:absolute;inset:0;}
.park-type{position:absolute;top:12px;left:12px;z-index:2;font-family:'Space Mono',monospace;font-size:0.6rem;letter-spacing:0.06em;text-transform:uppercase;background:rgba(6,28,42,0.72);color:#FFFFFF;padding:5px 10px;}
.park-type.ca{background:#A87424;}
html[dir="rtl"] .park-type{left:auto;right:12px;}
.park-wild{margin-top:14px;}
.park-wild .k,.park-season .k{font-family:'Space Mono',monospace;font-size:0.62rem;color:var(--coral);letter-spacing:0.08em;text-transform:uppercase;display:block;margin-bottom:8px;}
.park-season{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line);}
.park-season b{font-size:0.98rem;color:var(--sand);}
.park-season .dm-tips{margin-top:10px;font-size:0.8rem;}
.park-link{font-family:'Space Mono',monospace;font-size:0.68rem;color:var(--coral);align-self:center;}
.park-link:hover{color:var(--coral-bright);}

/* ============================================================
   PACKAGES
   ============================================================ */
.pkg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
@media(max-width:900px){.pkg-grid{grid-template-columns:1fr;}}
.pkg-card{border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;overflow:hidden;transition:border-color .25s,box-shadow .25s;}
.pkg-card:hover{border-color:var(--coral);box-shadow:0 18px 40px rgba(8,40,58,0.10);}
.pkg-photo{position:relative;aspect-ratio:16/8;overflow:hidden;background:var(--panel-2);}
.pkg-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.pkg-card:hover .pkg-photo img{transform:scale(1.05);}
.pkg-photo svg.art-fill{position:absolute;inset:0;}
.pkg-days{position:absolute;right:14px;bottom:14px;z-index:2;background:var(--coral);color:#FFFFFF;font-family:'Space Mono',monospace;font-size:0.72rem;letter-spacing:0.05em;padding:7px 14px;}
html[dir="rtl"] .pkg-days{right:auto;left:14px;}
.pkg-body{padding:24px 28px 28px;display:flex;flex-direction:column;flex-grow:1;}
.pkg-body h3{font-size:1.3rem;margin-bottom:14px;}
.pkg-hl{margin-top:20px;}
.pkg-hl ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;font-size:0.86rem;color:var(--sand-dim);}
@media(max-width:520px){.pkg-hl ul{grid-template-columns:1fr;}}
.pkg-hl li{padding-left:16px;position:relative;}
.pkg-hl li::before{content:'✓';position:absolute;left:0;color:var(--seafoam);font-size:0.75rem;}
html[dir="rtl"] .pkg-hl li{padding-left:0;padding-right:16px;}
html[dir="rtl"] .pkg-hl li::before{left:auto;right:0;}
.pkg-hl .more::before{content:'';}
.pkg-stay{margin-top:18px;font-size:0.86rem;color:var(--sand);}
.pkg-stay .hf-label{display:inline;margin-right:8px;}
.pkg-details{margin-top:20px;border-top:1px solid var(--line);padding-top:14px;}
.pkg-details summary{cursor:pointer;font-family:'Space Mono',monospace;font-size:0.7rem;letter-spacing:0.06em;color:var(--coral);text-transform:uppercase;list-style:none;}
.pkg-details summary::-webkit-details-marker{display:none;}
.pkg-details summary::after{content:' +';}
.pkg-details[open] summary::after{content:' −';}
.pkg-plan{list-style:none;margin-top:14px;}
.pkg-plan li{display:flex;gap:16px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:0.86rem;}
.pkg-plan li b{flex:0 0 78px;color:var(--coral);font-family:'Space Mono',monospace;font-size:0.7rem;letter-spacing:0.04em;padding-top:2px;}
.pkg-plan li span{color:var(--sand);}
.pkg-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:auto;padding-top:24px;}
.pkg-group + .pkg-group{margin-top:20px;}

/* ============================================================
   MOUNTAIN TREKKING — route cards
   ============================================================ */
.mtn-season{margin:0 0 30px;max-width:640px;}
.route-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
@media(max-width:900px){.route-grid{grid-template-columns:1fr;}}
.route-card{border:1px solid var(--line);background:var(--panel);padding:26px 28px 28px;display:flex;flex-direction:column;}
.rc-top{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:16px;}
.rc-top h3{font-size:1.3rem;}
.rc-days{font-family:'Space Mono',monospace;font-size:0.78rem;background:var(--coral);color:#FFFFFF;padding:6px 14px;white-space:nowrap;}
.dm-chip.tag{background:rgba(14,124,156,0.07);border-color:transparent;color:var(--coral);}
.dm-chip.lvl-moderate{border-color:#1F8A6F;color:#1F8A6F;}
.dm-chip.lvl-challenging{border-color:#A87424;color:#A87424;}
.dm-chip.lvl-hard{border-color:#B3402A;color:#B3402A;}
.rc-stages{margin-top:20px;flex-grow:1;}
.stages{list-style:none;display:flex;flex-wrap:wrap;gap:6px 0;font-size:0.8rem;}
.stages li{display:inline-flex;align-items:center;color:var(--sand);}
.stages li + li::before{content:'→';color:var(--coral);margin:0 9px;}
html[dir="rtl"] .stages li + li::before{content:'←';}
.stages li.peak{font-weight:700;color:var(--coral);}

/* ============================================================
   HOMEPAGE — stats, about, pillars, band, contact
   ============================================================ */
.stats-strip{margin-top:-42px;position:relative;z-index:6;padding:0;}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);background:var(--panel);border:1px solid var(--line);box-shadow:0 22px 50px rgba(8,40,58,0.14);}
@media(max-width:760px){.stats-grid{grid-template-columns:repeat(2,1fr);}}
.stat{padding:28px 20px;text-align:center;border-right:1px solid var(--line);}
.stat:last-child{border-right:none;}
@media(max-width:760px){.stat:nth-child(2){border-right:none;}.stat:nth-child(-n+2){border-bottom:1px solid var(--line);}}
.stat-n{display:block;font-family:'Spectral',serif;font-size:clamp(2rem,4vw,2.8rem);font-weight:500;color:var(--coral);line-height:1;}
.stat-l{display:block;margin-top:10px;font-family:'Space Mono',monospace;font-size:0.66rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--sand-dim);}
.about-section{padding-top:96px;}
.about-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:64px;align-items:center;}
@media(max-width:920px){.about-grid{grid-template-columns:1fr;gap:44px;}}
.about-text h2{font-size:clamp(1.8rem,3.2vw,2.5rem);margin:10px 0 20px;}
.about-text p{color:var(--sand-dim);font-size:1.02rem;line-height:1.8;margin-bottom:16px;}
.why-list{list-style:none;margin-top:26px;display:grid;gap:12px;}
.why-list li{position:relative;padding-left:34px;font-weight:600;font-size:0.95rem;}
.why-list li::before{content:'✓';position:absolute;left:0;top:-1px;width:22px;height:22px;border-radius:50%;background:var(--coral);color:#FFFFFF;font-size:0.72rem;display:flex;align-items:center;justify-content:center;}
html[dir="rtl"] .why-list li{padding-left:0;padding-right:34px;}
html[dir="rtl"] .why-list li::before{left:auto;right:0;}
.about-photos{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:14px;height:520px;}
@media(max-width:560px){.about-photos{height:400px;}}
.about-photos figure{margin:0;overflow:hidden;border:1px solid var(--line);}
.about-photos img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;}
.about-photos figure:hover img{transform:scale(1.06);}
.ap-tall{grid-row:1 / span 2;}
.ap-badge{position:absolute;left:-14px;bottom:26px;background:var(--coral);color:#FFFFFF;font-family:'Space Mono',monospace;font-size:0.7rem;letter-spacing:0.08em;padding:12px 20px;box-shadow:0 12px 28px rgba(8,40,58,0.25);text-transform:uppercase;}
@media(max-width:920px){.ap-badge{left:14px;}}
.pillars-section{padding-top:20px;}
.pillar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
@media(max-width:1100px){.pillar-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.pillar-grid{grid-template-columns:1fr;}}
.pillar-card{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--panel);overflow:hidden;transition:transform .3s,box-shadow .3s,border-color .3s;}
.pillar-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(8,40,58,0.14);border-color:var(--coral);}
.pillar-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--panel-2);}
.pillar-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;}
.pillar-card:hover .pillar-media img{transform:scale(1.07);}
.pillar-media svg.art-fill{position:absolute;inset:0;}
.pillar-body{padding:22px 24px 26px;display:flex;flex-direction:column;flex-grow:1;}
.pillar-body h3{font-size:1.2rem;margin-bottom:10px;}
.pillar-body p{color:var(--sand-dim);font-size:0.88rem;line-height:1.65;flex-grow:1;}
.pillar-go{margin-top:18px;font-family:'Space Mono',monospace;font-size:0.7rem;color:var(--coral);letter-spacing:0.05em;}
.band-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:30px;}
.band-chips a{border:1px solid rgba(255,255,255,0.55);color:#FFFFFF;padding:9px 18px;font-family:'Space Mono',monospace;font-size:0.72rem;letter-spacing:0.05em;transition:all .2s;background:rgba(255,255,255,0.08);}
.band-chips a:hover{background:#FFFFFF;color:var(--ink);}
.cta-contact{margin-top:34px;display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:center;align-items:center;color:#FFFFFF;font-size:0.95rem;}
.cta-contact a{color:#FFFFFF;border-bottom:1px solid rgba(255,255,255,0.4);}
.cta-contact a:hover{color:#8FDCEF;}
.cta-contact .cc-label{font-family:'Space Mono',monospace;font-size:0.68rem;letter-spacing:0.08em;text-transform:uppercase;color:#8FE0F5;}
.cta-contact .cc-sep{opacity:.5;margin:0 -8px;}

/* ============================================================
   DESTINATIONS OF THE MOMENT (homepage) — curated park photo cards
   ============================================================ */
.destinations-section{padding:100px 0;background:var(--panel);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);}
.dest-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:22px;}
@media(max-width:1100px){.dest-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:640px){.dest-grid{grid-template-columns:repeat(2,1fr);}}
.dest-card{display:block;text-align:center;}
.dest-photo{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:999px 999px 0 0 / 90px 90px 0 0;background:var(--panel-2);box-shadow:0 16px 30px rgba(8,40,58,0.12);}
.dest-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.dest-card:hover .dest-photo img{transform:scale(1.08);}
.dest-photo svg.art-fill{position:absolute;inset:0;}
.dest-card h3{margin-top:18px;font-size:1.15rem;transition:color .2s;}
.dest-card:hover h3{color:var(--coral);}
.dest-cat{display:block;margin-top:4px;font-family:'Space Mono',monospace;font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--sand-dim);}

/* ============================================================
   MINICARD — the site-wide "photo + name only, tap for full info" card
   used on excursions, safaris, packages and hotels (grids + homepage previews)
   ============================================================ */
.minicard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:900px){.minicard-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.minicard-grid{grid-template-columns:1fr;}}
.minicard{
  position:relative;display:block;border:1px solid var(--line);background:var(--panel);overflow:hidden;
  cursor:pointer;transition:transform .3s,box-shadow .3s,border-color .3s;
}
.minicard:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(8,40,58,0.14);border-color:var(--coral);}
.minicard-photo{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--panel-2);}
.minicard-photo img,.minicard-photo svg.art-fill{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.minicard-photo.no-photo{display:flex;align-items:center;justify-content:center;}
.minicard-photo.no-photo svg{width:30%;height:30%;}
.minicard:hover .minicard-photo img{transform:scale(1.07);}
.minicard-name{padding:16px 18px 18px;}
.minicard-name h3{font-size:1.05rem;line-height:1.3;}
.minicard-name .hotel-loc{display:block;font-family:'Space Mono',monospace;font-size:0.6rem;letter-spacing:0.08em;color:var(--coral);margin-bottom:5px;}
.minicard .pkg-days,.minicard .park-type{position:absolute;z-index:2;font-family:'Space Mono',monospace;font-size:0.62rem;letter-spacing:0.05em;padding:5px 10px;}
.minicard .pkg-days{right:12px;bottom:12px;background:var(--coral);color:#FFFFFF;}
.minicard .park-type{top:12px;left:12px;background:rgba(6,28,42,0.72);color:#FFFFFF;text-transform:uppercase;}
.minicard .park-type.ca{background:var(--gold);}
html[dir="rtl"] .minicard .pkg-days{right:auto;left:12px;}
html[dir="rtl"] .minicard .park-type{left:auto;right:12px;}

/* Detail-modal photo now also carries the park/package badge when opened from a minicard */
.detail-modal-photo{position:relative;}
.detail-modal-photo .pkg-days,.detail-modal-photo .park-type{position:absolute;z-index:2;font-family:'Space Mono',monospace;font-size:0.64rem;letter-spacing:0.05em;padding:6px 12px;}
.detail-modal-photo .pkg-days{right:16px;bottom:16px;background:var(--coral);color:#FFFFFF;}
.detail-modal-photo .park-type{top:16px;left:16px;background:rgba(6,28,42,0.72);color:#FFFFFF;text-transform:uppercase;}
.detail-modal-photo .park-type.ca{background:var(--gold);}
.hf-nearby{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:0.86rem;}
.hf-nearby a{color:var(--coral);border-bottom:1px solid transparent;}
.hf-nearby a:hover{border-bottom-color:var(--coral);}



/* ============================================================
   RESPONSIVE REFINEMENTS — phone / tablet / desktop pass
   Breakpoints used across this file: 1180 (max content width),
   980 (tablet landscape), 900/920 (tablet), 760/640 (phone landscape),
   560/480 (phone portrait), 375 (small phone).
   ============================================================ */

/* Small-phone hero: keep the eyebrow chip from overflowing narrow screens */
.hero-content .eyebrow-tag{flex-wrap:wrap;max-width:calc(100% - 20px);}
@media(max-width:480px){
  .hero-content .eyebrow-tag{font-size:0.62rem;padding:6px 10px;gap:6px;}
  .hero-content h1{font-size:clamp(1.7rem,7vw,2.4rem);}
  .hero-content p.lede{font-size:0.95rem;}
  .hero-slideshow{height:78vh;min-height:460px;}
}

/* Tablet: ease the jump from 3-col to 1-col story cards */
@media(max-width:900px) and (min-width:641px){
  .story-cards{grid-template-columns:repeat(2,1fr);}
}

/* Booking step bar: numbers only on narrow phones, full labels otherwise */
@media(max-width:520px){
  .step-pill{font-size:0.6rem;padding:10px 4px;letter-spacing:0.01em;}
}
@media(max-width:400px){
  .step-pill .step-label{display:none;}
}

/* General section breathing room on small phones */
@media(max-width:480px){
  section{padding:64px 0;}
  .section-tight{padding:44px 0;}
  .pagehero{padding:80px 0 56px;}
  .pagehero.photo{padding:120px 0 64px;}
  .story-section{padding:64px 0;}
  .section-head{margin-bottom:36px;}
}

/* Buttons: full-width on very small screens for easy tapping */
@media(max-width:420px){
  .nav-cta, .submit-btn, a.ticket-book{text-align:center;}
}

/* Chat widget: don't let it eclipse content on short mobile viewports */
@media(max-width:420px){
  #chat-panel{height:70vh;bottom:84px;}
  #chat-launcher{width:52px;height:52px;bottom:18px;right:18px;}
  html[dir="rtl"] #chat-launcher{left:18px;}
}

/* Hotel/ticket cards: tighten padding a touch on the smallest phones */
@media(max-width:375px){
  .ticket-body{padding:16px 18px 0;}
  .hotel-body{padding:16px;}
  .wrap{padding:0 16px;}
}

/* Large desktop: let the hero breathe a bit more, cap line length */
@media(min-width:1440px){
  .hero-content h1{max-width:900px;}
  .pagehero p.lede, .story-section p.lede-lg{font-size:1.1rem;}
}

/* Ensure tables and any wide inline content never force page-level horizontal scroll */
table.bookings{min-width:0;}
img, video{max-width:100%;height:auto;}
.ticket-photo img, .hotel-photo img, .hero-slideshow img, .hero-slideshow video,
.page-banner img, .gallery-grid img{height:100%;} /* keep cover-fit sizing for these specific cases */

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}

/* ============================================================
   TREKKING PAGE — Uluguru section header with photo
   ============================================================ */
.trek-mtn-head{display:grid;grid-template-columns:260px 1fr;gap:36px;align-items:center;margin-bottom:34px;}
@media(max-width:760px){.trek-mtn-head{grid-template-columns:1fr;}}
.trek-mtn-photo{aspect-ratio:3/4;overflow:hidden;border:1px solid var(--line);}
@media(max-width:760px){.trek-mtn-photo{aspect-ratio:16/9;}}
.trek-mtn-photo img{width:100%;height:100%;object-fit:cover;display:block;}
