:root {
  --bg:#0a0f14; --panel:#0f1720; --card:#121a24; --text:#e6eef6; --muted:#9eb3c7;
  --brand:#7bd3ff; --brand-2:#b7f0d3; --danger:#ff9aa2;
  --radius:18px; --shadow:0 10px 30px rgba(0,0,0,.25);
}

/* Base */
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,"Helvetica Neue",Arial,sans-serif;
  color:var(--text);
  background:linear-gradient(180deg,#0b0f14,#0e1724);
}
.container{ max-width:1160px; margin:0 auto; padding:28px; }

/* Header / Nav */
header.site{
  display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:28px;
}
.brand{ display:flex; align-items:center; gap:12px; }
.logo{
  width:46px; height:46px; border-radius:14px;
  background:linear-gradient(135deg,var(--brand),var(--brand-2)); box-shadow:var(--shadow);
}
.title{ margin:0; font-size:clamp(1.35rem,2.2vw,1.9rem); }
.muted{ color:var(--muted); }

nav.sitelinks{ display:flex; gap:14px; flex-wrap:wrap; }
nav.sitelinks a{
  color:var(--text); opacity:.85; text-decoration:none; padding:8px 12px;
  border-radius:12px; border:1px solid rgba(255,255,255,.06);
}
nav.sitelinks a:hover{ opacity:1; background:rgba(255,255,255,.04); }

/* Sections & Cards */
.section{ margin:40px 0; }
.card{
  background:rgba(18,26,36,.86); border:1px solid rgba(255,255,255,.06);
  border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden;
}
.card>header{ padding:18px 22px; border-bottom:1px solid rgba(255,255,255,.06); }
.card h2{ margin:0; font-size:1.05rem; }
.content{ padding:22px; }

/* Hero (two-column on desktop) */
.hero{ display:grid; grid-template-columns:1fr; gap:20px; margin-bottom:12px; position:relative; overflow:hidden; }
@media (min-width:900px){ .hero{ grid-template-columns:1.1fr .9fr; } }

.hero .media{
  min-height:350px; border-radius:var(--radius);
  background:url("hero.jpg") center/cover no-repeat; /* CSS is in assets/, so hero.jpg is correct */
  border:1px solid rgba(255,255,255,.06); position:relative; overflow:hidden;
}
.hero .media::before{ content:""; position:absolute; inset:0; background:rgba(0,0,0,.2); }

.hero .copy{ display:flex; flex-direction:column; justify-content:center; }
.hero .copy h2{ font-size:2rem; line-height:1.3; animation:fadeUp .8s ease forwards; }

