/* ===========================================================
   MANY Retouchers — "Light & Airy" variant
   White, generous whitespace, Inter sans, blue accent.
   =========================================================== */
:root{
  --ink:#141414; --muted:#6b6b6b; --faint:#6f6f6f;
  --line:#ececec; --bg:#ffffff; --bg-alt:#fafafa; --accent:#2f7bff;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Inter",system-ui,-apple-system,Arial,sans-serif;
  font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased;
  min-height:100vh; display:flex; flex-direction:column;
}
main{flex:1 0 auto}   /* push the footer to the bottom on short pages */
a{color:inherit}
img{max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding-left:40px;padding-right:40px}

/* ---------- nav ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 40px; border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.9); backdrop-filter:blur(10px);
}
.brand{font-size:20px;font-weight:700;letter-spacing:.02em;text-decoration:none}
.brand span{font-weight:300;color:var(--muted)}
.nav-links{display:flex;gap:34px}
.nav-links a{
  text-decoration:none;color:#444;font-size:13px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;padding:4px 0;position:relative;
}
.nav-links a:hover{color:#000}
.nav-links a.active{color:#000}
.nav-links a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--accent);
}
/* hamburger (mobile only) */
.nav-burger{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:42px; height:42px; padding:0; border:1px solid var(--line);
  background:#fff; border-radius:4px; cursor:pointer;
}
.nav-burger span{display:block;width:20px;height:2px;margin:0 auto;background:var(--ink);transition:transform .2s,opacity .2s}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{padding-top:104px;padding-bottom:78px;text-align:center}
.eyebrow{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--faint);margin-bottom:24px}
.hero h1{font-size:clamp(38px,6vw,60px);font-weight:300;letter-spacing:-.02em;line-height:1.08;margin:0 0 22px}
.hero h1 b{font-weight:600}
.hero p{font-size:19px;color:var(--muted);font-weight:300;max-width:580px;margin:0 auto 34px}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;border:1px solid var(--ink);color:var(--ink);background:none;
  text-decoration:none;padding:14px 32px;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;cursor:pointer;transition:.18s;
  font-family:inherit;
}
.btn:hover{background:var(--ink);color:#fff}
.btn-accent{border-color:var(--accent);color:var(--accent)}
.btn-accent:hover{background:var(--accent);color:#fff}

/* ---------- sections ---------- */
.section{padding-top:86px;padding-bottom:86px}
.section + .section{border-top:1px solid var(--line)}
.section-head{display:flex;align-items:baseline;gap:18px;margin-bottom:42px}
.section-head .num{font-size:13px;color:#cfcfcf;letter-spacing:.1em}
.section-head h1,.section-head h2{font-size:34px;font-weight:300;letter-spacing:-.01em;margin:0}
.section-head .eyebrow{margin:0 0 8px}
.section-intro{color:var(--muted);font-weight:300;font-size:17px;max-width:620px;margin:-26px 0 40px}
.sub-head{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin:64px 0 26px;border-top:1px solid var(--line);padding-top:30px}

/* ---------- before/after grid (masonry) ---------- */
.ba-grid{column-count:2;column-gap:28px}
.ba-item{break-inside:avoid;margin:0 0 30px}
.ba-item .swiperwidget{box-shadow:0 10px 36px rgba(0,0,0,.09)}
.ba-item figcaption{margin-top:14px;font-size:14px;color:var(--faint);letter-spacing:.02em}
.ba-grid.cols-3{column-count:3}

/* home: section CTA cards + about teaser */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:8px}
.card{display:block;text-decoration:none;border:1px solid var(--line);padding:38px 34px;transition:.18s}
.card:hover{border-color:var(--ink)}
.card h3{font-size:24px;font-weight:300;margin:0 0 8px}
.card p{color:var(--muted);font-weight:300;margin:0 0 16px;font-size:15px}
.card .go{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}

/* before/after corner tags (light pill) */
.ba-tag{
  font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#fff;
  background:rgba(20,20,20,.58);padding:7px 12px;border-radius:2px;backdrop-filter:blur(2px);
}

/* ---------- showcase (single finished images) ---------- */
.show-grid{column-count:2;column-gap:28px}
.show-item{break-inside:avoid;margin:0 0 30px}
.show-item img{display:block;width:100%;box-shadow:0 10px 36px rgba(0,0,0,.09)}
.show-item figcaption{margin-top:14px;font-size:14px;color:var(--faint)}

/* ---------- about ---------- */
.about{display:grid;grid-template-columns:1fr 1.5fr;gap:60px;align-items:start}
.about .eyebrow{margin:0}
.about p{color:#5f5f5f;font-weight:300;font-size:17px;margin:0 0 18px}
.about .stats{display:flex;gap:48px;margin-top:34px;flex-wrap:wrap}
.about .stat .n{font-size:34px;font-weight:300}
.about .stat .l{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-top:4px}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.contact-lead{color:var(--muted);font-weight:300;font-size:18px;margin:0 0 26px}
.mail-link{font-size:28px;font-weight:300;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:4px;display:inline-block}
.mail-link:hover{color:var(--accent);border-color:var(--accent)}
.socials{display:flex;gap:24px;margin-top:34px}
.socials a{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:none}
.socials a:hover{color:var(--accent)}
.cform{display:flex;flex-direction:column;gap:20px}
.cform label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);display:flex;flex-direction:column;gap:8px}
.cform input,.cform textarea{
  font-family:inherit;font-size:16px;color:var(--ink);border:1px solid var(--line);
  border-radius:2px;padding:13px 14px;background:var(--bg-alt);transition:.15s;
}
.cform input:focus,.cform textarea:focus{border-color:var(--accent);background:#fff;outline:2px solid var(--accent);outline-offset:2px}

/* visible keyboard focus ring for all interactive elements */
a:focus-visible,.btn:focus-visible,button:focus-visible,.nav-burger:focus-visible,
.cform input:focus-visible,.cform textarea:focus-visible{
  outline:2px solid var(--accent); outline-offset:3px; border-radius:2px;
}
.cform .note{font-size:11px;letter-spacing:.02em;text-transform:none;color:var(--faint)}
.cform .btn{align-self:flex-start;margin-top:4px}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);padding:34px 0;text-align:center;color:var(--faint);font-size:13px;font-weight:300}
.site-footer a{color:var(--muted);text-decoration:none;border-bottom:1px dotted #c5c5c5}
.site-footer a:hover{color:var(--accent)}

/* ---------- responsive ---------- */
@media(max-width:820px){
  .about,.contact-grid{grid-template-columns:1fr;gap:34px}
}
@media(max-width:760px){
  .wrap{padding-left:22px;padding-right:22px}
  .nav{padding:14px 22px}
  .nav-burger{display:flex}
  .nav-links{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; gap:0; padding:6px 0;
    background:#fff; border-bottom:1px solid var(--line);
    box-shadow:0 10px 24px rgba(0,0,0,.07);
  }
  .nav-links.open{display:flex}
  .nav-links a{padding:14px 22px;font-size:13px;letter-spacing:.12em}
  .nav-links a.active::after{display:none}
  .ba-grid,.show-grid,.ba-grid.cols-3{column-count:1}
  .hero{padding-top:64px;padding-bottom:50px}
  .section{padding-top:60px;padding-bottom:60px}
}
