/* ============================================================
   AZZAHRA COTTAGE TOUR & TRAVEL — Design System
   Concept: Coastal Departure Board
   ============================================================ */

/* Google Fonts (Petrona, Plus Jakarta Sans, JetBrains Mono) sengaja TIDAK di-@import di sini:
   @import membuat browser menunggu style.css selesai diunduh dulu sebelum mulai memuat font.
   Font dimuat lewat <link> di <head> setiap halaman HTML (lihat SEO-README.md). */

:root{
  /* --- Fixed brand colors (do not change) --- */
  --blue: #0194F3;
  --blue-dark: #0177C7;
  /* Turunan --blue untuk kontras WCAG AA (teks kecil & teks putih di atas biru).
     --blue tetap dipakai untuk aksen, ikon, garis, fokus, dan teks besar. */
  --blue-text: #0170BC;        /* teks biru di latar terang: 5.0:1 */
  --blue-action: #0177C7;      /* latar tombol dgn teks putih: 4.7:1 */
  --blue-action-dark: #0165A8; /* ujung gradien tombol */
  --bg: #FAFAFA;
  --text: #111827;
  --text-secondary: #5F6674;
  --border: #E5E7EB;

  /* --- Supporting tropical accents (used sparingly) --- */
  --navy: #0B2A4A;
  --navy-soft: #123A62;
  --gold: #E8A33D;
  --gold-soft: #F6E4C2;
  --white: #FFFFFF;

  /* --- Semantic --- */
  --success: #12885A;
  --danger: #DC4444;

  /* --- Type --- */
  --font-display: 'Petrona', serif;
  --font-body: 'Plus Jakarta Sans', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;

  /* --- Elevation --- */
  --shadow-sm: 0 1px 2px rgba(17,24,39,0.04), 0 1px 3px rgba(17,24,39,0.06);
  --shadow-md: 0 4px 10px rgba(17,24,39,0.06), 0 2px 4px rgba(17,24,39,0.05);
  --shadow-lg: 0 20px 40px -12px rgba(11,42,74,0.18);
  --shadow-blue: 0 8px 20px -6px rgba(1,148,243,0.35);

  /* --- Radius --- */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-pill: 999px;

  /* --- Layout --- */
  --container: 1160px;
  --bottom-nav-h: 68px;
  --nav-h: 76px;

  /* --- Semantic surfaces (replacing hardcoded hex) --- */
  --blue-surface: #EFF6FF;
  --success-surface: #E8F7EF;
  --warning-surface: #FFF4E0;
  --danger-surface: #FDEDED;
  --navy-surface: #F1F7FE;

  /* --- Animation timing --- */
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --transition-smooth: 0.4s var(--ease-out-expo);
}

/* ============ Reset ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;}
ul{list-style:none;}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.15;font-weight:600;letter-spacing:-0.01em;}

/* Reduced motion respect */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}
}

/* Focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2.5px solid var(--blue);
  outline-offset:3px;
  border-radius:4px;
}

.container{max-width:var(--container);margin:0 auto;padding:0 20px;}

/* ============ Typography helpers ============ */
.eyebrow{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--blue-text);
  font-weight:600;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.eyebrow::before{
  content:"";
  width:16px;height:1px;
  background:var(--blue);
  display:inline-block;
}
h1{font-size:clamp(2.2rem,6vw,3.6rem);}
h2{font-size:clamp(1.7rem,4.4vw,2.5rem);}
h3{font-size:clamp(1.2rem,3vw,1.5rem);}
.section-head{max-width:640px;margin-bottom:36px;}
.section-head p{color:var(--text-secondary);font-size:1.02rem;margin-top:14px;}
.italic-accent{font-style:italic;color:var(--blue);}

/* ============ Buttons ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;
  border-radius:var(--r-pill);
  font-weight:600;font-size:0.95rem;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(135deg, var(--blue-action) 0%, var(--blue-action-dark) 100%);color:#fff;
  box-shadow:var(--shadow-blue);
  position:relative;overflow:hidden;
}
.btn-primary::before {
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  transition:left 0.5s ease;
}
.btn-primary:hover::before { left:100%; }
.btn-primary:hover{background:var(--blue-action-dark);transform:translateY(-2px);box-shadow:0 12px 24px -6px rgba(1,148,243,0.42);}
.btn-secondary{
  background:transparent;color:var(--text);
  border:1.5px solid var(--border);
}
.btn-secondary:hover{border-color:var(--blue);color:var(--blue-text);transform:translateY(-2px);}
.btn-navy{background:var(--navy);color:#fff;}
.btn-navy:hover{background:var(--navy-soft);transform:translateY(-2px);}
.btn-block{width:100%;}
.btn-lg{padding:16px 30px;font-size:1rem;}
.btn:disabled{opacity:0.45;cursor:not-allowed;transform:none !important;}

/* ============ Desktop Navbar ============ */
.navbar{
  position:sticky;top:0;z-index:200;
  background:rgba(250,250,250,0.8);
  backdrop-filter:blur(12px) saturate(180%);
  -webkit-backdrop-filter:blur(12px) saturate(180%);
  border-bottom:1px solid var(--border);
  height:var(--nav-h);
}
.navbar.scrolled {
  background:rgba(250,250,250,0.95);
  box-shadow:var(--shadow-md);
}
.navbar .container{height:100%;display:flex;align-items:center;justify-content:space-between;}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:600;font-size:1.25rem;color:var(--text);}
.brand-mark{
  width:38px;height:38px;border-radius:11px;
  background:linear-gradient(155deg,var(--blue),var(--navy));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-family:var(--font-display);font-style:italic;font-size:1.15rem;
  flex-shrink:0;
}
.brand small{display:block;font-family:var(--font-body);font-weight:500;font-size:0.69rem;color:var(--text-secondary);letter-spacing:0.06em;text-transform:uppercase;}

