/* HoTaco — Taqueria del Vaquero
   One stylesheet for the whole site.
   Rule: colour arrives only through the photography. */

:root{
  color-scheme: light;
  --paper:#FBFAF8;
  --wash:#F5F3EF;
  --ink:#121110;
  --mute:#8C8880;
  --faint:#B8B4AC;
  --rule:#E4E1DA;

  --m:"DM Mono","SFMono-Regular",Menlo,Consolas,monospace;
  --gut:clamp(16px,3.4vw,44px);
  --t:12px;
}

*{box-sizing:border-box}
html,body{background:var(--paper)}
body{
  margin:0;color:var(--ink);
  font-family:var(--m);font-weight:400;
  font-size:var(--t);line-height:1.75;letter-spacing:.015em;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a:hover{color:var(--mute)}
:focus-visible{outline:1px solid var(--ink);outline-offset:3px}
.wrap{padding-inline:var(--gut)}
h1,h2,h3{margin:0;font-weight:500;font-size:var(--t);letter-spacing:.015em}

/* ---------- masthead ---------- */
.mast{
  position:sticky;top:env(safe-area-inset-top,0px);z-index:40;
  background:var(--paper);
  padding-block:16px 14px;
}
.mast-grid{display:grid;gap:14px 20px;grid-template-columns:1fr}
@media(min-width:760px){.mast-grid{grid-template-columns:repeat(4,1fr);gap:0 20px}}
.col p,.col ul{margin:0}
.col ul{list-style:none;padding:0}
.brand{font-weight:500;letter-spacing:.06em}
.lede{color:var(--ink);max-width:26ch}
.colhead{color:var(--faint);margin-bottom:2px}
.col li a{display:inline-block}
.sel{color:var(--ink)}
.sel::before{content:"[ "}
.sel::after{content:" ]"}

.glyph{width:34px;margin:26px 0 0;opacity:.9}

/* ---------- photography ---------- */
figure{margin:0}
.plate{position:relative;overflow:hidden;background:var(--rule);max-width:100%}
.plate img{width:100%;height:100%;object-fit:cover}
.cap{
  display:flex;gap:12px;padding-top:9px;
  color:var(--faint);font-size:10px;letter-spacing:.07em;line-height:1.6;
}
.cap b{font-weight:400;color:var(--mute)}

/* ---------- asymmetric field ---------- */
.field{padding-block:clamp(30px,6vw,86px)}
.row{display:grid;gap:clamp(14px,2vw,26px);align-items:end}
@media(min-width:900px){
  .r-a{grid-template-columns:5fr 3fr 4fr}
  .r-b{grid-template-columns:3fr 6fr 3fr}
  .r-c{grid-template-columns:4fr 4fr 4fr}
  .r-d{grid-template-columns:6fr 6fr}
}
.void{min-height:1px}

.state{max-width:52ch;margin:clamp(28px,5vw,64px) 0 0;font-size:14.5px;line-height:1.85}
.state + .state{margin-top:20px}
.state em{font-style:italic;color:var(--mute)}

.signature{
  display:flex;flex-direction:column;align-items:center;gap:14px;
  padding-block:clamp(48px,9vw,132px);
}
.signature img{width:min(76vw,360px)}

/* ---------- index tables ---------- */
.idx{border-top:1px solid var(--rule);margin-top:clamp(30px,5vw,60px)}
.idx-head{
  display:flex;justify-content:space-between;gap:16px;
  padding-block:10px;color:var(--faint);border-bottom:1px solid var(--rule);
}
.line{
  display:grid;gap:2px 20px;padding-block:13px;border-bottom:1px solid var(--rule);
  grid-template-columns:1fr;
}
@media(min-width:780px){.line{grid-template-columns:72px 200px 1fr 130px;align-items:baseline}}
.line .n{color:var(--faint);font-variant-numeric:tabular-nums}
.line .t{color:var(--ink);font-weight:500}
.line .d{color:var(--mute)}
.line .v{color:var(--ink);text-align:left}
@media(min-width:780px){.line .v{text-align:right}}
.line:hover{background:var(--wash)}

/* diary: same skeleton, different column rhythm */
@media(min-width:780px){
  .diary .line{grid-template-columns:120px 1fr 200px 110px}
}
.diary .when{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}
.diary .where{color:var(--mute)}
.diary .tag{color:var(--faint);text-align:left}
@media(min-width:780px){.diary .tag{text-align:right}}
.diary .empty{padding-block:20px;color:var(--mute);border-bottom:1px solid var(--rule)}

/* ---------- enquiry ---------- */
.enq{padding-block:clamp(40px,7vw,100px)}
.enq-grid{display:grid;gap:clamp(24px,4vw,64px)}
@media(min-width:900px){.enq-grid{grid-template-columns:4fr 6fr}}
.f{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.f label{color:var(--faint)}
.f input,.f select,.f textarea{
  font-family:var(--m);font-size:12px;color:var(--ink);background:transparent;
  border:0;border-bottom:1px solid var(--rule);padding:9px 0;width:100%;border-radius:0;
}
.f textarea{min-height:76px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-bottom-color:var(--ink)}
.duo{display:grid;gap:14px}
@media(min-width:560px){.duo{grid-template-columns:1fr 1fr}}
.send{
  font-family:var(--m);font-size:var(--t);letter-spacing:.06em;color:var(--paper);
  background:var(--ink);border:1px solid var(--ink);padding:12px 22px;cursor:pointer;margin-top:8px;
}
.send:hover{background:var(--paper);color:var(--ink)}
.send[disabled]{opacity:.45;cursor:default}
.small{color:var(--faint);margin:12px 0 0;max-width:46ch}
.ok{border:1px solid var(--ink);padding:18px}
.ok b{display:block;margin-bottom:6px;font-weight:500}
.ok p{margin:0;color:var(--mute)}
.meta{display:grid;gap:9px;margin-top:26px}
.meta div{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid var(--rule);padding-bottom:7px}
.meta span:first-child{color:var(--faint)}

footer{padding-block:34px 44px;border-top:1px solid var(--rule)}
.foot{display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;color:var(--faint)}

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