/* ==========================================================================
   From The Vine — Bar de Degustação de Vinho, Lisboa
   Language: pt-PT. Surfaces: cream tasting-mat paper carries the type;
   the restaurant's own tile green, cork and wine red set the rhythm.
   ========================================================================== */

:root{
  --cream:#F3EEE2;
  --paper:#F8F4EA;
  --cream-2:#EAE3D2;
  --line:#DCD3BE;
  --ink:#16221D;
  --ink-soft:#39463E;
  --muted:#6E6754;
  --tile:#3A6B58;
  --tile-d:#2C5445;
  --cork:#B0864E;
  --cork-d:#8E6B3A;
  --garnet:#7A2E3A;
  --serif:'Palatino Linotype','Book Antiqua',Palatino,'Iowan Old Style',Georgia,serif;
  --sans:'Segoe UI',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
  --pad:22px;
  --maxw:1240px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:var(--serif);line-height:1.6;font-size:17px;
}
img{display:block;width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:700;letter-spacing:-.01em;margin:0}
p{margin:0}

.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--ink);color:var(--cream);padding:10px 16px;z-index:99}

.eyebrow{
  font-family:var(--sans);font-size:11.5px;font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;color:var(--cork-d);
}
.eyebrow.garnet{color:var(--garnet)}
.eyebrow.tile{color:var(--tile-d)}
.rule{width:64px;height:3px;background:var(--cork);border:0;margin:18px 0}
.rule.garnet-bg{background:var(--garnet)}
.body{color:var(--ink-soft);margin-top:14px}
.lead{color:var(--ink-soft);font-size:19px;margin-top:14px;font-style:italic}
.note{font-style:italic;color:var(--muted);font-size:13.5px;margin-top:16px}
.reverify{font-style:italic;color:var(--muted)}

