/* ============================================================
   CHIN CHIN TRATTORIA — shared design system
   Locked on the Homepage; pages B–E inherit this file.
   ============================================================ */

/* ---------- FONTS ---------- */
@font-face{
  font-family:'Korolev Heavy';
  src:url('../fonts/KorolevHeavy.woff2') format('woff2'),
      url('../fonts/KorolevHeavy.woff') format('woff'),
      url('../fonts/KorolevHeavy.ttf') format('truetype');
  font-weight:900;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Korolev Bold';
  src:url('../fonts/KorolevBold.woff2') format('woff2'),
      url('../fonts/KorolevBold.woff') format('woff'),
      url('../fonts/KorolevBold.ttf') format('truetype');
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Filosofia Grand';
  src:url('../fonts/FilosofiaGrand.woff2') format('woff2'),
      url('../fonts/FilosofiaGrand.woff') format('woff'),
      url('../fonts/FilosofiaGrand.ttf') format('truetype');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Filosofia Bold';
  src:url('../fonts/FilosofiaBold.woff2') format('woff2'),
      url('../fonts/FilosofiaBold.woff') format('woff'),
      url('../fonts/FilosofiaBold.ttf') format('truetype');
  font-weight:700;font-style:normal;font-display:swap;
}

/* ---------- TOKENS ---------- */
:root{
  --cream:#F0EDDE;
  --cream-2:#F4F1EA;
  --red:#B02B45;
  --red-deep:#8E2138;
  --green:#8FA468;
  --green-deep:#6E844A;
  --ink:#0A0D0D;
  --white:#FCFCFC;

  --maxw:1320px;
  --gut:clamp(20px,5vw,72px);

  --f-display:'Korolev Heavy',Impact,sans-serif;
  --f-sub:'Korolev Bold','Arial Narrow',sans-serif;
  --f-body:'Filosofia Grand',Georgia,serif;
  --f-bodyb:'Filosofia Bold',Georgia,serif;
  --f-mono:'IBM Plex Mono',ui-monospace,monospace;

  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- RESET ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:clamp(18px,1.3vw,22px);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
::selection{background:var(--red);color:var(--cream)}

.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}

.grecaptcha-badge {
  display: none;
}

/* ---------- TYPE PRIMITIVES ---------- */
.eyebrow{
  font-family:var(--f-mono);
  font-size:.78rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  font-weight:500;
}
.sub{font-family:var(--f-sub);text-transform:uppercase;letter-spacing:.01em;line-height:.95}
.lede{font-size:clamp(1.25rem,2.4vw,1.7rem);line-height:1.42}

/* The signature outlined-duplicate display heading */
.cat-heading{
  position:relative;
  display:inline-block;
  font-family:var(--f-display);
  text-transform:uppercase;
  line-height:.84;
  letter-spacing:.005em;
  color:var(--ink);
  --stroke-c:var(--green);
  --stroke-w:1.6px;
  --offx:3px;--offy:3px;
  isolation:isolate;
}
.cat-heading::before{
  content:attr(data-text);
  position:absolute;
  left:0;top:0;
  transform:translate(var(--offx),var(--offy));
  z-index:-1;
  color:transparent;
  -webkit-text-stroke:var(--stroke-w) var(--stroke-c);
          text-stroke:var(--stroke-w) var(--stroke-c);
  pointer-events:none;
}
.cat-heading.on-red{color:var(--cream);--stroke-c:var(--ink)}
.cat-heading.on-green{color:var(--cream);--stroke-c:var(--ink)}
.cat-heading.on-dark{color:var(--cream);--stroke-c:var(--red)}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--f-sub);text-transform:uppercase;
  letter-spacing:.06em;font-size:1rem;
  padding:.7em 1.45em;border-radius:999px;
  transition:transform .25s var(--ease),background .25s,color .25s,box-shadow .25s;
  white-space:nowrap;
}
.btn:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.btn-red{background:var(--red);color:var(--cream)}
.btn-red:hover{background:var(--red-deep);transform:translateY(-2px)}
.btn-cream{background:var(--cream);color:var(--ink)}
.btn-cream:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.btn-ghost{border:1.5px solid currentColor}
.btn-ghost:hover{transform:translateY(-2px)}
.btn-arrow{border:1.5px solid currentColor;border-radius:999px}
.btn-arrow:hover{transform:translateY(-2px)}
.btn-arrow .a{transition:transform .25s var(--ease)}
.btn-arrow:hover .a{transform:translateX(5px)}

/* ---------- GLASS MOTIF ---------- */
.glass{width:100%;height:100%;color:var(--red)}
.glass use{fill:currentColor}
.glass.cream{color:var(--cream)}
.glass.green{color:var(--green)}
.glass.red{color:var(--red)}