/* Badges */
.hero .copy .badges{ display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 8px; }
.badge,.badge-orange{
  font-size:.78rem; color:#0a0f14; padding:6px 10px; border-radius:999px;
  transition:transform .2s ease, box-shadow .3s ease;
}
.badge{ background:linear-gradient(135deg,var(--brand),var(--brand-2)); }
.badge-orange{ background:linear-gradient(135deg,#ffb347,#ffcc33); }
.badge:hover,.badge-orange:hover{ transform:translateY(-2px) scale(1.05); box-shadow:0 4px 12px rgba(0,0,0,.25); cursor:default; }

/* Buttons */
.cta{ display:flex; gap:12px; flex-wrap:wrap; margin-top:16px; }
.btn{
  appearance:none; border:0; border-radius:14px; padding:12px 16px; font-weight:700; cursor:pointer;
  background:linear-gradient(135deg,#6ee7b7,#3b82f6); color:#0a0f14; box-shadow:var(--shadow);
  transition:transform .06s ease, filter .2s ease, box-shadow .3s ease;
}
.btn:hover{ filter:brightness(1.25); }
.btn:active{ transform:translateY(1px); }
.btn.glow{ box-shadow:0 0 12px rgba(123,211,255,.7); }
.btn.glow:hover{ box-shadow:0 0 18px rgba(123,211,255,.9); transform:translateY(-2px); }

/* Calendar */
.calendar-wrap{
  aspect-ratio:16/10; width:100%; background:#0c121a; border-radius:12px; overflow:hidden;
  border:1px solid rgba(255,255,255,.06);
}
iframe{ width:100%; height:100%; border:0; }

/* About split layout */
.about-grid{ display:grid; grid-template-columns:1fr; gap:20px; align-items:start; }
@media (min-width:940px){ .about-grid{ grid-template-columns:1.05fr 1.2fr; } }

.about-gallery{ display:grid; gap:14px; }

.about-photo{
  position:relative; border-radius:var(--radius); overflow:hidden; min-height:360px;
  background:#0c141d; border:1px solid rgba(255,255,255,.06); box-shadow:var(--shadow);
}
.about-photo img{
  width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.02);
  transition:transform .45s ease, filter .35s ease;
}
.about-photo:hover img{ transform:scale(1.06); filter:saturate(1.05); }
.about-photo figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:8px 12px; text-align:center;
  font-size:.9rem; font-style:italic; color:var(--text);
  background:linear-gradient(0deg,rgba(0,0,0,.45),rgba(0,0,0,0));
}

/* Text blocks & lists */
h1,h2,h3{ line-height:1.3; letter-spacing:.3px; }
p{ line-height:1.6; }
.content h3{ margin:0 0 10px 0; font-size:1rem; }
.section-block + .section-block{ margin-top:18px; padding-top:16px; border-top:1px solid rgba(255,255,255,.06); }

.feature-list{ list-style:none; margin:0; padding-left:0; }
.feature-list li{ position:relative; padding-left:22px; margin:6px 0; }
.feature-list li::before{ content:"✓"; position:absolute; left:0; top:0; color:var(--brand); opacity:.95; }
.feature-list.columns{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 18px; }
@media (max-width:640px){ .feature-list.columns{ grid-template-columns:1fr; } }

/* Gallery — masonry via CSS columns (no gaps, no overlap) */
.gallery{
  display:block; column-count:2; column-gap:16px; width:100%;
}
@media (min-width:700px){ .gallery{ column-count:3; } }
@media (min-width:1200px){ .gallery{ column-count:4; } }

.thumb{
  break-inside:avoid; margin-bottom:16px; border-radius:var(--radius); overflow:hidden;
  background:#0c141d; border:1px dashed rgba(255,255,255,.15); /* keep your dashed frame */
}
.thumb img{ width:100%; height:auto; object-fit:contain; display:block; transition:transform .45s ease; }
.thumb:hover img{ transform:scale(1.03); }
.thumb span{ position:absolute; color:var(--muted); font-size:.8rem; transition:opacity .2s; }
.thumb:hover span{ opacity:0; }

/* Forms (unchanged) */
form{ display:grid; gap:14px; }
label{ font-size:.92rem; color:var(--muted); }
input,select,textarea{
  width:100%; padding:12px 14px; border-radius:12px; border:1px solid rgba(255,255,255,.09);
  background:#0c121a; color:var(--text); outline:none;
  transition:border-color .2s ease, box-shadow .2s ease;
}
input:focus,select:focus,textarea:focus{ border-color:var(--brand); box-shadow:0 0 0 3px rgba(123,211,255,.14); }
textarea{ min-height:120px; resize:vertical; }

.row{ display:grid; grid-template-columns:1fr; gap:14px; }
@media (min-width:640px){ .row.two{ grid-template-columns:1fr 1fr; } }

.helper{ font-size:.82rem; color:var(--muted); }
.error-msg{ color:var(--danger); font-size:.82rem; margin-top:6px; }
footer.site{ opacity:.85; font-size:.85rem; text-align:center; margin-top:28px; color:var(--muted); }

/* Animations */
.fade-in{ opacity:0; transform:translateY(8px); animation:fade .5s ease .05s forwards; }
.fade-in:nth-child(2){ animation-delay:.1s; }
.fade-in:nth-child(3){ animation-delay:.2s; }
@keyframes fade{ to{ opacity:1; transform:translateY(0); } }

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

/* Mobile polish */
@media (max-width:700px){
  .container{ padding:18px; }
  header.site{ flex-direction:column; align-items:flex-start; gap:10px; }
  .brand .title{ font-size:1.25rem; }
  .logo{ width:40px; height:40px; }
  .hero{ gap:14px; }
  .hero .media{ min-height:240px; }
  .hero .copy h2{ font-size:1.5rem; }
  .cta{ gap:10px; }
  .cta .btn{ flex:1 1 48%; min-height:44px; }
  .badge,.badge-orange{ font-size:.72rem; padding:5px 9px; }
  .hero .copy .badges{ gap:6px; }
  .about-photo{ min-height:220px; }
  .about-photo figcaption{ font-size:.78rem; padding:6px 8px; }
  .calendar-wrap{ aspect-ratio:4/3; }
}
@media (max-width:420px){
  .container{ padding:14px; }
  nav.sitelinks{ gap:8px; }
  nav.sitelinks a{ padding:6px 10px; border-radius:10px; }
  .cta .btn{ flex:1 1 100%; }
}




/* COLOR PALLETE UPDATES */
/* === Foini Color Theme === */
/* === Bright Theme (using your palette) === */
:root {
  /* base palette (from earlier) */
  --puce: #C98CA7;
  --green-yellow: #ABFF4F;
  --tangerine: #FF934F;
  --choco: #4C191B;
  --tiffany: #8BD7D2;

  /* bright tokens */
  --bg: #f6fbfa;          /* light mint */
  --panel: #ffffff;       /* white panels */
  --card: #ffffff;        /* white cards */
  --text: #1b262c;        /* deep slate text */
  --muted: #6a7d86;       /* softer slate */

  --brand: var(--tiffany);
  --brand-2: var(--green-yellow);
  --accent-warm: var(--tangerine);
  --accent-soft: var(--puce);

  --shadow: 0 10px 30px rgba(0, 0, 0, .12);
}

/* Light airy background (mint → peach glow) */
body {
  background:
    radial-gradient(1000px 600px at 12% -10%, rgba(139,215,210,.35), transparent 60%),
    radial-gradient(900px 600px at 85% -10%, rgba(255,147,79,.25), transparent 60%),
    linear-gradient(180deg, #f7fcfb, #fff7f1);
  color: var(--text);
}

/* Header/logo */
.logo { background: linear-gradient(135deg, var(--tiffany), var(--puce)); box-shadow: var(--shadow); }
nav.sitelinks a { border-color: rgba(0,0,0,.06); }
nav.sitelinks a:hover { background: rgba(139,215,210,.14); }

/* Cards and separators */
.card { background: rgba(255,255,255,.92); border: 1px solid rgba(0,0,0,.06); }
.section-block + .section-block { border-top: 1px solid rgba(201,140,167,.25); } /* puce tint */

/* Hero: lighter overlay so photo stays bright */
.hero .media { border-color: rgba(0,0,0,.08); }
.hero .media::before { background: rgba(0,0,0,.12); }
.hero .copy h2 { color: var(--text); }

/* Buttons */
.btn {
  background: linear-gradient(135deg, var(--tiffany), var(--green-yellow));
  color: #052021;
}
.btn.glow { box-shadow: 0 0 14px rgba(139,215,210,.55); }
.btn.warm { background: linear-gradient(135deg, var(--tangerine), #ffd2a8); color: #3a1a10; }

/* Badges */
.badge { background: linear-gradient(135deg, var(--tiffany), var(--green-yellow)); color: #052021; }
.badge-orange { background: linear-gradient(135deg, var(--tangerine), #ffd2a8); color: #3a1a10; }

/* Inputs/focus */
input, select, textarea {
  background: #f9fbfc;
  border-color: rgba(0,0,0,.08);
  color: var(--text);
}
input:focus, select:focus, textarea:focus {
  border-color: var(--tiffany);
  box-shadow: 0 0 0 3px rgba(139,215,210,.28);
}

/* Gallery: lighter frames */
.thumb { background: #f9fbfc; border: 1px dashed rgba(201,140,167,.35); }
.thumb span { color: #7f8e96; }

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
}
/* --- Header balance + bigger logo, no gradient --- */
header.site {
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
}

.brand { 
  display: flex; 
  align-items: center; 
  gap: 12px; 
}

/* Bigger logo without gradient */
.logo { 
  width: 90px;                 /* slightly bigger than before */
  height: 90px;
  border-radius: 16px;
  overflow: hidden;
  flex-shrink: 0;
  background: none;            /* remove gradient or fill */
  border: none;                /* remove border if any */
  box-shadow: none;            /* remove shadow if any */
}

.logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;         /* fits whole image without crop */
  display: block;
  background: transparent;
}

/* Title stack spacing */
.title { 
  margin: 0; 
  line-height: 1.1; 
}
.brand .muted { margin-top: 4px; }

/* Nav vertical alignment */
nav.sitelinks { 
  align-self: center; 
}
nav.sitelinks a { 
  padding: 10px 16px; 
  border-radius: 14px; 
}

/* Smaller screens adjustments */
@media (max-width: 900px) {
  .logo { width: 70px; height: 70px; }
}
@media (max-width: 520px) {
  .logo { width: 56px; height: 56px; }
}

