/* A website you can update: page-only layout. Shared components come from site.css. Prefix: .web- */

/* ---------- Hero ----------
   The wide tool hero, with the lede in the slot a tool page uses for Before / Now:
   title left and lede right on wide screens, so neither half sits empty. Stacked,
   the lede comes before the demo. */
.web-top__lede .page-head__lede { margin-top: 0; }
@media (max-width: 1199px) {
  .web-top .tool-hero__inner { grid-template-areas: "text" "pair" "stage"; }
  .web-top .tool-hero__pair { margin-top: calc(var(--space-m) - var(--space-xl)); }
}
@media (max-width: 600px) {
  .web-top .tool-hero__pair { margin-top: calc(var(--space-m) - var(--space-l)); }
}

/* ---------- The workbench ---------- */
.web-banner {
  display: flex; align-items: center; min-height: var(--tap);
  padding: var(--space-xs) var(--space-s); margin-bottom: var(--space-l);
  background: var(--pale); border-radius: var(--radius-s);
  font-size: var(--text-s); font-weight: var(--weight-medium);
}
.web-bench { display: grid; grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: var(--space-xl); align-items: start; }

/* "Try it" list: the shared step list, with numbers in the circles until each is done. */
.web-try__title { font-size: var(--text-l); letter-spacing: -0.02em; margin-bottom: var(--space-m); }
.web-try__list { counter-reset: web-try; gap: var(--space-m); }
.web-try__list .steps__item { counter-increment: web-try; align-items: flex-start; color: var(--ink); line-height: 1.4; }
.web-try__list .steps__item::before {
  content: counter(web-try); width: 32px; height: 32px; margin-top: -3px;
  display: grid; place-items: center; border-color: var(--line);
  font-size: var(--text-xs); font-weight: var(--weight-medium); color: var(--ink);
}
.web-try__list .steps__item.is-done::before { content: ""; }
.web-try__list .steps__item.is-done { color: var(--ink-2); }

/* Toolbar above the practice page. */
.web-tools { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--space-xs); margin-bottom: var(--space-s); }
.web-tools__btns { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-xs); }
.web-tools .tag { min-height: 34px; font-size: var(--text-xs); }
.web-hint { margin-top: var(--space-s); color: var(--ink-2); font-size: var(--text-xs); }

/* ---------- The practice page (the business's own little website) ---------- */
.web-site { border: var(--rule-w) solid var(--rule); border-radius: var(--radius-s); padding: var(--space-m) var(--space-l) var(--space-l); background: var(--white); }
.web-site__bar { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-s); flex-wrap: wrap; padding-bottom: var(--space-s); border-bottom: var(--rule-w) solid var(--rule); }
.web-site__name { font-family: var(--serif); font-size: 22px; letter-spacing: -0.01em; }
.web-site__nav { display: flex; gap: var(--space-m); color: var(--ink-2); font-size: var(--text-xs); }
.web-hero { display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--space-l); align-items: center; padding: var(--space-l) 0; }
.web-hero__title {
  font-family: var(--serif); font-weight: var(--weight-regular); font-variation-settings: "opsz" 48;
  font-size: clamp(28px, 2.6vw, 38px); line-height: 1.12; letter-spacing: -0.025em;
}
.web-hero__sub { margin-top: var(--space-s); color: var(--ink-2); font-size: var(--text-s); }
.web-hero__pic { aspect-ratio: 4 / 3; }
.web-tint { border-radius: 4px; }
.web-tint--a { background: oklch(0.92 0.035 75); }
.web-tint--b { background: oklch(0.92 0.03 150); }
.web-tint--c { background: oklch(0.91 0.025 30); }

.web-menu__title { font-size: 20px; font-weight: var(--weight-medium); letter-spacing: -0.01em; padding-top: var(--space-m); border-top: var(--rule-w) solid var(--rule); margin-bottom: var(--space-s); }
.web-menu { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-s); }
.web-card__pic { aspect-ratio: 3 / 2; margin-bottom: var(--space-xs); }
.web-card__top { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-2xs); }
.web-card__name { font-size: var(--text-s); font-weight: var(--weight-medium); line-height: 1.3; }
.web-card__price { font-size: var(--text-s); font-variant-numeric: tabular-nums; white-space: nowrap; }
.web-card__blurb { margin-top: 4px; color: var(--ink-2); font-size: var(--text-xs); line-height: 1.45; }
.web-site__foot { margin-top: var(--space-l); padding-top: var(--space-s); border-top: var(--rule-w) solid var(--rule); color: var(--ink-2); font-size: var(--text-xs); }

