@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,900&family=Italiana&family=Lora:ital,wght@0,400;0,500;0,600;1,400&display=swap');

:root{
  --maroon: #6E1E3C;
  --maroon-deep: #591830;
  --tan: #C9AD82;
  --cream: #FBF8F3;
  --ink: #2A2A2A;
  --gray-nav: #55565A;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Lora', serif;
  line-height:1.6;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}

/* ===== NAV ===== */
.topnav{
  border-bottom:1px solid #eee;
  background:#fff;
}
.topnav-inner{
  max-width:1300px;
  margin:0 auto;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:34px;
  padding:22px 40px;
  flex-wrap:wrap;
}
.topnav a{
  font-family:'Lora', serif;
  font-size:15px;
  color:var(--gray-nav);
  white-space:nowrap;
}
.topnav a.active{
  color:var(--ink);
  font-weight:600;
}
.topnav a:hover{color:var(--maroon);}

/* ===== LOGO LOCKUP ===== */
.logo-img{
  width:260px;
  height:auto;
  display:block;
}
.logo-img.small{width:190px;}
.logo-img-wrap{
  display:inline-block;
}

/* ===== PAGE HEADER (non-hero pages) ===== */
.page-header{
  max-width:1300px;
  margin:0 auto;
  padding:56px 40px 10px;
}
.page-title{
  font-family:'Italiana', serif;
  font-size:clamp(2.4rem, 5.6vw, 4.6rem);
  color:var(--maroon);
  letter-spacing:0.03em;
  margin:26px 0 30px;
  font-weight:400;
}

/* ===== HERO (home page) ===== */
.hero{
  background:var(--tan);
  padding:70px 40px;
}
.hero-inner{
  max-width:1300px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:center;
}
.hero-tagline{
  font-family:'Italiana', serif;
  font-size:clamp(1.2rem, 2.4vw, 1.7rem);
  color:var(--maroon-deep);
  letter-spacing:0.05em;
  margin-top:34px;
}
.hero-image{
  border-radius:50%;
  overflow:hidden;
  width:min(420px, 100%);
  aspect-ratio:1/1;
  margin:0 auto;
  box-shadow:0 20px 45px rgba(0,0,0,0.18);
}
.hero-image img{width:100%; height:100%; object-fit:cover;}

@media (max-width:800px){
  .hero-inner{grid-template-columns:1fr; text-align:center;}
  .hero-image{order:-1;}
}

