/* ===========================================================
   Vieni — shared stylesheet
   Two colour themes that invert per page:
     body.theme-red   → red background, pink text   (Home)
     body.theme-pink  → pink background, red text    (Menu, etc.)
   Buttons, nav and footer auto-flip using --fg / --bg.
   =========================================================== */

:root {
  --red:   #9C0E12;   /* brand red  */
  --pink:  #F8D9ED;   /* brand pink */
  --pink-dim: rgba(248, 217, 237, 0.72);
  --red-dim:  rgba(156, 14, 18, 0.72);
  --cream: #F4F2EA;
  --green: #236528;

  --sans: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --pad-x: clamp(1.25rem, 5vw, 3.5rem);
  --maxw: 960px;
}

/* themes set the page's foreground/background pair */
body.theme-red  { --bg: var(--red);  --fg: var(--pink); --fg-dim: var(--pink-dim); --hair: rgba(248, 217, 237, 0.22); }
body.theme-pink { --bg: var(--pink); --fg: var(--red);  --fg-dim: var(--red-dim);  --hair: rgba(156, 14, 18, 0.18); }
body.theme-green{ --bg: var(--green);--fg: var(--pink); --fg-dim: var(--pink-dim); --hair: rgba(248, 217, 237, 0.20); }

* , *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--sans);
  background: var(--bg);
  color: var(--fg);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}

.page { display: flex; flex-direction: column; min-height: 100vh; }
.page > main { flex: 1; }

img { max-width: 100%; display: block; }
a { color: inherit; }

.v-container { max-width: var(--maxw); margin: 0 auto; padding-inline: var(--pad-x); }
.v-dot { } /* signature trailing dot — hook for future styling */

/* ---------- buttons ---------- */
.v-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 0.85rem 1.7rem; border: 1px solid transparent; border-radius: 8px;
  font-family: var(--sans); font-size: 0.72rem; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none;
  cursor: pointer; transition: transform 0.15s ease, opacity 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.v-btn:hover { transform: translateY(-2px); }
.v-btn--solid { background: var(--fg); color: var(--bg); }         /* filled, inverts per theme */
.v-btn--solid:hover { opacity: 0.9; }
.v-btn--ghost { background: transparent; color: var(--fg); border-color: var(--hair); }
.v-btn--ghost:hover { background: color-mix(in srgb, var(--fg) 8%, transparent); }

/* ---------- header (logo left · nav right) ---------- */
.v-head { padding-top: clamp(1.25rem, 3vw, 2rem); }
.v-head__inner {
  max-width: var(--maxw); margin: 0 auto; padding-inline: var(--pad-x);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; position: relative;
}
.v-head__logo { display: inline-flex; align-items: center; }
.v-head__logo img { height: clamp(38px, 4.5vw, 52px); width: auto; display: block; }

.v-nav { display: flex; align-items: center; gap: clamp(1rem, 2.3vw, 2rem); list-style: none; margin: 0; padding: 0; }
.v-nav a {
  font-size: 0.72rem; font-weight: 500; letter-spacing: 0.13em;
  text-transform: uppercase; text-decoration: none; color: var(--fg);
  opacity: 0.88; transition: opacity 0.2s ease;
}
.v-nav a:hover, .v-nav a.is-active { opacity: 1; }

.v-head__toggle { display: none; background: none; border: 0; color: var(--fg); cursor: pointer; padding: 0.3rem; }
.v-head__toggle svg { width: 28px; height: 28px; }

@media (max-width: 860px) {
  .v-head__toggle { display: inline-flex; }
  .v-nav {
    position: absolute; top: calc(100% + 0.75rem); right: var(--pad-x); left: var(--pad-x);
    flex-direction: column; align-items: flex-start; gap: 0;
    background: var(--bg); border: 1px solid var(--hair); border-radius: 12px;
    padding: 0 1.1rem; max-height: 0; overflow: hidden; transition: max-height 0.3s ease; z-index: 50;
  }
  .v-nav.is-open { max-height: 420px; padding: 0.4rem 1.1rem; }
  .v-nav li { width: 100%; }
  .v-nav a { display: block; padding: 0.85rem 0; width: 100%; }
}

/* ---------- footer (IG left · wordmark right) ---------- */
.v-foot {
  max-width: var(--maxw); margin: 0 auto;
  padding: clamp(1.5rem, 4vw, 2.5rem) var(--pad-x) clamp(1.5rem, 4vw, 2.25rem);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.v-foot__ig { display: inline-flex; color: var(--fg); opacity: 0.9; transition: opacity 0.2s ease; }
.v-foot__ig:hover { opacity: 1; }
.v-foot__ig svg { width: 26px; height: 26px; }
.v-foot__logo img { height: clamp(28px, 3.2vw, 38px); width: auto; display: block; }

/* ---------- slideshow arrows ---------- */
.slide-nav {
  position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%);
  display: flex; align-items: center; gap: 10px; z-index: 2;
}
.slide-arrow {
  width: 28px; height: 28px; border: none; border-radius: 50%; cursor: pointer;
  background: color-mix(in srgb, var(--fg) 25%, transparent); color: var(--fg);
  display: flex; align-items: center; justify-content: center;
  transition: background 0.2s ease;
}
.slide-arrow:hover { background: color-mix(in srgb, var(--fg) 45%, transparent); }
.slide-arrow svg { width: 14px; height: 14px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .v-btn, .v-nav, .v-foot__ig { transition: none; }
  .v-btn:hover { transform: none; }
}
