/* Cyprus Decoded, v5 (brand-locked)
   Palette pulled directly from logo-master.jpg:
   - olive #666a4a  (text + sprig)
   - cream #fdf8f0  (background)
   Type: Jost (clean airy travel sans, Palms-style) throughout. Robyn 2026-06-22.
   Nav: thin (54px), frosted, light-olive tint, sprig icon top-left, envelope top-right.
*/

:root {
  /* Brand (from logo) - lightened to soft baby-olive (Robyn ref #C9CD9B, 2026-06-22) */
  --olive:       #9ba36e;   /* primary, soft olive for buttons/accents */
  --olive-deep:  #6b7150;   /* text-on-light olive (was dark #4a4e34) */
  --olive-ink:   #4a4e34;   /* reserved deep tone for max-contrast text only */
  --olive-soft:  #b3ba8a;
  --olive-baby:  #d3d7ab;   /* pale baby-olive (Robyn's swatch, softened) */
  --olive-pale:  #eef0de;   /* light olive tint for nav/sections */
  --olive-wash:  #f5f6ec;   /* very pale olive wash for section bg */
  --olive-mist:  rgba(155, 163, 110, 0.12);

  /* Backgrounds - WHITE, not cream (Robyn 2026-06-22) */
  --cream:       #ffffff;
  --cream-warm:  #ffffff;
  --cream-deep:  #f4f5ec;

  /* Accents - mustard/yellow -> baby-olive; greys are MID grey (Robyn 2026-06-22) */
  --grey-ink:    #7e837a;   /* mid grey */
  --grey-soft:   #c9cd9b;   /* baby-olive (replaces old light grey accents) */
  --grey-mid:    #7e837a;   /* mid grey for hover/links */
  --gold:        #9ba36e;   /* legacy alias -> soft olive */
  --gold-soft:   #c9cd9b;   /* legacy alias -> baby-olive */

  /* Ink / text */
  --ink:         #2b2a23;
  --ink-soft:    #4a4940;
  --muted:       #7a7868;
  --line:        #d8d2bd;

  --radius:      14px;
  --radius-lg:   22px;
  --shadow:      0 4px 24px rgba(74, 78, 52, 0.08);
  --shadow-hover:0 14px 38px rgba(74, 78, 52, 0.16);
  --container:   1180px;
  --nav-h:       54px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--cream);
  color: var(--ink);
  font-family: 'Jost', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--olive-deep); text-decoration: none; transition: color .2s; }
a:hover { color: var(--gold); }

/* Display type: editorial serif for main headlines, Jost for UI (2026-07-21) */
h1, h2, h3, h4, .wordmark {
  font-family: 'Jost', sans-serif;
  color: var(--olive-deep);
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.1;
}
h1, h2 {
  font-family: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
  letter-spacing: 0.005em;
}
h1 { font-size: clamp(2.8rem, 6vw, 5rem); font-weight: 500; }
h2 { font-size: clamp(2rem, 3.6vw, 2.9rem); margin-bottom: 0.55em; font-weight: 500; }
h3 { font-size: 1.4rem; margin-bottom: 0.4em; font-weight: 500; }
h4 {
  font-family: 'Jost', sans-serif;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.24em;
  color: var(--olive);
  font-weight: 600;
}
p { color: var(--ink-soft); margin-bottom: 1em; }
.lede { font-size: 1.2rem; color: var(--muted); max-width: 640px; line-height: 1.55; }

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

.eyebrow {
  font-family: 'Jost', sans-serif;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.28em;
  color: var(--grey-ink);
  font-weight: 600;
  display: inline-block;
  margin-bottom: 1rem;
}

/* ===== NAV ===== */
.site-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--nav-h);
  background: rgba(238, 240, 222, 0.85);   /* light olive tint, more opaque for readability */
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  border-bottom: 1px solid rgba(102, 106, 74, 0.12);
  z-index: 100;
  transition: background .25s ease, backdrop-filter .25s ease;
}
.site-nav-inner {
  max-width: 1380px;
  height: 100%;
  margin: 0 auto;
  padding: 0 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.nav-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 100%;
}
.nav-brand img {
  height: 34px;
  width: auto;
  display: block;
}
.nav-links {
  display: flex;
  align-items: center;
  gap: 28px;
  list-style: none;
}
.nav-links a {
  font-family: 'Jost', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--olive-ink);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  position: relative;
  padding: 4px 0;
}
.nav-links a:hover { color: var(--olive); }
.nav-links a.active::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -4px;
  height: 1px;
  background: var(--olive);
}
.nav-contact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: rgba(102, 106, 74, 0.08);
  color: var(--olive-deep);
  border: 1px solid rgba(102, 106, 74, 0.15);
  cursor: pointer;
  transition: all .2s;
}
.nav-contact:hover { background: var(--olive); color: var(--cream); }
.nav-contact svg { width: 18px; height: 18px; }

/* Mobile burger */
.nav-burger {
  display: none;
  width: 36px; height: 36px;
  border: none;
  background: transparent;
  cursor: pointer;
  align-items: center;
  justify-content: center;
}
.nav-burger span {
  display: block;
  width: 22px;
  height: 1.5px;
  background: var(--olive-deep);
  position: relative;
}
.nav-burger span::before,
.nav-burger span::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  height: 1.5px;
  background: var(--olive-deep);
}
.nav-burger span::before { top: -7px; }
.nav-burger span::after  { top: 7px; }

@media (max-width: 880px) {
  .nav-links { display: none; position: absolute; top: var(--nav-h); left: 0; right: 0;
    background: rgba(253, 248, 240, 0.96); backdrop-filter: blur(12px);
    flex-direction: column; padding: 24px 28px; gap: 18px; border-bottom: 1px solid var(--line); }
  .nav-links.open { display: flex; }
  .nav-burger { display: flex; }
}

/* ===== HERO ===== */
.hero {
  position: relative;
  min-height: 78vh;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding: calc(var(--nav-h) + 32px) 0 80px;
  overflow: hidden;
  isolation: isolate;
}
.hero > .container { width: 100%; margin: 0 auto; }
.hero-bg {
  position: absolute; inset: 0; z-index: -2;
  background-size: cover;
  background-position: center;
}
.hero-bg::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(40, 44, 28, 0.04) 0%, rgba(40, 44, 28, 0.08) 50%, rgba(30, 34, 20, 0.20) 100%);
}
.hero-content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 420px;
  margin-left: 0;   /* card on the left, over open water/sky */
  margin-right: auto;
  text-align: left;
  padding: 28px 32px 30px;
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(247, 248, 240, 0.92) 0%, rgba(230, 233, 205, 0.90) 100%);
  backdrop-filter: blur(7px) saturate(102%);
  -webkit-backdrop-filter: blur(7px) saturate(102%);
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-shadow: 0 12px 36px rgba(74, 78, 52, 0.16);
}
.hero .container { max-width: 1320px; }
.hero h1 {
  color: var(--olive-ink);
  font-family: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.9rem, 3vw, 2.6rem);
  line-height: 1.15;
  font-weight: 600;
  letter-spacing: 0.005em;
  margin-top: 6px;
  text-shadow: none;
}
.hero h1 em {
  font-style: italic;
  color: var(--olive-deep);
  text-shadow: none;
}
.hero .lede {
  color: var(--olive-deep);
  font-size: 0.95rem;
  margin-top: 14px;
  max-width: 100%;
  line-height: 1.55;
  text-shadow: none;
}
.hero-cta {
  margin-top: 24px;
  display: inline-block;
}
.hero .eyebrow {
  color: var(--grey-ink);
  text-shadow: none;
}

/* Shaking leaves overlay (CSS-only, photo-friendly) */
.hero-leaves {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url('../images/hero-cyprus.jpg');
  background-size: cover; background-position: center;
  filter: brightness(1.02) contrast(1.02);
  animation: hero-sway 9s ease-in-out infinite alternate;
  transform-origin: center bottom;
  opacity: 0;  /* turned off by default; hero-bg handles photo. Set .with-sway to enable */
}
.hero.with-sway .hero-leaves { opacity: 1; }
@keyframes hero-sway {
  0%   { transform: scale(1.02) rotate(-0.15deg); }
  50%  { transform: scale(1.03) rotate(0.20deg); }
  100% { transform: scale(1.02) rotate(-0.10deg); }
}

/* ===== SECTIONS ===== */
section { padding: 96px 0; position: relative; }
section.tight { padding: 64px 0; }
section.cream { background: var(--cream-warm); }
section.olive-mist { background: var(--olive-mist); }
section.olive-mist .eyebrow { color: #3a5a2c; }
section.olive-mist .lede { color: var(--ink-soft); }
section.olive-mist h2 { color: var(--ink); }

.section-head {
  max-width: 720px;
  margin-bottom: 56px;
}
.section-head .eyebrow { margin-bottom: 14px; }

/* Olive sprig hairline divider */
.sprig-divider {
  display: flex; align-items: center; justify-content: center;
  gap: 14px;
  margin: 28px 0;
}
.sprig-divider::before,
.sprig-divider::after {
  content: '';
  flex: 0 0 60px;
  height: 1px;
  background: var(--line);
}
.sprig-divider img { height: 28px; opacity: 0.7; }

/* Two-column block (image + text) */
.split {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 72px;
  align-items: center;
}
.split.reverse { grid-template-columns: 1fr 1.05fr; }
.split.reverse .split-text { order: -1; }
.split-img img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
@media (max-width: 880px) {
  .split, .split.reverse { grid-template-columns: 1fr; gap: 40px; }
  .split.reverse .split-text { order: 0; }
}

/* Photo grid (locations) */
.photo-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}
@media (max-width: 720px) { .photo-grid { grid-template-columns: 1fr; } }
.photo-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  aspect-ratio: 4/3;
  box-shadow: var(--shadow);
}
.photo-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .9s ease;
}
.photo-card:hover img { transform: scale(1.05); }
.photo-card .caption {
  position: absolute;
  left: 24px; right: 24px; bottom: 22px;
  color: var(--cream);
  z-index: 2;
}
.photo-card .caption .eyebrow {
  color: var(--gold-soft);
  margin-bottom: 4px;
}
.photo-card .caption h3 {
  font-family: 'Jost', sans-serif;
  color: var(--cream);
  font-size: 1.8rem;
  font-weight: 400;
}
.photo-card::after {
  content: '';
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(74,78,52,0.72) 100%);
}

/* Pull quote */
.pullquote {
  font-family: 'Jost', sans-serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  color: var(--olive-deep);
  line-height: 1.35;
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}
.pullquote-author {
  display: block;
  margin-top: 18px;
  font-family: 'Jost', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--olive);
  font-style: normal;
}

/* CTA button */
.btn {
  display: inline-block;
  font-family: 'Jost', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  padding: 16px 32px;
  border: 1px solid var(--olive);
  color: var(--olive-deep);
  background: transparent;
  border-radius: 999px;
  cursor: pointer;
  transition: all .25s;
}
.btn:hover { background: var(--olive); color: var(--cream); }
.btn-solid { background: var(--olive); color: var(--cream); }
.btn-solid:hover { background: var(--olive-deep); color: var(--cream); }
.btn-light { border-color: var(--cream); color: var(--cream); }
.btn-light:hover { background: var(--cream); color: var(--olive-deep); }

