/* Appia Trattoria — shared styles
   Light editorial layout (fixed top strip nav, hairline dividers, no JS/sliders),
   eggshell/off-white background to match the existing site,
   typography: Fraunces (display serif) + Jost (sans body/nav). */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  --cream:#f7f3ec;
  --ink:#1a1814;
  --line:#e3ddcf;
  --gray:#7a7468;
  --red:#b3342a;
  --strip-h:158px;
  --font-display:'Fraunces',serif;
  --font-body:'Jost',sans-serif;
}

html{scroll-behavior:smooth;}

body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  overflow-x:hidden;
}

a{color:inherit;}

/* TOP STRIP NAV */
.top-strip{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 2.5rem 0 3.5rem;height:var(--strip-h);
  background:rgba(247,243,236,0.97);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}

.strip-logo{
  display:flex;align-items:center;
  text-decoration:none;flex-shrink:0;
}
.strip-logo img{
  height:150px;width:auto;object-fit:contain;display:block;
}

.strip-links{
  display:flex;align-items:center;list-style:none;
  position:absolute;left:50%;transform:translateX(-50%);
}
.strip-links li a{
  color:rgba(26,24,20,0.65);text-decoration:none;
  font-size:0.6rem;font-weight:500;letter-spacing:0.22em;text-transform:uppercase;
  padding:0 1.4rem;height:var(--strip-h);display:flex;align-items:center;
  transition:color 0.2s;
}
.strip-links li a:hover,
.strip-links li a.active{color:var(--ink);}

.strip-right{display:flex;align-items:center;gap:1.5rem;flex-shrink:0;}
.strip-instagram{
  display:flex;align-items:center;text-decoration:none;
  color:rgba(26,24,20,0.7);transition:color 0.2s;
}
.strip-instagram:hover{color:var(--ink);}
.strip-instagram svg{width:16px;height:16px;fill:currentColor;}
.strip-reserve{
  font-size:0.6rem;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;
  color:rgba(26,24,20,0.75);text-decoration:none;transition:color 0.2s;
}
.strip-reserve:hover{color:var(--ink);}

/* PAGE WRAPPER */
.page{padding-top:var(--strip-h);}

/* HOME HERO IMAGE */
.hero{
  position:relative;width:100%;
  padding:var(--strip-h) 3rem 0;
  background:var(--cream);
}
.placeholder-photo{
  background:#ece6d8;
  border:1px solid var(--line);
  color:#a39c8c;
  display:flex;align-items:center;justify-content:center;
  text-align:center;font-family:var(--font-body);
  font-size:0.65rem;letter-spacing:0.15em;text-transform:uppercase;
}
.hero-img{
  width:100%;height:auto;display:block;
  filter:brightness(0.96);
}

/* PAGE HERO (Menu / Reservations) */
.page-hero{
  padding:5rem 3rem 3.5rem;text-align:center;
  border-bottom:1px solid var(--line);
}
.page-hero .label{
  font-size:0.62rem;font-weight:500;letter-spacing:0.3em;
  text-transform:uppercase;color:var(--gray);margin-bottom:1.25rem;
}
.page-hero h1{
  font-family:var(--font-display);
  font-size:clamp(2.4rem,5vw,4rem);
  font-weight:400;letter-spacing:0.06em;
  color:var(--ink);line-height:1.1;margin-bottom:1.1rem;
}
.page-hero p{
  font-family:var(--font-display);font-style:italic;
  font-size:clamp(1rem,1.6vw,1.25rem);font-weight:300;
  color:rgba(26,24,20,0.58);letter-spacing:0.03em;
  max-width:600px;margin:0 auto;line-height:1.7;
}

/* ABOUT / PHILOSOPHY STRIP */
.about-strip{
  padding:5.5rem 3rem;max-width:720px;margin:0 auto;text-align:center;
}
.about-strip h2{
  font-family:var(--font-display);font-weight:400;font-size:2rem;
  letter-spacing:0.06em;margin-bottom:1.75rem;
}
.about-strip p{
  font-family:var(--font-display);
  font-size:clamp(1.1rem,2vw,1.4rem);
  font-weight:300;line-height:1.85;
  color:rgba(26,24,20,0.78);letter-spacing:0.02em;
  margin-bottom:1.4rem;
}
.about-strip p:last-child{margin-bottom:0;}

.divider{width:40px;height:1px;background:rgba(26,24,20,0.18);margin:0 auto;}