/* ---------------- buttons ---------------- */
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.btn{
  font-family:var(--sans);font-size:14.5px;font-weight:600;letter-spacing:.01em;
  padding:15px 24px;border-radius:2px;text-decoration:none;display:inline-block;
  min-height:48px;line-height:1.15;transition:transform .12s ease,opacity .12s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-solid{background:var(--garnet);color:#FBF6EA}
.btn-solid.tile-bg{background:var(--tile)}
.btn-solid.garnet-bg{background:var(--garnet)}
.btn-ghost{background:transparent;color:var(--ink);border:2px solid var(--ink)}

/* ---------------- header ---------------- */
header.site{
  position:absolute;top:0;left:0;right:0;z-index:10;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:16px var(--pad);
}
header.site .wordmark{
  font-family:var(--serif);font-weight:700;font-size:20px;color:#F6F2E6;
  text-shadow:0 1px 10px rgba(10,18,14,.55);
}
.site-nav{display:none}
.nav-cta{
  font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:#F6F2E6;text-decoration:none;
  border:1.5px solid rgba(246,242,230,.72);border-radius:2px;
  padding:11px 16px;min-height:44px;display:inline-flex;align-items:center;
  backdrop-filter:blur(4px);background:rgba(12,22,17,.28);
}

/* ---------------- hero ---------------- */
.hero{position:relative}
.hero-media{background:#E6DDC9;overflow:hidden}
.hero-media img{height:46vh;min-height:300px;object-fit:cover;object-position:50% 30%}
.hero-panel{padding:26px var(--pad) 34px}
.hero-panel h1{font-size:44px;line-height:1.03;margin-top:14px}

/* ---------------- split blocks ---------------- */
.blk{border-top:1px solid var(--line)}
.blk-media img{aspect-ratio:4/3;object-fit:cover}
.blk-body{padding:30px var(--pad) 38px}
.blk-body h2{font-size:31px;line-height:1.1;margin-top:14px}

/* ---------------- tastings list ---------------- */
.exps{list-style:none;margin:20px 0 0;padding:0}
.exps li{padding:16px 0;border-bottom:1px solid var(--line)}
.exps li:first-child{padding-top:6px}
.exp-head{display:flex;align-items:baseline;gap:10px}
.exp-head .dot{width:8px;height:8px;border-radius:50%;background:var(--cork);flex:0 0 auto;transform:translateY(-2px)}
.exp-head .name{font-size:18.5px;flex:1 1 auto;font-weight:700}
.exp-head .time{font-family:var(--sans);font-size:14.5px;font-weight:700;color:var(--garnet);white-space:nowrap}
.exps .desc{margin:7px 0 0 18px;font-size:15.5px;color:var(--ink-soft)}
.exps .desc .price{font-family:var(--sans);font-weight:700;color:var(--ink);white-space:nowrap}
/* per-tasting booking action: a real button, not a buried text link */
.exp-cta{
  display:inline-flex;align-items:center;min-height:42px;margin:11px 0 0 18px;
  padding:0 20px;background:var(--garnet);color:#FBF6EA;border-radius:2px;
  font-family:var(--sans);font-size:13.5px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;text-decoration:none;
}

/* ---------------- signature ---------------- */
.sig{padding:34px var(--pad) 38px;background:var(--paper);border-top:1px solid var(--line)}
.sig-copy h2{font-size:31px;line-height:1.12;margin-top:14px}
.sig-figs{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;margin-top:22px}
.sig-figs figure{margin:0}
.sig-figs img{aspect-ratio:3/4;object-fit:cover}
.sig-figs figure:first-child img{aspect-ratio:4/5}
.sig-figs figcaption{font-style:italic;color:var(--muted);font-size:12.5px;margin-top:8px;line-height:1.45}

/* ---------------- cards ---------------- */
.cards{padding:34px var(--pad) 6px;display:grid;gap:26px}
.card{background:var(--paper);border:1px solid var(--line)}
.card img{aspect-ratio:4/5;object-fit:cover}
.card .card-body{padding:22px 20px 24px}
.card h3{font-size:21px;margin:10px 0 0}
.card .body{font-size:15.5px;margin-top:10px}

/* ---------------- groups ---------------- */
.groups{background:var(--cream-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.groups-inner{padding:34px var(--pad) 40px}
.groups-inner h2{font-size:29px;line-height:1.12;margin-top:12px}

/* ---------------- footer ---------------- */
footer.site-footer{background:var(--tile);color:#EAF1EA;padding:36px var(--pad) 42px;font-family:var(--sans)}
.wordmark.light{color:#F4F8F2;font-family:var(--serif);font-size:21px;font-weight:700}
.foot-tag{font-size:14px;color:#C9DBCE;margin-top:8px}
.foot-claim{font-family:var(--serif);font-style:italic;font-size:13.5px;color:#B7CFBE;margin-top:14px;max-width:34ch}
.foot-cols{margin-top:24px}
footer.site-footer dl{margin:0 0 20px}
footer.site-footer dt{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#B7CFBE;margin-top:16px}
footer.site-footer dd{margin:5px 0 0;font-size:14.5px;line-height:1.55;color:#F0F6F1}
footer.site-footer a{color:#DCE9DE;text-decoration:underline;text-underline-offset:2px}
/* standalone footer links: comfortable touch height on phones */
footer.site-footer dd a{display:inline-block;min-height:44px;line-height:44px;padding-right:4px}
footer.site-footer dd a + br + a,footer.site-footer dd a:only-of-type{display:inline-block}
footer.site-footer dd br{line-height:1.2}
footer.site-footer .reverify{color:#B7CFBE;font-style:italic;font-size:13px}
.fine{font-size:11.5px;color:#B7CFBE;margin-top:26px;line-height:1.7;max-width:64ch}

/* ==========================================================================
   Desktop
   ========================================================================== */
@media (min-width:900px){
  :root{--pad:56px}
  header.site{padding:22px var(--pad);max-width:none}
  .site-nav{
    display:flex;gap:28px;font-family:var(--sans);font-size:13px;font-weight:600;
    letter-spacing:.08em;text-transform:uppercase;
  }
  .site-nav a{color:#F6F2E6;text-decoration:none;text-shadow:0 1px 10px rgba(10,18,14,.55);padding:6px 0}
  .site-nav a:hover{text-decoration:underline;text-underline-offset:5px}

  /* hero: full-bleed photo, cream "tasting mat" card laid over it */
  .hero-media img{height:76vh;min-height:520px;max-height:820px}
  .hero-panel{
    background:var(--cream);max-width:600px;
    margin:-230px 0 0 var(--pad);position:relative;padding:44px 48px 48px;
    box-shadow:0 2px 34px rgba(20,30,24,.20);
  }
  .hero-panel h1{font-size:58px}

  .blk{display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch;border-top:0}
  .blk-media img{height:100%;aspect-ratio:auto;min-height:560px}
  .blk-body{display:flex;flex-direction:column;justify-content:center;padding:64px 60px}
  .blk-body h2{font-size:42px}
  .blk.rev .blk-media{order:2}
  .blk.rev .blk-body{order:1}
  .exps{max-width:560px}

  .sig{display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:52px;padding:64px 60px}
  .sig-copy h2{font-size:42px}
  .sig-figs{margin-top:0;gap:18px}
  .sig-figs figure:first-child img{aspect-ratio:1/1;height:100%}
  .sig-figs figure:last-child img{aspect-ratio:3/4}

  .cards{grid-template-columns:1fr 1fr;gap:28px;padding:48px var(--pad) 10px;max-width:var(--maxw);margin:0 auto}
  .card img{aspect-ratio:1/1}

  .groups-inner{padding:64px 60px;max-width:var(--maxw);margin:0 auto}
  .groups-inner h2{font-size:40px}
  .groups-inner .body{max-width:62ch}

  footer.site-footer{
    display:grid;grid-template-columns:1.05fr .95fr;gap:52px;
    padding:56px 60px 60px;
  }
  .foot-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 44px;margin-top:0}
  .fine{grid-column:1 / -1;max-width:none}
}