.nav-links{display:none;align-items:center;gap:6px;}
.nav-links a{
  padding:9px 16px;border-radius:var(--r-pill);
  font-weight:500;font-size:0.93rem;color:var(--text-secondary);
  transition:background .15s ease, color .15s ease;
}
.nav-links a:hover{background:#EFF6FF;color:var(--blue-text);}
.nav-links a.active{color:var(--blue-text);background:#EFF6FF;}
.nav-links a.active {
  color:var(--blue-text);background:var(--blue-surface);
  position:relative;
}
.nav-links a.active::after {
  content:'';
  position:absolute;
  bottom:4px;left:50%;transform:translateX(-50%);
  width:5px;height:5px;border-radius:50%;
  background:var(--blue);
}
.nav-cta{display:none;}

.nav-toggle{display:none;}

@media (min-width:900px){
  .nav-links{display:flex;}
  .nav-cta{display:inline-flex;}
}

/* ============ Mobile Bottom Navigation ============ */
.bottom-nav{
  position:fixed;left:0;right:0;bottom:0;
  z-index:300;
  background:var(--bg);
  border-top:none;
  box-shadow:0 -8px 30px rgba(17,24,39,0.08);
  padding-bottom:env(safe-area-inset-bottom, 0);
  display:flex;
  border-radius:20px 20px 0 0;
}
.bottom-nav a{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;padding:10px 4px 8px;
  min-height:58px;
  color:var(--text-secondary);
  font-size:0.68rem;font-weight:600;
  transition:color .15s ease;
}
.bottom-nav a svg{width:22px;height:22px;stroke:currentColor;transition:transform .15s ease;}
.bottom-nav a.active{
  color:var(--blue-text);
  position:relative;
}
.bottom-nav a.active::before {
  content:'';position:absolute;inset:6px 8px;
  background:var(--blue-surface);
  border-radius:var(--r-md);
  z-index:-1;
}
.bottom-nav a.active svg{transform:translateY(-2px);}
.bottom-nav a:active svg{transform:scale(0.9);}

@media (min-width:900px){
  .bottom-nav{display:none;}
}
body.has-bottom-nav{padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom, 0));}
@media (min-width:900px){
  body.has-bottom-nav{padding-bottom:0;}
}

/* ============ Mobile drawer menu (used within bottom nav "more" if needed) ============ */
.mobile-menu-overlay{
  position:fixed;inset:0;background:rgba(11,42,74,0.5);
  backdrop-filter:blur(2px);
  z-index:250;opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.mobile-menu-overlay.open{opacity:1;pointer-events:auto;}

/* ============ Hero ============ */
.hero{
  position:relative;
  /* Dulu 92vh: kotak booking di bawahnya ikut terdorong keluar layar laptop. Sekarang hero + kotak booking
     muat di satu layar (tinggi layar dikurangi navbar & kotak booking), dengan batas bawah/atas. */
  min-height:clamp(520px, calc(100vh - 250px), 760px);
  display:flex;align-items:flex-end;
  color:#fff;
  overflow:hidden;
}
.hero-media{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(11,42,74,0.25) 0%, rgba(11,42,74,0.4) 40%, rgba(8,20,35,0.7) 70%, rgba(8,20,35,0.95) 100%), var(--navy);
  background-size:cover;background-position:center;
}
.hero-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.hero-media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg, rgba(8,20,35,0.22) 0%, rgba(8,20,35,0.42) 45%, rgba(8,20,35,0.70) 100%);}
/* Zoom lambat hanya di desktop & bila gerak tidak dikurangi: di mobile menghemat CPU/baterai */
@media (min-width:900px) and (prefers-reduced-motion:no-preference){
  .hero-media img{animation:kenBurns 24s ease-in-out infinite;will-change:transform;}
}
.hero-content{position:relative;z-index:2;padding-top:64px;padding-bottom:84px;width:100%;} /* padding kiri/kanan dari .container (dulu tertimpa jadi 0). padding-bawah > tumpang tindih kotak booking agar tombol hero tidak tertutup */
.hero .eyebrow{color:var(--gold);}
.hero .eyebrow::before{background:var(--gold);}
.hero h1{color:#fff;margin-top:16px;max-width:760px;}
.hero h1 em{font-style:italic;color:var(--gold);}
.hero p.lead{margin-top:18px;max-width:520px;color:rgba(255,255,255,0.86);font-size:1.05rem;}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}
.hero .btn-secondary{border-color:rgba(255,255,255,0.55);color:#fff;}
@media (max-width:520px){
  .hero-content{padding-top:48px;}
  .hero p.lead{font-size:1rem;}
  .hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px;}
  .hero-actions .btn-lg{padding:15px 12px;font-size:0.95rem;}
}
.hero .btn-secondary:hover{border-color:#fff;background:rgba(255,255,255,0.08);}
.hero .eyebrow { animation: heroFadeUp 0.6s var(--ease-out-expo) 0.05s both; }
.hero h1 { animation: heroFadeUp 0.6s var(--ease-out-expo) 0.12s both; }
.hero p.lead { animation: heroFadeUp 0.6s var(--ease-out-expo) 0.2s both; }
.hero-actions { animation: heroFadeUp 0.6s var(--ease-out-expo) 0.28s both; }
.hero .eyebrow::before { animation: eyebrowLine 0.5s var(--ease-out-expo) 0.2s both; }

/* Wave berada DI DALAM hero, berwarna sama dengan latar halaman (--bg): hero mengalir ke About tanpa garis potong. */
.hero-wave{position:absolute;left:0;right:0;bottom:-1px;height:clamp(36px,6.2vw,84px);z-index:1;pointer-events:none;}
.hero-wave svg{display:block;width:100%;height:100%;}
.hero-wave path{fill:var(--bg);}
#about{padding-top:clamp(40px,7vw,72px);}

/* ============ Sections generic ============ */
.section{padding:76px 0;}
.section-tight{padding:52px 0;}
.section-navy{
  background:var(--navy);color:#fff;
  position:relative;overflow:hidden;
}
.section-navy::before {
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size:24px 24px;
  pointer-events:none;
}
.section-navy .eyebrow{color:var(--gold);}
.section-navy .eyebrow::before{background:var(--gold);}
.section-navy h2{color:#fff;}
.section-navy p{color:rgba(255,255,255,0.72);}
.bg-tint{background:linear-gradient(180deg, #F1F7FE 0%, #F8FBFF 100%);}

/* ============ Cottage Card ============ */
.cottage-card{
  background:#fff;border-radius:var(--r-lg);
  overflow:hidden;border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
  transition:box-shadow .25s ease, transform .25s ease;
  position:relative; /* ensure positioning context */
}
.cottage-card::after {
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg, var(--blue), var(--gold));
  transform:scaleX(0);transition:transform 0.4s var(--ease-out-expo);
  border-radius:0 0 var(--r-lg) var(--r-lg);
}
.cottage-card:hover::after { transform:scaleX(1); }
.cottage-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);border-color:rgba(1,148,243,0.15);}
.cottage-card .cc-image{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--gold-soft);}
.cottage-card .cc-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.cottage-card:hover .cc-image img{transform:scale(1.05);}
.cc-badge{
  position:absolute;top:14px;left:14px;
  background:rgba(255,255,255,0.92);backdrop-filter:blur(4px);
  padding:6px 12px;border-radius:var(--r-pill);
  font-size:0.72rem;font-weight:700;color:var(--navy);
}
.cc-body{padding:22px;}
.cc-body h3{margin-bottom:6px;}
.cc-meta{display:flex;gap:14px;margin:12px 0 14px;color:var(--text-secondary);font-size:0.85rem;}
.cc-meta span{display:flex;align-items:center;gap:5px;}
.cc-meta svg{width:16px;height:16px;stroke:var(--blue);}
.cc-facilities{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.cc-facilities span{
  font-size:0.76rem;font-weight:600;color:var(--text-secondary);
  background:var(--bg);border:1px solid var(--border);
  padding:5px 11px;border-radius:var(--r-pill);
}
.cc-footer{display:flex;align-items:center;justify-content:space-between;padding-top:14px;border-top:1px solid var(--border);}
.cc-price{font-family:var(--font-mono);font-weight:600;font-size:1.2rem;color:var(--blue-text);}
.cc-price span{display:block;font-family:var(--font-body);font-weight:500;font-size:0.72rem;color:var(--text-secondary);}

.cottage-grid{display:grid;grid-template-columns:1fr;gap:24px;}
@media (min-width:720px){.cottage-grid{grid-template-columns:repeat(2,1fr);}}

/* ============ Facility list (cottage detail) ============ */
.facility-list{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
@media (min-width:640px){.facility-list{grid-template-columns:repeat(3,1fr);}}
.facility-item{
  display:flex;align-items:center;gap:10px;
  background:#fff;border:1px solid var(--border);border-radius:var(--r-md);
  padding:14px 16px;font-weight:600;font-size:0.9rem;
}
.facility-item svg{width:20px;height:20px;stroke:var(--blue);flex-shrink:0;}

/* ============ Trip Category tabs ============ */
.trip-tabs{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:4px;margin-bottom:32px;} /* wrap (bukan scroll tersembunyi): tab terakhir tidak terpotong di layar sempit, dan aman bila admin menambah kategori */
.trip-tab {
  flex-shrink:0;padding:11px 20px;border-radius:var(--r-pill);
  border:1.5px solid var(--border);font-weight:600;font-size:0.88rem;
  color:var(--text-secondary);white-space:nowrap;
  transition:all 0.25s var(--ease-out-expo);
  cursor:pointer;
}
.trip-tab:hover { border-color:var(--blue); color:var(--blue-text); }
.trip-tab.active{background:var(--blue-action);border-color:var(--blue-action);color:#fff;box-shadow:var(--shadow-blue);transform:scale(1.04);}

/* ============ Trip Card ============ */
.trip-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);
  padding:20px;margin-bottom:18px;
}
.trip-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;}
.trip-card-head h3{margin-bottom:4px;}
.trip-duration{
  font-family:var(--font-mono);font-size:0.75rem;font-weight:600;
  color:var(--navy);background:var(--gold-soft);
  padding:5px 11px;border-radius:var(--r-pill);white-space:nowrap;
}

