*{box-sizing:border-box}body{margin:0;background:#f8f6f0;color:#242923;font-family:Arial,Helvetica,sans-serif;line-height:1.65}a{color:inherit}header{position:sticky;top:0;z-index:5;background:#f8f6f0f5;border-bottom:1px solid #e3e3d9}.bar{max-width:1120px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:18px 24px;gap:20px}.logo{text-decoration:none;font-family:Georgia,serif;font-size:22px}.nav{display:flex;gap:20px;flex-wrap:wrap}.nav a{text-decoration:none;font-size:14px}.wrap{max-width:1120px;margin:auto;padding:54px 24px}.hero{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:40px;min-height:510px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:11px;color:#68745e}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.15}h1{font-size:clamp(40px,6vw,76px);margin:15px 0 22px}h2{font-size:clamp(30px,4vw,48px);margin:0 0 18px}h3{font-size:25px;margin:8px 0}.lead{font-size:19px;max-width:630px;color:#545d52}.hero img{width:100%;max-height:510px;object-fit:cover;border-radius:180px 180px 8px 8px}.btn{display:inline-block;padding:13px 23px;background:#4c5b47;color:#fff;text-decoration:none;border-radius:3px;margin:12px 10px 0 0}.btn.secondary{background:transparent;border:1px solid #4c5b47;color:#4c5b47}.section{border-top:1px solid #dedfd5;padding-top:50px;margin-top:45px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.tile{border:1px solid #dedfd5;background:#fffdf8;padding:25px;text-decoration:none;min-height:155px}.tile span{color:#69745f;font-size:12px}.price{display:flex;justify-content:space-between;gap:15px;padding:15px 0;border-bottom:1px solid #e0e0d8}.price strong{text-align:right;font-weight:500}.note{font-size:13px;color:#6c7069}.faq details{padding:16px 0;border-bottom:1px solid #ddd}.faq summary{cursor:pointer;font-weight:bold}footer{background:#eaece2;padding:38px 24px;text-align:center;margin-top:55px}footer a{margin:0 9px}.crumb{font-size:13px;color:#68745e;margin-bottom:20px}.portrait-mini{width:100%;max-width:380px;border-radius:180px 180px 4px 4px} @media(max-width:700px){.bar{align-items:flex-start;flex-direction:column}.nav{gap:12px}.wrap{padding:35px 18px}.hero{grid-template-columns:1fr;gap:18px}.hero img{max-height:360px;object-position:center 25%}.grid{grid-template-columns:1fr}.price{font-size:14px}}
/* Refinements requested for the mobile-first design */
.hero img{border-radius:14px;object-position:center 22%}
.portrait-mini{border-radius:14px}
.tile{display:flex;flex-direction:column;justify-content:space-between;gap:12px;transition:border-color .2s ease}
.tile:hover{border-color:#78846f}
.tile h3{margin:0}
.tile p{margin:0;color:#53664c;font-size:14px}
.price-list{max-width:850px;background:#fffdf8;border:1px solid #dedfd5;padding:8px 24px}
@media(max-width:700px){.bar{padding:14px 18px;gap:12px}.logo{font-size:21px}.nav{gap:8px 16px}.nav a{font-size:13px}.hero{min-height:0}.hero .btn{display:flex;align-items:center;justify-content:center;width:100%;margin:10px 0 0;padding:15px 12px;text-align:center}.hero img{max-height:420px;border-radius:12px}.price-list{padding:4px 14px}.price{align-items:flex-start}.price strong{min-width:105px}.tile{min-height:115px;padding:22px}}

/* One-line hero headline on phones */
@media(max-width:700px){.hero h1{font-size:clamp(23px,6.8vw,38px);letter-spacing:-.045em;white-space:nowrap;line-height:1.12}}

/* Centered services introduction */
.services-heading{text-align:center;margin-bottom:12px}
.services-subheading{text-align:center;font-family:Georgia,'Times New Roman',serif;font-size:clamp(20px,3vw,28px);margin-bottom:30px;color:#68745e}

/* Original work photography */
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}.photo-card{margin:0;background:#f0eee8;overflow:hidden;border-radius:8px}.photo-card img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}.photo-card figcaption{padding:9px 12px;font-size:12px;color:#596052}.gallery-heading{text-align:center;margin-top:35px}.gallery-tabs{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;margin:22px 0}.gallery-tabs a{border:1px solid #cdd2c8;border-radius:50px;padding:9px 14px;text-decoration:none;font-size:13px}.gallery-tabs a:hover{background:#e4e9dd}.feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.feature-grid a{text-decoration:none}.feature-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px}.feature-grid span{display:block;padding:8px 0;font-size:14px}.site-banner{background:#e6e9df;padding:12px;text-align:center;font-size:12px;color:#4c5b47}.work-intro{max-width:780px;margin:auto;text-align:center}.training-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.training-gallery img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:8px}.photo-card img{cursor:zoom-in}@media(max-width:700px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.feature-grid{grid-template-columns:repeat(2,1fr)}.training-gallery{grid-template-columns:repeat(2,1fr)}.photo-card figcaption{font-size:11px;padding:7px}}

.photo-grid {
  gap: 12px;
}

.photo-card > a {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
}

.photo-card > a > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.price-category{font-size:24px;margin:24px 0 4px;padding-top:10px}.price-category:first-child{margin-top:6px}.price-duration{font-size:12px;color:#6c7069;font-weight:normal}.price span{flex:1}.price strong{white-space:nowrap}@media(max-width:700px){.price-category{font-size:21px}.price strong{white-space:normal}}

/* Compact pricing disclaimer */
.price-disclaimer{font-size:11px;line-height:1.4;white-space:nowrap}
@media(max-width:700px){.price-disclaimer{font-size:10px;white-space:normal}}

/* Pre-launch accessibility and responsive improvements */
:focus-visible { outline: 3px solid #86604c; outline-offset: 3px; }
img { max-width: 100%; }
@media (max-width: 480px) { .price { gap: 12px; } .price strong { text-align: right; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }


/* Typography refresh: editorial neo-grotesque inspired by maxshirko.me; original independent implementation */
:root{--type-display:Arial,Helvetica,sans-serif;--type-body:Arial,Helvetica,sans-serif}
body{font-family:var(--type-body);line-height:1.55;letter-spacing:-.012em;-webkit-font-smoothing:antialiased}
h1,h2,h3,.logo,.services-subheading{font-family:var(--type-display);font-weight:700;letter-spacing:-.055em;line-height:1.06}
h1{font-size:clamp(42px,6.8vw,86px);letter-spacing:-.067em}
h2{font-size:clamp(34px,4.6vw,60px)}
h3{font-size:clamp(22px,2.5vw,30px)}
.logo{font-weight:700;letter-spacing:-.055em;font-size:24px}
.services-subheading{font-weight:600;letter-spacing:-.04em}
.lead{font-size:clamp(18px,2.1vw,22px);line-height:1.4;letter-spacing:-.025em}
.eyebrow{font-weight:700;letter-spacing:.14em}
.nav a,.btn,.gallery-tabs a{font-weight:600;letter-spacing:-.02em}
.price-category{font-size:clamp(23px,2.8vw,32px)}
.price-disclaimer{font-weight:400;letter-spacing:-.025em}
@media(max-width:700px){.logo{font-size:22px}.hero h1{font-size:clamp(22px,6.2vw,38px);letter-spacing:-.07em;white-space:nowrap}.services-subheading{font-size:clamp(20px,5.2vw,28px)}}

@media (max-width: 700px) {
  .crumb + .hero {
    grid-template-columns: minmax(0, 1fr);
  }

  .crumb + .hero > div,
  .wrap:has(> h1) {
    container-type: inline-size;
  }

  .crumb + .hero h1,
  .wrap > h1 {
    font-size: min(38px, 5cqi);
    white-space: nowrap;
  }
}

.about-hero > div,
.about-hero + .section {
  container-type: inline-size;
}

.about-hero h1 {
  font-size: min(36px, 5.25cqi);
}

.about-hero + .section h2 {
  font-size: min(42px, 6cqi);
}

@media (max-width: 700px) {
  .grid:has(> .tile) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }

  .grid > .tile {
    min-height: 46px;
    padding: 7px 8px;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    border-radius: 5px;
  }

  .grid > .tile h3 {
    color: #000;
    font-size: 14px;
    line-height: 1.15;
    letter-spacing: -.025em;
  }

  .services-subheading {
    margin-bottom: 12px;
  }
}

@media (max-width: 700px) {
  #prais > .lead {
    font-size: min(16px, calc((100vw - 36px) * .04));
    max-width: none;
  }
}

.intro-actions,
.contact-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.intro-actions,
.contact-actions {
  justify-content: center;
}

.contact-actions {
  flex-wrap: wrap;
}

.intro-actions .btn,
.contact-actions .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin: 0;
  white-space: nowrap;
}

@media (max-width: 700px) {
  .intro-actions .btn,
  .contact-actions .btn {
    padding: 10px 8px;
    font-size: 13px;
  }
}

@media (max-width: 700px) {
  .gallery-tabs {
    flex-wrap: nowrap;
    gap: 4px;
  }

  .gallery-tabs a {
    padding: 8px 5px;
    font-size: clamp(11px, 3vw, 13px);
    white-space: nowrap;
  }
}

.service-hero {
  grid-template-columns: minmax(0, 1fr);
  min-height: 0;
}

.photo-viewer-open {
  overflow: hidden;
}

.photo-viewer {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  border: 0;
  padding: calc(60px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom));
  background: #161616;
  color: #fff;
}

.photo-viewer[open] {
  display: grid;
  grid-template: minmax(0, 1fr) / minmax(0, 1fr);
}

.photo-viewer img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.photo-viewer form {
  position: absolute;
  top: calc(8px + env(safe-area-inset-top));
  right: calc(8px + env(safe-area-inset-right));
  margin: 0;
}

.photo-viewer button {
  width: 44px;
  height: 44px;
  border: 1px solid #aaa;
  border-radius: 50%;
  background: #303030;
  color: #fff;
  font: 28px/1 Arial, sans-serif;
  cursor: pointer;
}

#zachisky-details {
  scroll-margin-top: 110px;
}

.grid > .tile p {
  flex: none;
  font-size: 0;
  line-height: 1;
}

.grid > .tile p::after {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14m-6-6 6 6-6 6'/%3E%3C/svg%3E");
}

@media (width > 700px) {
  .grid > .tile {
    min-height: 60px;
    padding: 12px 16px;
    flex-direction: row;
    align-items: center;
    border-radius: 5px;
  }

  .grid > .tile h3 {
    color: #000;
    font-size: clamp(16px, 1.7vw, 22px);
  }
}

@media (width > 700px) {
  .service-hero > div,
  .wrap:has(> h1) {
    container-type: inline-size;
  }

  .service-hero h1 {
    font-size: clamp(30px, 5.2cqi, 56px);
  }

  .wrap > h1 {
    font-size: clamp(32px, 6cqi, 64px);
  }
}
