/* Exact Home reference values; scoped to avoid changing other templates. */
.ews-star-rating { display:inline-flex; gap:2px; color:var(--accent-star); font-size:16px; line-height:1; }
.home-reviews { background:var(--color-cream-2); padding:12px 40px 56px; line-height:normal; }
.home-reviews, .home-reviews * { box-sizing:content-box; }
.home-reviews-heading { display:flex; align-items:center; justify-content:center; gap:18px; margin-bottom:28px; }
.home-reviews-heading > span { width:40px; height:1px; background:var(--color-gold); }
.home-reviews h2 { font-family:var(--font-serif-display); font-weight:700; font-size:28px; letter-spacing:0.06em; text-transform:uppercase; color:var(--text-primary); margin:0; }
.home-reviews-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr 1fr 240px; gap:22px; align-items:start; }
.home-review-card { background:var(--surface-sunken); border:1px solid var(--border-strong); border-radius:var(--radius-md); padding:22px 20px; text-align:center; }
.home-review-card p { font-size:15.5px; line-height:1.65; color:var(--text-secondary); margin:12px 0 14px; }
.home-review-author { font-size:15px; font-weight:700; color:var(--text-primary); }
.home-tripadvisor { background:var(--color-espresso); border-radius:var(--radius-md); padding:20px 18px; text-align:center; color:var(--color-cream); }
.home-tripadvisor-title { font-family:var(--font-serif-display); font-size:19px; font-weight:700; letter-spacing:0.02em; margin-bottom:10px; }
.home-tripadvisor-rating { display:flex; justify-content:center; gap:5px; margin-bottom:12px; }
.home-tripadvisor-rating span { width:15px; height:15px; border-radius:50%; background:#34A853; }
.home-tripadvisor-rank { font-size:14px; font-weight:700; letter-spacing:0.1em; line-height:1.5; margin-bottom:14px; }
.home-tripadvisor a { display:block; border:1px solid var(--border-on-dark); color:var(--color-cream); font-size:13px; font-weight:700; letter-spacing:0.1em; padding:9px 10px; border-radius:var(--radius-sm); }
.home-tripadvisor a:hover { background:var(--color-cream); color:var(--color-espresso); text-decoration:none; }
.home-gallery { background:var(--color-cream-2); padding:44px 40px 40px; line-height:normal; }
.home-gallery, .home-gallery * { box-sizing:content-box; }
.home-gallery-heading { display:flex; align-items:center; justify-content:center; gap:18px; margin-bottom:28px; }
.home-gallery-heading span { width:40px; height:1px; background:var(--color-gold); }
.home-gallery h2 { font-family:var(--font-serif-display); font-weight:700; font-size:28px; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-primary); margin:0; }
.home-gallery-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(6, 1fr); gap:14px; }
.home-gallery-grid > div { height:170px; border-radius:var(--radius-sm); overflow:hidden; box-shadow:var(--shadow-sm); }
.home-gallery-grid img { width:100%; height:100%; object-fit:cover; transition:transform var(--duration-base) var(--ease-standard); }
.home-gallery-grid img:hover { transform:scale(1.05); }
.home-gallery-more { display:flex; justify-content:center; margin-top:26px; }
.home-gallery-more a { display:inline-flex; align-items:center; gap:8px; background:var(--color-cream-2); border:1px solid var(--border-strong); color:var(--text-primary); font-size:13.5px; font-weight:700; letter-spacing:0.1em; padding:11px 22px; border-radius:var(--radius-sm); }
.home-gallery-more a:hover { background:var(--color-espresso); color:var(--color-cream); text-decoration:none; }
.home-gallery-more svg { width:13px; height:13px; stroke-width:2; }
.home-enquire { background:var(--color-safari-green-dark); padding:26px 40px; display:flex; align-items:center; justify-content:space-between; max-width:none; gap:20px; flex-wrap:wrap; line-height:normal; }
.home-enquire, .home-enquire * { box-sizing:content-box; }
.home-enquire-copy { color:var(--color-cream); }
.home-enquire-title { font-family:var(--font-serif-display); font-size:24px; font-weight:700; }
.home-enquire-text { font-size:15px; opacity:0.85; margin-top:4px; }
.home-enquire-cta { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.home-enquire-cta a { font-size:14.5px; font-weight:700; padding:13px 24px; border-radius:var(--radius-sm); display:flex; align-items:center; gap:8px; }
.home-enquire-primary { background:var(--color-gold); color:var(--color-espresso); letter-spacing:0.1em; }
.home-enquire-primary svg { width:14px; height:14px; }
.home-enquire-primary:hover { background:var(--color-gold-dark); color:var(--color-espresso); text-decoration:none; }
.home-enquire-cta .home-enquire-whatsapp { border:1px solid var(--color-cream); color:var(--color-cream); letter-spacing:0.06em; padding:13px 22px; }
.home-enquire-whatsapp svg { width:15px; height:15px; }
.home-enquire-whatsapp:hover { background:var(--color-cream); color:var(--color-espresso); text-decoration:none; }
.home-enquire svg { stroke-width:2; }
.home-why { background:var(--color-safari-green-dark); padding:36px 40px 44px; line-height:normal; }
.home-why, .home-why * { box-sizing:content-box; }
.home-why h2 { font-family:var(--font-serif-display); font-weight:700; font-size:26px; letter-spacing:0.05em; text-transform:uppercase; color:var(--color-gold-light); text-align:center; margin:0 0 28px; }
.home-why-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(6, 1fr); }
.home-why-grid > div { padding:0 18px; text-align:center; color:var(--color-cream); }
.home-why-grid > div + div { border-left:1px solid var(--border-on-dark); }
.home-why-icon { display:inline; vertical-align:baseline; width:30px; height:30px; color:var(--color-gold-light); stroke-width:2; }
.home-why-label { font-family:var(--font-serif-display); font-size:15px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--color-gold-light); margin:12px 0 10px; line-height:1.3; }
.home-why p { font-size:14px; line-height:1.6; opacity:0.85; margin:0; }
.home-packages { position:relative; background:var(--color-cream-2); padding:56px 0 40px; line-height:normal; }
/* The reference has no border-box reset; inline SVG must share the link's line box. */
.home-packages, .home-packages * { box-sizing:content-box; }
.home-packages svg { display:inline; stroke-width:2; }
.home-packages-mark { position:absolute; top:-34px; left:50%; margin-left:-34px; width:68px; height:68px; border-radius:50%; background:var(--color-cream); box-shadow:var(--shadow-card); display:flex; align-items:center; justify-content:center; }
.home-packages-mark img { width:44px; height:auto; object-fit:contain; display:block; }
.home-packages .sec-h2 { font-family:var(--font-serif-display); font-weight:700; font-size:32px; letter-spacing:0.06em; text-transform:uppercase; color:var(--color-gold-dark); text-align:center; margin:0 0 30px; }
.home-packages .pkg-wrap { position:relative; padding:0 40px; }
.home-packages .pkg-arrow { position:absolute; top:50%; margin-top:-16px; z-index:3; width:32px; height:32px; border-radius:50%; border:1px solid var(--border-strong); background:var(--color-cream); color:var(--color-espresso); display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; }
.home-packages .pkg-arrow:hover { background:var(--color-sand); }
.home-packages .pkg-arrow svg { width:16px; height:16px; }
.home-packages .pkg-prev { left:8px; }
.home-packages .pkg-next { right:8px; }
.home-packages .pkg-scroll { display:flex; gap:16px; overflow-x:auto; scroll-behavior:smooth; padding:4px 2px 14px; }
/* Center the complete row when it fits; retain access to both ends when scrolling. */
.home-packages .pkg-scroll > :first-child { margin-left:auto; }
.home-packages .pkg-scroll > :last-child { margin-right:auto; }
.home-packages .pkg-scroll::-webkit-scrollbar { height:6px; }
.home-packages .pkg-scroll::-webkit-scrollbar-thumb { background:var(--color-sand-dark); border-radius:999px; }
.home-package-card { flex:0 0 178px; position:relative; background:var(--color-cream); border:1px solid var(--border-subtle); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); overflow:hidden; }
.home-package-card:hover { box-shadow:var(--shadow-raised); }
.home-package-frame { position:relative; height:118px; overflow:hidden; }
.home-package-frame img { width:100%; height:100%; object-fit:cover; }
.home-package-icon { position:absolute; left:50%; top:98px; margin-left:-20px; width:40px; height:40px; border-radius:50%; background:var(--color-safari-green); color:var(--color-gold-light); display:flex; align-items:center; justify-content:center; border:2px solid var(--color-white); }
.home-package-icon svg { width:18px; height:18px; }
.home-package-copy { padding:28px 12px 14px; text-align:center; }
.home-package-title { font-size:15px; font-weight:700; line-height:1.35; color:var(--text-primary); min-height:36px; }
.home-package-copy a svg { width:12px; height:12px; }
.home-hero { position: relative; height: 680px; overflow: hidden; background: var(--color-sand); line-height: normal; }
.home-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.home-hero-scrim { position: absolute; left: 0; top: 0; bottom: 0; width: 720px; pointer-events: none; background: linear-gradient(100deg, #0F0C0884, #5B422072, #0F0C0800, #0F0C0800); }
.home-hero-copy { position: absolute; left: 64px; top: 190px; width: 560px; display: flex; flex-direction: column; align-items: flex-start; }
.home-hero-kicker { font-size: 15px; letter-spacing: 0.22em; font-weight: 700; color: #725C28; margin-bottom: 18px; }
.home-hero-h1 { font-family: var(--font-serif-display); font-weight: 800; font-size: 68px; line-height: 1.04; letter-spacing: -0.01em; margin: 0 0 18px; color: var(--color-cream); text-transform: uppercase; text-shadow: 0 2px 18px rgba(20,14,8,0.45); }
.home-hero-h1 span { color: var(--color-gold-light); }
.home-hero-tag { font-family: var(--font-serif-display); font-style: italic; font-size: 28px; color: #FFF7E6; margin-bottom: 12px; text-shadow: 0 1px 12px rgba(20,14,8,0.5); }
.home-hero-text { font-size: 18.5px; line-height: 1.65; color: #F5EEDF; max-width: 440px; margin: 0 0 30px; text-shadow: 0 1px 10px rgba(20,14,8,0.45); }
.home-hero-cta { display: flex; align-items: center; gap: 14px; }
.home-hero-chevron { width: 15px; height: 15px; }
.home-hero-message { width: 16px; height: 16px; }
.home-hero-primary { background: var(--color-safari-green); color: var(--color-cream); font-size: 15px; font-weight: 700; letter-spacing: 0.1em; padding: 15px 26px; border-radius: var(--radius-sm); display: flex; align-items: center; gap: 10px; box-shadow: var(--shadow-card); }
.home-hero-primary:hover { background: var(--color-safari-green-dark); color: var(--color-cream); text-decoration: none; }
.home-hero-whatsapp { background: transparent; color: var(--color-cream); border: 1px solid var(--border-on-dark); font-size: 15px; font-weight: 700; letter-spacing: 0.1em; padding: 14px 24px; border-radius: var(--radius-sm); display: flex; align-items: center; gap: 10px; }
.home-hero-whatsapp:hover { background: var(--color-cream); color: var(--color-espresso); text-decoration: none; }
@media (max-width: 1024px) {
  .home-reviews-grid { grid-template-columns:1fr 1fr; }
  .home-gallery-grid { grid-template-columns:repeat(3, 1fr); }
  .home-why-grid { grid-template-columns:repeat(3, 1fr); gap:26px 0; }
  .home-why-grid > div:nth-child(3n+1) { border-left:0; }
  .home-hero { height: 560px; }
  .home-hero-scrim { width: 100%; background: linear-gradient(170deg, rgba(15,12,8,0.62) 0%, rgba(15,12,8,0.42) 55%, rgba(15,12,8,0.30) 100%); }
  .home-hero-copy { left: 36px; right: 36px; top: 90px; width: auto; }
  .home-hero-h1 { font-size: 54px; }
}
@media (max-width: 640px) {
  .home-reviews { padding-left:20px; padding-right:20px; }
  .home-reviews-grid { grid-template-columns:1fr; }
  .home-gallery { padding-left:20px; padding-right:20px; }
  .home-gallery-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .home-gallery-grid > div { height:130px; }
  .home-enquire { padding-left:20px; padding-right:20px; flex-direction:column; align-items:flex-start; }
  .home-enquire-cta { width:100%; }
  .home-enquire-cta > a { flex:1 1 100%; justify-content:center; }
  .home-why { padding-left:20px; padding-right:20px; }
  .home-why-grid { grid-template-columns:1fr 1fr; }
  .home-why .home-why-grid > div { border-left:0; padding:0 8px; }
  .home-packages .sec-h2 { font-size:24px; padding:0 20px; }
  .home-packages .pkg-wrap { padding:0 20px; }
  .home-packages .pkg-arrow { display:none; }
  .home-hero { height: auto; min-height: 520px; }
  /* Relative stacking preserves the reference's static layout above positioned image/scrim. */
  .home-hero-copy { position: relative; left: auto; right: auto; top: auto; padding: 96px 22px 44px; }
  .home-hero-h1 { font-size: 40px; }
  .home-hero-tag { font-size: 23px; }
  .home-hero-cta { flex-direction: column; align-items: stretch; width: 100%; }
  .home-hero-cta > a { justify-content: center; }
}

/* Client-approved React typography. */
.home-package-copy a { font-size:12.5px; }
@media(max-width:480px) { .home-hero-kicker { font-size:13px; letter-spacing:0.15em; } .home-hero-h1 { font-size:31px; } }