/* OWNER / IMAGE GRID */
.split-grid{
  display:grid;grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.split-grid .placeholder-photo{height:420px;border:none;border-right:1px solid var(--line);}
.split-photo-wrap{
  display:flex;flex-direction:column;
  border-right:1px solid var(--line);
}
.split-photo{
  width:100%;height:420px;display:block;
  object-fit:cover;object-position:center;
}
.photo-caption{
  padding:1.5rem 3rem;
  font-family:var(--font-display);font-style:italic;font-weight:300;
  font-size:0.85rem;line-height:1.8;letter-spacing:0.01em;
  color:rgba(26,24,20,0.6);
  border-top:1px solid var(--line);
}
.split-grid .split-text{
  padding:3.5rem 3rem;display:flex;flex-direction:column;justify-content:center;
}
.split-grid .split-text .label{
  font-size:0.58rem;font-weight:600;letter-spacing:0.25em;
  text-transform:uppercase;color:var(--red);margin-bottom:1rem;
}
.split-grid .split-text h2{
  font-family:var(--font-display);font-weight:400;font-size:1.9rem;
  letter-spacing:0.04em;margin-bottom:1rem;
}
.split-grid .split-text p{
  font-size:0.85rem;line-height:1.9;color:rgba(26,24,20,0.68);
}
@media (max-width:780px){
  .split-grid{grid-template-columns:1fr;}
  .split-grid .placeholder-photo{border-right:none;border-bottom:1px solid var(--line);height:300px;}
  .split-photo-wrap{border-right:none;border-bottom:1px solid var(--line);}
  .split-photo{height:300px;}
}

/* CTA */
.cta-row{
  text-align:center;padding:4.5rem 3rem;
  border-bottom:1px solid var(--line);
}
.cta-row .label{
  font-size:0.6rem;font-weight:500;letter-spacing:0.28em;
  text-transform:uppercase;color:var(--gray);margin-bottom:1.5rem;
}
.btn{
  display:inline-block;text-decoration:none;
  font-size:0.62rem;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;
  padding:1rem 2.4rem;margin:0.4rem 0.5rem;
  border:1px solid var(--ink);color:var(--ink);transition:background 0.2s,color 0.2s;
}
.btn:hover{background:var(--ink);color:var(--cream);}
.btn.solid{background:var(--ink);color:var(--cream);}
.btn.solid:hover{background:transparent;color:var(--ink);}
.btn.red{border-color:var(--red);color:var(--red);}
.btn.red:hover{background:var(--red);color:#fff;}

/* INFO STRIP */
.info-strip{
  text-align:center;padding:3rem 3rem;
  border-bottom:1px solid var(--line);
  font-size:0.72rem;letter-spacing:0.08em;color:rgba(26,24,20,0.62);
  line-height:2;
}
.info-strip strong{color:var(--ink);letter-spacing:0.1em;}

/* MENU PAGE */
.menu-wrap{max-width:880px;margin:0 auto;padding:4.5rem 3rem 2rem;}

.menu-category{
  padding:2.75rem 0;border-bottom:1px solid var(--line);
}
.menu-category:last-child{border-bottom:none;}
.menu-category .cat-label{
  font-size:0.6rem;font-weight:600;letter-spacing:0.28em;
  text-transform:uppercase;color:var(--red);margin-bottom:1.75rem;
  text-align:center;
}

.menu-item{
  display:flex;justify-content:space-between;align-items:baseline;
  gap:1.2rem;margin-bottom:1.4rem;
}
.menu-item:last-child{margin-bottom:0;}
.menu-item .name-desc{flex:1;}
.menu-item .name{
  font-family:var(--font-display);font-size:1.15rem;font-weight:500;
  letter-spacing:0.02em;display:block;color:var(--ink);
}
.menu-item .desc{
  font-size:0.78rem;letter-spacing:0.02em;
  color:rgba(26,24,20,0.55);margin-top:0.2rem;display:block;
}
.menu-item .price{
  white-space:nowrap;font-size:0.85rem;letter-spacing:0.05em;
  color:var(--gray);font-weight:500;
}

.menu-note{
  text-align:center;font-size:0.65rem;letter-spacing:0.1em;
  text-transform:uppercase;color:#a89f8c;
  padding:2.5rem 3rem;border-bottom:1px solid var(--line);
}

/* GROUP DINING PAGE */
.options-grid-2{
  display:grid;grid-template-columns:repeat(2,1fr);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  max-width:960px;margin:0 auto;
}
.options-grid-2 .option-card{border-bottom:none;text-align:center;}
.options-grid-2 .option-card:last-child{border-right:none;}
.options-grid-2 .option-card h2{font-size:2rem;}
.options-grid-2 .option-card .guest-count{font-size:0.75rem;}
.options-grid-2 .option-card .attr-label{font-size:0.65rem;}
.options-grid-2 .option-card .attr-value{font-size:1rem;}
.options-grid-2 .option-card .card-note{font-size:0.9rem;}
@media (max-width:700px){
  .options-grid-2{grid-template-columns:1fr;}
  .options-grid-2 .option-card{border-right:none!important;border-bottom:1px solid var(--line);}
  .options-grid-2 .option-card:last-child{border-bottom:none;}
}

.options-grid-3{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.options-grid-3 .option-card{border-bottom:none;text-align:center;}
.options-grid-3 .option-card:last-child{border-right:none;}

.option-card .guest-count{
  font-size:0.58rem;font-weight:500;letter-spacing:0.2em;
  text-transform:uppercase;color:var(--gray);
  margin-bottom:1.5rem;padding-bottom:1.5rem;
  border-bottom:1px solid var(--line);
}
.option-card .attr-block{margin-bottom:1rem;}
.option-card .attr-block:last-of-type{margin-bottom:0;}
.option-card .attr-label{
  font-size:0.55rem;font-weight:600;letter-spacing:0.2em;
  text-transform:uppercase;color:var(--gray);display:block;margin-bottom:0.2rem;
}
.option-card .attr-value{
  font-size:0.82rem;line-height:1.6;color:var(--ink);display:block;
}
.option-card .card-note{
  font-family:var(--font-display);font-style:italic;font-weight:300;
  font-size:0.78rem;line-height:1.7;color:rgba(26,24,20,0.5);
  margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line);
}

.policy-strip{padding:4rem 3rem;}
.policy-item{margin-bottom:1.75rem;}
.policy-item:last-child{margin-bottom:0;}
.policy-item .policy-label{
  font-size:0.55rem;font-weight:600;letter-spacing:0.2em;
  text-transform:uppercase;color:var(--gray);display:block;margin-bottom:0.3rem;
}
.policy-item .policy-value{
  font-size:1rem;line-height:1.6;color:var(--ink);display:block;
}
.policy-item .policy-value a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;}

/* RESERVATIONS PAGE */
.options-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  border-bottom:1px solid var(--line);
}
.option-card{
  padding:3.25rem 3rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);
}
.option-card:nth-child(even){border-right:none;}
.option-card:nth-last-child(-n+2){border-bottom:none;}
.option-card .option-label{
  font-size:0.58rem;font-weight:600;letter-spacing:0.25em;
  text-transform:uppercase;color:var(--red);margin-bottom:1rem;
}
.option-card h2{
  font-family:var(--font-display);font-weight:400;font-size:1.6rem;
  letter-spacing:0.03em;margin-bottom:0.85rem;color:var(--ink);
}
.option-card p{
  font-size:0.82rem;line-height:1.9;color:rgba(26,24,20,0.65);
}
.option-card a{text-decoration:underline;text-underline-offset:3px;color:var(--ink);}
@media (max-width:900px){
  .options-grid-3{grid-template-columns:1fr;}
  .options-grid-3 .option-card{border-right:none!important;border-bottom:1px solid var(--line);}
  .options-grid-3 .option-card:last-child{border-bottom:none;}
}
@media (max-width:700px){
  .options-grid{grid-template-columns:1fr;}
  .option-card{border-right:none!important;}
}

