/* ===================================================================
   Picture Butte Restaurant — Classic Chinese Heritage design system
   Palette: lacquer red · antique gold · ivory cream · jade (from logo)
   =================================================================== */

:root {
  --red-900:#5F1713; --red-800:#7C1E1B; --red:#9E2B25; --red-600:#B23A2E;
  --gold:#C9A24B; --gold-300:#E2C277; --gold-deep:#9C7726;
  --jade:#2E6F6A; --jade-700:#214f4b;
  --cream:#FBF6EC; --cream-2:#F5EAD7; --cream-3:#EFE0C6;
  --paper:#FFFDF8;
  --ink:#2A1E18; --ink-soft:#5C4A3E;
  --line: rgba(42,30,24,.12);
  --shadow-sm: 0 2px 8px rgba(60,20,15,.07);
  --shadow:    0 14px 38px -16px rgba(70,22,16,.34);
  --shadow-lg: 0 28px 60px -22px rgba(70,22,16,.45);

  --serif:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans:'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

  --wrap: 1180px;
  --gold-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='18' viewBox='0 0 40 18'%3E%3Cpath d='M0 9 Q 10 2 20 9 T 40 9' fill='none' stroke='%23C9A24B' stroke-width='2'/%3E%3C/svg%3E");
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.65;
  font-weight:400; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--red); text-decoration:none; }
a:hover{ color:var(--red-800); }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; line-height:1.08; color:var(--ink); margin:0; }
:focus-visible{ outline:3px solid var(--jade); outline-offset:3px; border-radius:4px; }
#main:focus{ outline:none; }   /* skip-link target — scroll is the indicator */

.container{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(1.1rem,4vw,2.2rem); }
section[id], .menu-cat[id], #top{ scroll-margin-top:84px; }

.skip-link{
  position:fixed; left:50%; top:-60px; transform:translateX(-50%);
  background:var(--ink); color:var(--cream); padding:.7rem 1.2rem; border-radius:0 0 10px 10px;
  z-index:200; transition:top .2s;
}
.skip-link:focus{ top:0; color:var(--cream); }

.ico{ width:1.15em; height:1.15em; fill:currentColor; flex:none; }
.ico--red{ fill:var(--red); }

/* ---------- Eyebrows & section titles ---------- */
.eyebrow{
  font-family:var(--sans); font-weight:800; text-transform:uppercase;
  letter-spacing:.18em; font-size:.74rem; color:var(--jade); margin:0 0 .7rem;
  display:flex; align-items:center; gap:.6rem;
}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--gold); }
.eyebrow--gold{ color:var(--gold-300); }
.eyebrow--gold::before{ background:var(--gold-300); }

.section{ padding:clamp(3.6rem,8vw,6.4rem) 0; position:relative; }
.section__title{
  font-size:clamp(2rem,4.6vw,3.1rem); letter-spacing:.005em; margin-bottom:.5rem;
}
.section__title--light{ color:var(--cream); }
.section__intro{ color:var(--ink-soft); max-width:54ch; margin:0 0 2.4rem; font-size:1.06rem; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--sans); font-weight:800; font-size:.96rem; letter-spacing:.01em;
  padding:.82em 1.5em; border-radius:999px; border:2px solid transparent;
  cursor:pointer; transition:transform .15s, box-shadow .2s, background .2s, color .2s;
  white-space:nowrap;
}
.btn:active{ transform:translateY(1px); }
.btn--lg{ font-size:1.05rem; padding:.95em 1.9em; }
.btn--gold{ background:linear-gradient(180deg,var(--gold-300),var(--gold)); color:#3a2a09; box-shadow:0 10px 22px -10px rgba(160,120,30,.7); }
.btn--gold:hover{ color:#3a2a09; box-shadow:0 14px 26px -10px rgba(160,120,30,.85); transform:translateY(-2px); }
.btn--red{ background:var(--red); color:var(--cream); box-shadow:0 12px 24px -12px rgba(120,30,22,.8); }
.btn--red:hover{ background:var(--red-800); color:var(--cream); transform:translateY(-2px); }
.btn--outline-light{ border-color:rgba(251,246,236,.6); color:var(--cream); background:transparent; }
.btn--outline-light:hover{ border-color:var(--cream); background:rgba(251,246,236,.1); color:var(--cream); }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,253,248,.92); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line); transition:box-shadow .25s;
}
.site-header.is-scrolled{ box-shadow:var(--shadow-sm); }
.site-header__inner{ display:flex; align-items:center; gap:1.2rem; min-height:68px; }
.brand{ display:flex; align-items:center; gap:.7rem; margin-right:auto; color:var(--ink); }
.brand:hover{ color:var(--ink); }
.brand__mark{ width:auto; height:42px; }
.brand__text{ display:flex; flex-direction:column; line-height:1.05; }
.brand__name{ font-family:var(--serif); font-weight:700; font-size:1.28rem; letter-spacing:.01em; }
.brand__sub{ font-size:.66rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--jade); }