/* Editing hints: dotted outlines on words you can change. Gone in Preview. */
.web-site.is-editing .editable { outline: 1px dashed var(--line); outline-offset: 2px; }
.web-site.is-editing .editable:hover { outline-color: var(--ink); }
.web-site.is-editing .editable:focus { outline: 2px solid var(--ink); }

/* Add a menu item. */
.web-add { margin-top: var(--space-s); }
.web-add__btn {
  display: flex; align-items: center; justify-content: center; gap: var(--space-2xs); width: 100%; min-height: 64px;
  border: 1.5px dashed var(--line); border-radius: var(--radius-s); background: var(--pale-2);
  font-size: var(--text-s); font-weight: var(--weight-medium);
  transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.web-add__btn:hover { background: var(--pale); border-color: var(--ink); }
.web-add__form { padding: var(--space-m); border: 1.5px solid var(--ink); border-radius: var(--radius-s); }
.web-add__head { font-size: var(--text-s); font-weight: var(--weight-medium); margin-bottom: var(--space-s); }
.web-add__fields { display: grid; grid-template-columns: 1.2fr 0.6fr 2fr; gap: var(--space-s); }
.web-add__fields .field + .field { margin-top: 0; }
.web-add__error { margin-top: var(--space-xs); font-size: var(--text-s); font-weight: var(--weight-medium); }
.web-add__btns { margin-top: var(--space-m); }
.web-site:not(.is-editing) .web-add { display: none; }

.start-again { margin-top: var(--space-m); }

/* ---------- Sections below the demo ---------- */
/* The wide hero already brings its own space underneath. */
.web-first { padding-top: 0; }

.web-lines { border-top: var(--rule-w) solid var(--rule); }
.web-lines li {
  padding: var(--space-m) 0 var(--space-l); border-bottom: var(--rule-w) solid var(--rule);
  font-size: var(--text-l); line-height: 1.35; letter-spacing: -0.015em; max-width: 36ch;
}

.web-split { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-xl); }
.web-split__text p { font-size: var(--text-l); line-height: 1.4; letter-spacing: -0.015em; }
.web-split__text .web-split__sub { margin-top: var(--space-m); color: var(--ink-2); font-size: 20px; letter-spacing: 0; }

.web-note { border-top: var(--rule-w) solid var(--ink); padding-top: var(--space-xl); margin-bottom: var(--space-2xl); max-width: 900px; }
.web-note__text { font-size: var(--text-l); line-height: 1.45; letter-spacing: -0.015em; }
.web-note .textlink { margin-top: var(--space-s); }

@media (max-width: 1100px) {
  .web-bench { grid-template-columns: 1fr; gap: var(--space-l); }
  .web-try__list { grid-template-columns: 1fr 1fr; gap: var(--space-s) var(--space-l); }
}
@media (max-width: 760px) {
  .web-menu { grid-template-columns: 1fr 1fr; }
  .web-add__fields { grid-template-columns: 1fr; }
  .web-hero { grid-template-columns: 1fr; gap: var(--space-m); padding: var(--space-m) 0; }
  .web-hero__pic { aspect-ratio: 16 / 7; order: -1; }
}
@media (max-width: 600px) {
  .web-try__list { grid-template-columns: 1fr; }
  .web-site { padding: var(--space-s); }
  .web-menu { grid-template-columns: 1fr; }
  .web-card { display: grid; grid-template-columns: 88px 1fr; gap: var(--space-s); align-items: start; }
  .web-card__pic { margin: 0; aspect-ratio: 1; }
  .web-add__form { padding: var(--space-s); }
  .web-split { grid-template-columns: 1fr; gap: var(--space-m); }
  .web-split__text p { font-size: 21px; }
  .web-split__text .web-split__sub { font-size: 18px; }
  .web-note__text { font-size: 21px; }
  .web-lines li { font-size: 21px; padding: var(--space-s) 0 var(--space-m); }
}