.map-wrap{border-bottom:1px solid var(--line);}
.map-wrap iframe{width:100%;height:380px;border:0;display:block;filter:grayscale(0.15) contrast(1.02);}

/* FOOTER */
footer.site-footer{
  padding:2.25rem 3rem;display:flex;align-items:center;
  justify-content:space-between;flex-wrap:wrap;gap:1rem;
  border-top:1px solid var(--line);
}
.footer-hours{
  font-size:0.6rem;letter-spacing:0.1em;text-transform:uppercase;
  color:#5b564b;line-height:2;
}
.footer-hours a{color:#5b564b;text-decoration:none;transition:color 0.2s;}
.footer-hours a:hover{color:var(--ink);}
.footer-links{display:flex;gap:1.5rem;list-style:none;}
.footer-links a{
  font-size:0.56rem;letter-spacing:0.12em;text-transform:uppercase;
  color:#9c9484;text-decoration:none;transition:color 0.2s;
}
.footer-links a:hover{color:var(--ink);}
.footer-copy{font-size:0.55rem;color:#c4bcaa;letter-spacing:0.06em;}

@media (max-width:900px){
  :root{--strip-h:101px;}
  .top-strip{padding:0 1.25rem;}
  .strip-logo img{height:95px;}
  .strip-links{position:static;transform:none;}
  .strip-links li a{padding:0 0.65rem;font-size:0.52rem;letter-spacing:0.12em;}
  .hero{padding-left:1.25rem;padding-right:1.25rem;}
  .options-grid{grid-template-columns:1fr;}
  footer.site-footer{flex-direction:column;align-items:flex-start;}
}

/* MOBILE SIDE MARGINS — keep content off the edges on narrow screens */
@media (max-width:600px){
  .page-hero{padding-left:1.25rem;padding-right:1.25rem;}
  .about-strip{padding-left:1.25rem;padding-right:1.25rem;}
  .split-grid .split-text{padding-left:1.25rem;padding-right:1.25rem;}
  .photo-caption{padding-left:1.25rem;padding-right:1.25rem;}
  .cta-row{padding-left:1.25rem;padding-right:1.25rem;}
  .info-strip{padding-left:1.25rem;padding-right:1.25rem;}
  .menu-wrap{padding-left:1.25rem;padding-right:1.25rem;}
  .menu-note{padding-left:1.25rem;padding-right:1.25rem;}
  .option-card{padding-left:1.25rem;padding-right:1.25rem;}
  .policy-strip{padding-left:1.25rem;padding-right:1.25rem;}
  footer.site-footer{padding-left:1.25rem;padding-right:1.25rem;}
}
