/* =====================
   CAFÉ MATIN — shared.css
   ===================== */

/* --- Variables --- */
:root {
  --bg:          #FDF6EE;
  --bg-soft:     #F5EDE0;
  --brown:       #3D2B1F;
  --brown-mid:   #8B6F5C;
  --terra:       #C4956A;
  --terra-light: #E2C4A0;
  --white:       #FDFAF6;
  --muted:       rgba(61,43,31,0.4);
  --nav-bg:      rgba(61,43,31,0.92);
  --radius:      4px;
  --white-dim:   rgba(253,250,246,0.5);
  --white-65:    rgba(253,250,246,0.65);
  --brown-45:  rgba(61,43,31,0.45);
  --brown-60:  rgba(61,43,31,0.6);
  --white-60:  rgba(253,250,246,0.6);
}

/* --- Reset --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--brown);
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 300;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }

/* --- Scrollbar --- */
::-webkit-scrollbar { width: 3px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--terra); }

/* --- Custom Cursor --- */
.cursor-dot {
  width: 8px; height: 8px;
  background: var(--terra);
  border-radius: 50%;
  position: fixed; top: 0; left: 0;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);
  transition: transform 0.1s;
}
@media (max-width: 768px) { .cursor-dot { display: none; } }

/* --- Navigation --- */
nav {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 100;
  background: var(--nav-bg);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 0 60px;
  height: 64px;
  display: flex; align-items: center; justify-content: space-between;
}
.nav-logo {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 20px;
  color: var(--white);
  letter-spacing: 2px;
}
.nav-logo span {
  color: var(--terra);
}
.nav-links {
  display: flex; gap: 40px;
  list-style: none;
}
.nav-links a {
  color: var(--white-65);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  transition: color 0.3s;
}
.nav-links a:hover,
.nav-links a[aria-current="page"] {
  color: var(--terra);
}

/* --- Footer --- */
footer {
  background: var(--brown);
  color: var(--white-dim);
  padding: 48px 60px;
  display: flex; align-items: center; justify-content: space-between;
  font-size: 11px;
  letter-spacing: 1px;
}
.footer-logo {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: var(--white);
  font-size: 18px;
}
.footer-links {
  display: flex; gap: 32px;
  list-style: none;
}
.footer-links a {
  color: var(--white-dim);
  transition: color 0.3s;
}
.footer-links a:hover { color: var(--terra); }

/* --- Scroll Reveal --- */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.8s cubic-bezier(0.16,1,0.3,1),
              transform 0.8s cubic-bezier(0.16,1,0.3,1);
}
.reveal.visible { opacity: 1; transform: none; }

/* --- Section padding --- */
.section-pad { padding: 120px 60px; }

/* --- Page header (shared by inner pages) --- */
.page-hero {
  padding: 160px 60px 80px;
  background: var(--bg-soft);
  text-align: center;
}
.page-hero-label {
  font-size: 11px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--terra);
  margin-bottom: 16px;
}
.page-hero-title {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: clamp(36px, 5vw, 56px);
  color: var(--brown);
  line-height: 1.2;
}

/* --- Responsive --- */
@media (max-width: 768px) {
  nav { padding: 0 24px; }
  .nav-links { display: none; }
  footer { flex-direction: column; gap: 20px; text-align: center; padding: 40px 24px; }
  .footer-links { justify-content: center; }
  .section-pad { padding: 80px 24px; }
  .page-hero { padding: 120px 24px 60px; }
}