/* float drifters live inside .drift containers, positioned per-section */
.drift{position:absolute;pointer-events:none;will-change:transform;z-index:0}

@keyframes bob{
  0%,100%{transform:translateY(0) rotate(var(--r,0deg))}
  50%{transform:translateY(-16px) rotate(calc(var(--r,0deg) + 1.5deg))}
}
.bob{animation:bob var(--dur,7s) ease-in-out infinite;animation-delay:var(--delay,0s)}

/* ---------- IMG PLACEHOLDERS (ASSET slots) ---------- */
.asset{
  position:relative;overflow:hidden;
  background:
    repeating-linear-gradient(135deg,
      rgba(10,13,13,.05) 0 2px,
      transparent 2px 11px),
    var(--ph-bg,#dcd8c4);
  display:flex;align-items:flex-end;
  border-radius:2px;
}
.asset.dark{--ph-bg:#222524}
.asset.red{--ph-bg:#7c2236}
.asset.green{--ph-bg:#6b7e4f}
.asset .tag{
  font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  background:rgba(10,13,13,.72);color:var(--cream);
  padding:.5em .7em;margin:.7rem;border-radius:3px;line-height:1.3;max-width:80%;
}
.asset.dark .tag,.asset.red .tag,.asset.green .tag{background:rgba(252,252,252,.16);backdrop-filter:blur(2px)}

/* ---------- LOGO (img + filter recolor) ---------- */
.logo-img{filter:brightness(0)} /* default → ink */
.logo-img.light{filter:brightness(0) invert(1)} /* → white */
.logo-img.cream{filter:brightness(0) invert(1) sepia(.18) saturate(.6) brightness(.97)} /* warm cream-ish */

/* ---------- REVEAL (visible by default; hidden only while JS drives it) ---------- */
.reveal{transition:opacity .8s var(--ease),transform .8s var(--ease)}
html.js .reveal{opacity:0;transform:translateY(26px)}
html.js .reveal.in{opacity:1;transform:none}

/* ---------- SECTION RHYTHM ---------- */
section{position:relative}
.pad{padding-block:clamp(72px,11vw,150px)}
.band-red{background:var(--red);color:var(--cream)}
.band-green{background:var(--green);color:var(--ink)}
.band-ink{background:var(--ink);color:var(--cream)}

/* ---------- REDUCED MOTION ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .bob,.toast-hand img{animation:none}
  .twinkle,.spin{animation:none}
  .drift{transform:none!important}
  .reveal{opacity:1;transform:none;transition:none}
  .twinkle,.spin{animation:none}
}

/* ============================================================
   SHARED CHROME — header · drawer · footer · decor · section-head
   (used by every page; page files add only their own layout CSS)
   ============================================================ */
.site-header{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;
  justify-content:space-between;gap:24px;padding:18px var(--gut);
  transition:background .4s var(--ease),box-shadow .4s var(--ease),padding .4s var(--ease),transform .45s var(--ease)}
.site-header.is-solid{background:var(--cream);box-shadow:0 1px 0 rgba(10,13,13,.1);padding-top:12px;padding-bottom:12px}
.site-header.hide{transform:translateY(-110%);box-shadow:none}
.brand{display:flex;align-items:center;gap:14px;z-index:2}
.brand .logo-img{height:56px;width:auto;transition:height .4s var(--ease),filter .4s var(--ease)}
.site-header.is-solid .brand .logo-img{height:48px;filter:brightness(0)}
.nav{display:flex;align-items:center;gap:34px}
.nav a.navlink{font-family:var(--f-sub);text-transform:uppercase;letter-spacing:.08em;font-size:1rem;
  color:var(--cream);position:relative;padding:4px 0;transition:color .3s}
.nav a.navlink::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:currentColor;transition:width .3s var(--ease)}
.nav a.navlink:hover::after,.nav a.navlink:focus-visible::after{width:100%}
.nav a.navlink[aria-current="page"]{color:var(--red)}
.nav a.navlink[aria-current="page"]::after{width:100%;background:var(--red)}
.site-header.is-solid .nav a.navlink{color:var(--ink)}
.site-header.is-solid .nav .btn-res{background:var(--red);color:var(--cream)}
.nav .btn-res{background:var(--cream);color:var(--ink);padding:.7em 1.45em;border-radius:999px;font-size:1rem;
  font-family:var(--f-sub);text-transform:uppercase;letter-spacing:.06em;transition:transform .25s var(--ease),background .3s,color .3s}
.nav .btn-res:hover{transform:translateY(-2px)}
.hdr-reserve-mobile{display:none;font-family:var(--f-sub);text-transform:uppercase;letter-spacing:.06em;
  font-size:.82rem;padding:.48em 1.1em;border-radius:999px;background:var(--cream);color:var(--ink);
  white-space:nowrap;transition:transform .25s var(--ease),background .3s,color .3s;align-items:center;z-index:2}
.hdr-reserve-mobile:hover{transform:translateY(-2px)}
.site-header.is-solid .hdr-reserve-mobile{background:var(--red);color:var(--cream)}
.burger{display:none;width:42px;height:42px;flex-direction:column;justify-content:center;gap:6px;z-index:2}
.burger span{display:block;height:2px;width:26px;background:var(--cream);transition:.3s var(--ease)}
.site-header.is-solid .burger span{background:var(--ink)}
.burger.open span{background:var(--cream)}
.burger.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.drawer{position:fixed;inset:0;z-index:55;background:var(--ink);color:var(--cream);
  display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 var(--gut);
  transform:translateX(100%);transition:transform .45s var(--ease);visibility:hidden}
.drawer.open{transform:none;visibility:visible}
.drawer a{font-family:var(--f-display);text-transform:uppercase;font-size:clamp(2.5rem,11vw,4rem);line-height:1.04;color:var(--cream);transition:color .25s}
.drawer a:hover{color:var(--red)}
.drawer .draw-foot{margin-top:34px;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(252,252,252,.55);line-height:2}
.draw-foot p{margin:0 0 12px}
.drawer .draw-foot a{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;display:inline}
.drawer .draw-foot a:hover{color:var(--red)}
.drawer .draw-foot a.ig{display:inline-flex;align-items:center;gap:9px;margin-top:6px;color:var(--cream)}
.drawer .draw-foot .ig svg{width:18px;height:18px;flex:none}

/* section head */
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(34px,5vw,64px)}
.section-head .cat-heading{font-size:clamp(2.6rem,7vw,6rem)}
.section-head .eyebrow{color:var(--red)}

/* brand decor */
.star{position:absolute;pointer-events:none;z-index:4;color:var(--cream);opacity:.92}
.star svg{width:100%;height:100%;display:block}
.star path{fill:currentColor}
.twinkle{animation:twinkle var(--dur,4.5s) ease-in-out infinite;animation-delay:var(--delay,0s)}
@keyframes twinkle{0%,100%{opacity:.4;transform:scale(.82) rotate(0deg)}50%{opacity:1;transform:scale(1.08) rotate(20deg)}}
.hero-hand{position:absolute;z-index:4;pointer-events:none}
.hero-hand img{filter:brightness(0) invert(1);opacity:.9}
.toast-hand img{filter:brightness(0) invert(1);opacity:.95;transform-origin:58% 92%;animation:chinchin-toast 4.2s ease-in-out infinite}
@keyframes chinchin-toast{0%,58%,100%{transform:rotate(0deg)}8%{transform:rotate(-11deg)}16%{transform:rotate(-3deg)}24%{transform:rotate(-12deg)}32%{transform:rotate(-4deg)}40%{transform:rotate(-9deg)}}
.map-embed{width:100%;height:100%;min-height:360px;border:0;display:block;
  filter:sepia(.34) saturate(.74) hue-rotate(-10deg) contrast(.93) brightness(1.03)}
.watermark{position:absolute;pointer-events:none;z-index:0}
.watermark img{width:100%;height:auto;display:block;opacity:.08}

/* footer */
.site-footer{background:var(--ink);color:var(--cream);padding-block:clamp(56px,7vw,90px);position:relative;overflow:hidden}
.site-footer .wrap{position:relative;z-index:1}
.foot-top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px;align-items:start}
.foot-mark .logo-img{height:64px;width:auto;filter:brightness(0) invert(1)}
.foot-mark p{margin-top:18px;max-width:30ch;opacity:.8;font-size:1.06rem}
.foot-col h4{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;opacity:.6;margin-bottom:16px}
.foot-col a,.foot-col p{display:block;font-size:1.1rem;line-height:1.9;opacity:.92}
.foot-col a:hover{color:var(--red);opacity:1}
.foot-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:54px;padding-top:22px;
  border-top:1px solid rgba(252,252,252,.16);font-family:var(--f-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;opacity:.65}
.foot-bot a{transition:color .2s}
.foot-bot a:hover{color:var(--red)}

@media (max-width:960px){
  .nav{display:none}
  .burger{display:flex}
  .hdr-reserve-mobile{display:inline-flex;margin-left:auto;margin-right:14px;font-size:.9rem;padding:.56em 1.3em}
  .burger{display:flex;width:46px;height:46px}
  .site-header{gap:0}
  .foot-top{grid-template-columns:1fr 1fr;gap:34px}
  .foot-mark{grid-column:1/-1}
}
@media (max-width:560px){
  .foot-top{grid-template-columns:1fr}
}