/* ===== CONTACT SLIDE-IN ===== */
.contact-drawer {
  position: fixed;
  top: 0; right: -100%;
  width: min(440px, 100%);
  height: 100%;
  background: var(--cream);
  z-index: 200;
  padding: 80px 40px 40px;
  box-shadow: -20px 0 50px rgba(74,78,52,0.18);
  transition: right .35s cubic-bezier(.6,.05,.28,.91);
  overflow-y: auto;
}
.contact-drawer.open { right: 0; }
.contact-drawer-close {
  position: absolute; top: 24px; right: 24px;
  width: 36px; height: 36px;
  background: transparent; border: none;
  cursor: pointer; color: var(--olive-deep);
  font-size: 1.5rem;
}
.contact-drawer h3 {
  font-family: 'Jost', sans-serif;
  font-weight: 300;
  font-size: 2rem;
  margin-bottom: 8px;
}
.contact-drawer p { margin-bottom: 24px; }
.contact-drawer form { display: flex; flex-direction: column; gap: 16px; }
.contact-drawer input,
.contact-drawer textarea {
  font-family: 'Jost', sans-serif;
  font-size: 0.95rem;
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: var(--white, #fff);
  border-radius: 8px;
  color: var(--ink);
}
.contact-drawer textarea { min-height: 130px; resize: vertical; }
.contact-drawer button[type=submit] {
  margin-top: 8px;
  align-self: flex-start;
}
.contact-backdrop {
  position: fixed; inset: 0;
  background: rgba(46,52,30,0.4);
  z-index: 199;
  opacity: 0; pointer-events: none;
  transition: opacity .3s;
}
.contact-backdrop.open { opacity: 1; pointer-events: auto; }

/* ===== FOOTER ===== */
.site-foot {
  background: #eef1dc;   /* services-box pale olive (Robyn 23 Jun) */
  color: #4a4e34;
  padding: 48px 0 24px;
  border-top: 2px solid #b9c089;  /* darker outline (Robyn 23 Jun) */
}
.site-foot p, .site-foot a, .site-foot h4, .site-foot .foot-meta { color: #4a4e34; }
.site-foot a { opacity: 0.85; }
.site-foot a:hover { opacity: 1; color: #4a4e34; }
.foot-id { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.foot-id .foot-tree { margin: 0; width: 40px; opacity: 1; }
.foot-name {
  font-family: 'Jost', sans-serif;
  font-weight: 500;
  font-size: 1.1rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #4a4e34;
}
.site-foot a { color: var(--olive-deep); text-decoration: none; transition: color 0.2s ease; }
.site-foot a:hover { color: var(--gold); }
.foot-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 56px;
  margin-bottom: 24px;
}
@media (max-width: 720px) { .foot-grid { grid-template-columns: 1fr 1fr; gap: 32px; } }
.foot-tree {
  display: block;
  width: 58px;
  height: auto;
  margin-bottom: 12px;
  margin-left: 0;
  opacity: 0.9;
}
.foot-brand {
  font-family: 'Jost', sans-serif;
  font-size: 1.18rem;
  font-weight: 300;
  line-height: 1.3;
  letter-spacing: 0.04em;
  color: #4a4e34;
  margin-bottom: 14px;
  white-space: nowrap;
}
@media (max-width: 720px) { .foot-brand { white-space: normal; font-size: 1.1rem; } }
.site-foot p { color: var(--olive-deep); font-size: 0.9rem; line-height: 1.65; max-width: 30ch; opacity: 0.85; }
.foot-grid h4 {
  color: var(--grey-ink);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.foot-grid ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.foot-grid ul a { font-size: 0.95rem; font-weight: 300; }
.foot-meta {
  border-top: 1px solid rgba(107, 113, 80, 0.4);
  padding-top: 16px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 0.76rem;
  color: var(--olive-deep);
  opacity: 0.92;
}

/* Image attribution micro-credit */
.img-credit {
  font-size: 0.72rem;
  color: var(--muted);
  letter-spacing: 0.04em;
  margin-top: 8px;
  text-align: right;
  font-style: italic;
}

/* Small utility */
.center { text-align: center; }
.mt-l { margin-top: 48px; }
.mb-l { margin-bottom: 48px; }

/* === Compatibility shim for legacy page-hero / section classes === */
.page-hero {
  position: relative;
  padding: calc(var(--nav-h, 72px) + 60px) 0 60px;
  background: linear-gradient(180deg, #ffffff 0%, var(--olive-wash) 100%);
  border-bottom: 1px solid var(--line, rgba(0,0,0,0.08));
}
.page-hero.with-photo {
  padding: 0;
  min-height: 380px;
  display: flex;
  align-items: flex-end;
  color: #fff;
}
.page-hero.with-photo .photo-bg {
  position: absolute; inset: 0; overflow: hidden; z-index: 0;
}
.page-hero.with-photo .photo-bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(30,34,20,0.52) 0%, rgba(30,34,20,0.40) 40%, rgba(30,34,20,0.50) 70%, rgba(30,34,20,0.70) 100%);
}
.page-hero.with-photo .photo-bg img {
  width: 100%; height: 100%; object-fit: cover;
}
.page-hero.with-photo .container {
  position: relative; z-index: 1; padding-bottom: 48px; padding-top: 120px;
}
.page-hero h1 {
  font-family: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(2.4rem, 5vw, 4rem);
  line-height: 1.08;
  margin: 12px 0 16px;
  font-weight: 600;
}
.page-hero .lede {
  font-size: 1.15rem; max-width: 640px; line-height: 1.5;
  color: rgba(0,0,0,0.7);
}
.page-hero.with-photo .lede { color: rgba(255,255,255,0.92); text-shadow: 0 1px 8px rgba(20,24,12,0.45); }
.page-hero.with-photo h1 { color: #ffffff; text-shadow: 0 2px 14px rgba(20,24,12,0.5); }

/* === Region hero: bigger, centred, premium === */
.region-hero.with-photo { min-height: 560px; align-items: center; text-align: center; }
.region-hero.with-photo .container { padding-top: calc(var(--nav-h, 72px) + 40px); padding-bottom: 40px; }
.region-hero.with-photo h1 {
  font-size: clamp(3.2rem, 8vw, 6rem);
  font-weight: 600;
  letter-spacing: -0.01em;
  margin: 16px 0 18px;
  text-shadow: 0 3px 22px rgba(20,24,12,0.55);
}
.region-hero.with-photo .lede {
  margin: 0 auto;
  font-size: 1.35rem;
  max-width: 620px;
  text-shadow: 0 1px 10px rgba(20,24,12,0.55);
}
.region-kicker {
  display: inline-block;
  font-family: 'Jost', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.32em;
  font-size: 0.85rem;
  font-weight: 700;
  color: #ffffff !important;
  text-shadow: 0 1px 10px rgba(20,24,12,0.85), 0 0 4px rgba(20,24,12,0.6);
}
.region-kicker a { color: #ffffff !important; text-decoration: none; }
.region-kicker a:hover { color: #ffffff !important; text-decoration: underline; }
.region-kicker .sep { margin: 0 8px; opacity: 0.85; color: #ffffff; }
.section-eyebrow {
  display: inline-block;
  font-family: 'Jost', sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--grey-ink);
  font-weight: 600;
}
/* page-hero eyebrows sit on photos; give the pale grey a soft shadow for legibility */
.page-hero.with-photo .section-eyebrow {
  text-shadow: 0 1px 6px rgba(0,0,0,0.55);
}
.section-head { text-align: center; max-width: 720px; margin: 0 auto 48px; }
.section-head h2 {
  font-family: 'Playfair Display', 'Cormorant Garamond', Georgia, serif; font-weight: 500;
  font-size: clamp(2rem, 4vw, 3rem); margin: 12px 0 16px;
}
.breadcrumbs {
  font-size: 0.85rem; color: rgba(255,255,255,0.85); margin-bottom: 16px;
}
.breadcrumbs a { color: #f5d27a; text-decoration: none; }

/* legacy section helpers */
section { padding: 60px 0; }
.bg-cream { background: #ffffff; }
.bg-teal { background: #5c6a36; color: #faf6ec; }
.text-center { text-align: center; }
.who-we-are { line-height: 1.6; }

/* attractions grid */
.attractions { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 28px; }
.attraction { background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 18px rgba(0,0,0,0.06); display: flex; flex-direction: column; }
.attraction-media { aspect-ratio: 16 / 10; overflow: hidden; background: #ece4d0; }
.attraction-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.attraction-body { padding: 20px 22px 24px; }
.attraction-body h3 { font-family: 'Jost', sans-serif; font-weight: 500; font-size: 1.4rem; margin: 0 0 8px; }
.attraction-body p { color: rgba(0,0,0,0.7); line-height: 1.5; font-size: 0.97rem; margin: 0; }

/* generic card grid */
.grid { display: grid; gap: 28px; }
.grid-3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.card { background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 18px rgba(0,0,0,0.06); text-decoration: none; color: inherit; display: flex; flex-direction: column; }
.card-media { aspect-ratio: 16 / 10; overflow: hidden; background: #ece4d0; }
.card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.card-body { padding: 22px 24px 26px; }
.card-meta { font-size: 0.8rem; color: var(--grey-ink); letter-spacing: 0.1em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.card-meta svg { width: 14px; height: 14px; }
.card-body h3 { font-family: 'Jost', sans-serif; font-weight: 500; font-size: 1.5rem; margin: 8px 0; }
.card-body p { color: rgba(0,0,0,0.7); line-height: 1.5; margin: 0 0 14px; font-size: 0.97rem; }
.card-cta { color: #6b6b63; font-weight: 600; font-size: 0.9rem; }

/* buttons */
.btn { display: inline-block; padding: 14px 26px; border-radius: 999px; font-weight: 600; text-decoration: none; transition: all 0.2s; font-size: 0.95rem; }
.btn-primary { background: var(--olive); color: #fff; }
.btn-primary:hover { background: var(--olive-deep); }
.btn-light { background: rgba(255,255,255,0.92); color: #1f5b5c; }
.btn-light:hover { background: #fff; }

/* map */
.map-wrap { display: grid; grid-template-columns: 2fr 1fr; gap: 32px; align-items: center; }
.map-svg { width: 100%; height: auto; }
.map-svg .island { fill: #e8d8a8; stroke: #b58a3a; stroke-width: 1.5; }
.map-svg .hotspot { fill: #fff; stroke: #4a4e34; stroke-width: 1.5; cursor: pointer; transition: r 0.15s; }
.map-svg .hotspot:hover { r: 10; }
.map-svg .xmark { stroke: #fff; stroke-width: 3; stroke-linecap: round; pointer-events: none; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.5)); }
.map-svg .label { font-family: 'Jost', sans-serif; font-size: 14px; fill: #fff; font-weight: 600; letter-spacing: 0.02em; paint-order: stroke; stroke: rgba(40,44,28,0.55); stroke-width: 3px; }
.map-legend { background: #fff; padding: 24px; border-radius: 18px; border: 2px solid #cfd7a0; box-shadow: 0 4px 18px rgba(0,0,0,0.06); }
.map-legend h3 { font-family: 'Jost', sans-serif; font-weight: 500; margin: 0 0 12px; font-size: 1.4rem; }
.map-legend ul { list-style: none; padding: 0; margin: 0; }
.map-legend li { padding: 8px 0; border-bottom: 1px solid rgba(0,0,0,0.06); }
.map-legend a { color: #2a3a3a; text-decoration: none; font-weight: 500; }
.map-legend a:hover { color: #b58a3a; }
@media (max-width: 720px) {
  .map-wrap { grid-template-columns: 1fr; }
}

/* container fallback */
.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* === Contact form === */
.form-wrap {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 48px;
  max-width: 1080px;
  margin: 0 auto;
  align-items: start;
}
.form { display: flex; flex-direction: column; gap: 18px; background: #fff; padding: 32px; border-radius: 12px; box-shadow: 0 4px 18px rgba(0,0,0,0.06); }
.field { display: flex; flex-direction: column; gap: 6px; }
.field label { font-size: 0.85rem; font-weight: 600; color: #2a3a3a; letter-spacing: 0.04em; }
.field input,
.field select,
.field textarea {
  font-family: 'Jost', sans-serif;
  font-size: 1rem;
  padding: 12px 14px;
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 8px;
  background: #ffffff;
  color: #2a3a3a;
  transition: border-color 0.15s, background 0.15s;
}
.field textarea { min-height: 140px; resize: vertical; }
.field input:focus,
.field select:focus,
.field textarea:focus {
  outline: none;
  border-color: var(--grey-soft);
  background: #fff;
}
.contact-aside { background: #1f5b5c; color: #faf6ec; padding: 32px; border-radius: 12px; }
.contact-aside h3 { font-family: 'Jost', sans-serif; font-weight: 500; font-size: 1.5rem; margin: 0 0 16px; color: #f5d27a; }
.contact-aside a { color: #f5d27a; text-decoration: none; }
.contact-aside p { line-height: 1.5; color: rgba(255,255,255,0.85); }
.contact-aside svg { width: 16px; height: 16px; vertical-align: middle; margin-right: 6px; }
@media (max-width: 720px) {
  .form-wrap { grid-template-columns: 1fr; gap: 24px; }
}

/* Floating contact tab (right edge, all pages) */
.contact-tab{
  position:fixed; right:0; top:50%; transform:translateY(-50%) rotate(-90deg);
  transform-origin:bottom right;
  display:flex; align-items:center; gap:8px;
  background:var(--olive,#5a6b3b); color:#fdf8f0;
  border:none; cursor:pointer;
  padding:10px 18px; border-radius:8px 8px 0 0;
  font-family:'Jost',sans-serif; font-size:14px; font-weight:600; letter-spacing:.04em;
  box-shadow:0 4px 18px rgba(0,0,0,.18); z-index:1200;
  transition:background .2s ease;
}
.contact-tab:hover{ background:var(--olive-deep,#4a4e34); }
.contact-tab svg{ width:18px; height:18px; transform:rotate(90deg); }
@media (max-width:640px){
  .contact-tab span{ display:none; }
  .contact-tab{ padding:12px; border-radius:50%; transform:translateY(-50%); right:14px; }
  .contact-tab svg{ transform:none; }
}

/* Home hero refinements 2026-06-15 */
.hero-title{
  white-space:nowrap;
  font-family:'Playfair Display','Cormorant Garamond',Georgia,serif;
  font-size:clamp(2.6rem,9vw,6.2rem);
  font-weight:600;
  letter-spacing:.01em;
  text-shadow:0 2px 24px rgba(0,0,0,.45);
}
.hero-title em{
  font-style:italic;
  font-weight:600;
  color:var(--gold-soft);
}
@media (max-width:520px){
  .hero-title{ white-space:normal; }
}
.hero-eyebrow{
  color:#fff !important;
  background:rgba(74,78,52,.55);
  padding:6px 14px;
  border-radius:30px;
  backdrop-filter:blur(2px);
  text-shadow:0 1px 8px rgba(0,0,0,.4);
  font-weight:600;
}

/* Services page price + feature card 2026-06-15 */
.price{
  font-family:'Jost',sans-serif;
  font-size:1.05rem;
  margin:14px 0 4px;
  color:var(--olive-deep,#4a4e34);
}
.price strong{ font-size:1.35rem; font-weight:700; }
.price span{ font-size:0.8rem; opacity:0.6; font-weight:400; }
.card-feature{
  border:2px solid var(--grey-soft,#d8dad3);
  box-shadow:0 8px 30px rgba(0,0,0,.08);
}

/* Article body (blog posts) 2026-06-17 */
.article-body{
  max-width:680px;
  margin:0 auto;
  font-size:1.13rem;
  line-height:1.85;
  color:#3f4338;
}
.article-body p{ margin:0 0 1.4em; color:var(--ink-soft,#4a4940); }
.article-body h2{
  font-family:'Playfair Display','Cormorant Garamond',Georgia,serif;
  font-weight:500;
  font-size:1.85rem;
  color:var(--olive-deep,#4a4e34);
  margin:1.9em 0 0.5em;
  line-height:1.2;
}
.article-body h3{
  font-family:'Jost',sans-serif;
  font-weight:500;
  font-size:1.4rem;
  color:var(--olive-deep,#4a4e34);
  margin:1.5em 0 0.4em;
}
.article-body ul,
.article-body ol{
  margin:0 0 1.4em 1.2em;
  padding-left:1em;
}
.article-body li{
  margin-bottom:0.6em;
  line-height:1.75;
  color:var(--ink-soft,#4a4940);
}
.article-body strong{ color:var(--ink,#2b2a23); }
.article-body a{ color:var(--grey-ink,#5a5e57); text-decoration:underline; text-underline-offset:2px; }
.article-body a:hover{ color:var(--olive-deep,#4a4e34); }
.article-meta{
  max-width:720px;
  margin:0 auto 28px;
  font-size:0.85rem;
  letter-spacing:0.04em;
  color:var(--muted,#7a7868);
  text-transform:uppercase;
  font-weight:600;
}
.article-hero-img{
  max-width:880px;
  margin:0 auto 48px;
  border-radius:var(--radius-lg,22px);
  overflow:hidden;
  box-shadow:var(--shadow,0 4px 24px rgba(74,78,52,0.08));
}
.article-hero-img img{ width:100%; height:auto; display:block; }
.article-cta{
  max-width:720px;
  margin:48px auto 0;
  padding:32px;
  background:var(--cream-warm,#ffffff);
  border-radius:var(--radius-lg,22px);
  border:1px solid var(--line,#d8d2bd);
  text-align:center;
}
.article-cta h3{ font-family:'Jost',sans-serif; font-weight:500; margin:0 0 8px; }
.article-cta p{ margin:0 0 18px; }

/* Blog listing grid 2026-06-17 (matches .card aesthetic) */
.blog-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:28px; }
.blog-card{
  background:#fff;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 4px 18px rgba(0,0,0,0.06);
  display:flex;
  flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease;
}
.blog-card:hover{ transform:translateY(-4px); box-shadow:0 12px 30px rgba(74,78,52,0.14); }
.blog-card .card-media{ aspect-ratio:16 / 10; overflow:hidden; background:#ece4d0; }
.blog-card .card-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.blog-card:hover .card-media img{ transform:scale(1.04); }
.blog-card .card-body{ padding:22px 24px 26px; }
.blog-card .card-body h3{ font-family:'Jost',sans-serif; font-weight:500; font-size:1.45rem; margin:8px 0; line-height:1.2; }
.blog-card .card-body p{ color:rgba(0,0,0,0.7); line-height:1.5; margin:0 0 14px; font-size:0.97rem; }
.blog-date{ font-size:0.78rem; color:var(--grey-ink); letter-spacing:0.1em; text-transform:uppercase; font-weight:600; }

/* Prose column for streamlined landing/about content */
.prose { max-width: 760px; margin: 0 auto; }
.prose .eyebrow { display: block; margin-bottom: 12px; }
.prose h2 { font-weight: 300; font-size: clamp(1.6rem, 3.2vw, 2.3rem); margin: 40px 0 14px; line-height: 1.15; }
.prose h2:first-of-type { margin-top: 8px; }
.prose p { font-size: 1.12rem; line-height: 1.7; color: var(--text); margin: 0 0 18px; }
.prose .pullquote { font-style: italic; font-size: clamp(1.3rem, 2.6vw, 1.7rem); line-height: 1.4; color: var(--olive, #4a4e34); border-top: 1px solid rgba(0,0,0,0.12); padding-top: 28px; }

/* Tiny Cyprus island mark, fixed bottom-right corner (Robyn 2026-06-22) */
.cy-corner-mark {
  position: fixed;
  right: 20px;
  bottom: 18px;
  width: 72px;
  height: auto;
  opacity: 0.95;
  z-index: 50;
  pointer-events: none;
  filter: drop-shadow(0 1px 4px rgba(74,78,52,0.7));
}
@media (max-width: 600px) { .cy-corner-mark { width: 54px; right: 12px; bottom: 12px; } }

/* Narrow reading column for long-form editorial copy (About Cyprus) */
.container.narrow { max-width: 760px; }
.container.narrow .eyebrow { display: block; }
.container.narrow h2 { margin: 8px 0 22px; }
.container.narrow p { margin-bottom: 18px; font-size: 1.06rem; line-height: 1.8; }

/* About Cyprus: heart photo + interactive engagement (Robyn 2026-06-22) */
.heart-photo-block { display: flex; justify-content: center; padding: 8px 0 4px; }
.heart-photo { width: min(440px, 80vw); height: auto; display: block; }

.engage-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 28px 0 8px;
}
@media (max-width: 640px) { .engage-grid { grid-template-columns: 1fr 1fr; } }
.engage-card {
  background: #ffffff;
  border: 1.5px solid var(--olive-baby);
  border-radius: var(--radius);
  padding: 22px 14px;
  cursor: pointer;
  font-family: 'Jost', sans-serif;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
}
.engage-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); border-color: var(--olive); }
.engage-card.active { background: var(--olive-baby); border-color: var(--olive); }
.engage-emoji { font-size: 1.7rem; line-height: 1; }
.engage-icon { display: flex; justify-content: center; align-items: center; width: 100%; height: 40px; color: #6b7150; }
.engage-icon svg { width: 34px; height: 34px; display: block; stroke: #6b7150; }
.engage-card:hover .engage-icon svg, .engage-card.active .engage-icon svg { stroke: #4a4e34; }
.engage-label { font-size: 0.95rem; letter-spacing: 0.02em; color: var(--olive-ink); font-weight: 500; }
.engage-result {
  margin-top: 22px;
  background: #ffffff;
  border: 1px solid var(--olive-baby);
  border-radius: var(--radius);
  padding: 22px 26px;
  text-align: left;
  animation: engageIn .25s ease;
}
.engage-result h3 { font-family: 'Jost', sans-serif; font-weight: 500; margin-bottom: 8px; color: var(--olive-ink); }
.engage-result p { margin-bottom: 14px; }
.engage-result .btn { margin-top: 2px; }
@keyframes engageIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

/* Simplified brand-only footer (Robyn 2026-06-22) */
.foot-simple { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 6px 0; }
.foot-simple .foot-id { margin-bottom: 4px; }
.foot-simple .foot-brand { margin-bottom: 6px; }
.foot-mini { font-size: 0.8rem; color: #4a4e34; opacity: 0.8; }
.foot-mini a { color: #4a4e34; }

/* About Cyprus gallery grid (Robyn 2026-06-22) */
.cy-gallery {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  padding: 10px 4px 18px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.cy-gallery::-webkit-scrollbar { height: 6px; }
.cy-gallery::-webkit-scrollbar-thumb { background: var(--olive-baby); border-radius: 4px; }
.cy-gallery-item {
  margin: 0; position: relative; flex: 0 0 auto;
  width: 230px; border-radius: var(--radius); overflow: hidden;
  box-shadow: var(--shadow); scroll-snap-align: start;
}
.cy-gallery-item img {
  width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block;
  transition: transform .4s ease;
}
.cy-gallery-item:hover img { transform: scale(1.05); }
.cy-gallery-item figcaption {
  position: absolute; left: 0; right: 0; bottom: 0;
  background: linear-gradient(to top, rgba(74,78,52,0.82), rgba(74,78,52,0));
  color: #fff; font-family: 'Jost', sans-serif; font-weight: 400;
  font-size: 0.82rem; letter-spacing: 0.02em;
  padding: 24px 12px 10px;
}

/* Restaurant rating cards (Best places to eat) 2026-06-22 */
.eat-rating{ display:flex; align-items:center; gap:8px; margin:4px 0 8px; }
.eat-stars{ color:#c9a227; font-size:1.02rem; letter-spacing:1px; line-height:1; }
.eat-stars .star-empty{ color:#d9d4c4; }
.eat-score{ font-family:'Jost',sans-serif; font-size:0.86rem; font-weight:500; color:#6a6e57; letter-spacing:0.02em; }
.card .card-meta + h3{ margin-top:2px; }
.eat-stars .star-half{ background:linear-gradient(90deg,#c9a227 50%,#d9d4c4 50%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }

/* About page closing line 2026-06-22 */
.about-closing{ padding:40px 0 64px; background:#fff; }
.about-closing .closing-line{
  font-family:'Playfair Display','Cormorant Garamond',Georgia,serif;
  font-style:italic; font-weight:500;
  font-size:clamp(1.6rem,3.6vw,2.4rem); line-height:1.25;
  color:var(--olive,#4a4e34); margin:0 0 14px;
}
.about-closing .closing-sub{
  font-family:'Jost',sans-serif; color:#8a8a82;
  font-size:0.72rem; letter-spacing:0.22em; text-transform:uppercase;
  font-style:normal; margin:0;
}

/* Gallery album: nav arrows + lightbox 2026-06-22 */
.cy-gallery-wrap{ position:relative; }
.cy-gallery{ cursor:grab; }
.cy-gallery.dragging{ cursor:grabbing; scroll-behavior:auto; }
.cy-gallery-item{ cursor:pointer; }
.cy-gallery-item img{ pointer-events:none; }
.cy-gallery-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5;
  width:42px; height:42px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(255,255,255,0.92); color:#4a4e34; font-size:1.5rem; line-height:1;
  box-shadow:0 4px 14px rgba(0,0,0,0.18); display:flex; align-items:center; justify-content:center;
  transition:background .2s, transform .2s;
}
.cy-gallery-nav:hover{ background:#fff; transform:translateY(-50%) scale(1.08); }
.cy-gallery-nav.prev{ left:-6px; }
.cy-gallery-nav.next{ right:-6px; }
@media (max-width:600px){ .cy-gallery-nav{ display:none; } }

.cy-lightbox{
  position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center;
  background:rgba(20,22,14,0.92); padding:24px;
}
.cy-lightbox[hidden]{ display:none; }
.cy-lb-figure{ margin:0; max-width:90vw; max-height:88vh; text-align:center; }
.cy-lb-figure img{ max-width:90vw; max-height:80vh; border-radius:10px; box-shadow:0 12px 40px rgba(0,0,0,0.5); }
.cy-lb-figure figcaption{ color:#fff; font-family:'Jost',sans-serif; margin-top:14px; font-size:1.05rem; letter-spacing:0.02em; }
.cy-lb-close{
  position:absolute; top:18px; right:24px; background:none; border:none; color:#fff;
  font-size:2.4rem; line-height:1; cursor:pointer; opacity:.85;
}
.cy-lb-close:hover{ opacity:1; }
.cy-lb-arrow{
  position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.14);
  border:none; color:#fff; font-size:2.2rem; width:54px; height:54px; border-radius:50%;
  cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s;
}
.cy-lb-arrow:hover{ background:rgba(255,255,255,0.28); }
.cy-lb-prev{ left:18px; }
.cy-lb-next{ right:18px; }

/* Services pricing cards: very pale baby-olive (lighter than footer #cfd7a0) 2026-06-22 */
#relocation .card,
#everyday .card,
#moving-cards .card{
  background:#eef1dc;          /* very pale baby-olive, lighter than footer */
  border:1px solid #dfe4c2;
  box-shadow:0 3px 6px rgba(60,70,40,0.14), 0 18px 38px rgba(60,70,40,0.26);
  transition:transform .25s ease, box-shadow .25s ease;
}
#relocation .card:hover,
#everyday .card:hover,
#moving-cards .card:hover{
  transform:translateY(-5px);
  box-shadow:0 16px 34px rgba(74,78,52,0.16), 0 4px 10px rgba(74,78,52,0.10);
}

/* AI Chatbot widget 2026-06-22 */
/* Small chat bubble, sits just left of the white Cyprus corner mark */
.chat-launcher{
  position:fixed; bottom:20px; right:104px; z-index:9990;
  display:flex; align-items:center; justify-content:center;
  width:48px; height:48px; padding:0;
  background:#4a4e34; color:#fff; border:none; cursor:pointer;
  border-radius:50%; box-shadow:0 6px 18px rgba(40,44,28,0.32);
  transition:transform .2s, box-shadow .2s;
}
.chat-launcher:hover{ transform:translateY(-2px); box-shadow:0 10px 26px rgba(40,44,28,0.42); }
.chat-launcher-ico{ font-size:1.25rem; line-height:1; }
.chat-launcher-txt{ display:none; }
@media (max-width: 600px){ .chat-launcher{ right:78px; bottom:14px; width:44px; height:44px; } }
.chat-panel{
  position:fixed; bottom:22px; right:22px; z-index:9991;
  width:370px; max-width:calc(100vw - 32px); height:540px; max-height:calc(100vh - 44px);
  background:#fff; border-radius:18px; overflow:hidden; display:flex; flex-direction:column;
  box-shadow:0 18px 50px rgba(40,44,28,0.34); border:1px solid rgba(74,78,52,0.12);
}
.chat-panel[hidden]{ display:none; }
.chat-head{
  background:#cfd7a0; color:#4a4e34; padding:14px 16px;
  display:flex; align-items:center; justify-content:space-between;
}
.chat-head-id{ display:flex; align-items:center; gap:10px; }
.chat-head-tree{ width:30px; height:30px; object-fit:contain; }
.chat-head-id strong{ font-family:'Jost',sans-serif; font-size:1rem; display:block; line-height:1.1; }
.chat-head-sub{ font-size:0.74rem; opacity:0.8; }
.chat-close{ background:none; border:none; color:#4a4e34; font-size:1.7rem; line-height:1; cursor:pointer; opacity:.7; }
.chat-close:hover{ opacity:1; }
.chat-body{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; background:#f7f7f1; }
.chat-msg{ max-width:84%; padding:10px 13px; border-radius:14px; font-size:0.92rem; line-height:1.45; }
.chat-msg.bot{ background:#fff; color:#3f4338; align-self:flex-start; border:1px solid rgba(0,0,0,0.06); border-bottom-left-radius:4px; }
.chat-msg.user{ background:#4a4e34; color:#fff; align-self:flex-end; border-bottom-right-radius:4px; }
.chat-msg a{ color:#6a6e57; font-weight:600; }
.chat-msg.user a{ color:#fff; }
.chat-suggest{ display:flex; flex-wrap:wrap; gap:7px; padding:8px 12px; background:#f7f7f1; }
.chat-chip{
  background:#eef1dc; border:1px solid #dfe4c2; color:#4a4e34; cursor:pointer;
  font-family:'Jost',sans-serif; font-size:0.78rem; padding:6px 11px; border-radius:999px;
}
.chat-chip:hover{ background:#e3e8c8; }
.chat-input{ display:flex; gap:8px; padding:12px; border-top:1px solid rgba(0,0,0,0.07); background:#fff; }
.chat-input input{
  flex:1; border:1px solid rgba(0,0,0,0.14); border-radius:999px; padding:11px 16px;
  font-family:inherit; font-size:0.92rem; outline:none;
}
.chat-input input:focus{ border-color:#9ba36e; }
.chat-input button{
  background:#4a4e34; color:#fff; border:none; border-radius:50%; width:42px; height:42px;
  cursor:pointer; font-size:1rem; flex:0 0 auto;
}
.chat-input button:hover{ background:#5a5f40; }
.chat-typing{ font-size:0.85rem; color:#8a8a82; font-style:italic; align-self:flex-start; padding:4px 6px; }
@media (max-width:480px){ .chat-launcher-txt{ display:none; } }

/* Contact drawer form (with dropdown) 2026-06-22 */
.contact-drawer-form select{
  width:100%; padding:12px 14px; border:1px solid rgba(0,0,0,0.15); border-radius:10px;
  font-family:inherit; font-size:0.95rem; background:#fff; color:#3f4338; margin-bottom:10px;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234a4e34' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center;
}
.contact-drawer-form select:focus{ outline:none; border-color:#9ba36e; }
.form-privacy{ font-size:0.78rem; color:#8a8a82; margin:10px 0 0; text-align:center; }
.form-thanks{ font-size:1rem; color:#4a4e34; padding:18px 4px; text-align:center; line-height:1.5; }

/* Featured restaurant partners (eat-drink.html) 2026-06-22 */
.partner-card{padding:0;overflow:hidden;}
.partner-media{position:relative;aspect-ratio:3/2;overflow:hidden;}
.partner-media img{width:100%;height:100%;object-fit:cover;display:block;}
.partner-media img.partner-logo{
  position:absolute;bottom:12px;right:12px;
  height:24px !important;width:auto !important;max-width:150px;
  object-fit:contain !important;
  filter:drop-shadow(0 2px 5px rgba(0,0,0,0.6));
  z-index:2;display:block;
}
.partner-badge{
  position:absolute;top:12px;left:12px;
  background:#cfd7a0;color:#3f4a25;
  font-size:0.66rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;
  padding:4px 11px;border-radius:999px;
  box-shadow:0 2px 6px rgba(0,0,0,0.18);
}
.advertise-card{
  display:flex;align-items:center;justify-content:center;text-align:center;
  border:1.5px dashed #cfd7a0;background:rgba(207,215,160,0.10);
  text-decoration:none;color:inherit;transition:background .25s ease,border-color .25s ease;
}
.advertise-card:hover{background:rgba(207,215,160,0.20);border-color:#b9c47f;}
.advertise-body{padding:34px 26px;}
.advertise-plus{
  display:inline-flex;align-items:center;justify-content:center;
  width:46px;height:46px;border-radius:50%;
  background:#cfd7a0;color:#3f4a25;font-size:1.7rem;font-weight:300;line-height:1;
  margin-bottom:14px;
}
.advertise-card h3{margin:0 0 8px;}
.advertise-card .card-cta{display:inline-block;margin-top:10px;color:#6b6b63;font-weight:500;}

/* Roll the dice restaurant game (eat-drink.html) 2026-06-22 */
#dice-game .dice-card{max-width:680px;margin:0 auto;text-align:center;}
.dice-controls{margin:8px auto 26px;max-width:360px;}
.dice-label{display:block;color:#6b6b63;font-size:0.8rem;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:8px;}
.dice-select{width:100%;padding:13px 16px;border-radius:12px;border:1px solid #dfe4c2;background:#fff;color:#3f4338;font-size:1rem;font-family:inherit;}
.dice-gate{background:#fff;border:1px solid #e4e0d2;border-radius:16px;padding:26px 24px;max-width:480px;margin:0 auto;box-shadow:0 8px 30px rgba(80,90,50,0.07);}
.dice-gate-text{color:#4a4d40;margin:0 0 16px;}
.dice-socials{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:14px;}
.dice-social{display:inline-block;padding:10px 18px;border-radius:999px;background:#cfd7a0;color:#3f4a25;font-weight:600;text-decoration:none;transition:transform .2s ease,background .2s ease;}
.dice-social:hover{transform:translateY(-2px);background:#dde3b6;}
.dice-already{background:none;border:none;color:#6b7040;font-size:0.88rem;cursor:pointer;text-decoration:underline;font-family:inherit;font-weight:500;}
.dice-already:hover{color:#3f4338;}
.dice-roll-area{max-width:480px;margin:0 auto;}
.dice-cube{line-height:0;margin:0 auto 16px;transition:transform .09s linear;filter:drop-shadow(0 6px 14px rgba(74,78,52,0.18));}
.dice-cube svg{display:block;margin:0 auto;}
.dice-rolls-left{display:inline-block;font-size:0.78rem;color:#6b7150;margin-top:16px;background:#eef0df;border:1px solid #dfe4c2;padding:5px 14px;border-radius:999px;font-weight:500;}
.dice-roll-btn{background:#4a4e34;color:#fff;border:none;padding:13px 30px;border-radius:999px;font-weight:600;letter-spacing:0.02em;box-shadow:0 6px 18px rgba(74,78,52,0.22);transition:transform .15s ease,background .2s ease,box-shadow .2s ease;}
.dice-roll-btn:hover{background:#5c6142;transform:translateY(-2px);box-shadow:0 10px 24px rgba(74,78,52,0.28);}
.dice-result{margin-top:30px;background:#fff;border:1px solid #e8ead8;border-radius:22px;padding:40px 30px;display:flex;flex-direction:column;align-items:center;gap:10px;animation:dicePop .35s ease;box-shadow:0 18px 50px rgba(80,90,50,0.14);}
@keyframes dicePop{from{opacity:0;transform:scale(.92);}to{opacity:1;transform:scale(1);}}
.dice-result-eyebrow{font-family:'Jost',sans-serif;font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:#9ba36e;font-weight:500;}
.dice-result-name{font-family:'Cormorant Garamond','Jost',serif;font-size:clamp(2.1rem,3.8vw,2.9rem);font-weight:500;color:#4a4e34;line-height:1.12;letter-spacing:0.01em;margin:4px 0;max-width:90%;}
.dice-result-region{font-family:'Jost',sans-serif;font-size:0.95rem;letter-spacing:0.04em;color:#6b7150;margin-bottom:14px;}
.dice-reroll{margin-top:8px;background:none;border:1px solid #c3cb95;color:#5c6142;padding:10px 24px;border-radius:999px;cursor:pointer;font-family:inherit;font-weight:500;transition:background .2s ease,border-color .2s ease;}
.dice-reroll:hover{background:rgba(195,203,149,0.22);border-color:#a9b27a;}

/* What's on monthly calendar (events.html) 2026-06-22 */
.cal-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;max-width:760px;margin:0 auto 22px;}
.cal-controls .dice-select{background:#fff;border:1px solid #dfe4c2;color:#3f4338;}
.cal-nav{display:flex;align-items:center;gap:14px;}
.cal-nav button{width:38px;height:38px;border-radius:50%;border:1px solid #dfe4c2;background:#fff;color:#4a4e34;font-size:1.1rem;cursor:pointer;transition:background .2s ease;}
.cal-nav button:hover{background:#eef1dc;}
#calLabel{font-weight:600;color:#3f4338;min-width:150px;text-align:center;}
.cal-grid{max-width:760px;margin:0 auto;}
.cal-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:6px;}
.cal-head{margin-bottom:8px;}
.cal-dow{text-align:center;font-size:0.72rem;letter-spacing:0.06em;text-transform:uppercase;color:#8a8a82;}
.cal-cell{position:relative;aspect-ratio:1/1;border:1px solid #ece4d0;border-radius:10px;background:#fff;display:flex;align-items:flex-start;justify-content:flex-start;padding:6px 8px;}
.cal-cell.empty{border:none;background:transparent;}
.cal-cell.has-ev{background:#eef1dc;border-color:#cfd7a0;}
.cal-num{font-size:0.85rem;color:#4a4e34;}
.cal-dot{position:absolute;bottom:6px;right:7px;background:#cfd7a0;color:#3f4a25;font-size:0.66rem;font-weight:700;min-width:18px;height:18px;border-radius:999px;display:flex;align-items:center;justify-content:center;}
.cal-list{max-width:760px;margin:28px auto 0;}
.cal-list-title{font-size:1rem;color:#6b6b63;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:14px;}
.cal-item{display:flex;gap:16px;padding:14px 0;border-bottom:1px solid #ece4d0;}
.cal-item-date{flex:0 0 70px;font-weight:600;color:#4a4e34;}
.cal-item-title{display:block;color:#3f4338;font-weight:500;}
.cal-item-meta{display:block;font-size:0.84rem;color:#8a8a82;}
.cal-empty{text-align:center;color:#8a8a82;padding:20px;}
@media(max-width:560px){.cal-grid{max-width:100%;}.cal-row{gap:3px;margin-bottom:3px;}.cal-cell{padding:3px 4px;min-width:0;border-radius:7px;}.cal-num{font-size:0.7rem;}.cal-dot{width:14px;height:14px;font-size:0.6rem;right:3px;bottom:3px;}}

/* Events page clean list (events.html) 2026-06-22 */
.ev-list{max-width:820px;margin:0 auto;}
.ev-group{margin-bottom:38px;}
.ev-group-title{font-size:0.8rem;letter-spacing:0.12em;text-transform:uppercase;color:#9ba36e;border-bottom:1px solid #e4e0d2;padding-bottom:10px;margin:0 0 6px;}
.ev-row{display:flex;gap:20px;padding:15px 4px;border-bottom:1px solid #f0ece0;align-items:baseline;}
.ev-when{flex:0 0 92px;font-weight:600;color:#9ba36e;font-size:0.9rem;}
.ev-main{flex:1;}
.ev-title{font-weight:600;color:#3f4338;}
.ev-where{color:#8a8a82;font-size:0.85rem;}
.ev-where::before{content:"\00b7";margin:0 6px;color:#cfd7a0;}
.ev-desc{display:block;color:#5c5f54;font-size:0.93rem;margin-top:3px;line-height:1.55;}
@media(max-width:560px){.ev-row{flex-direction:column;gap:2px;}.ev-when{flex:none;}}

/* Weddings page styles 2026-06-22 */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
@media(max-width:760px){.grid-2{grid-template-columns:1fr;}}
.wed-style-card{overflow:hidden;}
.wed-style-card .card-media{aspect-ratio:16/10;overflow:hidden;}
.wed-style-card .card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.wed-style-card:hover .card-media img{transform:scale(1.05);}

/* Weddings filter buttons (Robyn 23 Jun - "looks like shit", restyle on theme) */
.filter-bar{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 auto 38px;max-width:760px;}
.filter-btn{font-family:'Jost',sans-serif;font-size:0.86rem;padding:9px 20px;border-radius:999px;border:1px solid #cfd7a0;background:#fff;color:#5c6a36;cursor:pointer;transition:all .2s ease;letter-spacing:.02em;}
.filter-btn:hover{background:#eef1dc;border-color:#b9c089;}
.filter-btn.active{background:#5c6a36;border-color:#5c6a36;color:#faf6ec;}

/* Spot It camera zoom slider (Robyn 23 Jun) */
#zoomSlider{-webkit-appearance:none;appearance:none;height:6px;border-radius:999px;background:#cfd7a0;outline:none;}
#zoomSlider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:#5c6a36;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.25);}
#zoomSlider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#5c6a36;cursor:pointer;border:2px solid #fff;}

/* Events page photo cards (Robyn 23 Jun - back to photos, no dup images) */
.ev-cards-wrap{max-width:1100px;margin:0 auto;}
.ev-season{font-family:'Playfair Display','Cormorant Garamond',serif;font-size:1.9rem;color:#4a4e34;margin:38px 0 18px;padding-bottom:8px;border-bottom:2px solid #cfd7a0;}
.ev-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;}
.ev-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 12px rgba(74,78,52,.10);display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease;}
.ev-card:hover{transform:translateY(-4px);box-shadow:0 8px 22px rgba(74,78,52,.16);}
.ev-card-img{position:relative;aspect-ratio:3/2;overflow:hidden;}
.ev-card-img img{width:100%;height:100%;object-fit:cover;display:block;}
.ev-when-badge{position:absolute;top:12px;left:12px;background:rgba(92,106,54,.92);color:#faf6ec;font-family:'Jost',sans-serif;font-size:.74rem;letter-spacing:.03em;padding:5px 11px;border-radius:999px;}
.ev-card-body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:6px;}
.ev-card-body h4{margin:0;font-family:'Playfair Display','Cormorant Garamond',serif;font-size:1.32rem;color:#4a4e34;line-height:1.15;}
.ev-card-where{font-family:'Jost',sans-serif;font-size:.8rem;color:#8a7d3a;letter-spacing:.02em;}
.ev-card-body p{margin:2px 0 0;font-size:.92rem;color:#5b5e48;line-height:1.5;}
@media(max-width:600px){.ev-cards{grid-template-columns:1fr;}.ev-season{font-size:1.6rem;}}

/* Past events: been & gone */
.cal-cell.past-ev .cal-dot{opacity:.45;filter:grayscale(1);}
.cal-cell.past-ev .cal-num{opacity:.55;}
.cal-item.cal-past{opacity:.7;}
.cal-item.cal-past .cal-item-title{text-decoration:none;}
.cal-gone{display:inline-block;margin-left:.5em;font-size:.7em;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#9a6a00;background:#fff3d6;border:1px solid #f0d699;border-radius:10px;padding:.05em .5em;vertical-align:middle;}

/* 5-year calendar: event note line */
.cal-item-note{display:block;font-size:.82rem;color:rgba(0,0,0,.55);margin-top:3px;line-height:1.35;}

/* ---- nav search ---- */
.nav-search{position:relative;display:flex;align-items:center;}
.nav-search-btn{background:none;border:none;cursor:pointer;color:inherit;padding:8px;display:flex;align-items:center;opacity:.85;}
.nav-search-btn:hover{opacity:1;}
.nav-search-panel{display:none;position:absolute;top:calc(100% + 10px);right:0;width:320px;background:#fff;border:1px solid #e2ddc9;border-radius:14px;box-shadow:0 14px 40px rgba(40,44,24,.14);padding:10px;z-index:300;}
.nav-search-panel.open{display:block;}
.nav-search-panel input{width:100%;border:1px solid #d8d2bd;border-radius:9px;padding:9px 12px;font:inherit;font-size:.95rem;outline:none;}
.nav-search-panel input:focus{border-color:#9ba36e;}
.srch-results{display:none;max-height:330px;overflow-y:auto;margin-top:8px;}
.srch-item{display:block;padding:9px 10px;border-radius:9px;text-decoration:none;color:inherit;}
.srch-item:hover{background:#f5f6ec;}
.srch-title{display:block;font-weight:600;font-size:.93rem;color:#3f4338;}
.srch-desc{display:block;font-size:.8rem;color:#7a7868;margin-top:2px;}
.srch-none{padding:12px 10px;font-size:.88rem;color:#7a7868;}
@media(max-width:700px){.nav-search-panel{width:260px;right:-40px;}}

/* ---- 3D dice ---- */
.dice3d-stage{perspective:900px;width:110px;height:110px;margin:26px auto;}
@keyframes diceIdle{0%{transform:translateY(0) rotateX(-18deg) rotateY(24deg);}50%{transform:translateY(-7px) rotateX(-26deg) rotateY(40deg);}100%{transform:translateY(0) rotateX(-18deg) rotateY(24deg);}}
.dice3d:not([style*="transform"]){animation:diceIdle 3.2s ease-in-out infinite;}
.dice3d:hover{filter:brightness(1.04);}
.dice3d{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform 1.6s cubic-bezier(.2,.9,.3,1.1);cursor:pointer;}
.dice3d .face{position:absolute;inset:0;background:linear-gradient(145deg,#fffdf5,#efe9d6);border:2px solid #c9c39f;border-radius:16px;display:grid;place-items:center;box-shadow:inset 0 0 14px rgba(120,110,60,.12);}
.dice3d .pip{width:16px;height:16px;border-radius:50%;background:#4a4e34;box-shadow:inset 0 2px 3px rgba(0,0,0,.35);}
.dice3d .grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:74%;height:74%;}
.dice3d .grid span{display:grid;place-items:center;}
.f1{transform:rotateY(0deg) translateZ(55px);}
.f2{transform:rotateY(90deg) translateZ(55px);}
.f3{transform:rotateY(180deg) translateZ(55px);}
.f4{transform:rotateY(-90deg) translateZ(55px);}
.f5{transform:rotateX(90deg) translateZ(55px);}
.f6{transform:rotateX(-90deg) translateZ(55px);}
.dice3d.rolling{transition:transform 1.6s cubic-bezier(.2,.9,.3,1.1);}

/* footer socials */
.foot-socials{display:flex;gap:14px;margin-top:14px;}
.foot-socials a{color:inherit;opacity:.75;transition:opacity .2s;}
.foot-socials a:hover{opacity:1;}

/* mobile: keep the decorative island mark out of the text */
@media(max-width:760px){
  .cy-corner-mark{width:64px;opacity:.35;bottom:8px;right:8px;pointer-events:none;}
}

/* nav: never wrap links; tighten to fit search icon */
.nav-links{gap:20px;}
.nav-links a{white-space:nowrap;}
@media(max-width:1200px){.nav-links{gap:14px;font-size:.78rem;}}

/* dice result venue photo (2026-07-04) */
.dice-result-photo{width:100%;max-width:380px;height:220px;object-fit:cover;border-radius:16px;margin-bottom:6px;box-shadow:0 10px 30px rgba(60,66,38,.18);}

/* more realistic 3D dice (2026-07-04) */
.dice3d-stage{perspective:700px;width:120px;height:120px;}
.dice3d .face{background:linear-gradient(145deg,#ffffff 0%,#f6f1e2 55%,#e3dcc4 100%);border:1px solid #d8d2b6;border-radius:22px;box-shadow:inset 0 -6px 12px rgba(120,110,60,.18), inset 0 4px 8px rgba(255,255,255,.9);}
.dice3d .pip{width:18px;height:18px;background:radial-gradient(circle at 35% 30%, #5a5f3e 0%, #33361f 70%);box-shadow:inset 0 3px 4px rgba(0,0,0,.45), 0 1px 0 rgba(255,255,255,.55);}
.dice3d-stage::after{content:'';display:block;width:90px;height:16px;margin:10px auto 0;background:radial-gradient(ellipse at center, rgba(60,60,40,.28), rgba(60,60,40,0) 70%);border-radius:50%;animation:diceShadow 1.6s ease;}
@keyframes diceShadow{0%{transform:scaleX(.6);opacity:.15;}60%{transform:scaleX(1.15);opacity:.35;}100%{transform:scaleX(1);opacity:.28;}}

/* calendar event chips inside squares (2026-07-04, Google-calendar style) */
.cal-cell{min-height:78px;aspect-ratio:auto;display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:6px;}
.cal-chip{display:block;font-size:0.62rem;line-height:1.25;background:#dfe7c3;color:#3f4a25;border-radius:6px;padding:2px 6px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;font-weight:600;cursor:pointer;border:none;width:100%;font-family:inherit;}
.cal-chip:hover{background:#cfd7a0;}
.cal-chip-past{background:#ecebe2;color:#98978c;position:relative;}
.cal-chip-past .cal-chip-txt{text-decoration:line-through;text-decoration-thickness:1px;}
.cal-chip-more{background:transparent;color:#8b9468;font-weight:500;}
.cal-item{scroll-margin-top:110px;}
@media(max-width:760px){
  .cal-cell{min-height:56px;padding:4px;}
  .cal-chip{font-size:0.5rem;padding:1px 4px;}
}

/* chip popup: full event name on tap (mobile ellipsis fix) 2026-07-04 */
.cal-pop-backdrop{position:fixed;inset:0;z-index:900;background:rgba(30,32,18,.25);display:none;}
.cal-pop-backdrop.open{display:block;}
.cal-pop{position:fixed;z-index:901;left:50%;top:50%;transform:translate(-50%,-50%);width:min(320px,86vw);background:#fffdf6;border:1px solid #e2ddc9;border-radius:16px;box-shadow:0 18px 50px rgba(40,44,24,.25);padding:18px 20px;display:none;}
.cal-pop.open{display:block;}
.cal-pop-date{display:block;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#8b9468;margin-bottom:6px;}
.cal-pop-title{display:block;font-family:'Jost',sans-serif;font-weight:500;font-size:1.12rem;color:#3f4338;line-height:1.3;}
.cal-pop-meta{display:block;font-size:.85rem;color:#7a7868;margin-top:6px;}
.cal-pop-note{display:block;font-size:.82rem;color:rgba(0,0,0,.55);margin-top:8px;line-height:1.4;}
.cal-pop-gone{display:inline-block;background:#ecebe2;color:#8b8a7f;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 9px;margin-top:9px;}
.cal-pop-close{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:center;width:30px;height:30px;margin:0 -6px 0 auto;background:rgba(255,253,246,.92);border:1px solid #e2ddc9;border-radius:50%;font-size:1.15rem;color:#8a8a82;cursor:pointer;line-height:1;box-shadow:0 2px 8px rgba(40,44,24,.12);}
.cal-pop-close:hover{color:#3f4338;}


/* calendar detail entries with photos (2026-07-04 addendum) */
.cal-item-photo{flex:0 0 128px;width:128px;height:86px;object-fit:cover;border-radius:12px;background:#ece4d0;box-shadow:0 4px 14px rgba(40,44,24,.10);}
.cal-item-body{flex:1;min-width:0;}
.cal-item-body .cal-item-date{display:block;flex:none;margin-bottom:2px;font-size:.82rem;}
.cal-item-flash{animation:calFlash 2.2s ease;border-radius:12px;}
@keyframes calFlash{0%{background:#eef1dc;box-shadow:0 0 0 3px #cfd7a0;}70%{background:#eef1dc;box-shadow:0 0 0 3px rgba(207,215,160,.4);}100%{background:transparent;box-shadow:none;}}
@media(max-width:560px){
  .cal-item-photo{flex-basis:92px;width:92px;height:66px;border-radius:9px;}
}

.cal-pop-photo{width:100%;height:140px;object-fit:cover;border-radius:12px;margin:6px 0 10px;background:#ece4d0;}

/* ---------- Locations: interactive island map (2026-07-18) ---------- */
.loc-search{position:relative;max-width:420px;margin:0 auto 18px;}
.loc-search input{width:100%;padding:12px 16px;border:1.5px solid var(--olive-soft);border-radius:999px;font-size:1rem;font-family:inherit;background:#fff;color:var(--olive-ink);}
.loc-search input:focus{outline:none;border-color:var(--olive);box-shadow:0 0 0 3px var(--olive-mist);}
#locSuggest{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--olive-pale);border-radius:14px;box-shadow:0 10px 30px rgba(74,78,52,.14);z-index:1100;overflow:hidden;}
#locSuggest button{display:block;width:100%;text-align:left;padding:10px 16px;border:0;background:none;font-family:inherit;font-size:.95rem;color:var(--olive-ink);cursor:pointer;}
#locSuggest button:hover{background:var(--olive-wash);}
#locSuggest button span{color:var(--grey-ink);font-size:.8rem;margin-left:6px;}
.loc-map{height:520px;border-radius:18px;overflow:hidden;box-shadow:0 12px 36px rgba(74,78,52,.16);z-index:1;}
.loc-note{text-align:center;color:var(--grey-ink);font-size:.85rem;margin-top:10px;}
.town-panel{margin-top:28px;background:#fff;border:1px solid var(--olive-pale);border-radius:18px;padding:26px 28px;box-shadow:0 10px 30px rgba(74,78,52,.08);}
.town-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;border-bottom:1px solid var(--olive-pale);padding-bottom:14px;margin-bottom:18px;}
.town-head h2{margin:0;font-size:1.7rem;}
.town-head .tp-meta{color:var(--grey-ink);font-size:.92rem;}
.town-head a{font-weight:600;font-size:.92rem;}
.town-cols{display:grid;grid-template-columns:1fr 1fr;gap:30px;}
@media(max-width:820px){.town-cols{grid-template-columns:1fr;}.loc-map{height:400px;}}
.tp-pois h3,.tp-cal h3{margin:0 0 4px;font-size:1.1rem;}
.tp-poinote{color:var(--grey-ink);font-size:.82rem;margin:0 0 10px;}
.tp-pois ul{list-style:none;margin:0;padding:0;max-height:430px;overflow-y:auto;}
.tp-pois li{display:flex;align-items:center;gap:8px;padding:8px 2px;border-bottom:1px dashed var(--olive-pale);font-size:.95rem;}
.tp-pois li a{font-weight:600;}
.tp-chip{background:var(--olive-wash);color:var(--olive-deep);border-radius:999px;padding:2px 9px;font-size:.72rem;white-space:nowrap;}
.tp-km{color:var(--grey-ink);font-size:.78rem;margin-left:auto;white-space:nowrap;}
.tp-empty{color:var(--grey-ink);font-size:.92rem;}
.cal-nav2{display:flex;align-items:center;justify-content:space-between;margin:8px 0 10px;}
.cal-nav2 button{border:1.5px solid var(--olive-soft);background:#fff;color:var(--olive-deep);width:34px;height:34px;border-radius:50%;font-size:1.1rem;cursor:pointer;}
.cal-nav2 button:disabled{opacity:.35;cursor:default;}
.cal-nav2 span{font-weight:700;color:var(--olive-ink);}
.cal-grid2{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.cal-dow{text-align:center;font-size:.72rem;color:var(--grey-ink);font-weight:700;padding:2px 0;}
.cal-day{position:relative;border:1px solid var(--olive-pale);background:#fff;border-radius:8px;min-height:38px;font-family:inherit;font-size:.85rem;color:var(--olive-ink);cursor:pointer;padding:3px 0 10px;}
.cal-day:hover{border-color:var(--olive);}
.cal-day.past{background:#fafaf6;color:var(--grey-ink);}
.cal-day.today{border-color:var(--olive);box-shadow:0 0 0 2px var(--olive-mist);}
.cal-day.sel{background:var(--olive-pale);}
.cal-day.has-ev i{position:absolute;left:50%;transform:translateX(-50%);bottom:2px;font-style:normal;font-size:.58rem;line-height:1;background:var(--olive);color:#fff;border-radius:999px;padding:1px 4px;}
#calDayEvents{margin-top:14px;}
#calDayEvents h4{margin:0 0 8px;font-size:.98rem;}
.tp-events{list-style:none;margin:0;padding:0;}
.tp-events li{padding:7px 0;border-bottom:1px dashed var(--olive-pale);font-size:.92rem;}
.tp-events li span{display:block;color:var(--grey-ink);font-size:.8rem;margin-top:2px;}

/* ---------- Eat & Drink: island-wide venues map + dice extras (2026-07-18) ---------- */
.eat-toolbar{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:0 0 12px;}
.eat-toolbar input{flex:1;max-width:420px;padding:11px 16px;border:1.5px solid var(--olive-soft);border-radius:999px;font-size:.98rem;font-family:inherit;background:#fff;color:var(--olive-ink);}
.eat-toolbar input:focus{outline:none;border-color:var(--olive);box-shadow:0 0 0 3px var(--olive-mist);}
.eat-filter{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:0 0 16px;}
.eat-filter button{border:1.5px solid var(--olive-soft);background:#fff;color:var(--olive-deep);border-radius:999px;padding:6px 14px;font-family:inherit;font-size:.85rem;cursor:pointer;}
.eat-filter button.off{opacity:.4;text-decoration:line-through;}
.eat-pop{text-align:center;min-width:150px;font-family:inherit;}
.eat-pop strong{font-size:1rem;display:block;}
.eat-pop span{display:block;color:#6b7150;font-size:.85rem;margin-top:2px;}
.eat-pop em{display:block;color:#4a4e34;font-size:.8rem;font-style:normal;margin-top:4px;font-weight:600;}
.eat-pop-links a{font-weight:600;}
.dice-photo-note{display:block;font-size:.72rem;color:var(--grey-ink);margin:-6px 0 4px;}
.dice-result-dist{display:block;font-weight:700;color:var(--olive-deep);font-size:.92rem;margin-top:4px;}
.dice-result-links{display:flex;align-items:center;gap:14px;margin-top:10px;flex-wrap:wrap;justify-content:center;}
.dice-result-links .dice-go{padding:9px 22px;}
.dice-more{font-size:.88rem;font-weight:600;}

/* ---------- Weddings: complete venue directory (2026-07-18) ---------- */
.vd-wrap{max-width:960px;margin:0 auto;}
.vd-region{font-size:1.25rem;margin:34px 0 12px;color:var(--olive-ink);border-bottom:2px solid var(--olive-pale);padding-bottom:8px;}
.vd-region span{color:var(--grey-ink);font-size:.85rem;font-weight:400;}
.vd-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:760px){.vd-list{grid-template-columns:1fr;}}
.vd-row{background:#fff;border:1px solid var(--olive-pale);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:8px;}
.vd-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.vd-main strong{font-size:1.02rem;color:var(--olive-ink);}
.vd-chip{background:var(--olive-wash);color:var(--olive-deep);border-radius:999px;padding:2px 10px;font-size:.72rem;white-space:nowrap;}
.vd-area{color:var(--grey-ink);font-size:.8rem;}
.vd-row p{margin:0;font-size:.9rem;color:#4a4d40;flex:1;}
.vd-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.vd-price{font-weight:700;color:var(--olive-deep);font-size:.85rem;}
.vd-poa{font-weight:400;color:var(--grey-ink);font-style:italic;}
.vd-enquire{padding:7px 16px;font-size:.8rem;}

/* ---------- Contact page zhuzh (2026-07-18) ---------- */
.contact-topics{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:0 0 26px;}
.ct-chip{background:#fff;border:1.5px solid var(--olive-soft);color:var(--olive-deep);border-radius:999px;padding:8px 16px;font-size:.9rem;font-weight:600;text-decoration:none;}
.ct-chip:hover{background:var(--olive-pale);}
.contact-card{background:#fff;border:1px solid var(--olive-pale);border-radius:18px;padding:30px;box-shadow:0 12px 36px rgba(74,78,52,.10);}
.contact-promises{margin-top:22px;}
.contact-promises p{margin:0 0 8px;color:rgba(255,255,255,.85);font-size:.9rem;}
.contact-sprig{text-align:center;margin:42px 0 6px;}
.contact-sprig img{height:64px;opacity:.85;}
.contact-sprig p{color:var(--grey-ink);font-size:.85rem;margin-top:8px;letter-spacing:.04em;}
.form select optgroup{font-style:normal;font-weight:700;color:var(--olive-deep);}

/* FAQ accordions */
.faq-list{max-width:760px;margin:0 auto;}
.faq-item{background:#fff;border:1px solid var(--olive-pale);border-radius:12px;margin-bottom:10px;padding:0;}
.faq-item summary{cursor:pointer;font-weight:600;color:var(--olive-ink);padding:14px 18px;list-style:none;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary:after{content:'+';float:right;color:var(--olive);}
.faq-item[open] summary:after{content:'\2212';}
.faq-item p{margin:0;padding:0 18px 14px;color:#4a4d40;font-size:.95rem;}

/* ---- Roll-the-dice redesign: unified panel + robust 2D die (2026-07-21) ---- */
.dice-panel{background:#fff;border:1px solid #e4e0d2;border-radius:22px;padding:28px 26px 32px;max-width:520px;margin:0 auto;box-shadow:0 10px 34px rgba(80,90,50,0.08);text-align:center;}
.dice-step{display:flex;align-items:center;gap:10px;justify-content:flex-start;margin:26px 0 12px;text-align:left;font-family:'Jost',sans-serif;font-size:0.78rem;letter-spacing:0.09em;text-transform:uppercase;color:#6b7150;font-weight:600;}
.dice-panel .dice-step:first-child{margin-top:0;}
.dice-step-num{flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#4a4e34;color:#fff;display:grid;place-items:center;font-size:0.72rem;font-weight:600;}
.dice-step-hint{font-style:normal;text-transform:none;letter-spacing:0.01em;color:#9ba36e;font-weight:500;margin-left:4px;}
.dice-panel .dice-socials{margin-bottom:10px;}
.dice-social.done{opacity:0.5;pointer-events:none;}
.dice-unlock-note{font-size:0.85rem;color:#8a8a82;margin:0;}
.dice-panel .dice-select{max-width:100%;}
.dice2d-stage{width:112px;margin:6px auto 4px;}
.dice2d{width:104px;height:104px;margin:0 auto;border-radius:20px;background:linear-gradient(145deg,#ffffff 0%,#f8f4e6 55%,#eee8d2 100%);border:1px solid #d8d2b6;box-shadow:0 12px 26px rgba(74,78,52,0.16), inset 0 -6px 12px rgba(120,110,60,0.12), inset 0 4px 8px rgba(255,255,255,0.9);display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:15px;cursor:pointer;transition:transform 0.2s ease;}
.dice2d:hover{transform:translateY(-3px) rotate(-3deg);}
.dice2d span{display:grid;place-items:center;}
.dice2d .pip{width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#5a5f3e 0%,#33361f 70%);box-shadow:inset 0 2px 3px rgba(0,0,0,0.4), 0 1px 0 rgba(255,255,255,0.5);}
.dice2d.locked{filter:grayscale(0.6);opacity:0.5;cursor:not-allowed;}
.dice2d.locked:hover{transform:none;}
.dice2d-stage::after{content:'';display:block;width:84px;height:14px;margin:8px auto 0;background:radial-gradient(ellipse at center, rgba(60,60,40,0.25), rgba(60,60,40,0) 70%);border-radius:50%;}
@keyframes diceTumble2d{0%{transform:rotate(0deg) translateY(0) scale(1);}18%{transform:rotate(150deg) translateY(-30px) scale(1.07);}42%{transform:rotate(320deg) translateY(-44px) scale(1.12);}68%{transform:rotate(440deg) translateY(-16px) scale(1.05);}86%{transform:rotate(512deg) translateY(5px) scale(0.97);}100%{transform:rotate(540deg) translateY(0) scale(1);}}
.dice2d.tumbling{animation:diceTumble2d 1.2s cubic-bezier(0.3,0.65,0.3,1);}
.dice-panel .dice-roll-btn{margin-top:14px;}
.dice-panel .dice-rolls-left{margin-top:14px;}
.dice-panel .dice-result{margin-top:26px;}
@media(max-width:560px){.dice-panel{padding:22px 16px 26px;}}

/* dice result: calmer type + tighter card (2026-07-21 Robyn feedback) */
.dice-result{padding:26px 22px;gap:7px;}
.dice-result-name{font-size:clamp(1.45rem,2.4vw,1.9rem);font-weight:600;font-family:'Jost',sans-serif;letter-spacing:0.01em;}
.dice-result-eyebrow{font-size:0.68rem;}
.dice-result-region{font-size:0.88rem;margin-bottom:8px;}
.dice-result-photo{height:190px;border-radius:14px;}

/* ================= 2026-07-21 site improvements ================= */

/* Home: bigger, tighter mission lede */
.lede-lg{font-size:1.32rem;line-height:1.6;color:var(--ink-soft);max-width:680px;margin-left:auto;margin-right:auto;}
.lede-xl{font-family:'Playfair Display',serif;font-size:1.72rem;line-height:1.5;color:var(--ink);max-width:760px;margin:14px auto 6px;}
@media(max-width:760px){.lede-xl{font-size:1.38rem;}}

/* Home: About Cyprus feature card at the top of the Explore section */
.about-feature{
  display:flex;align-items:center;gap:28px;
  background:#fff;border:1px solid #dfe4c2;border-radius:18px;overflow:hidden;
  box-shadow:0 6px 24px rgba(74,78,52,.10);margin:0 0 28px;
  text-decoration:none;color:inherit;
  transition:transform .2s ease, box-shadow .2s ease;
}
.about-feature:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(74,78,52,.16);}
.about-feature-media{flex:0 0 42%;align-self:stretch;min-height:220px;overflow:hidden;}
.about-feature-media img{width:100%;height:100%;object-fit:cover;display:block;}
.about-feature-body{padding:28px 32px;}
.about-feature-body h3{font-family:'Playfair Display','Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.9rem;margin:6px 0 8px;color:var(--olive-ink);}
.about-feature-body p{margin:0 0 14px;color:rgba(0,0,0,0.7);}
@media(max-width:760px){.about-feature{flex-direction:column;gap:0;}.about-feature-media{flex:none;width:100%;min-height:0;aspect-ratio:16/9;}.about-feature-body{padding:22px 24px 26px;}}

/* Olive-leaf corner decoration for the pale-olive info boxes */
#moving-cards .card,#relocation .card,#everyday .card{position:relative;}
#moving-cards .card::after,#relocation .card::after,#everyday .card::after{
  content:'';position:absolute;top:10px;right:12px;width:44px;height:44px;
  pointer-events:none;opacity:.5;
  background-repeat:no-repeat;background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%239ba36e' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M10 54 C 22 44, 38 28, 54 10'/%3E%3Cpath d='M22 42 c -8 -2 -12 2 -14 8 c 7 1 12 -2 14 -8 z' fill='%23c9cd9b' stroke='none'/%3E%3Cpath d='M30 34 c -8 -2 -12 2 -14 8 c 7 1 12 -2 14 -8 z' fill='%23dfe4c2' stroke='none'/%3E%3Cpath d='M38 26 c -8 -2 -12 2 -14 8 c 7 1 12 -2 14 -8 z' fill='%23c9cd9b' stroke='none'/%3E%3Cpath d='M46 18 c -8 -2 -12 2 -14 8 c 7 1 12 -2 14 -8 z' fill='%23dfe4c2' stroke='none'/%3E%3Ccircle cx='50' cy='24' r='3.4' fill='%239ba36e' stroke='none'/%3E%3Ccircle cx='42' cy='32' r='3' fill='%23b3ba8a' stroke='none'/%3E%3C/g%3E%3C/svg%3E");
}

/* Soft Mediterranean photo bands (imagery washed back to keep text legible) */
.med-bg{position:relative;background-size:cover;background-position:center;}
.med-bg::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.93) 0%,rgba(255,255,255,.88) 45%,rgba(255,255,255,.93) 100%);}
.med-bg>.container{position:relative;z-index:1;}
.med-bg-olive{background-image:url('../images/cd-bg-olive.jpg');}
.med-bg-beach{background-image:url('../images/cd-bg-beach.jpg');}
/* Olive-branch ornament on the Moving to Cyprus info boxes */
#moving-cards .card{position:relative;overflow:hidden;}
#moving-cards .card::after{content:'';position:absolute;right:-34px;bottom:-38px;width:150px;height:150px;background:url('../images/olive-corner.png') center/contain no-repeat;opacity:.28;transform:rotate(12deg);pointer-events:none;transition:opacity .25s;}
#moving-cards .card:hover::after{opacity:.5;}
#moving-cards .section-head{position:relative;}
#moving-cards .section-head::before{content:'';position:absolute;left:-70px;top:-24px;width:120px;height:120px;background:url('../images/olive-corner.png') center/contain no-repeat;opacity:.2;transform:scaleX(-1) rotate(8deg);pointer-events:none;}
@media(max-width:760px){#moving-cards .section-head::before{display:none;}}
/* Richer colour on the Explore locations map tiles */
#locMap .leaflet-tile{filter:saturate(1.3) contrast(1.06) brightness(1.02);}

/* Pale olive tint helpers */
.bg-olive-mist{background:var(--olive-mist);}
.bg-olive-wash{background:var(--olive-wash);}

/* Follow Cyprus Decoded social block (eat-drink.html) */
.follow-wrap{max-width:760px;margin:0 auto;text-align:center;}
.follow-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px;}
@media(max-width:640px){.follow-grid{grid-template-columns:1fr;}}
.follow-card{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  background:#fff;border:1px solid #dfe4c2;border-radius:16px;padding:28px 20px;
  text-decoration:none;color:var(--olive-ink);box-shadow:0 4px 18px rgba(74,78,52,.08);
  transition:transform .2s ease, box-shadow .2s ease;
}
.follow-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(74,78,52,.15);color:var(--olive-ink);}
.follow-ico{width:52px;height:52px;border-radius:50%;background:#eef1dc;display:grid;place-items:center;color:#4a4e34;}
.follow-ico svg{width:26px;height:26px;}
.follow-net{font-family:'Jost',sans-serif;font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-ink);}
.follow-handle{font-family:'Jost',sans-serif;font-weight:600;font-size:1.05rem;}

/* Clickable festival cards + festival info modal (events.html) */
.ev-card[data-fest]{cursor:pointer;}
.ev-card-hint{font-family:'Jost',sans-serif;font-size:.78rem;font-weight:600;color:#8b9468;margin-top:6px;display:inline-block;}
.fest-backdrop{position:fixed;inset:0;z-index:950;background:rgba(30,32,18,.42);display:none;}
.fest-backdrop.open{display:block;}
.fest-pop{
  position:fixed;z-index:951;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(560px,92vw);max-height:86vh;overflow-y:auto;
  background:#fff;border:1px solid #e2ddc9;border-radius:20px;
  box-shadow:0 24px 70px rgba(40,44,24,.3);padding:0 0 26px;display:none;
}
.fest-pop.open{display:block;}
.fest-pop-photo{width:100%;height:210px;object-fit:cover;display:block;border-radius:20px 20px 0 0;background:#ece4d0;}
.fest-pop-inner{padding:22px 28px 0;}
.fest-pop-when{display:inline-block;font-family:'Jost',sans-serif;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--olive);border-radius:999px;padding:4px 12px;margin-bottom:10px;}
.fest-pop-title{font-family:'Playfair Display','Cormorant Garamond',Georgia,serif;font-weight:600;font-size:1.7rem;color:var(--olive-ink);line-height:1.15;margin:0 0 4px;}
.fest-pop-where{font-family:'Jost',sans-serif;font-size:.9rem;color:var(--grey-ink);margin-bottom:14px;}
.fest-pop-story{font-size:.98rem;line-height:1.7;color:#4a4d40;margin-bottom:14px;}
.fest-pop-practical{background:var(--olive-wash);border:1px solid #dfe4c2;border-radius:12px;padding:14px 16px;font-size:.92rem;line-height:1.6;color:#4a4d40;}
.fest-pop-practical strong{display:block;font-family:'Jost',sans-serif;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--olive-deep);margin-bottom:6px;}
.fest-pop-close{position:absolute;top:12px;right:14px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);border:none;font-size:1.35rem;line-height:1;color:#4a4e34;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.2);}

/* Events calendar v2: one big island-wide calendar (2026-07-21) */
.cal-grid{max-width:1050px;}
.cal-cell{min-height:104px;border-radius:12px;}
.cal-cell.has-ev{cursor:pointer;transition:box-shadow .15s ease, transform .15s ease;}
.cal-cell.has-ev:hover{box-shadow:0 6px 18px rgba(74,78,52,.18);transform:translateY(-2px);}
.cal-num{font-weight:600;}
.cal-cell.today-cell{outline:2px solid var(--olive);outline-offset:-2px;}
.cal-cell-photo{width:100%;height:42px;object-fit:cover;border-radius:7px;display:block;margin:2px 0;}
.cal-chip{font-size:.68rem;}
.cal-controls{max-width:1050px;justify-content:center;}
.cal-list{max-width:1050px;}
@media(max-width:760px){
  .cal-cell{min-height:64px;}
  .cal-cell-photo{height:26px;border-radius:5px;}
}
.cal-pop-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;align-items:center;}
.cal-pop-links .btn{padding:9px 20px;font-size:.78rem;}
.cal-pop-link{font-family:'Jost',sans-serif;font-weight:600;font-size:.88rem;}
.cal-pop{width:min(420px,90vw);max-height:82vh;overflow-y:auto;}
.cal-pop-ev{border-top:1px solid #ece4d0;margin-top:14px;padding-top:14px;}
.cal-pop-ev:first-of-type{border-top:none;margin-top:0;padding-top:0;}

/* weddings directory image carousels (2026-07-27) */
.vd-carousel{position:relative;margin:0 0 12px;border-radius:14px;overflow:hidden;background:#ece4d0;}
.vd-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.vd-track::-webkit-scrollbar{display:none;}
.vd-track img{flex:0 0 100%;width:100%;height:210px;object-fit:cover;scroll-snap-align:start;display:block;}
.vd-cnav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:none;background:rgba(255,253,246,.88);color:#3f4338;font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(40,44,24,.18);opacity:0;transition:opacity .18s;}
.vd-carousel:hover .vd-cnav{opacity:1;}
.vd-cprev{left:10px;} .vd-cnext{right:10px;}
.vd-illu{position:absolute;right:10px;bottom:8px;background:rgba(30,32,18,.45);color:#fffdf6;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:3px 9px;pointer-events:none;}
@media (hover:none){.vd-cnav{display:none;}}

/* News card image fallback (2026-08-24): shown when a source blocks
   hotlinking or an image fails; styled so it never looks broken. */
.news-fallimg{height:100%;min-height:210px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#4a5836 0%,#67754a 55%,#8a9668 100%);
  color:#f6f3e7;font-family:"Playfair Display","Cormorant Garamond",serif;
  font-size:1.35rem;letter-spacing:.04em;text-align:center;padding:18px;}
.news-fallimg::after{content:"";display:none;}

/* ===== HERO REDESIGN 2026-08-26 (Robyn: box "not chic") =====
   Editorial look: no card, type set straight on the photo over a soft scrim. */
.hero-content {
  background: none;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  border-radius: 0;
  padding: 0;
  max-width: 620px;
}
.hero-bg::after {
  background: linear-gradient(180deg,
    rgba(20, 24, 12, 0.02) 0%,
    rgba(20, 24, 12, 0.10) 45%,
    rgba(20, 24, 12, 0.58) 100%);
}
.hero .eyebrow {
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: 0.32em;
  text-transform: uppercase;
  font-size: 0.72rem;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
}
.hero h1 {
  color: #fdfcf7;
  font-size: clamp(2.3rem, 4.6vw, 3.5rem);
  font-weight: 500;
  line-height: 1.12;
  margin-top: 12px;
  text-shadow: 0 2px 28px rgba(0, 0, 0, 0.35);
}
.hero .lede {
  color: rgba(253, 252, 247, 0.92);
  font-size: 1.02rem;
  max-width: 44ch;
  margin-top: 16px;
  text-shadow: 0 1px 16px rgba(0, 0, 0, 0.4);
}
.hero-cta.btn-solid {
  margin-top: 28px;
  background: transparent;
  border: 1px solid rgba(253, 252, 247, 0.9);
  color: #fdfcf7;
  border-radius: 0;
  padding: 13px 34px;
  letter-spacing: 0.22em;
  font-size: 0.78rem;
  text-transform: uppercase;
  box-shadow: none;
  transition: background 0.25s ease, color 0.25s ease;
}
.hero-cta.btn-solid:hover {
  background: #fdfcf7;
  color: var(--olive-ink);
  border-color: #fdfcf7;
}

/* 2026-08-26 Robyn: first-version layout, but the CYPRUS DECODED label
   floats separately up in the sky above the headland (phone only) */
@media (max-width: 768px) {
  .hero .eyebrow {
    position: absolute;
    top: -16vh;
    left: 0;
  }
}

/* 2026-08-26 Robyn: kill wasted space on the phone, keep the rhythm
   symmetrical: every section 44px top and bottom, headers and dividers on
   the same beat. */
@media (max-width: 768px) {
  section { padding: 44px 0; }
  section.tight { padding: 24px 0; }
  section#about { padding: 20px 0 0; }
  .section-head { margin-bottom: 32px; }
  .sprig-divider { margin: 16px 0 0; }
  .split { gap: 28px; }
  .hero { min-height: 72vh; }
}

/* 2026-08-26: heart divider section carries almost no padding of its own */
@media (max-width: 768px) {
  section:has(> .container > .heart-photo-block) { padding: 8px 0; }
}

/* 2026-08-26: same symmetric rhythm on desktop, kill the heading voids */
@media (min-width: 769px) {
  section { padding: 72px 0; }
  section.tight { padding: 44px 0; }
  section#about { padding: 28px 0 0; }
  .section-head { margin-bottom: 44px; }
  .sprig-divider { margin: 20px 0 0; }
  section:has(> .container > .heart-photo-block) { padding: 12px 0; }
}

/* 2026-08-26 Robyn: equal air above and below the island map on the phone */
@media (max-width: 768px) {
  section:has(> .container > .sprig-divider:last-child) { padding-bottom: 14px; }
  section.cream:has(.split) { padding-top: 16px; }
}

/* 2026-08-26 Robyn: headline down onto the blue water, button tight under text */
@media (max-width: 768px) {
  .hero { padding-bottom: 44px; }
  .hero-cta.btn-solid { margin-top: 16px; }
  .hero h1 { text-shadow: 0 2px 30px rgba(0, 0, 0, 0.45); }
}

/* 2026-08-26 Robyn: headline fully below the headland */
@media (max-width: 768px) {
  .hero { padding-bottom: 20px; }
}

/* 2026-08-26 Robyn: headline on the dark blue band */
@media (max-width: 768px) {
  .hero { padding-bottom: 64px; }
}

/* language switch (EN / EL) */
.lang-switch{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:30px;padding:0 9px;border:1px solid currentColor;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.08em;text-decoration:none;color:inherit;opacity:.85;transition:opacity .2s,background .2s}
.lang-switch:hover{opacity:1;background:rgba(0,0,0,.06)}
/* Greek labels run longer: tighten the desktop nav */
html[lang="el"] .nav-links{gap:16px}
html[lang="el"] .nav-links a{font-size:.72rem;letter-spacing:.06em}
@media(max-width:1200px){html[lang="el"] .nav-links{gap:11px}html[lang="el"] .nav-links a{font-size:.66rem;letter-spacing:.03em}}

/* grouped nav with dropdowns (Sept 2026: Transport, Kids, Wellness, Shopping) */
.nav-links > li{position:relative}
.nav-links li.has-sub > a .caret{display:inline-block;width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 0 3px 7px;opacity:.7}
.nav-links .sub{display:none;position:absolute;top:calc(100% + 6px);left:-16px;min-width:230px;background:rgba(253,248,240,.98);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:12px;padding:10px 0;box-shadow:0 12px 32px rgba(20,24,12,.12);list-style:none;z-index:60}
.nav-links .sub::before{content:"";position:absolute;top:-8px;left:0;right:0;height:8px}
.nav-links li.has-sub:hover > .sub,.nav-links li.has-sub:focus-within > .sub,.nav-links li.has-sub.open > .sub{display:block}
.nav-links .sub li a{display:block;padding:9px 20px;text-transform:none;letter-spacing:.02em;font-size:.9rem;font-weight:500;white-space:nowrap}
.nav-links .sub li a .caret{display:none}
.nav-links .sub li a:hover{background:#eef1dc}
@media (max-width:880px){
  .nav-links .sub{display:block;position:static;min-width:0;background:transparent;border:0;box-shadow:0 0 0 0;padding:6px 0 4px 14px;backdrop-filter:none}
  .nav-links .sub li a{padding:6px 0;font-size:.95rem}
  .nav-links li.has-sub > a .caret{display:none}
}

/* section directories (transport, kids, wellness, shopping) */
.dir-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px}
.dir-card{background:#fff;border-radius:12px;padding:22px 24px;box-shadow:0 4px 18px rgba(0,0,0,.06);display:flex;flex-direction:column;gap:10px}
.dir-head h3{font-family:'Playfair Display',serif;font-size:1.25rem;margin:0 0 4px}
.dir-meta{display:block;font-family:'Jost',sans-serif;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#7a8450}
.dir-card p{margin:0;line-height:1.6;font-size:.98rem}
.dir-facts{list-style:none;padding:0;margin:4px 0 0;font-size:.92rem;line-height:1.55;color:#4a4e34}
.dir-facts li{padding:2px 0}
.dir-tip{font-size:.92rem;color:#5c6a36;background:#f4f6e8;padding:10px 12px;border-radius:8px}
.dir-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:8px}
.btn-sm{padding:7px 14px;font-size:.78rem}
.sec-guide h2{font-family:'Playfair Display',serif;font-size:1.7rem;margin:34px 0 12px;color:#4a4e34}
.sec-guide h2:first-child{margin-top:0}
.sec-guide p,.sec-guide li{line-height:1.7;font-size:1.02rem}
.sec-guide ul{padding-left:22px;margin:8px 0 14px}
.sec-guide table{width:100%;border-collapse:collapse;margin:12px 0 18px;font-size:.95rem}
.sec-guide th,.sec-guide td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.sec-guide th{font-family:'Jost',sans-serif;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#7a8450}
details.faq{background:#fff;border-radius:10px;padding:14px 20px;margin-bottom:10px;box-shadow:0 2px 10px rgba(0,0,0,.04)}
details.faq summary{cursor:pointer;font-weight:600;font-family:'Jost',sans-serif;font-size:1rem}
details.faq div{padding-top:10px;line-height:1.65}
details.sources summary{cursor:pointer;color:var(--muted);font-size:.9rem}
details.sources ul{font-size:.85rem;line-height:1.7;margin-top:10px;padding-left:20px;column-count:2;column-gap:30px}
@media(max-width:700px){details.sources ul{column-count:1}}
.sec-guide .tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:12px 0 18px}
.sec-guide .tbl-wrap table{margin:0;min-width:640px}

/* language menu (EN/EL/DE/PL/HE), CSS only */
.lang-menu{position:relative;display:inline-block;margin-right:8px}
.lang-menu summary{list-style:none;cursor:pointer}
.lang-menu summary::-webkit-details-marker{display:none}
.lang-menu ul{position:absolute;right:0;top:36px;margin:0;padding:6px 0;list-style:none;background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);min-width:150px;z-index:60}
.lang-menu li a{display:flex;justify-content:space-between;gap:12px;padding:7px 14px;font-size:13px;color:#222;text-decoration:none;white-space:nowrap}
.lang-menu li a span{opacity:.6;font-weight:400}
.lang-menu li a:hover,.lang-menu li a.current{background:rgba(0,0,0,.05)}
html[dir=rtl] .lang-menu ul{right:auto;left:0}