/* ============ Itinerary Timeline (Signature: Tide Line) ============ */
.tideline{position:relative;padding-left:34px;}
.tideline::before{
  content:"";position:absolute;left:11px;top:6px;bottom:6px;width:2px;
  background:repeating-linear-gradient(180deg, var(--gold) 0 6px, transparent 6px 12px);
}
.tide-day{position:relative;padding-bottom:26px;}
.tide-day:last-child{padding-bottom:0;}
.tide-day::before{
  content:"";position:absolute;left:-34px;top:2px;
  width:24px;height:24px;border-radius:50%;
  background:#fff;border:2.5px solid var(--blue);
}
.tide-day::after{
  content:"";position:absolute;left:-27px;top:9px;
  width:10px;height:10px;border-radius:50%;background:var(--blue);
}
.tide-day-label{
  font-family:var(--font-mono);font-size:0.72rem;font-weight:700;
  color:var(--blue-text);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:6px;
}
.tide-day-content{
  background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);
  padding:16px 18px;
}
.tide-day-content h4{font-family:var(--font-body);font-size:1rem;font-weight:700;margin-bottom:6px;}
.tide-day-content p{color:var(--text-secondary);font-size:0.9rem;}
.tide-day-content .placeholder-tag{
  display:inline-block;margin-top:8px;font-size:0.72rem;font-weight:700;
  color:#7A4A00;background:var(--gold-soft);padding:4px 10px;border-radius:var(--r-pill);
}