.nav{ display:flex; align-items:center; gap:1.55rem; }
.nav a{
  font-weight:700; color:var(--ink); font-size:.98rem; position:relative; padding:.3rem 0;
}
.nav a::after{ content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .22s; }
.nav a:hover{ color:var(--red); }
.nav a:hover::after{ transform:scaleX(1); }
.header-call{ padding:.6em 1.1em; font-size:.9rem; }
.nav-toggle{ display:none; }

/* ---------- Hero ---------- */
.hero{
  position:relative; isolation:isolate; overflow:hidden;
  background:radial-gradient(120% 130% at 80% -10%, var(--red-600), var(--red) 42%, var(--red-800) 100%);
  color:var(--cream); padding:clamp(2.8rem,6vw,5rem) 0 0;
}
.hero__pattern{
  position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:var(--emblem,url("/assets/emblem.webp")) no-repeat;
  background-position:right -60px bottom 40px; background-size:min(560px,52%);
  opacity:.07; filter:grayscale(1) brightness(2);
}
.hero::before{ /* subtle gold corner frame */
  content:""; position:absolute; inset:18px; border:1px solid rgba(226,194,119,.28);
  z-index:-1; pointer-events:none;
}
.hero__inner{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.5rem,4vw,3.2rem); align-items:center; padding-bottom:clamp(3rem,6vw,4.6rem); }
.hero__title{
  font-size:clamp(2.5rem,6vw,4.5rem); color:#fff; font-weight:600;
  letter-spacing:.005em; text-wrap:balance; margin-bottom:1rem;
  text-shadow:0 2px 30px rgba(0,0,0,.18);
}
.hero__lead{ font-size:clamp(1.05rem,1.6vw,1.25rem); color:rgba(255,250,240,.92); max-width:46ch; margin:0 0 1.5rem; }
.hero__rating{ display:flex; align-items:center; gap:.6rem; font-size:.98rem; color:rgba(255,250,240,.92); margin-bottom:1.8rem; flex-wrap:wrap; }
.hero__rating strong{ color:#fff; }
.stars{ color:var(--gold-300); letter-spacing:.08em; font-size:1.05rem; }
.hero__cta{ display:flex; gap:.85rem; flex-wrap:wrap; }
.hero__hours{ display:inline-flex; align-items:center; gap:.55rem; margin:1.6rem 0 0; font-weight:700; font-size:.94rem; color:rgba(255,250,240,.95); }

.dot{ width:10px; height:10px; border-radius:50%; background:#9aa0a6; box-shadow:0 0 0 4px rgba(255,255,255,.12); flex:none; }
.is-open .dot{ background:#46c46a; box-shadow:0 0 0 4px rgba(70,196,106,.25); }
.is-closed .dot{ background:#e2675e; box-shadow:0 0 0 4px rgba(226,103,94,.22); }

.hero__photo{ margin:0; position:relative; justify-self:center; }
.hero__photo img{
  width:min(440px,86vw); aspect-ratio:1100/585; object-fit:cover;
  border-radius:14px; border:5px solid var(--paper);
  box-shadow:var(--shadow-lg), 0 0 0 1px var(--gold);
  transform:rotate(2.2deg);
}
.hero__photo figcaption{
  position:absolute; left:50%; bottom:-14px; transform:translateX(-50%);
  background:var(--gold); color:#3a2a09; font-weight:800; font-size:.82rem;
  letter-spacing:.02em; padding:.45rem 1.1rem; border-radius:999px;
  box-shadow:var(--shadow); white-space:nowrap;
}
.fret{ height:16px; background:var(--gold-wave) repeat-x center/40px 18px; opacity:.85; }

/* ---------- Highlights ---------- */
.highlights{ background:var(--cream); text-align:center; }
.highlights .eyebrow, .reviews .eyebrow{ justify-content:center; }
.highlights .section__intro{ margin-inline:auto; text-align:center; }
.cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
.card{
  background:var(--paper); border:1px solid var(--line); border-radius:16px; overflow:hidden;
  box-shadow:var(--shadow-sm); text-align:left; transition:transform .2s, box-shadow .25s;
  display:flex; flex-direction:column;
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.card__img{ aspect-ratio:4/3; overflow:hidden; }
.card__img img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.card:hover .card__img img{ transform:scale(1.06); }
.card__body{ padding:1.1rem 1.2rem 1.3rem; }
.card__title{ font-size:1.4rem; color:var(--red); margin-bottom:.25rem; }
.card__body p{ margin:0; color:var(--ink-soft); font-size:.96rem; }

/* ---------- Story ---------- */
.story{ background:linear-gradient(180deg,var(--cream-2),var(--cream)); }
.story__inner{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(1.6rem,4vw,3.4rem); align-items:center; }
.story__copy p{ color:var(--ink-soft); margin:0 0 1.05rem; }
.story__sign{ font-family:var(--serif); font-size:1.3rem; font-style:italic; color:var(--red); }
.story__copy .btn{ margin-top:.6rem; }
.quote-card{
  position:relative; background:var(--red); color:var(--cream); border-radius:18px;
  padding:2.4rem 2rem 2rem; box-shadow:var(--shadow); border:1px solid var(--red-800);
}
.quote-card::after{ content:""; position:absolute; inset:10px; border:1px solid rgba(226,194,119,.35); border-radius:12px; pointer-events:none; }
.quote-mark{ font-family:var(--serif); font-size:5rem; line-height:0; color:var(--gold-300); position:absolute; top:2.4rem; left:1.4rem; opacity:.6; }
.quote-card blockquote{ margin:0 0 1rem; font-family:var(--serif); font-size:1.5rem; line-height:1.35; font-weight:500; position:relative; }
.quote-card cite{ font-family:var(--sans); font-style:normal; font-weight:700; font-size:.9rem; color:var(--gold-300); }

/* ---------- Menu ---------- */
.menu{ background:var(--paper); }
.menu-legend{ display:inline-flex; align-items:center; gap:.3rem; margin-left:.4rem; font-size:.92rem; color:var(--ink-soft); }
.chili{ font-size:.85em; }
.menu-nav{ display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 2.6rem; }
.menu-nav a{
  font-size:.86rem; font-weight:700; color:var(--ink); background:var(--cream);
  border:1px solid var(--cream-3); padding:.42rem .9rem; border-radius:999px; transition:.18s;
}
.menu-nav a:hover{ background:var(--red); color:var(--cream); border-color:var(--red); }

.menu-grid{ columns:330px 2; column-gap:2.6rem; }
.menu-cat{ break-inside:avoid; margin:0 0 1.6rem; background:var(--cream); border:1px solid var(--cream-3); border-radius:14px; padding:1.3rem 1.4rem 1rem; box-shadow:var(--shadow-sm); }
.menu-cat__title{
  font-size:1.6rem; color:var(--red); margin-bottom:.7rem; padding-bottom:.55rem;
  border-bottom:2px solid var(--gold); display:flex; align-items:baseline; justify-content:space-between; gap:.5rem;
}
.menu-cat__title small{ font-family:var(--sans); font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft); }
.menu-cat__note{ font-size:.82rem; color:var(--ink-soft); margin:-.3rem 0 .6rem; font-style:italic; }
.menu-list{ list-style:none; margin:0; padding:0; }
.menu-item{ display:flex; align-items:baseline; gap:.4rem; padding:.32rem 0; }
.menu-item__name{ font-weight:600; color:var(--ink); }
.menu-item__name small{ display:block; font-weight:400; font-size:.8rem; color:var(--ink-soft); line-height:1.3; }
.menu-item--sub .menu-item__name{ font-weight:400; color:var(--ink-soft); }
.dots{ flex:1 1 auto; border-bottom:1.5px dotted rgba(156,119,38,.5); transform:translateY(-3px); min-width:14px; }
.menu-item__price{ font-weight:800; color:var(--red); font-size:.92rem; white-space:nowrap; }

/* feature boxes */
.feature-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.6rem; margin-top:2.6rem; }
.feature-box{
  position:relative; background:linear-gradient(180deg,#fff,var(--cream)); border:2px solid var(--gold);
  border-radius:16px; padding:1.7rem 1.7rem 1.5rem; box-shadow:var(--shadow-sm);
}
.feature-box__title{ font-size:1.7rem; color:var(--red); margin-bottom:.2rem; display:flex; align-items:baseline; gap:.6rem; flex-wrap:wrap; }
.feature-box__price{ font-family:var(--sans); font-size:1rem; font-weight:800; color:var(--gold-deep); }
.feature-box__sub{ color:var(--ink-soft); font-size:.95rem; margin:0 0 1rem; }
.feature-rows{ display:flex; flex-direction:column; gap:.2rem; }
.feature-row{ display:flex; flex-wrap:wrap; gap:.4rem .8rem; align-items:baseline; font-weight:800; color:var(--ink); padding:.45rem 0; border-top:1px solid var(--line); }
.feature-row span:first-child{ color:var(--red); min-width:5.5rem; font-family:var(--serif); font-size:1.2rem; }
.feature-row span:not(:first-child){ font-size:.9rem; font-weight:700; color:var(--ink-soft); background:var(--cream-2); padding:.1rem .55rem; border-radius:999px; }
.feature-desc{ font-size:.88rem; color:var(--ink-soft); margin:.15rem 0 .8rem; }
.combo-list{ columns:2; column-gap:1.4rem; list-style:none; margin:0; padding:0; }
.combo-list li{ padding:.28rem 0 .28rem 1.1rem; position:relative; font-size:.95rem; break-inside:avoid; }
.combo-list li::before{ content:"◆"; position:absolute; left:0; color:var(--gold); font-size:.7rem; top:.45rem; }

.menu-disclaimer{ font-size:.84rem; color:var(--ink-soft); text-align:center; max-width:60ch; margin:2.4rem auto 1.6rem; font-style:italic; }
.menu-cta{ text-align:center; }

/* ---------- Reviews ---------- */
.reviews{ background:radial-gradient(120% 120% at 50% -20%, var(--red-600), var(--red) 45%, var(--red-900)); color:var(--cream); text-align:center; }
.reviews .section__intro{ color:rgba(255,250,240,.85); margin-inline:auto; }
.review-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin-top:2.4rem; text-align:left; }
.review{
  background:var(--cream); color:var(--ink); border-radius:16px; padding:1.6rem 1.5rem; margin:0;
  box-shadow:var(--shadow); display:flex; flex-direction:column; gap:.7rem; border-top:4px solid var(--gold);
}
.review .stars{ font-size:1.05rem; }
.review blockquote{ margin:0; font-size:1.04rem; line-height:1.5; }
.review figcaption{ font-weight:800; color:var(--red); font-size:.92rem; margin-top:auto; }
.review figcaption span{ color:var(--ink-soft); font-weight:600; }

/* ---------- Visit ---------- */
.visit{ background:var(--cream); }
.visit__inner{ display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(1.6rem,4vw,3rem); align-items:start; }
.visit__block{ margin-bottom:1.8rem; }
.visit__block h3{ font-size:1.3rem; display:flex; align-items:center; gap:.5rem; margin-bottom:.5rem; color:var(--ink); }
.visit address{ font-style:normal; color:var(--ink-soft); line-height:1.7; }
.link-arrow{ display:inline-block; margin-top:.4rem; font-weight:800; color:var(--jade); }
.link-arrow:hover{ color:var(--jade-700); }
.hours{ border-collapse:collapse; width:100%; max-width:360px; }
.hours th, .hours td{ text-align:left; padding:.4rem .2rem; border-bottom:1px solid var(--line); font-weight:600; }
.hours th{ color:var(--ink); font-weight:700; }
.hours td{ color:var(--ink-soft); text-align:right; }
.hours tr.is-today th, .hours tr.is-today td{ color:var(--red); font-weight:800; }
.visit__status{ display:inline-flex; align-items:center; gap:.5rem; margin:.7rem 0 0; font-weight:800; }
.visit__status.is-open{ color:#1f8f43; }
.visit__status.is-closed{ color:var(--red); }
.facts{ list-style:none; margin:0; padding:0; display:grid; gap:.35rem; }
.facts li{ padding-left:1.5rem; position:relative; color:var(--ink-soft); }
.facts li::before{ content:"✓"; position:absolute; left:0; color:var(--jade); font-weight:900; }
.visit__map{ position:relative; min-height:360px; height:100%; border-radius:18px; overflow:hidden; box-shadow:var(--shadow); border:4px solid var(--paper); }
.visit__map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; min-height:360px; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--ink); color:rgba(251,246,236,.82); }
.site-footer__inner{ display:flex; flex-wrap:wrap; gap:2rem 2.6rem; padding:3rem 0 2.2rem; }
.site-footer__brand{ flex:1 1 240px; min-width:0; }
.site-footer__col{ flex:1 1 150px; min-width:0; }
.site-footer__brand img{ height:60px; width:auto; margin-bottom:.85rem; border-radius:10px; box-shadow:0 8px 20px -10px rgba(0,0,0,.55); }
.site-footer__name{ font-family:var(--serif); font-size:1.3rem; color:var(--cream); font-weight:600; line-height:1.2; }
.site-footer__name span{ display:block; font-family:var(--sans); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-300); margin-top:.2rem; }
.site-footer__col h4{ font-family:var(--sans); font-size:.78rem; letter-spacing:.13em; text-transform:uppercase; color:var(--gold-300); margin-bottom:.7rem; }
.site-footer__col address{ font-style:normal; line-height:1.8; }
.site-footer__col p{ margin:0; line-height:1.8; }
.site-footer__col a{ color:rgba(251,246,236,.82); display:block; padding:.12rem 0; }
.site-footer__col a:hover{ color:var(--gold-300); }
.site-footer__col nav{ display:flex; flex-direction:column; }
.site-footer__bar{ border-top:1px solid rgba(251,246,236,.14); padding:1.1rem 0; font-size:.82rem; }
.site-footer__bar .container{ display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.site-footer__bar p{ margin:0; color:rgba(251,246,236,.6); }

/* ---------- Floating call button (mobile) ---------- */
.call-fab{
  display:none; position:fixed; right:18px; bottom:18px; z-index:90;
  width:58px; height:58px; border-radius:50%;
  background:linear-gradient(180deg,var(--gold-300),var(--gold)); color:#3a2a09;
  align-items:center; justify-content:center; box-shadow:var(--shadow-lg);
}
.call-fab .ico{ width:26px; height:26px; }

/* ---------- Reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease; }
.reveal.is-visible{ opacity:1; transform:none; }
.menu-grid .reveal{ transform:none; }          /* avoid transforms inside multicol */
.menu-grid .reveal.is-visible{ opacity:1; }

/* ===================================================================
   Responsive
   =================================================================== */
@media (max-width:1000px){
  .cards{ grid-template-columns:repeat(2,1fr); }
  .review-cards{ grid-template-columns:1fr; max-width:560px; margin-inline:auto; }
  .hero__inner{ grid-template-columns:1fr; text-align:left; }
  .hero__photo{ order:-1; justify-self:start; }
  .hero__photo img{ transform:none; width:min(520px,100%); }
  .story__inner{ grid-template-columns:1fr; }
  .visit__inner{ grid-template-columns:1fr; }
  .feature-grid{ grid-template-columns:1fr; }
}

@media (max-width:760px){
  body{ font-size:16px; }
  .nav-toggle{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    width:46px; height:42px; background:transparent; border:1px solid var(--line); border-radius:10px; cursor:pointer; margin-left:auto;
  }
  .nav-toggle span{ width:22px; height:2px; background:var(--ink); margin-inline:auto; transition:.22s; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .header-call{ display:none; }
  .nav{
    position:fixed; inset:67px 0 auto 0; flex-direction:column; align-items:stretch; gap:0;
    background:var(--paper); border-bottom:1px solid var(--line); padding:.5rem 0;
    box-shadow:var(--shadow); transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:.2s; max-height:calc(100vh - 67px); overflow:auto;
  }
  .nav.is-open{ transform:none; opacity:1; pointer-events:auto; }
  .nav a{ padding:.85rem clamp(1.1rem,4vw,2.2rem); border-bottom:1px solid var(--line); }
  .nav a::after{ display:none; }
  .brand__sub{ display:none; }
  .call-fab{ display:flex; }
  .cards{ grid-template-columns:1fr; max-width:420px; margin-inline:auto; }
  .combo-list{ columns:1; }
  .hero::before{ inset:10px; }
}

@media (max-width:560px){
  .site-footer__inner{ gap:1.8rem; }
  .site-footer__brand, .site-footer__col{ flex:1 1 100%; }
  .site-footer__bar .container{ justify-content:center; text-align:center; }
}
@media (max-width:420px){
  .hero__cta{ flex-direction:column; align-items:stretch; }
  .hero__cta .btn{ width:100%; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}
