/* Livoraah visual refresh: editorial travel palette, clearer hierarchy, softer surfaces. */
:root {
  --livoraah-forest: #123d2d;
  --livoraah-green: #24834a;
  --livoraah-mint: #eaf4ed;
  --livoraah-sand: #c89b62;
  --livoraah-ink: #172b24;
  --livoraah-muted: #64736c;
  --livoraah-paper: #fbfaf7;
}
html { scroll-behavior: smooth; }
body {
  color: var(--livoraah-ink);
  background: var(--livoraah-paper);
  font-family: 'Plus Jakarta Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
}
#root { min-height: 100vh; overflow-x: clip; }
::selection { background: #d8ebdc; color: var(--livoraah-forest); }
:focus-visible { outline: 3px solid #9bcaa7; outline-offset: 3px; }
header {
  background: rgba(255,255,255,.96);
  box-shadow: 0 1px 0 rgba(18,61,45,.07), 0 8px 24px rgba(18,61,45,.045);
  backdrop-filter: blur(14px);
}
header a, header button { transition: color .2s ease, background-color .2s ease, transform .2s ease; }
main { background: var(--livoraah-paper); }
/* Full-bleed destination carousel */
div:has(> button[aria-label="Previous slide"]) {
  isolation: isolate;
  box-shadow: 0 22px 55px rgba(18, 39, 30, .16);
}
div:has(> button[aria-label="Previous slide"]) > div[aria-hidden="true"] { pointer-events: none; }
div:has(> button[aria-label="Previous slide"]) h1 {
  max-width: 13ch;
  text-wrap: balance;
  letter-spacing: -.045em;
  line-height: 1.04;
  text-shadow: 0 4px 24px rgba(0,0,0,.32);
}
div:has(> button[aria-label="Previous slide"]) p { max-width: 34rem; color: rgba(255,255,255,.88); }
div:has(> button[aria-label="Previous slide"]) a { box-shadow: 0 10px 26px rgba(0,0,0,.18); }
div:has(> button[aria-label="Previous slide"]) a:first-child {
  background: var(--livoraah-green);
  box-shadow: 0 10px 26px rgba(19,98,52,.32);
}
div:has(> button[aria-label="Previous slide"]) > button {
  width: 46px; height: 46px;
  border-color: rgba(255,255,255,.35);
  background: rgba(12,34,26,.32);
}
div:has(> button[aria-label="Previous slide"]) > button:hover { background: var(--livoraah-green); }
/* Search panel */
div[class*="container-main"][class*="-mt-16"] > div,
div[class*="container-main"][class*="-mt-20"] > div {
  border: 1px solid rgba(21,64,46,.09);
  border-radius: 24px;
  box-shadow: 0 22px 55px rgba(26,48,37,.13);
}
input, select, textarea {
  border-color: #dce5df;
  border-radius: 12px;
  color: var(--livoraah-ink);
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
input:focus, select:focus, textarea:focus {
  border-color: #6dad7e;
  box-shadow: 0 0 0 4px rgba(36,131,74,.11);
}
button, a { -webkit-tap-highlight-color: transparent; }
button { transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease; }
button:active { transform: translateY(1px); }
/* Consistent editorial section rhythm and heading hierarchy */
section { scroll-margin-top: 88px; }
section h2, main h2 {
  color: var(--livoraah-forest);
  letter-spacing: -.035em;
  text-wrap: balance;
}
section p { text-wrap: pretty; }
/* Experience and destination cards */
#activities-section a[href*="/activity/"],
main a[href*="?destination="] {
  border-radius: 20px;
  transition: transform .24s ease, box-shadow .24s ease;
}
#activities-section a[href*="/activity/"]:hover,
main a[href*="?destination="]:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 38px rgba(25,57,40,.14);
}
#activities-section img, main a[href*="?destination="] img { transition: transform .55s ease; }
#activities-section a:hover img, main a[href*="?destination="]:hover img { transform: scale(1.035); }
/* Trip planner and newsletter surfaces */
section [class*="rounded-[28px]"] {
  border-color: rgba(21,64,46,.1);
  box-shadow: 0 16px 45px rgba(26,48,37,.07);
}
footer { background-color: #102b21; }
@media (min-width: 768px) {
  div:has(> button[aria-label="Previous slide"]) { min-height: 650px; }
}
@media (max-width: 767px) {
  div:has(> button[aria-label="Previous slide"]) { min-height: 540px; }
  div:has(> button[aria-label="Previous slide"]) h1 { max-width: 12ch; font-size: clamp(2.2rem, 9vw, 3rem); }
  div[class*="container-main"][class*="-mt-16"] > div { border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Refined typography and color system */
:root {
  --livoraah-forest: #173e30;
  --livoraah-green: #28734f;
  --livoraah-mint: #eaf2ec;
  --livoraah-sand: #c5a16a;
  --livoraah-ink: #1d2f27;
  --livoraah-muted: #68756e;
  --livoraah-paper: #fbf9f4;
  --livoraah-border: #e5e7df;
}
body, button, input, select, textarea {
  font-family: 'DM Sans', sans-serif;
  color: var(--livoraah-ink);
}
.font-heading, h1, h2, h3 {
  font-family: 'DM Serif Display', Georgia, serif !important;
  font-weight: 400 !important;
  letter-spacing: -.025em;
}
h1, h2, h3 { text-wrap: balance; }
body { background-color: var(--livoraah-paper); }
/* Keep the hero's display type crisp against photography. */
div:has(> button[aria-label="Previous slide"]) h1 {
  font-size: clamp(2.65rem, 5.1vw, 4.15rem);
  line-height: 1.06;
  letter-spacing: -.035em;
}
div:has(> button[aria-label="Previous slide"]) span {
  background-color: var(--livoraah-sand) !important;
  color: #193b2d !important;
  box-shadow: 0 5px 16px rgba(12,28,20,.16);
}
/* Green is the primary action; warm sand is reserved for small accents. */
[class~="bg-[#3da54a]"] { background-color: var(--livoraah-green) !important; }
[class~="hover:bg-[#31863b]"]:hover { background-color: #1e5e40 !important; }
[class*="bg-[#ff9900]"] { background-color: var(--livoraah-sand) !important; }
[class*="hover:bg-[#e68a00]"]:hover { background-color: #ad8752 !important; }
input, select, textarea { border-color: var(--livoraah-border); }
@media (max-width: 767px) {
  div:has(> button[aria-label="Previous slide"]) h1 {
    font-size: clamp(2.35rem, 9vw, 3.15rem);
    line-height: 1.08;
  }
}

/* Final mobile headline and accessible accent contrast */
:root { --livoraah-sand: #d8bd8a; }
[class*="bg-[#ff9900]"] { background-color: #94672f !important; }
[class*="hover:bg-[#e68a00]"]:hover { background-color: #765024 !important; }
div:has(> button[aria-label="Previous slide"]) h1 { max-width: 16ch; }
@media (max-width: 767px) {
  div:has(> button[aria-label="Previous slide"]) h1 { max-width: none; }
}
button[type="submit"] {
  background-color: var(--livoraah-green) !important;
  color: #fff !important;
}
button[type="submit"]:hover { background-color: #1e5e40 !important; }

/* Site-wide page consistency: legible UI type, editorial headings, restrained accents */
body.bg-background, #root .bg-gray-50 {
  background-color: var(--livoraah-paper) !important;
}
#root :is(p, span, small, label, li, button, input, select, textarea, dt, dd, summary) {
  font-family: 'DM Sans', sans-serif !important;
}
#root :is(h1, h2, h3), #root .font-heading {
  font-family: 'DM Serif Display', Georgia, serif !important;
  font-weight: 400 !important;
  letter-spacing: -.025em;
}
#root :is(h4, h5, h6) {
  font-family: 'DM Sans', sans-serif !important;
}
#root .font-script {
  font-family: 'DM Sans', sans-serif !important;
  font-size: .8rem !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1.45;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--livoraah-sand) !important;
}
#root [class*="text-[#ff9900]"], #root [class*="text-orange-"] {
  color: #d8bd8a !important;
}
#root [class*="rounded-2xl"][class*="bg-white"],
#root [class*="rounded-[24px]"][class*="bg-white"] {
  border-color: rgba(23,62,48,.09);
  box-shadow: 0 12px 34px rgba(24,47,36,.07);
}
#root input, #root select, #root textarea {
  background-color: #fff;
  border-color: var(--livoraah-border);
}
#root input:focus, #root select:focus, #root textarea:focus {
  border-color: #6b9e7d;
  box-shadow: 0 0 0 4px rgba(40,115,79,.12);
}