/* ============ Gallery ============ */
.gallery-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px;}
.gallery-filter{
  padding:10px 18px;border-radius:var(--r-pill);border:1.5px solid var(--border);
  font-weight:600;font-size:0.85rem;color:var(--text-secondary);
  transition:all 0.25s var(--ease-out-expo);
  cursor:pointer;
}
.gallery-filter:hover { border-color:var(--navy); color:var(--navy); }
.gallery-filter.active{background:var(--navy);border-color:var(--navy);color:#fff;transform:scale(1.04);}
.masonry{columns:2;column-gap:14px;}
@media (min-width:720px){.masonry{columns:3;}}
.masonry-item{
  break-inside:avoid;margin-bottom:14px;border-radius:var(--r-md);overflow:hidden;
  position:relative;cursor:zoom-in;background:var(--gold-soft);
}
.masonry-item img{width:100%;display:block;transition:transform .4s ease;}
.masonry-item:hover img{transform:scale(1.04);filter:brightness(1.08);}
.masonry-item .cap{
  position:absolute;left:0;right:0;bottom:0;padding:14px 12px 10px;
  background:linear-gradient(0deg, rgba(11,42,74,0.75), transparent);
  color:#fff;font-size:0.78rem;font-weight:600;opacity:0;transition:opacity .2s ease;
}
.masonry-item:hover .cap{opacity:1;}

.lightbox{
  position:fixed;inset:0;z-index:500;background:rgba(8,16,28,0.94);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .25s ease;padding:24px;
}
.lightbox.open{opacity:1;pointer-events:auto;}
.lightbox img{
  max-width:min(92vw,900px);max-height:80vh;border-radius:var(--r-md);object-fit:contain;
  transition:transform 0.4s var(--ease-out-expo), opacity 0.3s ease;
}
.lightbox.open img {
  animation:slideInBottom 0.4s var(--ease-out-expo) both;
}
.lightbox-close, .lightbox-prev, .lightbox-next{
  position:absolute;color:#fff;background:rgba(255,255,255,0.12);
  width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  transition:background .15s ease;
}
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{background:rgba(255,255,255,0.25);}
.lightbox-close{top:20px;right:20px;}
.lightbox-prev{left:20px;top:50%;transform:translateY(-50%);}
.lightbox-next{right:20px;top:50%;transform:translateY(-50%);}
.lightbox-caption{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:rgba(255,255,255,0.75);font-size:0.85rem;}

/* ============ Guest Moments (social proof) ============ */
.moments-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
@media (min-width:720px){.moments-grid{grid-template-columns:repeat(4,1fr);}}
.moment-card{border-radius:var(--r-md);overflow:hidden;position:relative;aspect-ratio:3/4;background:var(--navy);}
.moment-card img{width:100%;height:100%;object-fit:cover; transition:transform 0.5s ease, filter 0.5s ease;}
.moment-card:hover img { transform:scale(1.06); filter:brightness(1.1); }
.moment-card .cap{position:absolute;bottom:0;left:0;right:0;padding:12px;background:linear-gradient(0deg,rgba(11,42,74,0.85),transparent);color:#fff;font-size:0.75rem; transition:transform 0.3s var(--ease-out-expo), opacity 0.3s ease; transform:translateY(8px);}
.moment-card:hover .cap { opacity:1; transform:translateY(0); }
.moment-card .cap:empty{display:none;} /* caption belum diisi admin -> jangan tampilkan bar kosong */

/* ============ About / trust strip ============ */
.trust-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:36px;}
@media (min-width:720px){.trust-strip{grid-template-columns:repeat(4,1fr);}}
.trust-item{text-align:left;}
.trust-item .num{font-family:var(--font-mono);font-size:1.6rem;font-weight:700;color:var(--blue);}
.trust-item .lbl{font-size:0.82rem;color:var(--text-secondary);margin-top:2px;}

/* ============ Location ============ */
.map-frame{
  border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border);
  aspect-ratio:16/9;background:linear-gradient(135deg,#DCEBFB,#F1F7FE);
  display:flex;align-items:center;justify-content:center;color:var(--text-secondary);
  position:relative;
}
.map-frame iframe{width:100%;height:100%;border:0;}
.map-pin{position:absolute;display:flex;flex-direction:column;align-items:center;gap:6px;}
.map-pin svg{width:34px;height:34px;stroke:var(--blue);fill:#EFF6FF;}

/* ============ Contact ============ */
.contact-grid{display:grid;gap:16px;grid-template-columns:1fr;}
@media (min-width:640px){.contact-grid{grid-template-columns:1fr 1fr;}}
.contact-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);
  padding:22px;display:flex;gap:14px;align-items:flex-start;
}
.contact-card .icon{
  width:44px;height:44px;border-radius:12px;
  background:linear-gradient(135deg, var(--blue-surface), #DCEBFB);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:transform 0.3s var(--ease-spring);
}
.contact-card:hover .icon { transform:scale(1.08) rotate(-3deg); }
.contact-card .icon svg{width:22px;height:22px;stroke:var(--blue);}
.contact-card h3{font-family:var(--font-body);font-size:1rem;margin-bottom:4px;}
.contact-card p{color:var(--text-secondary);font-size:0.9rem;}
.placeholder-text{color:var(--gold);font-weight:600;font-style:italic;}

/* ============ Footer ============ */
.footer{background:linear-gradient(180deg, var(--navy) 0%, #071B32 100%);color:rgba(255,255,255,0.78);padding:56px 0 28px;}
.footer-grid{display:grid;gap:32px;grid-template-columns:1fr;margin-bottom:40px;}
@media (min-width:720px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr;}}
.footer .footer-title{color:#fff;font-family:var(--font-body);font-size:0.95rem;font-weight:600;margin-bottom:14px;letter-spacing:0.02em;line-height:1.3;}
.footer ul li{margin-bottom:4px;font-size:0.9rem;}
.footer ul li a{padding:7px 0;}
.footer ul li a {
  position:relative;display:inline-block;
  transition:color 0.2s ease, transform 0.2s ease;
}
.footer ul li a::after {
  content:'';position:absolute;bottom:-2px;left:0;width:0;height:1.5px;
  background:var(--gold);transition:width 0.3s var(--ease-out-expo);
}
.footer ul li a:hover { color:var(--gold); transform:translateX(4px); }
.footer ul li a:hover::after { width:100%; }
.footer .brand{color:#fff;}
.footer .brand-desc{margin-top:12px;font-size:0.88rem;max-width:340px;color:rgba(255,255,255,0.6);}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.12);padding-top:22px;font-size:0.8rem;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;color:rgba(255,255,255,0.5);}
.social-row{display:flex;gap:10px;margin-top:14px;}
.social-row a{
  width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,0.08);
  display:flex;align-items:center;justify-content:center;
  transition:all 0.3s var(--ease-spring);
}
.social-row a:hover{background:var(--blue);transform:scale(1.15) translateY(-2px);}
.social-row svg{width:18px;height:18px;stroke:#fff;}

/* ============ Booking Wizard ============ */
.wizard-steps{display:flex;justify-content:space-between;margin-bottom:36px;position:relative;}
.wizard-steps::before{content:"";position:absolute;top:16px;left:8%;right:8%;height:2px;background:var(--border);z-index:0;}
.wizard-steps::after {
  content:'';position:absolute;top:16px;left:8%;height:2px;
  background:var(--blue);
  z-index:1;
  transition:width 0.5s var(--ease-out-expo);
}
.wizard-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;}
.wizard-step .dot{
  width:34px;height:34px;border-radius:50%;background:#fff;border:2px solid var(--border);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;
  font-size:0.85rem;color:var(--text-secondary);transition:all .2s ease;
}
.wizard-step.active .dot{border-color:var(--blue);color:var(--blue-text);background:#EFF6FF;}
.wizard-step.done .dot{background:var(--blue-action);border-color:var(--blue-action);color:#fff;}
.wizard-step .lbl{font-size:0.72rem;font-weight:600;color:var(--text-secondary);text-align:center;}
.wizard-step.active .lbl{color:var(--blue-text);}

.wizard-panel{
  background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);
  padding:26px 22px;display:none;
}
.wizard-panel.active {
  display:block;
  animation:slideInBottom 0.4s var(--ease-out-expo) both;
}

.form-group{margin-bottom:18px;}
.form-group label{display:block;font-size:0.85rem;font-weight:700;margin-bottom:8px;}
.form-group .hint{font-size:0.78rem;color:var(--text-secondary);margin-top:6px;}
.form-group .error-msg{font-size:0.78rem;color:var(--danger);margin-top:6px;display:none;font-weight:600;}
.form-group.has-error input, .form-group.has-error select{border-color:var(--danger);}
.form-group.has-error .error-msg{display:block;}
.input-field{
  width:100%;border:1.5px solid var(--border);border-radius:var(--r-md);
  padding:14px 16px;font-size:0.95rem;transition:border-color .15s ease;
}
.input-field:focus{outline:none;border-color:var(--blue);}
.form-row{display:grid;grid-template-columns:1fr;gap:16px;}
@media (min-width:600px){.form-row{grid-template-columns:1fr 1fr;}}

.stepper{display:flex;align-items:center;gap:14px;}
.stepper button{
  width:40px;height:40px;border-radius:50%;border:1.5px solid var(--border);
  font-size:1.2rem;font-weight:700;color:var(--blue-text);
  display:flex;align-items:center;justify-content:center;transition:all .15s ease;
}
.stepper button:hover{background:#EFF6FF;border-color:var(--blue);}
.stepper .count{font-family:var(--font-mono);font-weight:700;font-size:1.2rem;min-width:26px;text-align:center;}

.review-box{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:18px;margin-bottom:18px;}
.review-row{display:flex;justify-content:space-between;padding:9px 0;font-size:0.9rem;border-bottom:1px dashed var(--border);}
.review-row:last-child{border-bottom:none;}
.review-row .label{color:var(--text-secondary);}
.review-row .value{font-weight:700;}
.review-total{display:flex;justify-content:space-between;align-items:center;padding-top:14px;margin-top:6px;border-top:2px solid var(--text);}
.review-total .value{font-family:var(--font-mono);font-size:1.4rem;color:var(--blue-text);}

.wizard-nav{display:flex;justify-content:space-between;gap:12px;margin-top:24px;}

/* ============ Booking Confirmation ============ */
.confirm-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);
  padding:30px 24px;text-align:center;
}
.confirm-icon{
  width:64px;height:64px;border-radius:50%;background:#E8F7EF;
  display:flex;align-items:center;justify-content:center;margin:0 auto 18px;
}
.confirm-icon svg{width:32px;height:32px;stroke:var(--success);}
.booking-code{
  font-family:var(--font-mono);font-size:1.6rem;font-weight:700;
  letter-spacing:0.06em;color:var(--navy);background:var(--gold-soft);
  padding:12px 20px;border-radius:var(--r-md);display:inline-block;margin:12px 0 24px;
}
.status-pill{
  display:inline-flex;align-items:center;gap:6px;
  background:#FFF4E0;color:#B8720A;font-weight:700;font-size:0.8rem;
  padding:7px 14px;border-radius:var(--r-pill);margin-bottom:22px;
}
.status-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:#B8720A;}
.payment-info-box{
  background:var(--bg);border:1.5px dashed var(--border);border-radius:var(--r-md);
  padding:20px;text-align:left;margin:20px 0;
}
.upload-box{
  border:1.5px dashed var(--border);border-radius:var(--r-md);
  padding:26px;text-align:center;color:var(--text-secondary);
  cursor:pointer;transition:border-color .15s ease;
}
.upload-box:hover{border-color:var(--blue);color:var(--blue-text);}
.upload-box svg{width:28px;height:28px;stroke:currentColor;margin:0 auto 8px;}
.upload-box input{display:none;}
.upload-filename{margin-top:10px;font-size:0.85rem;font-weight:600;color:var(--text);}

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

@keyframes kenBurns {
  0%   { transform: scale(1) translate3d(0,0,0); }
  50%  { transform: scale(1.08) translate3d(-1%,-0.5%,0); }
  100% { transform: scale(1) translate3d(0,0,0); }
}

@keyframes heroFadeUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes shimmer {
  0%   { background-position: -200% center; }
  100% { background-position: 200% center; }
}

@keyframes eyebrowLine {
  from { width: 0; }
  to   { width: 16px; }
}

@keyframes slideInBottom {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 8px 20px -6px rgba(1,148,243,0.35); }
  50%      { box-shadow: 0 12px 30px -4px rgba(1,148,243,0.5); }
}