/* ===== MAROON BANNER ===== */
.banner{
  background:var(--maroon);
  color:var(--cream);
  padding:64px 40px;
}
.banner-inner{
  max-width:1300px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:50px;
  align-items:center;
}
.banner-heading{
  font-family:'Italiana', serif;
  font-size:clamp(2rem, 4vw, 2.8rem);
  line-height:1.15;
  letter-spacing:0.02em;
}
.banner-text{
  font-family:'Lora', serif;
  font-size:1.05rem;
  line-height:1.65;
}
.banner-text strong{color:#fff;}
@media (max-width:800px){
  .banner-inner{grid-template-columns:1fr;}
}

/* ===== SECTION: WHAT IS ===== */
.section-title{
  max-width:1300px;
  margin:0 auto;
  padding:64px 40px 20px;
}
.section-title h2{
  font-family:'Italiana', serif;
  font-size:clamp(1.9rem, 4vw, 3rem);
  color:var(--maroon);
  letter-spacing:0.02em;
  font-weight:400;
  margin:0 0 22px;
}
.section-title p{
  max-width:820px;
  font-size:1.08rem;
  color:#3a3a3a;
}
.section-title p strong{color:var(--maroon);}

.feature-photo{
  position:relative;
  min-height:520px;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:center;
}
.feature-card{
  background:var(--maroon);
  color:#fff;
  max-width:520px;
  margin-left:auto;
  margin-right:8%;
  padding:44px 42px;
  display:flex;
  flex-direction:column;
  gap:22px;
}
.feature-card p{margin:0; font-size:1.02rem; line-height:1.55;}
.feature-card strong{display:block; margin-bottom:4px; font-size:1.05rem;}
@media (max-width:900px){
  .feature-card{margin:0 20px; max-width:none;}
  .feature-photo{padding:40px 0;}
}

/* ===== HOW TO ENJOY + HOURS (restaurants page) ===== */
.howto{
  max-width:1300px;
  margin:0 auto;
  padding:0 40px 40px;
}
.howto h3{
  font-family:'Lora', serif;
  color:var(--maroon);
  font-size:1.3rem;
  margin-bottom:14px;
}
.howto ol{
  padding-left:22px;
  margin:0;
}
.howto li{
  margin-bottom:10px;
  font-size:1.02rem;
}
.howto li strong{color:var(--maroon);}

.photo-strip{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  max-width:1300px;
  margin:0 auto;
  gap:0;
  height:340px;
  overflow:hidden;
}
.photo-strip img{width:100%; height:100%; object-fit:cover;}
@media (max-width:800px){
  .photo-strip{grid-template-columns:1fr; height:auto;}
  .photo-strip img{height:220px;}
}

.hours-block{
  max-width:1300px;
  margin:0 auto;
  padding:44px 40px 70px;
  display:flex;
  gap:34px;
  align-items:center;
  flex-wrap:wrap;
}
.hours-block h3{
  font-family:'Lora', serif;
  color:var(--maroon);
  font-size:1.4rem;
  margin:0 0 10px;
}
.hours-block p{margin:0; font-size:1.05rem;}

/* ===== FILTER + DIRECTORY ===== */
.filter-wrap{
  max-width:1300px;
  margin:0 auto;
  padding:0 40px 20px;
}
.filter-bar{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-bottom:14px;
}
.filter-bar input, .filter-bar select{
  font-family:'Lora', serif;
  padding:11px 16px;
  border:1.5px solid var(--maroon);
  border-radius:2px;
  background:#fff;
  color:var(--ink);
  font-size:14.5px;
}
.filter-bar input{flex:1 1 240px;}
.filter-bar input:focus, .filter-bar select:focus{outline:2px solid var(--maroon-deep);}
.result-count{
  font-size:14px;
  color:#5a5044;
  margin-bottom:6px;
}

.directory{
  max-width:1300px;
  margin:0 auto;
  padding:10px 40px 90px;
}
.rest-card{
  border:1px solid #e6dfd2;
  background:#fff;
  border-radius:4px;
  padding:24px 26px;
  margin-bottom:20px;
  display:grid;
  grid-template-columns:220px 1fr;
  gap:24px;
}
.rest-card-name{
  font-family:'Fraunces', serif;
  font-weight:700;
  font-size:1.3rem;
  color:var(--maroon);
  margin:0 0 6px;
}
.rest-cuisine{
  font-size:12.5px;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--maroon-deep);
  font-weight:600;
  margin-bottom:10px;
}
.rest-meta{font-size:13.5px; color:#555; line-height:1.6;}
.rest-meta a{color:var(--maroon); font-weight:600;}
.rest-meta a:hover{text-decoration:underline;}
.special-tag{
  display:inline-block;
  background:var(--tan);
  color:var(--maroon-deep);
  font-size:11.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.05em;
  padding:4px 10px;
  border-radius:2px;
  margin-bottom:10px;
}
.special-desc{font-size:14.5px; line-height:1.55;}
.special-desc strong{color:var(--maroon);}
@media (max-width:700px){
  .rest-card{grid-template-columns:1fr;}
}
.empty-state{
  text-align:center;
  padding:60px 20px;
  color:#5a5044;
}
.empty-state h3{color:var(--maroon);}

/* ===== SIMPLE TEXT PAGES (sponsors, contact) ===== */
.simple-page{
  max-width:900px;
  margin:0 auto;
  padding:10px 40px 100px;
  text-align:center;
}
.simple-page.maroon-bg{
  max-width:none;
  background:var(--maroon);
  color:var(--cream);
  padding-top:60px;
}
.simple-page.maroon-bg .logo-card{
  display:inline-block;
  background:var(--cream);
  border-radius:16px;
  padding:24px 32px;
  box-shadow:0 6px 20px rgba(0,0,0,0.18);
}
.simple-page.maroon-bg .inner{
  max-width:900px;
  margin:0 auto;
  padding:0 40px 100px;
}
.simple-page p{font-size:1.08rem; margin:0 0 20px;}
.simple-page strong{color:var(--maroon);}
.simple-page.maroon-bg strong{color:#fff;}
.simple-page a.email-link{
  color:var(--maroon);
  font-weight:700;
  text-decoration:underline;
}
.simple-page.maroon-bg a.email-link{color:#fff;}
.faq-q{
  font-weight:700;
  margin-top:34px;
  color:var(--maroon);
  font-size:1.15rem;
}
.simple-page.maroon-bg .faq-q{color:#fff;}
.faq-a{margin-top:6px;}

.signup-cta{
  max-width:900px;
  margin:0 auto;
  padding:0 40px 60px;
  text-align:center;
}
.signup-cta p{
  font-size:1.08rem;
  font-weight:600;
}
.signup-cta .email-link{
  color:var(--maroon);
  text-decoration:underline;
}

footer{
  text-align:center;
  padding:34px 20px;
  font-size:13px;
  color:#8a8478;
  border-top:1px solid #eee;
}

@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important;}
}