@keyframes progressFill {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

/* ============ Utilities ============ */
.grid-2{display:grid;grid-template-columns:1fr;gap:24px;}
@media (min-width:800px){.grid-2{grid-template-columns:1fr 1fr;}}
.grid-2.reverse{direction:rtl;}
.grid-2.reverse > *{direction:ltr;}
.center-text{text-align:center;margin-left:auto;margin-right:auto;}
.mt-lg{margin-top:40px;}
.flex-between{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;}
.hide-mobile{display:none;}
@media (min-width:900px){.hide-mobile{display:block;}}
.img-round{border-radius:var(--r-lg);overflow:hidden;}
.text-secondary{color:var(--text-secondary);}
.divider-wave{height:28px;width:100%;background-repeat:repeat-x;background-size:32px 28px;opacity:0.5;
  background-image:radial-gradient(circle at 16px 0, transparent 14px, var(--border) 15px, var(--border) 16px, transparent 17px);
}

/* ============================================================
   FIREBASE INTEGRATION ADDITIONS
   (small additions only — no redesign of existing components)
   ============================================================ */

/* Availability check feedback (booking.html step 1) */
.msg-success{color:var(--success) !important;}
.msg-error{color:var(--danger) !important;}

/* Status pill color variants (extends existing .status-pill) */
.status-pill.status-wait{background:#FFF4E0;color:#B8720A;}
.status-pill.status-wait::before{background:#B8720A;}
.status-pill.status-good{background:#E8F7EF;color:var(--success);}
.status-pill.status-good::before{background:var(--success);}
.status-pill.status-bad{background:#FDEDED;color:var(--danger);}
.status-pill.status-bad::before{background:var(--danger);}

/* Admin dashboard (admin.html) — reuses existing tokens/components */
.admin-table{width:100%;border-collapse:collapse;font-size:0.88rem;}
.admin-table th{
  text-align:left;padding:12px 14px;background:var(--bg);
  border-bottom:1px solid var(--border);color:var(--text-secondary);
  font-size:0.72rem;text-transform:uppercase;letter-spacing:0.04em;
}
.admin-table td{padding:14px;border-bottom:1px solid var(--border);vertical-align:top;}
.admin-table tr:hover td{background:#F9FBFF;}
.admin-badge{
  display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);
  font-size:0.72rem;font-weight:700;
}
.admin-badge.pending{background:#FFF4E0;color:#B8720A;}
.admin-badge.confirmed{background:#E8F7EF;color:var(--success);}
.admin-badge.cancelled, .admin-badge.rejected{background:#FDEDED;color:var(--danger);}

/* Admin CMS (Kelola Cottage/Trip/Galeri) — admin-cms.js */
.admin-gallery-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;
}
.admin-gallery-item{
  border:1px solid var(--border);border-radius:var(--r-md);padding:10px;background:#fff;
}
.admin-gallery-item img{
  width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:calc(var(--r-md) - 4px);display:block;
}
.itinerary-row{margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--border);}

/* Admin CMS — Kelola Foto Website (js/admin-cms.js) */
.site-photo-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;
}
.site-photo-card{
  border:1px solid var(--border);border-radius:var(--r-md);padding:12px;background:#fff;
}
.site-photo-card img{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:calc(var(--r-md) - 4px);
  display:block;margin-bottom:10px;background:var(--bg);
}
.site-photo-card .site-photo-label{font-weight:700;font-size:0.85rem;margin-bottom:8px;display:block;}
.admin-badge.waiting{background:#F1F7FE;color:var(--blue-text);}
.admin-badge.submitted{background:var(--gold-soft);color:#8A5A16;}
.admin-badge.verified{background:#E8F7EF;color:var(--success);}
.admin-badge.expired{background:#E5E7EB;color:var(--text-secondary);}
.admin-select{
  border:1.5px solid var(--border);border-radius:var(--r-sm);
  padding:6px 8px;font-size:0.82rem;font-weight:600;background:#fff;
}
.admin-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:20px;}
.admin-search{max-width:280px;}
.admin-empty{padding:40px 20px;text-align:center;color:var(--text-secondary);}
.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-lg);background:#fff;}
.proof-link{color:var(--blue-text);font-weight:700;font-size:0.85rem;}

/* ============================================================
   AVAILABILITY CALENDAR ("Tanggal Tersedia")
   ============================================================ */

.cal-card{
  background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);
  padding:20px 16px;box-shadow:var(--shadow-sm);
}
.cal-summary{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);
  padding:14px 16px;margin-bottom:20px;font-weight:700;font-size:0.92rem;
}
.cal-summary .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.cal-summary.ok .dot{background:var(--success);}
.cal-summary.warn .dot{background:var(--gold);}
.cal-summary.bad .dot{background:var(--danger);}

.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.cal-header h3{font-family:var(--font-body);font-size:1.05rem;font-weight:700;}
.cal-nav-btn{
  width:38px;height:38px;border-radius:50%;border:1.5px solid var(--border);
  display:flex;align-items:center;justify-content:center;color:var(--text);
  transition:all .15s ease;
}
.cal-nav-btn:hover{border-color:var(--blue);color:var(--blue-text);}
.cal-nav-btn svg{width:18px;height:18px;}

.cal-legend{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:20px;font-size:0.8rem;font-weight:600;color:var(--text-secondary);}
.cal-legend span{display:inline-flex;align-items:center;gap:6px;}
.cal-legend .sw{width:12px;height:12px;border-radius:4px;display:inline-block;}
.sw-available{background:#E8F7EF;border:1.5px solid var(--success);}
.sw-pending{background:var(--gold-soft);border:1.5px solid var(--gold);}
.sw-booked{background:#FDEDED;border:1.5px solid var(--danger);}
.sw-blocked{background:#E5E7EB;border:1.5px solid var(--text-secondary);}

.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;}
.cal-weekdays span{text-align:center;font-size:0.7rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}

.cal-day{
  aspect-ratio:1;min-height:40px;border-radius:var(--r-sm);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  font-size:0.85rem;font-weight:700;position:relative;
  border:1.5px solid transparent;background:var(--bg);color:var(--text);
  transition:transform .1s ease;
}
.cal-day.empty{background:transparent;}
.cal-day .badge{font-size:0.55rem;font-weight:700;line-height:1;}

.cal-day.status-available, .cal-day.status-today{
  background:#E8F7EF;color:#0B5D3A;cursor:pointer;
}
.cal-day.status-available:hover {
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(18,136,90,0.15);
}
.cal-day.status-today{border-color:var(--blue);}
.cal-day.status-pending{background:var(--gold-soft);color:#8A5A16;cursor:not-allowed;}
.cal-day.status-booked{background:#FDEDED;color:#8A2222;cursor:not-allowed;}
.cal-day.status-blocked{background:#E5E7EB;color:var(--text-secondary);cursor:not-allowed;}
.cal-day.status-past{background:transparent;color:#D1D5DB;cursor:not-allowed;}

.cal-day.selectable:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.cal-day.is-checkin, .cal-day.is-checkout{background:var(--blue-action) !important;color:#fff !important;border-color:var(--blue-action) !important;}
.cal-day.in-range{background:#DCEBFB !important;color:var(--blue-dark) !important;}

.cal-day[aria-disabled="true"]{pointer-events:none;}

.booking-date-calendar{
  margin:-4px 0 18px;padding:18px;border:1px solid var(--border);border-radius:var(--r-md);background:#fff;
  box-shadow:0 8px 24px rgba(23,48,74,.06);
}
.booking-calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.booking-calendar-heading strong{text-transform:capitalize;font-size:1rem;font-weight:750;color:var(--text);}
.booking-calendar-nav{display:flex;gap:8px;}
.booking-calendar-nav button{
  display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);
  cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
.booking-calendar-nav button svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.booking-calendar-nav button:hover{border-color:var(--blue);background:#F2F7FC;color:var(--blue-text);transform:translateY(-1px);}
.booking-calendar-nav button:focus-visible{outline:3px solid rgba(42,111,173,.28);outline-offset:2px;}
.booking-date-calendar .hint{margin:4px 0 12px;font-size:0.8rem;}
.booking-date-calendar .cal-day{min-height:36px;aspect-ratio:1;}
.booking-date-calendar .cal-day.status-blocked,
.booking-date-calendar .cal-day.status-booked{background:#FDEDED;color:#A32626;border-color:#F2B8B8;cursor:not-allowed;}
.booking-date-calendar .cal-day.status-pending{background:#FFF3D8;color:#8A5A16;border-color:#EACB83;cursor:not-allowed;}
.booking-date-calendar .cal-day:disabled{opacity:1;}
#checkin,#checkout{cursor:pointer;background-color:#fff;transition:border-color .15s ease,box-shadow .15s ease;}
#checkin:focus,#checkout:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(42,111,173,.12);outline:none;}
@media(max-width:480px){.booking-date-calendar{padding:14px 12px}.booking-date-calendar .cal-grid,.booking-date-calendar .cal-weekdays{gap:3px}.booking-date-calendar .cal-day{min-height:34px;font-size:.8rem}}

.cal-cottage-tabs{display:flex;gap:8px;overflow-x:auto;margin-bottom:18px;padding-bottom:4px;}

.cal-selection-box{
  margin-top:20px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);
  padding:16px 18px;
}
.cal-selection-box.empty{color:var(--text-secondary);font-size:0.9rem;text-align:center;}
.cal-cottage-result{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 14px;border:1.5px solid var(--border);border-radius:var(--r-md);margin-top:10px;
  background:#fff;
}
.cal-cottage-result.available{border-color:var(--success);}
.cal-cottage-result .name{font-weight:700;}
.cal-cottage-result .price{font-size:0.8rem;color:var(--text-secondary);}

@media (min-width:640px){
  .cal-day{font-size:0.95rem;}
}

/* --- Wave Divider --- */
.wave-divider {
  position:relative;overflow:hidden;
  height:60px;width:100%;
  margin-top:-1px;
}
.wave-divider svg {
  position:absolute;bottom:0;left:0;width:100%;height:100%;
  display:block;
}
.wave-divider.flip { transform:scaleY(-1); margin-top:0; margin-bottom:-1px; }

/* --- Scroll Progress --- */
.scroll-progress {
  position:fixed;top:0;left:0;right:0;height:3px;z-index:999;
  background:transparent;
  pointer-events:none;
}
.scroll-progress-bar {
  height:100%;width:100%;
  background:linear-gradient(90deg, var(--blue), var(--gold));
  transform:scaleX(0);transform-origin:0 50%;
  transition:transform 0.1s linear;
  will-change:transform;
}

/* --- Back to Top --- */
.back-to-top {
  position:fixed;bottom:90px;right:20px;z-index:250;
  width:44px;height:44px;border-radius:50%;
  background:var(--blue);color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-blue);
  opacity:0;transform:translateY(10px);
  transition:all 0.3s var(--ease-out-expo);
  pointer-events:none;
  border:none;cursor:pointer;
}
.back-to-top.visible {
  opacity:1;transform:translateY(0);
  pointer-events:auto;
}
.back-to-top:hover {
  transform:translateY(-3px);
  box-shadow:0 12px 24px -6px rgba(1,148,243,0.5);
}
@media (min-width:900px) {
  .back-to-top { bottom:30px; right:30px; }
}

/* --- Stagger Animation --- */
.reveal-stagger > .reveal:nth-child(1) { transition-delay: 0s; }
.reveal-stagger > .reveal:nth-child(2) { transition-delay: 0.1s; }
.reveal-stagger > .reveal:nth-child(3) { transition-delay: 0.2s; }
.reveal-stagger > .reveal:nth-child(4) { transition-delay: 0.3s; }
.reveal-stagger > .reveal:nth-child(5) { transition-delay: 0.4s; }
.reveal-stagger > .reveal:nth-child(6) { transition-delay: 0.5s; }

/* ============================================================
   SEO / DANAU PAISUPOK ADDITIONS
   Hanya menambah — tidak mengubah komponen lama.
   ============================================================ */

/* --- Breadcrumb (halaman Danau Paisupok) --- */
.breadcrumb{font-size:0.82rem;color:var(--text-secondary);margin-bottom:14px;}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:6px;align-items:center;list-style:none;margin:0;padding:0;}
.breadcrumb li + li::before{content:'›';margin-right:6px;color:var(--text-secondary);}
.breadcrumb a{color:var(--blue-text);font-weight:600;}
.breadcrumb a:hover{text-decoration:underline;}
.breadcrumb [aria-current="page"]{color:var(--text);font-weight:600;}

/* --- Konten artikel/panduan --- */
.prose{max-width:720px;}
.prose p{color:var(--text-secondary);margin-top:14px;}
.prose p:first-of-type{margin-top:16px;}
.prose a:not(.btn){color:var(--blue-text);font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.prose a:not(.btn):hover{color:var(--blue-dark);}
.check-list{margin-top:16px;display:grid;gap:12px;}
.check-list li{position:relative;padding-left:30px;color:var(--text-secondary);}
.check-list li::before{
  content:'';position:absolute;left:0;top:5px;width:18px;height:18px;border-radius:50%;
  background:var(--blue-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230194F3' stroke-width='3'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat;
}
.note-text{margin-top:14px;font-size:0.86rem;color:var(--text-secondary);}
.inline-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;align-items:center;}
.section-anchor{scroll-margin-top:calc(var(--nav-h) + 12px);}

/* --- FAQ (details/summary, tanpa JS) --- */
.faq{max-width:760px;display:grid;gap:12px;margin-top:24px;}
.faq details{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);}
.faq summary{
  list-style:none;cursor:pointer;padding:16px 48px 16px 18px;position:relative;
  font-weight:700;font-size:0.98rem;color:var(--text);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{
  content:'+';position:absolute;right:18px;top:50%;transform:translateY(-50%);
  font-size:1.4rem;line-height:1;color:var(--blue-text);font-weight:500;
}
.faq details[open] summary::after{content:'\2212';}
.faq details[open] summary{border-bottom:1px solid var(--border);}
.faq .faq-a{padding:14px 18px 18px;color:var(--text-secondary);font-size:0.95rem;}
.faq .faq-a p + p{margin-top:10px;}
.faq summary:focus-visible{outline:2.5px solid var(--blue);outline-offset:2px;border-radius:var(--r-md);}

/* --- Kartu layanan WhatsApp (speedboat, tanya trip) --- */
.wa-card .cc-body{display:grid;gap:14px;}
.wa-card .form-group{margin:0;}
.wa-notice{
  font-size:0.84rem;font-weight:600;color:var(--danger);background:var(--danger-surface);
  border-radius:var(--r-sm);padding:10px 12px;
}
.wa-notice[hidden]{display:none;}
.wa-icon{width:18px;height:18px;stroke:currentColor;flex-shrink:0;}
/* Label tombol panjang boleh turun baris di layar sempit (default .btn = nowrap) */
.btn-wrap{white-space:normal;text-align:center;line-height:1.3;}

/* --- Ringkasan cepat --- */
.facts-card .review-box{margin-top:14px;}
.link-arrow{font-weight:700;color:var(--blue-text);}
.link-arrow::after{content:' \2192';}
.link-arrow:hover{text-decoration:underline;text-underline-offset:3px;}

/* --- Utilitas tambahan --- */
/* .btn memakai display:inline-flex, yang akan mengalahkan atribut [hidden] bawaan browser. */
[hidden]{display:none !important;}
.text-link{color:var(--blue-text);font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.text-link:hover{color:var(--blue-dark);}

/* Tombol sekunder di section navy: sebelumnya teks gelap di atas latar navy (kontras rendah) */
.section-navy .btn-secondary{color:#fff;border-color:rgba(255,255,255,0.4);}
.section-navy .btn-secondary:hover{color:#fff;border-color:#fff;background:rgba(255,255,255,0.08);}
.section-navy .wa-notice{color:var(--danger);}
/* Baris ringkasan: beri jarak label-nilai dan rata kanan agar nilai panjang tidak menempel di layar sempit */
.review-row{gap:16px;}
.review-row .value{text-align:right;}
/* Menu desktop kini 6 item: rapatkan di lebar 900-1099px agar tidak turun baris */
.nav-links a{white-space:nowrap;}
@media (min-width:900px) and (max-width:1099px){
  .nav-links{gap:2px;}
  .nav-links a{padding:9px 10px;font-size:0.88rem;}
  .nav-cta{padding:12px 20px;}
}
/* Judul kartu kontak sebelumnya mewarisi warna putih dari .section-navy (putih di atas kartu putih) */
.contact-card h3{color:var(--text);}
/* Kode booking kini 23 karakter (acak & tidak bisa ditebak): jangan meluber di layar sempit */
.booking-code{font-size:clamp(0.95rem,4.4vw,1.6rem);letter-spacing:0.04em;max-width:100%;overflow-wrap:anywhere;}

/* Azzahra Cottage logo */
.brand-logo{display:block;width:auto;height:58px;max-width:150px;object-fit:contain;flex-shrink:0;}
.footer .brand-logo{height:76px;max-width:190px;}
@media(max-width:480px){.brand-logo{height:50px;max-width:128px;}}


/* --- Aksesibilitas: skip link (muncul hanya saat fokus keyboard) --- */
.skip-link{position:absolute;left:12px;top:-60px;z-index:1000;padding:10px 16px;border-radius:var(--r-pill);
  background:var(--navy);color:#fff;font-weight:600;font-size:0.9rem;transition:top .15s ease;}
.skip-link:focus{top:12px;outline:2.5px solid var(--gold);outline-offset:2px;}
main:focus{outline:none;}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* --- Brand teks di header: "AZZAHRA COTTAGE" + "TOUR AND TRAVEL" (logo tidak diubah) --- */
.navbar .brand{min-width:0;}
.brand-text{display:flex;flex-direction:column;gap:3px;min-width:0;line-height:1;}
.brand-name{font-family:var(--font-display);font-weight:600;font-size:1.02rem;letter-spacing:0.07em;text-transform:uppercase;color:var(--text);white-space:nowrap;}
.brand-tag{font-family:var(--font-body);font-weight:600;font-size:0.64rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap;}
@media (max-width:480px){
  .navbar .brand{gap:8px;}
  .brand-name{font-size:0.92rem;letter-spacing:0.05em;}
  .brand-tag{font-size:0.6rem;letter-spacing:0.18em;}
}
@media (max-width:340px){ .brand-name{font-size:0.82rem;letter-spacing:0.03em;} .brand-tag{letter-spacing:0.14em;} }

/* --- Kartu kebijakan pembatalan (halaman booking): informatif, tidak mengganggu alur --- */
.policy-card{background:#fff;border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:var(--r-md);padding:16px 18px;margin:4px 0 18px;}
.policy-title{display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:0.95rem;font-weight:700;color:var(--text);margin:0 0 10px;line-height:1.3;}
.policy-title svg{width:18px;height:18px;flex-shrink:0;color:#B8720A;}
.policy-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.policy-list li{position:relative;padding-left:16px;font-size:0.9rem;line-height:1.6;color:var(--text-secondary);overflow-wrap:anywhere;}
.policy-list li::before{content:"";position:absolute;left:0;top:0.62em;width:6px;height:6px;border-radius:50%;background:var(--gold);}
.policy-list strong{color:var(--text);font-weight:700;}
@media (max-width:480px){ .policy-card{padding:14px 15px;} .policy-list li{font-size:0.875rem;} }
