:root {
  --ink: #11110f;
  --ink-soft: #3f3a34;
  --paper: #f1ede5;
  --paper-deep: #ded5c8;
  --white: #fffaf2;
  --blue: #b45a35;
  --blue-dark: #884025;
  --sky: #d9b9a6;
  --green: #c8b9a7;
  --line: rgba(17, 17, 15, 0.18);
  --line-light: rgba(255, 255, 255, 0.25);
  --shadow: 0 24px 70px rgba(47, 36, 28, 0.17);
  --sans: "Avenir Next", Avenir, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif: "Bodoni 72", Didot, Baskerville, "Times New Roman", serif;
  --frame: min(1280px, calc(100vw - 64px));
  --narrow: min(760px, calc(100vw - 48px));
  --ease: cubic-bezier(.2,.8,.2,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body {
  margin: 0;
  overflow-x: hidden;
  background-color: var(--paper);
  background-image: radial-gradient(rgba(49, 39, 30, .055) .55px, transparent .7px);
  background-size: 4px 4px;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.menu-open, body.lightbox-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
p, h1, h2, h3, h4, figure, blockquote, ul, ol { margin-top: 0; }
h1, h2, h3, h4 { line-height: .98; letter-spacing: -.035em; }
h1, h2 { font-family: var(--serif); font-weight: 400; }
h1 { font-size: clamp(3.15rem, 7vw, 6.8rem); }
h2 { font-size: clamp(2.35rem, 4.7vw, 5rem); }
h3 { font-size: clamp(1.25rem, 2.2vw, 2rem); }
h1 em, h2 em { color: var(--blue); font-weight: 400; }
main { min-height: 60vh; }
.frame { width: var(--frame); margin-inline: auto; }
.frame-wide { width: min(1560px, calc(100vw - 32px)); margin-inline: auto; }
.narrow { width: var(--narrow); margin-inline: auto; }
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.skip-link {
  position: fixed;
  z-index: 100000;
  top: 12px;
  left: 12px;
  transform: translateY(-160%);
  padding: 12px 18px;
  background: var(--white);
  color: var(--ink);
  border: 2px solid var(--ink);
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid #ffb000; outline-offset: 4px; }

.eyebrow {
  margin-bottom: 20px;
  color: var(--blue-dark);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .15em;
  line-height: 1.3;
  text-transform: uppercase;
}
.lede { max-width: 660px; color: var(--ink-soft); font-size: clamp(1.08rem, 1.45vw, 1.35rem); line-height: 1.55; }
.icon { width: 1.15em; height: 1.15em; flex: 0 0 auto; }
.button-row { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; margin-top: 34px; }
.button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 14px 22px;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: var(--white);
  font-size: .78rem;
  font-style: normal;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease);
}
.button:hover { transform: translateY(-2px); background: var(--blue); border-color: var(--blue); }
.button-small { min-height: 46px; padding: 12px 18px; }
.button-outline { background: transparent; color: var(--ink); }
.button-outline:hover { color: var(--white); }
.button-light { border-color: var(--white); background: var(--white); color: var(--ink); }
.button-light:hover { border-color: var(--sky); background: var(--sky); color: var(--ink); }
.text-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 12px;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-decoration: none;
  text-transform: uppercase;
}
.text-link .icon { transition: transform .22s var(--ease); }
.text-link:hover .icon { transform: translateX(5px); }

.offer-bar { background: var(--ink); color: var(--white); }
.offer-bar p {
  display: flex;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 0;
  padding: 7px 20px;
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-align: center;
  text-transform: uppercase;
}
.site-header {
  position: sticky;
  z-index: 500;
  top: 0;
  border-bottom: 1px solid var(--line);
  background: rgba(241, 237, 229, .95);
  backdrop-filter: blur(16px);
  transition: box-shadow .2s ease;
}
.site-header.is-scrolled { box-shadow: 0 10px 35px rgba(17, 24, 32, .08); }
.admin-bar .site-header { top: 32px; }
.header-inner {
  display: flex;
  width: min(1510px, calc(100vw - 40px));
  min-height: 88px;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  margin-inline: auto;
}
.wordmark { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.wordmark-logo { display: block; width: 48px; height: 48px; flex: 0 0 auto; overflow: hidden; border-radius: 50%; border: 1px solid var(--line); background: #777; }
.wordmark-logo img { width: 100%; height: 100%; object-fit: cover; }
.wordmark-name { display: grid; gap: 1px; line-height: 1.15; }
.wordmark-name strong { font-family: var(--serif); font-size: 1.18rem; font-weight: 400; letter-spacing: -.025em; }
.wordmark-name small { color: var(--ink-soft); font-size: .58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.site-nav { display: flex; align-items: center; gap: clamp(18px, 2vw, 34px); }
.site-nav > a:not(.button) { position: relative; padding-block: 18px; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.site-nav > a:not(.button)::after { position: absolute; right: 0; bottom: 12px; left: 0; height: 2px; transform: scaleX(0); background: var(--blue); content: ""; transition: transform .2s ease; }
.site-nav > a:hover::after, .site-nav > a[aria-current="page"]::after { transform: scaleX(1); }
.menu-button { display: none; min-width: 48px; min-height: 48px; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--ink); background: transparent; color: var(--ink); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.section-heading { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .7fr); align-items: end; gap: 50px; margin-bottom: 48px; }
.section-heading h2 { max-width: 820px; margin-bottom: 0; }
.section-heading > p { max-width: 500px; margin: 0; color: var(--ink-soft); }
.section-heading > .text-link { align-self: end; justify-self: end; }

.atelier-hero { position: relative; padding: clamp(54px, 7vw, 110px) 0 clamp(80px, 9vw, 140px); overflow: hidden; }
.atelier-hero::before { position: absolute; top: 8%; right: -7vw; width: 28vw; height: 28vw; border: 1px solid var(--line); border-radius: 50%; content: ""; opacity: .7; }
.atelier-hero-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(560px, 1.1fr); align-items: center; gap: clamp(45px, 7vw, 120px); }
.atelier-hero-copy { position: relative; z-index: 2; }
.atelier-hero-copy h1 { max-width: 750px; margin-bottom: 30px; }
.atelier-hero-copy h1 em { display: block; }
.hero-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 52px 0 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.hero-facts li { display: grid; gap: 4px; padding: 18px 18px 0 0; }
.hero-facts strong { font-size: .8rem; letter-spacing: .03em; }
.hero-facts span { color: var(--ink-soft); font-size: .72rem; line-height: 1.35; }
.atelier-hero-portraits { position: relative; min-height: clamp(560px, 53vw, 770px); }
.hero-portrait { position: absolute; overflow: hidden; margin: 0; border: 1px solid rgba(17,17,15,.14); background: var(--paper-deep); box-shadow: var(--shadow); }
.hero-portrait img { width: 100%; height: 100%; object-fit: cover; }
.hero-portrait-primary { z-index: 2; top: 4%; left: 8%; width: 52%; height: 78%; transform: rotate(-2deg); }
.hero-portrait-secondary { z-index: 1; top: 0; right: 0; width: 45%; height: 54%; transform: rotate(2.5deg); }
.hero-portrait-tertiary { z-index: 3; right: 4%; bottom: 0; width: 38%; height: 46%; transform: rotate(1deg); border: 10px solid var(--white); }
.portrait-caption { position: absolute; z-index: 4; bottom: 4%; left: 0; display: grid; gap: 3px; margin: 0; padding: 16px 18px; background: var(--blue); color: var(--white); font-size: .7rem; font-weight: 800; letter-spacing: .06em; line-height: 1.25; text-transform: uppercase; transform: rotate(-3deg); }

.audience-section { padding: clamp(80px, 9vw, 145px) 0; background: var(--white); }
.audience-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.audience-card { position: relative; display: grid; min-height: 330px; grid-template-columns: auto 1fr; align-items: end; gap: 28px; overflow: hidden; padding: clamp(28px, 4vw, 54px); background: var(--paper); text-decoration: none; transition: color .28s ease, background .28s ease; }
.audience-card::after { position: absolute; inset: 0; border: 0 solid var(--blue); content: ""; transition: border-width .2s ease; pointer-events: none; }
.audience-card:hover::after { border-width: 8px; }
.audience-number { align-self: start; font-size: .72rem; font-weight: 800; letter-spacing: .1em; }
.audience-card div { position: relative; z-index: 2; }
.audience-card p { margin-bottom: 13px; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.audience-card h3 { max-width: 440px; margin-bottom: 28px; font-family: var(--serif); font-size: clamp(2.15rem, 4vw, 4.4rem); font-weight: 400; }
.audience-card div > span { display: flex; align-items: center; gap: 10px; font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.audience-card-dark { background: var(--ink); color: var(--white); }
.audience-card-blue { background: var(--blue-dark); color: var(--white); }
.audience-card-photo { color: var(--white); }
.audience-card-photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.55) saturate(.75); transition: transform .5s var(--ease), filter .5s ease; }
.audience-card-photo:hover > img { transform: scale(1.035); filter: brightness(.48) saturate(1); }
.audience-card-photo .audience-number { position: relative; z-index: 2; }

.atelier-work-section { padding: clamp(85px, 10vw, 160px) 0; }
.editorial-gallery { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-flow: dense; gap: 12px; }
.editorial-portrait { grid-column: span 3; aspect-ratio: 4 / 5; overflow: hidden; margin: 0; background: var(--paper-deep); }
.editorial-portrait:nth-child(1), .editorial-portrait:nth-child(6) { grid-column: span 4; grid-row: span 2; }
.editorial-portrait:nth-child(3), .editorial-portrait:nth-child(7) { grid-column: span 5; aspect-ratio: 16 / 10; }
.editorial-portrait img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.editorial-portrait:hover img { transform: scale(1.025); }

.atelier-process-section { padding: clamp(80px, 10vw, 160px) 0; background: var(--ink); color: var(--white); }
.atelier-process-grid { display: grid; grid-template-columns: minmax(340px, .78fr) minmax(0, 1fr); align-items: center; gap: clamp(60px, 9vw, 150px); }
.atelier-process-photo { position: relative; }
.atelier-process-photo img { width: 100%; aspect-ratio: 1 / 1.1; object-fit: cover; filter: saturate(.75) contrast(1.04); }
.atelier-process-photo > p { position: absolute; right: -28px; bottom: 34px; display: grid; max-width: 300px; gap: 4px; margin: 0; padding: 18px 22px; background: var(--blue); transform: rotate(-2deg); }
.atelier-process-photo strong { font-family: var(--serif); font-size: 1.6rem; font-weight: 400; }
.atelier-process-photo span { font-size: .65rem; font-weight: 800; letter-spacing: .07em; line-height: 1.4; text-transform: uppercase; }
.atelier-process-copy .eyebrow { color: var(--sky); }
.atelier-process-copy h2 { max-width: 750px; margin-bottom: 28px; }
.atelier-process-copy .lede { color: rgba(255,255,255,.72); }
.atelier-steps { margin: 52px 0 36px; padding: 0; border-top: 1px solid var(--line-light); list-style: none; }
.atelier-steps li { display: grid; grid-template-columns: 48px 1fr; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--line-light); }
.atelier-steps > li > span { color: var(--sky); font-size: .7rem; font-weight: 800; letter-spacing: .08em; }
.atelier-steps h3 { margin-bottom: 8px; font-size: 1.15rem; letter-spacing: -.01em; }
.atelier-steps p { margin: 0; color: rgba(255,255,255,.68); font-size: .94rem; }

.atelier-package-section { padding: clamp(85px, 10vw, 155px) 0; background: #d9c8ba; }
.atelier-package-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border: 1px solid var(--ink); }
.atelier-package-card { display: grid; min-height: 350px; align-content: start; padding: 26px 22px; border-right: 1px solid var(--ink); text-decoration: none; transition: background .25s ease, color .25s ease; }
.atelier-package-card:last-child { border-right: 0; }
.atelier-package-card:hover { background: var(--ink); color: var(--white); }
.atelier-package-card > span { margin-bottom: 30px; font-size: .68rem; font-weight: 800; letter-spacing: .09em; }
.atelier-package-card h3 { margin-bottom: 18px; font-family: var(--serif); font-size: 1.8rem; font-weight: 400; }
.atelier-package-card strong { margin-bottom: 22px; font-size: 2.2rem; letter-spacing: -.045em; }
.atelier-package-card p { margin-bottom: auto; color: inherit; font-size: .84rem; }
.atelier-package-card em { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 35px; font-size: .68rem; font-style: normal; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.package-note { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 28px; }
.package-note p { max-width: 640px; margin: 0; font-size: .9rem; }

.atelier-review-section { padding: clamp(90px, 10vw, 160px) 0; background: var(--white); }
.atelier-review-grid { display: grid; grid-template-columns: .65fr 1.15fr .65fr; gap: clamp(30px, 5vw, 85px); align-items: start; }
.atelier-review-grid > div:first-child h2 { font-size: clamp(2.6rem, 4.6vw, 4.8rem); margin-bottom: 34px; }
.atelier-review-feature { margin: 0; padding: 0 0 0 40px; border-left: 8px solid var(--blue); }
.atelier-review-feature blockquote { margin-bottom: 30px; font-family: var(--serif); font-size: clamp(1.55rem, 2.6vw, 2.65rem); line-height: 1.3; letter-spacing: -.025em; }
.atelier-review-feature figcaption, .atelier-review-small figcaption { font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.atelier-review-small { display: grid; gap: 38px; }
.atelier-review-small figure { margin: 0; padding-top: 20px; border-top: 1px solid var(--line); }
.atelier-review-small blockquote { margin-bottom: 20px; font-family: var(--serif); font-size: 1.15rem; line-height: 1.45; }

.atelier-faq-preview { padding: clamp(85px, 10vw, 150px) 0; }
.atelier-faq-preview-grid { display: grid; grid-template-columns: .72fr 1.15fr; gap: clamp(55px, 9vw, 150px); align-items: start; }
.atelier-faq-preview h2 { margin-bottom: 25px; }
.atelier-faq-preview-grid > div:first-child > p:not(.eyebrow) { color: var(--ink-soft); }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; min-height: 78px; align-items: center; justify-content: space-between; gap: 20px; cursor: pointer; font-weight: 750; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary .icon { transition: transform .22s ease; }
.faq-list details[open] summary .icon { transform: rotate(45deg); }
.faq-list details > div { padding: 0 54px 24px 0; color: var(--ink-soft); }

.breadcrumbs { display: flex; align-items: center; gap: 10px; padding-block: 22px; color: var(--ink-soft); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.breadcrumbs a { display: inline-flex; min-height: 44px; align-items: center; text-decoration: none; }
.page-hero { padding: clamp(45px, 6vw, 90px) 0 clamp(65px, 8vw, 120px); }
.page-hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .45fr); align-items: end; gap: 60px; }
.page-hero h1 { max-width: 900px; margin-bottom: 28px; }
.page-hero-aside { justify-self: end; }
.deposit-callout, .review-note, .package-hero-aside > p:first-child { display: grid; min-width: 250px; gap: 4px; margin: 0; padding: 28px; border: 1px solid var(--ink); background: var(--white); }
.deposit-callout span, .package-hero-aside span { font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.deposit-callout strong, .package-hero-aside strong { font-family: var(--serif); font-size: 2.2rem; font-weight: 400; }
.deposit-callout small, .package-hero-aside small { color: var(--ink-soft); font-size: .72rem; }

.service-hero { padding: clamp(50px, 6vw, 95px) 0 clamp(80px, 9vw, 140px); }
.service-hero-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(520px, 1.05fr); align-items: center; gap: clamp(55px, 8vw, 125px); }
.service-hero-copy h1 { max-width: 790px; margin-bottom: 30px; }
.service-hero-media { position: relative; min-height: clamp(560px, 52vw, 740px); }
.service-image-main, .service-image-accent { position: absolute; overflow: hidden; margin: 0; box-shadow: var(--shadow); }
.service-image-main { z-index: 1; top: 0; left: 0; width: 70%; height: 86%; }
.service-image-accent { z-index: 2; right: 0; bottom: 0; width: 45%; height: 54%; border: 10px solid var(--paper); }
.service-image-main img, .service-image-accent img { width: 100%; height: 100%; object-fit: cover; }
.service-hero-note { position: absolute; z-index: 3; right: 1%; top: 8%; display: grid; max-width: 270px; gap: 4px; margin: 0; padding: 18px 20px; background: var(--blue); color: var(--white); transform: rotate(2deg); }
.service-hero-note span { font-size: .62rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.service-hero-note strong { font-family: var(--serif); font-size: 1.25rem; font-weight: 400; }
.service-fit-section { padding: clamp(80px, 9vw, 140px) 0; background: var(--white); }
.service-fit-grid { display: grid; grid-template-columns: .78fr 1.1fr; gap: clamp(55px, 9vw, 150px); }
.service-fit-grid h2 { margin-bottom: 28px; }
.service-fit-grid > div > p:last-child { max-width: 580px; color: var(--ink-soft); }
.service-fit-list { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.service-fit-list li { display: grid; grid-template-columns: 50px 1fr; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.service-fit-list span { color: var(--blue-dark); font-size: .7rem; font-weight: 800; letter-spacing: .08em; }
.service-fit-list p { margin: 0; font-family: var(--serif); font-size: 1.35rem; line-height: 1.25; }
.service-process-section, .about-principles, .contact-next { padding: clamp(80px, 9vw, 145px) 0; }
.service-process-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.service-process-grid article { min-width: 0; min-height: 310px; padding: clamp(28px, 4vw, 50px); background: var(--paper); }
.service-process-grid article > span { display: block; margin-bottom: 68px; color: var(--blue-dark); font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.service-process-grid h3 { margin-bottom: 18px; font-family: var(--serif); font-size: 1.85rem; font-weight: 400; }
.service-process-grid p { color: var(--ink-soft); font-size: .92rem; }
.service-gallery-section { padding-bottom: clamp(80px, 9vw, 140px); }
.service-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.service-gallery figure { aspect-ratio: 4 / 5; overflow: hidden; margin: 0; }
.service-gallery figure:nth-child(even) { transform: translateY(36px); }
.service-gallery img { width: 100%; height: 100%; object-fit: cover; }
.service-decision-section { padding: clamp(80px, 9vw, 140px) 0; background: var(--blue); color: var(--white); }
.service-decision-grid { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 60px; }
.service-decision-grid h2 { max-width: 900px; margin-bottom: 25px; }
.service-decision-grid p { max-width: 720px; margin-bottom: 0; color: rgba(255,255,255,.8); }
.service-decision-actions { display: grid; justify-items: start; gap: 24px; }
.service-decision-actions .button { border-color: var(--white); background: var(--white); color: var(--ink); }

.about-hero, .contact-hero { padding: clamp(50px, 7vw, 105px) 0 clamp(90px, 10vw, 155px); }
.about-hero-grid, .contact-hero-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(480px, .78fr); align-items: center; gap: clamp(60px, 9vw, 140px); }
.about-hero h1, .contact-hero h1 { margin-bottom: 28px; }
.about-hero figure { margin: 0; }
.about-hero figure img { width: 100%; aspect-ratio: 1 / 1.08; object-fit: cover; }
.studio-video-section { padding: clamp(80px, 9vw, 145px) 0; background: var(--white); }
.studio-video-grid { display: grid; grid-template-columns: .65fr 1.25fr; align-items: center; gap: clamp(50px, 8vw, 130px); }
.media-frame { position: relative; overflow: hidden; background: var(--ink); }
.media-frame::before { display: block; padding-top: 56.25%; content: ""; }
.media-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.contact-direct { display: grid; gap: 1px; margin-top: 40px; background: var(--line); border: 1px solid var(--line); }
.contact-direct a { display: grid; grid-template-columns: auto 70px 1fr; align-items: center; gap: 18px; padding: 18px; background: var(--white); text-decoration: none; }
.contact-direct span { font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.contact-direct strong { min-width: 0; overflow-wrap: anywhere; }

.package-hero-aside { max-width: 330px; }
.package-hero-aside > p:last-child { margin: 16px 0 0; color: var(--ink-soft); font-size: .78rem; }
.package-includes { padding: 30px 0; border-block: 1px solid var(--line); background: var(--white); }
.package-includes .frame { display: grid; grid-template-columns: 230px 1fr; align-items: center; gap: 40px; }
.package-includes .eyebrow { margin: 0; }
.package-includes ul { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; margin: 0; padding: 0; list-style: none; }
.package-includes li { position: relative; padding-left: 18px; font-size: .75rem; font-weight: 700; line-height: 1.35; }
.package-includes li::before { position: absolute; top: .55em; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--blue); content: ""; }
.price-section { padding: clamp(85px, 10vw, 155px) 0; }
.package-comparison { display: grid; gap: 0; border-top: 1px solid var(--ink); }
.package-comparison-card { display: grid; grid-template-columns: 50px .72fr .9fr .72fr auto; align-items: center; gap: clamp(18px, 3vw, 42px); padding: 28px 0; border-bottom: 1px solid var(--ink); }
.package-index { font-size: .68rem; font-weight: 800; letter-spacing: .09em; }
.package-comparison-title { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 18px; }
.package-comparison-title h2 { margin: 0; font-size: clamp(1.8rem, 3vw, 3.1rem); }
.package-comparison-title strong { font-size: 1.15rem; }
.package-comparison-card > p { margin: 0; color: var(--ink-soft); font-size: .84rem; }
.package-comparison-card ul { margin: 0; padding: 0; list-style: none; font-size: .78rem; }
.package-comparison-card .button { min-width: 165px; }
.package-guidance { padding: clamp(80px, 9vw, 145px) 0; background: var(--ink); color: var(--white); }
.package-guidance-grid { display: grid; grid-template-columns: .9fr 1fr; gap: clamp(60px, 9vw, 150px); align-items: center; }
.package-guidance .eyebrow { color: var(--sky); }
.package-guidance h2 { margin-bottom: 28px; }
.package-guidance-grid > div > p:not(.eyebrow) { max-width: 650px; color: rgba(255,255,255,.72); }
.package-guidance-links { display: grid; border-top: 1px solid var(--line-light); }
.package-guidance-links a { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line-light); font-family: var(--serif); font-size: 1.45rem; text-decoration: none; }
.package-guidance-links a:hover { color: var(--sky); }
.policy-banner { padding: 28px 0; background: var(--blue); color: var(--white); }
.policy-banner .frame { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.policy-banner p { margin: 0; }
.policy-banner a { font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }

.booking-intro { padding: clamp(38px, 5vw, 70px) 0 40px; }
.booking-intro-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 60px; }
.booking-intro h1 { margin-bottom: 22px; font-size: clamp(3rem, 6vw, 6.4rem); }
.booking-intro ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 24px; margin: 0; padding: 0; list-style: none; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.booking-intro li { position: relative; padding-left: 15px; }
.booking-intro li::before { position: absolute; top: .56em; left: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); content: ""; }
.booking-section { padding: 28px 0 clamp(90px, 10vw, 150px); }
.booking-layout { display: grid; grid-template-columns: minmax(260px, .38fr) minmax(0, 1fr); align-items: start; gap: clamp(36px, 6vw, 85px); }
.booking-aside { position: sticky; top: 130px; }
.admin-bar .booking-aside { top: 160px; }
.booking-aside h2 { margin-bottom: 22px; font-size: 2.5rem; }
.booking-aside > p:not(.eyebrow) { color: var(--ink-soft); }
.booking-aside ol { margin: 35px 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.booking-aside li { display: grid; grid-template-columns: 38px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.booking-aside li span { color: var(--blue-dark); font-size: .68rem; font-weight: 800; }
.booking-aside li p { margin: 0; font-size: .84rem; }
.scheduler-shell { min-width: 0; overflow: hidden; border: 1px solid var(--ink); background: var(--white); }
.scheduler-heading { display: flex; min-height: 52px; align-items: center; padding: 12px 18px; border-bottom: 1px solid var(--line); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.scheduler { display: block; width: 100%; min-height: 880px; border: 0; }
.scheduler-fallback { margin: 0; padding: 14px 18px; border-top: 1px solid var(--line); font-size: .76rem; }
.booking-question-section { padding: clamp(85px, 10vw, 150px) 0; background: var(--white); }
.booking-question-grid { display: grid; grid-template-columns: .62fr 1fr; gap: clamp(60px, 9vw, 145px); align-items: start; }
.booking-question-grid h2 { margin-bottom: 24px; }
.booking-question-grid > div:first-child > p:not(.eyebrow) { color: var(--ink-soft); }
.booking-help { display: grid; gap: 12px; margin-top: 30px; }
.booking-help a { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.booking-policy { padding: clamp(65px, 8vw, 110px) 0; }
.booking-policy .frame { max-width: 880px; }
.booking-policy h2 { margin-bottom: 22px; }

.portfolio-page-section, .work-section { padding: 40px 0 clamp(90px, 10vw, 150px); }
.portfolio-note { max-width: 720px; margin: 0 0 36px; color: var(--ink-soft); }
.gallery-toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 25px; }
.filter-button { min-height: 44px; padding: 9px 18px; border: 1px solid var(--ink); background: transparent; color: var(--ink); font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; cursor: pointer; }
.filter-button.is-active, .filter-button:hover { background: var(--ink); color: var(--white); }
.portrait-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.gallery-item { position: relative; aspect-ratio: 4 / 5; overflow: hidden; padding: 0; border: 0; background: var(--paper-deep); cursor: zoom-in; }
.gallery-item[hidden] { display: none; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.gallery-item > span { position: absolute; right: 10px; bottom: 10px; padding: 7px 10px; background: var(--white); color: var(--ink); font-size: .62rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; opacity: 0; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease; }
.gallery-item:hover img { transform: scale(1.025); }
.gallery-item:hover > span, .gallery-item:focus-visible > span { opacity: 1; transform: translateY(0); }

.reviews-section { padding: 30px 0 clamp(90px, 10vw, 150px); }
.review-masonry { columns: 3; column-gap: 18px; }
.review-card { display: inline-block; width: 100%; break-inside: avoid; margin: 0 0 18px; padding: 32px; border: 1px solid var(--line); background: var(--white); }
.review-card-wide { background: var(--sky); }
.review-card .icon { margin-bottom: 28px; color: var(--blue-dark); }
.review-card blockquote { margin-bottom: 26px; font-family: var(--serif); font-size: 1.24rem; line-height: 1.45; }
.review-card figcaption { font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.video-reviews-section { padding: clamp(85px, 10vw, 150px) 0; background: var(--ink); color: var(--white); }
.video-reviews-section .eyebrow { color: var(--sky); }
.video-review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.review-links, .question-cta { padding: 45px 0; }
.review-links .frame, .question-cta .frame { display: flex; align-items: center; justify-content: space-between; gap: 30px; }

.faq-section { padding: 20px 0 clamp(90px, 10vw, 150px); }
.faq-grid { display: grid; grid-template-columns: 220px 1fr; align-items: start; gap: clamp(50px, 8vw, 130px); }
.faq-index { position: sticky; top: 130px; display: grid; gap: 10px; }
.faq-index p { margin-bottom: 6px; font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.faq-index a { color: var(--ink-soft); font-size: .84rem; text-decoration: none; }
.question-cta { background: var(--blue); color: var(--white); }
.question-cta h2 { margin: 0; }
.question-cta .frame > div:last-child { display: grid; gap: 8px; }
.question-cta a { display: flex; align-items: center; gap: 10px; text-decoration: none; }

.hbs-wpform .wpforms-container { margin: 0 !important; }
.hbs-wpform .wpforms-field { padding: 0 0 20px !important; }
.hbs-wpform label.wpforms-field-label { margin-bottom: 7px !important; color: var(--ink) !important; font-size: .68rem !important; font-weight: 800 !important; letter-spacing: .07em !important; text-transform: uppercase; }
.hbs-wpform input[type="text"], .hbs-wpform input[type="email"], .hbs-wpform input[type="tel"], .hbs-wpform textarea, .hbs-wpform select {
  width: 100% !important;
  max-width: none !important;
  min-height: 50px !important;
  padding: 12px 14px !important;
  border: 1px solid rgba(17,24,32,.55) !important;
  border-radius: 0 !important;
  background: var(--white) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}
.hbs-wpform textarea { min-height: 150px !important; resize: vertical; }
.hbs-wpform input:focus, .hbs-wpform textarea:focus, .hbs-wpform select:focus { outline: 3px solid #ffb000 !important; outline-offset: 2px !important; border-color: var(--ink) !important; }
.hbs-wpform button[type="submit"], .hbs-wpform input[type="submit"] { min-height: 52px !important; padding: 14px 22px !important; border: 1px solid var(--ink) !important; border-radius: 0 !important; background: var(--ink) !important; color: var(--white) !important; font-size: .76rem !important; font-weight: 800 !important; letter-spacing: .08em !important; text-transform: uppercase !important; }
.hbs-wpform .wpforms-error { color: #a10000 !important; font-weight: 700 !important; }
.hbs-wpform .wpforms-submit-spinner { width: 24px !important; }
.wpforms-confirmation-container { padding: 24px !important; border: 2px solid #23733f !important; background: #eaf8ef !important; }
.wpforms-fallback { padding: 22px; border: 1px solid var(--line); background: var(--white); }

.article-page, .generic-page, .legal-page, .confirmation-page, .mini-session-section, .casting-section, .generic-content, .author-section, .guide-index-section { padding: clamp(55px, 7vw, 110px) 0 clamp(90px, 10vw, 150px); }
.article-header { max-width: 960px; margin: 0 auto 55px; }
.article-header h1 { margin-bottom: 24px; }
.article-body, .native-article-content { min-width: 0; max-width: 800px; margin-inline: auto; overflow-wrap: anywhere; }
.article-body > *, .native-article-content > * { max-width: 100%; }
.article-body h2, .native-article-content h2 { margin-top: 2.2em; font-size: clamp(2rem, 4vw, 3.8rem); }
.article-body h3, .native-article-content h3 { margin-top: 2em; }
.article-body img, .native-article-content img { height: auto; }
.native-article-content table { display: block; max-width: 100%; overflow-x: auto; }
.native-article-content pre, .native-article-content code { overflow-wrap: anywhere; white-space: pre-wrap; }
.generic-card, .guide-card, .agency-guide, .article-callout { padding: 26px; border: 1px solid var(--line); background: var(--white); }
.generic-list, .guide-list, .archive-directory, .agency-guide-grid { display: grid; gap: 18px; }
.guide-list { grid-template-columns: repeat(2, 1fr); }
.generic-page h1, .legal-page h1, .confirmation-page h1, .not-found h1 { margin-bottom: 30px; }

.site-footer { background: var(--ink); color: var(--white); }
.footer-cta { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 50px; padding-block: clamp(75px, 9vw, 135px); border-bottom: 1px solid var(--line-light); }
.footer-cta h2 { max-width: 900px; margin-bottom: 14px; }
.footer-cta p:not(.eyebrow) { max-width: 650px; margin-bottom: 0; color: rgba(255,255,255,.68); }
.footer-cta .eyebrow { color: var(--sky); }
.footer-grid { display: grid; grid-template-columns: 1.3fr repeat(3, minmax(150px, .55fr)); gap: clamp(38px, 5vw, 75px); padding-block: 65px; }
.footer-brand > p { max-width: 330px; margin-top: 22px; color: rgba(255,255,255,.65); font-size: .86rem; }
.wordmark-light .wordmark-name small { color: rgba(255,255,255,.6); }
.footer-grid > div:not(.footer-brand) { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.footer-grid h2, .footer-grid h3 { margin-bottom: 12px; color: var(--sky); font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.footer-grid a { display: flex; min-height: 32px; align-items: center; gap: 8px; color: rgba(255,255,255,.78); font-size: .78rem; text-decoration: none; }
.footer-grid a:hover { color: var(--white); }
.social-links { display: flex; flex-wrap: wrap; gap: 8px 13px; margin-top: 12px; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding-block: 20px; border-top: 1px solid var(--line-light); color: rgba(255,255,255,.5); font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; }
.footer-bottom p { margin: 0; }

.lightbox { width: 100vw; max-width: none; height: 100vh; max-height: none; margin: 0; padding: 30px; border: 0; background: rgba(17,24,32,.96); color: var(--white); }
.lightbox::backdrop { background: rgba(17,24,32,.96); }
.lightbox figure { display: grid; height: calc(100vh - 60px); grid-template-rows: 1fr auto; place-items: center; margin: 0; }
.lightbox figure img { max-width: min(92vw, 900px); max-height: calc(100vh - 110px); object-fit: contain; }
.lightbox figcaption { padding-top: 12px; font-size: .72rem; }
.lightbox-close { position: fixed; z-index: 2; top: 22px; right: 22px; display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid var(--white); background: var(--ink); color: var(--white); cursor: pointer; }
.lightbox-close .icon { transform: rotate(45deg); }

.session-guide-hero .page-hero-grid { align-items: end; }
.guide-summary { display: grid; min-width: 330px; border-top: 1px solid var(--ink); }
.guide-summary p { display: grid; grid-template-columns: 115px 1fr; align-items: baseline; gap: 18px; margin: 0; padding: 17px 0; border-bottom: 1px solid var(--ink); }
.guide-summary strong { font-family: var(--serif); font-size: 1.55rem; font-weight: 400; line-height: 1; }
.guide-summary span { color: var(--ink-soft); font-size: .69rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.guide-steps-section { padding: clamp(80px, 9vw, 140px) 0; background: var(--white); }
.guide-steps { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 0; padding: 0; border: 1px solid var(--ink); list-style: none; }
.guide-steps li { min-height: 300px; padding: 30px; border-right: 1px solid var(--ink); }
.guide-steps li:last-child { border-right: 0; }
.guide-steps > li > span { display: block; margin-bottom: 48px; color: var(--blue-dark); font-family: var(--serif); font-size: 1.7rem; }
.guide-steps h3 { margin-bottom: 18px; font-family: var(--serif); font-size: 2rem; font-weight: 400; }
.guide-steps p { margin: 0; color: var(--ink-soft); font-size: .9rem; }

.guide-direction-section { padding: clamp(80px, 10vw, 155px) 0; background: var(--ink); color: var(--white); }
.guide-direction-grid { display: grid; grid-template-columns: minmax(320px, .72fr) minmax(0, 1fr); align-items: center; gap: clamp(60px, 10vw, 160px); }
.guide-direction-grid figure { margin: 0; }
.guide-direction-grid img { width: 100%; max-height: 720px; aspect-ratio: 3 / 4; object-fit: cover; }
.guide-direction-grid .eyebrow { color: var(--sky); }
.guide-direction-grid h2 { max-width: 780px; margin-bottom: 30px; }
.guide-direction-grid .lede { color: rgba(255,255,255,.76); }
.guide-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 42px 0 0; padding: 0; border-top: 1px solid var(--line-light); list-style: none; }
.guide-checks li { position: relative; padding: 18px 18px 18px 22px; border-bottom: 1px solid var(--line-light); font-size: .82rem; font-weight: 700; }
.guide-checks li::before { position: absolute; top: 1.75em; left: 0; width: 9px; height: 2px; background: var(--blue); content: ""; }

.guide-bring-section { padding: clamp(85px, 10vw, 155px) 0; }
.guide-bring-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(60px, 9vw, 145px); }
.guide-bring-grid h2 { max-width: 740px; margin-bottom: 28px; }
.guide-bring-grid > div > p:not(.eyebrow) { color: var(--ink-soft); }
.guide-bring-grid figure { margin: 0; }
.guide-bring-grid img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
.guide-checks-dark { grid-template-columns: 1fr; border-top-color: var(--line); }
.guide-checks-dark li { border-bottom-color: var(--line); }

.guide-options-section { padding: clamp(80px, 9vw, 140px) 0; border-block: 1px solid var(--line); background: var(--white); }
.guide-options-grid { display: grid; grid-template-columns: repeat(2, 1fr); border: 1px solid var(--ink); }
.guide-options-grid article { min-height: 260px; padding: clamp(30px, 5vw, 65px); }
.guide-options-grid article + article { border-left: 1px solid var(--ink); background: var(--paper-deep); }
.guide-options-grid span { display: block; margin-bottom: 38px; color: var(--blue-dark); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.guide-options-grid h3 { margin-bottom: 18px; font-family: var(--serif); font-size: clamp(2rem, 3.2vw, 3.3rem); font-weight: 400; }
.guide-options-grid p { max-width: 540px; margin: 0; color: var(--ink-soft); }

.guide-after-section { padding: clamp(85px, 10vw, 155px) 0; }
.guide-after-grid { display: grid; grid-template-columns: .75fr 1.1fr; gap: clamp(60px, 9vw, 145px); }
.guide-after-grid ol { margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }
.guide-after-grid li { display: grid; grid-template-columns: 48px 1fr; gap: 20px; padding: 22px 0; border-bottom: 1px solid var(--ink); }
.guide-after-grid li span { color: var(--blue-dark); font-size: .7rem; font-weight: 800; }
.guide-after-grid li p { margin: 0; }
.guide-policy-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 70px; border: 1px solid var(--ink); }
.guide-policy-grid div { min-height: 150px; padding: 24px; border-right: 1px solid var(--ink); }
.guide-policy-grid div:last-child { border-right: 0; }
.guide-policy-grid strong { display: block; margin-bottom: 20px; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.guide-policy-grid p { margin: 0; color: var(--ink-soft); font-size: .82rem; }

.guide-cta { padding: clamp(60px, 7vw, 100px) 0; background: var(--blue-dark); color: var(--white); }
.guide-cta .frame { display: flex; align-items: end; justify-content: space-between; gap: 50px; }
.guide-cta .eyebrow { color: var(--sky); }
.guide-cta h2 { margin: 0; }
.guide-cta .button-row { margin: 0; }

@media (max-width: 1180px) {
  :root { --frame: min(1120px, calc(100vw - 48px)); }
  .site-nav { gap: 17px; }
  .site-nav > a:not(.button) { font-size: .66rem; }
  .atelier-hero-grid, .service-hero-grid { grid-template-columns: minmax(0, .9fr) minmax(470px, 1fr); gap: 50px; }
  .atelier-package-grid { grid-template-columns: repeat(3, 1fr); }
  .atelier-package-card { border-bottom: 1px solid var(--ink); }
  .atelier-package-card:nth-child(3) { border-right: 0; }
  .atelier-package-card:last-child { border-right: 1px solid var(--ink); border-bottom: 0; }
  .atelier-review-grid { grid-template-columns: .8fr 1.3fr; }
  .atelier-review-small { grid-column: 2; grid-template-columns: repeat(2, 1fr); }
  .package-comparison-card { grid-template-columns: 40px .7fr .9fr auto; }
  .package-comparison-card ul { display: none; }
  .footer-grid { grid-template-columns: 1.2fr repeat(3, 1fr); }
}

@media (max-width: 900px) {
  :root { --frame: calc(100vw - 40px); }
  .admin-bar .site-header { top: 46px; }
  .header-inner { width: calc(100vw - 28px); min-height: 74px; }
  .menu-button { display: inline-flex; }
  .site-nav { position: fixed; z-index: 510; inset: calc(74px + 34px) 0 0; display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 22px; background: var(--paper); opacity: 0; pointer-events: none; transform: translateY(-12px); transition: opacity .2s ease, transform .2s ease; }
  .admin-bar .site-nav { inset: calc(74px + 34px + 46px) 0 0; }
  .menu-open .site-nav { opacity: 1; pointer-events: auto; transform: translateY(0); }
  .site-nav > a:not(.button) { display: flex; min-height: 58px; align-items: center; padding: 12px 5px; border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: 1.5rem; font-weight: 400; letter-spacing: -.02em; text-transform: none; }
  .site-nav > a:not(.button)::after { display: none; }
  .site-nav .button { margin-top: 22px; }
  .section-heading { grid-template-columns: 1fr; align-items: start; gap: 22px; }
  .section-heading > .text-link { justify-self: start; }
  .atelier-hero-grid, .service-hero-grid { grid-template-columns: 1fr; }
  .atelier-hero { padding-top: 58px; }
  .atelier-hero-copy h1 { max-width: 780px; }
  .atelier-hero-portraits, .service-hero-media { min-height: 660px; }
  .audience-card { min-height: 280px; }
  .editorial-portrait, .editorial-portrait:nth-child(1), .editorial-portrait:nth-child(6) { grid-column: span 6; grid-row: auto; }
  .editorial-portrait:nth-child(3), .editorial-portrait:nth-child(7) { grid-column: span 6; aspect-ratio: 4 / 5; }
  .atelier-process-grid, .atelier-faq-preview-grid, .service-fit-grid, .package-guidance-grid, .booking-question-grid, .about-hero-grid, .contact-hero-grid, .studio-video-grid { grid-template-columns: 1fr; }
  .atelier-process-photo { max-width: 620px; }
  .atelier-review-grid { grid-template-columns: 1fr; }
  .atelier-review-small { grid-column: auto; }
  .service-process-grid { grid-template-columns: 1fr; }
  .service-process-grid article { min-height: 0; }
  .service-process-grid article > span { margin-bottom: 32px; }
  .service-decision-grid { grid-template-columns: 1fr; align-items: start; }
  .package-includes .frame { grid-template-columns: 1fr; gap: 20px; }
  .package-includes ul { grid-template-columns: repeat(2, 1fr); }
  .booking-intro-grid, .booking-layout { grid-template-columns: 1fr; }
  .booking-intro ul { justify-content: flex-start; }
  .booking-aside { position: static; }
  .page-hero-grid { grid-template-columns: 1fr; }
  .page-hero-aside { justify-self: start; }
  .portrait-grid { grid-template-columns: repeat(3, 1fr); }
  .review-masonry { columns: 2; }
  .video-review-grid { grid-template-columns: 1fr; }
  .faq-grid { grid-template-columns: 1fr; }
  .faq-index { position: static; display: flex; flex-wrap: wrap; }
  .guide-steps { grid-template-columns: repeat(2, 1fr); }
  .guide-steps li { border-bottom: 1px solid var(--ink); }
  .guide-steps li:nth-child(2) { border-right: 0; }
  .guide-steps li:nth-last-child(-n+2) { border-bottom: 0; }
  .guide-direction-grid, .guide-bring-grid, .guide-after-grid { grid-template-columns: 1fr; }
  .guide-direction-grid figure { max-width: 560px; }
  .guide-policy-grid { grid-template-columns: repeat(2, 1fr); }
  .guide-policy-grid div { border-bottom: 1px solid var(--ink); }
  .guide-policy-grid div:nth-child(2) { border-right: 0; }
  .guide-policy-grid div:nth-last-child(-n+2) { border-bottom: 0; }
  .guide-cta .frame { align-items: flex-start; flex-direction: column; }
  .footer-cta { grid-template-columns: 1fr; align-items: start; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  :root { --frame: calc(100vw - 28px); --narrow: calc(100vw - 28px); }
  body { font-size: 16px; }
  h1 { font-size: clamp(2.8rem, 15vw, 4.5rem); }
  h2 { font-size: clamp(2.2rem, 11vw, 3.6rem); }
  .offer-bar p span:nth-child(1), .offer-bar p span:nth-child(2), .offer-bar p span:nth-child(4), .offer-bar p span:nth-child(5) { display: none; }
  .header-inner { min-height: 68px; }
  .wordmark-logo { width: 40px; height: 40px; }
  .wordmark-name strong { font-size: 1rem; }
  .wordmark-name small { display: none; }
  .site-nav { inset: calc(68px + 34px) 0 0; }
  .admin-bar .site-nav { inset: calc(68px + 34px + 46px) 0 0; }
  .button-row { align-items: stretch; }
  .button-row .button { width: 100%; }
  .atelier-hero-grid { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .atelier-hero-copy { display: contents; }
  .atelier-hero-copy > .eyebrow { order: 1; }
  .atelier-hero-copy > h1 { order: 2; }
  .atelier-hero-copy > .lede { order: 3; }
  .atelier-hero-copy > .button-row { order: 4; }
  .atelier-hero-portraits { order: 5; margin-top: 46px; }
  .atelier-hero-copy > .hero-facts { order: 6; margin-top: 42px; }
  .hero-facts { grid-template-columns: 1fr; }
  .hero-facts li { grid-template-columns: 130px 1fr; padding: 13px 0; border-bottom: 1px solid var(--line); }
  .atelier-hero-portraits, .service-hero-media { min-height: 500px; }
  .hero-portrait-primary { left: 0; width: 66%; height: 75%; }
  .hero-portrait-secondary { width: 48%; height: 48%; }
  .hero-portrait-tertiary { right: 1%; width: 43%; height: 42%; border-width: 6px; }
  .portrait-caption { bottom: 0; left: 2%; }
  .audience-grid { grid-template-columns: 1fr; }
  .audience-card { min-height: 255px; }
  .editorial-gallery { gap: 6px; }
  .editorial-portrait, .editorial-portrait:nth-child(1), .editorial-portrait:nth-child(3), .editorial-portrait:nth-child(6), .editorial-portrait:nth-child(7) { grid-column: span 6; aspect-ratio: 4 / 5; }
  .atelier-process-photo > p { right: -6px; bottom: 16px; max-width: 250px; }
  .atelier-steps li { grid-template-columns: 36px 1fr; gap: 14px; }
  .atelier-package-grid { grid-template-columns: 1fr; }
  .atelier-package-card { min-height: 285px; border-right: 0 !important; border-bottom: 1px solid var(--ink) !important; }
  .atelier-package-card:last-child { border-bottom: 0 !important; }
  .package-note, .policy-banner .frame, .review-links .frame, .question-cta .frame { align-items: flex-start; flex-direction: column; }
  .atelier-review-feature { padding-left: 22px; border-left-width: 5px; }
  .atelier-review-small { grid-template-columns: 1fr; }
  .service-image-main { width: 75%; height: 80%; }
  .service-image-accent { width: 48%; height: 48%; border-width: 6px; }
  .service-hero-note { top: auto; right: 0; bottom: 4%; max-width: 225px; }
  .service-fit-list li { grid-template-columns: 36px 1fr; gap: 14px; }
  .service-gallery { grid-template-columns: repeat(2, 1fr); gap: 6px; }
  .service-gallery figure:nth-child(even) { transform: none; }
  .contact-direct a { grid-template-columns: auto 1fr; }
  .contact-direct strong { grid-column: 1 / -1; padding-left: 40px; }
  .package-includes ul { grid-template-columns: 1fr; }
  .package-comparison-card { grid-template-columns: 32px 1fr auto; gap: 14px; }
  .package-comparison-title { display: block; }
  .package-comparison-title strong { display: block; margin-top: 5px; }
  .package-comparison-card > p { grid-column: 2 / -1; }
  .package-comparison-card .button { grid-column: 2 / -1; width: 100%; }
  .scheduler { min-height: 950px; }
  .portrait-grid { grid-template-columns: repeat(2, 1fr); gap: 6px; }
  .review-masonry { columns: 1; }
  .faq-list summary { min-height: 70px; }
  .faq-list details > div { padding-right: 20px; }
  .guide-summary { min-width: 0; }
  .guide-summary p { grid-template-columns: 105px 1fr; }
  .guide-steps { grid-template-columns: 1fr; }
  .guide-steps li { min-height: 0; border-right: 0; border-bottom: 1px solid var(--ink) !important; }
  .guide-steps li:last-child { border-bottom: 0 !important; }
  .guide-steps > li > span { margin-bottom: 28px; }
  .guide-checks { grid-template-columns: 1fr; }
  .guide-options-grid { grid-template-columns: 1fr; }
  .guide-options-grid article + article { border-top: 1px solid var(--ink); border-left: 0; }
  .guide-policy-grid { grid-template-columns: 1fr; }
  .guide-policy-grid div { min-height: 0; border-right: 0; border-bottom: 1px solid var(--ink) !important; }
  .guide-policy-grid div:last-child { border-bottom: 0 !important; }
  .guide-cta .button-row { width: 100%; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 7px; }
}

@media (max-width: 380px) {
  .wordmark-name strong { font-size: .9rem; }
  .menu-button span { display: none; }
  .atelier-hero-portraits, .service-hero-media { min-height: 430px; }
  .hero-facts li { grid-template-columns: 1fr; }
  .portrait-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* 2.3 — continuous portfolio and corporate conversion path */
.mobile-header-book { display: none; }

.portfolio-home-hero { padding: clamp(44px, 5.5vw, 84px) 0 clamp(78px, 9vw, 135px); }
.portfolio-home-hero-grid { display: grid; grid-template-columns: minmax(390px, .65fr) minmax(660px, 1.2fr); align-items: center; gap: clamp(38px, 5vw, 84px); margin-bottom: clamp(42px, 5vw, 72px); }
.portfolio-home-hero-copy { padding-left: clamp(0px, 2vw, 34px); }
.portfolio-home-hero-copy h1 { max-width: 660px; margin-bottom: 28px; font-size: clamp(3.3rem, 5.3vw, 5.8rem); }
.portfolio-home-hero-copy .lede { max-width: 590px; }
.portfolio-hero-collage { display: grid; height: clamp(540px, 50vw, 730px); grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: repeat(10, minmax(0, 1fr)); gap: 7px; overflow: hidden; background: var(--ink); }
.portfolio-hero-collage-item { overflow: hidden; margin: 0; background: var(--paper-deep); }
.portfolio-hero-collage-item:nth-child(1) { grid-area: 1 / 1 / 7 / 6; }
.portfolio-hero-collage-item:nth-child(2) { grid-area: 1 / 6 / 5 / 9; }
.portfolio-hero-collage-item:nth-child(3) { grid-area: 1 / 9 / 6 / 13; }
.portfolio-hero-collage-item:nth-child(4) { grid-area: 5 / 6 / 11 / 10; }
.portfolio-hero-collage-item:nth-child(5) { grid-area: 7 / 1 / 11 / 4; }
.portfolio-hero-collage-item:nth-child(6) { grid-area: 7 / 4 / 11 / 6; }
.portfolio-hero-collage-item:nth-child(7) { grid-area: 6 / 10 / 11 / 13; }
.portfolio-hero-collage-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.portfolio-hero-collage-item:hover img { transform: scale(1.025); }
.portfolio-continuation { display: grid; grid-template-columns: 1fr; gap: 8px; }
.portfolio-mosaic-group { display: grid; aspect-ratio: 2 / 1; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 8px; }
.portfolio-mosaic-group .gallery-item { width: 100%; height: 100%; aspect-ratio: auto; background: var(--photo-matte, #d5cabd); }
.portfolio-mosaic-feature-left > .gallery-item:first-child { grid-area: 1 / 1 / 3 / 3; }
.portfolio-mosaic-feature-right > .gallery-item:first-child { grid-area: 1 / 4 / 3 / 6; }
.portfolio-mosaic-feature-final-left { aspect-ratio: 8 / 5; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: repeat(3, minmax(0, 1fr)); }
.portfolio-mosaic-feature-final-left > .gallery-item:first-child { grid-area: 1 / 1 / 4 / 4; }
.portfolio-continuation .gallery-item img { object-fit: cover; object-position: center; }
.portfolio-continuation .gallery-item:hover img { transform: none; }

.team-booking-section { padding: clamp(78px, 9vw, 138px) 0 clamp(88px, 10vw, 148px); background: var(--ink); color: var(--white); }
.team-booking-intro { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(330px, .65fr); align-items: end; gap: clamp(45px, 8vw, 130px); margin-bottom: clamp(42px, 5vw, 68px); }
.team-booking-intro .eyebrow { color: var(--sky); }
.team-booking-intro h2 { max-width: 840px; margin: 0; }
.team-booking-intro > div:last-child > p { max-width: 560px; margin-bottom: 28px; color: rgba(255,255,255,.73); }
.team-portrait-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.team-gallery-item { background: #28231f; }

.corporate-contact .contact-hero-grid { align-items: start; }
.corporate-contact-details { margin-top: 38px; border-top: 1px solid var(--ink); }
.corporate-contact-details > p { margin: 0; padding: 15px 0 10px; font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.corporate-contact-details ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; border-bottom: 1px solid var(--ink); list-style: none; }
.corporate-contact-details li { position: relative; padding: 13px 18px 13px 20px; border-top: 1px solid var(--line); font-size: .82rem; font-weight: 700; }
.corporate-contact-details li::before { position: absolute; top: 1.3rem; left: 0; width: 9px; height: 2px; background: var(--blue); content: ""; }
.contact-individual-note { margin-top: 26px; color: var(--ink-soft); font-size: .82rem; }
.contact-individual-note a { font-weight: 750; }
.corporate-contact .wpforms-shell { padding: clamp(26px, 4vw, 48px); border: 1px solid var(--ink); background: var(--white); box-shadow: var(--shadow); }

.compact-about { padding: clamp(70px, 9vw, 130px) 0; }
.compact-about-grid { display: grid; grid-template-columns: minmax(280px, .7fr) minmax(0, 1fr); align-items: center; gap: clamp(46px, 8vw, 125px); }
.compact-about figure { margin: 0; }
.compact-about figure img { width: 100%; aspect-ratio: 1 / 1.05; object-fit: cover; }
.compact-about h1, .compact-about h2 { max-width: 760px; margin-bottom: 25px; }
.compact-about .button { margin-top: 18px; }

.simple-page { padding: clamp(64px, 8vw, 120px) 0 clamp(85px, 10vw, 150px); }
.simple-page-heading { max-width: 900px; margin-bottom: clamp(42px, 6vw, 72px); }
.simple-page-heading h1 { margin-bottom: 26px; }
.simple-page-heading .lede { margin-bottom: 0; }
.simple-two-column { display: grid; grid-template-columns: minmax(300px, .62fr) minmax(0, 1fr); align-items: start; gap: clamp(55px, 9vw, 145px); }
.simple-two-column > .simple-page-heading { position: sticky; top: 132px; margin-bottom: 0; }
.admin-bar .simple-two-column > .simple-page-heading { top: 164px; }

.page-photo-collage { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); height: clamp(230px, 24vw, 390px); gap: 6px; overflow: hidden; background: var(--ink); }
.page-photo-collage-item { min-width: 0; margin: 0; overflow: hidden; background: var(--paper-deep); }
.page-photo-collage-item img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.simple-faq .page-photo-collage { height: auto; aspect-ratio: 3 / 1; margin-top: 38px; }
.simple-reviews > .frame > .page-photo-collage { height: auto; aspect-ratio: 3 / 1; margin-bottom: clamp(42px, 6vw, 72px); }
.corporate-contact .page-photo-collage { height: clamp(210px, 24vw, 315px); margin: 34px 0; }
.booking-intro-grid { display: grid; grid-template-columns: minmax(320px, .75fr) minmax(480px, 1fr); align-items: end; gap: clamp(45px, 8vw, 105px); margin-bottom: 38px; }
.booking-intro-grid .booking-simple-heading { margin: 0; }
.booking-intro-grid .page-photo-collage { height: auto; aspect-ratio: 12 / 5; }

.conversion-packages { padding-top: clamp(42px, 5vw, 76px); }
.conversion-packages .simple-page-heading { max-width: none; margin-bottom: 30px; }
.package-heading-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(340px, .65fr); align-items: end; gap: clamp(34px, 6vw, 92px); padding-bottom: 30px; border-bottom: 1px solid var(--ink); }
.package-heading-row h1 { margin: 0; font-size: clamp(3.1rem, 5.5vw, 5.5rem); }
.package-heading-copy { max-width: 560px; justify-self: end; }
.package-heading-row .lede { margin: 0 0 10px; color: var(--ink); font-size: clamp(1.05rem, 1.35vw, 1.25rem); font-weight: 700; }
.package-heading-copy > p:last-child { margin: 0; color: var(--ink-soft); font-size: .82rem; line-height: 1.55; }
.package-included-panel { margin-bottom: 30px; padding: clamp(24px, 3vw, 38px); border: 1px solid var(--ink); background: var(--white); box-shadow: 0 12px 30px rgba(47, 36, 28, .08); }
.package-included-panel h2 { margin: 0 0 22px; font-size: clamp(2rem, 2.6vw, 3rem); }
.package-included-panel > ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.package-included-panel li { position: relative; min-height: 132px; padding: 20px 18px 18px 46px; border: 1px solid rgba(17, 17, 15, .18); background: var(--paper); }
.package-included-panel li::before { position: absolute; top: 20px; left: 18px; display: grid; width: 19px; height: 19px; place-items: center; border: 1px solid var(--blue-dark); border-radius: 50%; color: var(--blue-dark); content: "✓"; font-size: .67rem; font-weight: 900; line-height: 1; }
.package-included-panel li > strong { display: block; margin-bottom: 8px; color: var(--ink); font-size: .86rem; line-height: 1.3; }
.package-included-panel li > span { display: block; color: var(--ink-soft); font-size: .75rem; line-height: 1.5; }
.conversion-package-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; border: 0; background: transparent; }
.conversion-package-card {
  --package-accent: var(--blue);
  --package-tint: var(--white);
  grid-column: span 2;
  min-height: 0;
  padding: 28px;
  border: 1px solid rgba(17, 17, 15, .2);
  border-top: 8px solid var(--package-accent);
  background: var(--package-tint);
  color: var(--ink);
  box-shadow: 0 14px 34px rgba(47, 36, 28, .1);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}
.conversion-package-card:nth-child(4) { grid-column: 2 / span 2; }
.conversion-package-card:nth-child(5) { grid-column: 4 / span 2; }
.conversion-package-card[data-package="Bronze"] { --package-accent: #7a3f29; --package-tint: #ead8cd; }
.conversion-package-card[data-package="Silver"] { --package-accent: #4f585b; --package-tint: #dfe2e1; }
.conversion-package-card[data-package="Gold"] { --package-accent: #765000; --package-tint: #ead7ad; }
.conversion-package-card[data-package="Platinum"] { --package-accent: #555b5f; --package-tint: #d5d4d0; }
.conversion-package-card[data-package="Diamond"] { --package-accent: #385b63; --package-tint: #dce7e5; }
.conversion-package-card:hover { transform: translateY(-4px); border-color: var(--package-accent); background: var(--package-tint); color: var(--ink); box-shadow: 0 22px 48px rgba(47, 36, 28, .17); }
.conversion-package-card > span { margin-bottom: 16px; color: var(--package-accent); font-size: .72rem; }
.conversion-package-card h2 { margin-bottom: 10px; font-family: var(--serif); font-size: clamp(2.35rem, 3.4vw, 3.35rem); font-weight: 400; }
.conversion-package-card > strong { margin-bottom: 18px; font-size: clamp(2.85rem, 4vw, 4rem); line-height: 1; letter-spacing: -.055em; }
.conversion-package-card .package-fit { min-height: 190px; margin: 22px 0 0; color: var(--ink-soft); font-size: .86rem; line-height: 1.45; }
.conversion-package-card .package-fit small { display: block; margin-bottom: 7px; color: var(--package-accent); font-size: .65rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.conversion-package-card .package-fit > p { min-height: 48px; margin-bottom: 10px; color: var(--ink); font-weight: 700; }
.conversion-package-card .package-quantities { display: grid; gap: 0; margin: 0; padding: 0; border-top: 1px solid rgba(17, 17, 15, .26); list-style: none; font-size: 1rem; font-weight: 750; }
.conversion-package-card .package-quantities li { padding: 10px 0; border-bottom: 1px solid rgba(17, 17, 15, .2); }
.conversion-package-card .package-examples { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; list-style: none; }
.conversion-package-card .package-examples li { padding: 5px 8px; border: 1px solid rgba(17, 17, 15, .18); background: rgba(255, 255, 255, .42); color: var(--ink-soft); font-size: .64rem; font-weight: 700; line-height: 1.25; }
.package-example-collage { aspect-ratio: 1; margin: 20px -28px 0; overflow: hidden; border-top: 1px solid rgba(17, 17, 15, .18); background: var(--ink); }
.package-example-collage img { width: 100%; height: 100%; object-fit: cover; }
.package-book-link { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 0 -28px -28px; padding: 15px 17px; background: var(--ink); color: var(--white); font-size: .68rem; font-style: normal; font-weight: 800; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.package-book-link:hover { background: var(--package-accent); }
.package-gallery-note { display: grid; grid-template-columns: minmax(170px, .27fr) 1fr; gap: clamp(28px, 5vw, 70px); margin-top: 22px; padding: 24px 28px; border: 1px solid var(--ink); background: transparent; }
.package-gallery-note strong { font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }
.package-gallery-note p { max-width: 760px; margin: 0; color: var(--ink-soft); font-size: .82rem; }
.package-deposit-line { display: flex; align-items: center; justify-content: space-between; gap: 35px; padding: 24px 0 0; font-size: .84rem; }
.package-deposit-line p { margin: 0; }

.conversion-faq-list details:first-child { border-top-color: var(--ink); }
.conversion-faq-list details:last-child { border-bottom-color: var(--ink); }
.conversion-faq-list details > div p { max-width: 750px; }
.conversion-faq-list .text-link { margin-top: 8px; }

.reviews-heading { display: flex; max-width: none; align-items: end; justify-content: space-between; gap: 50px; }
.reviews-heading > div { max-width: 850px; }
.review-proof { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin: -10px 0 clamp(32px, 5vw, 58px); padding: 20px 24px; border: 1px solid var(--ink); background: #d9c8ba; }
.review-proof-score { display: flex; align-items: center; gap: 15px; }
.review-proof-score strong { font-size: .8rem; letter-spacing: .04em; text-transform: uppercase; }
.review-proof-score > span:last-child { color: var(--ink-soft); font-size: .76rem; font-weight: 700; }
.review-stars { color: #8d3f28; font-size: .88rem; letter-spacing: .1em; }
.review-proof .text-link { flex: 0 0 auto; }
.conversion-review-grid { columns: 3; }
.conversion-review-grid .review-card-wide { background: #d9c8ba; }
.conversion-review-grid .review-card figcaption small { display: block; margin-top: 7px; color: var(--ink-soft); font-size: .58rem; font-weight: 700; letter-spacing: .06em; }

.booking-simple-frame { max-width: 1120px; }
.booking-simple-heading { margin-bottom: 38px; }
.simple-booking .scheduler { min-height: 930px; }
.book-support-line { display: flex; align-items: flex-start; justify-content: space-between; gap: 35px; padding-top: 22px; color: var(--ink-soft); font-size: .82rem; }
.book-support-line p { margin: 0; }

.footer-grid-simple { grid-template-columns: 1.35fr .65fr .85fr; }
.site-footer .footer-cta h2 { margin: 0; }
.not-found { width: var(--narrow); margin: 0 auto; padding: clamp(90px, 12vw, 180px) 0; }

@media (max-width: 1180px) {
  .portfolio-home-hero-grid { grid-template-columns: minmax(320px, .65fr) minmax(560px, 1fr); gap: 42px; }
  .portfolio-hero-collage { height: 610px; }
  .conversion-package-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .conversion-package-card, .conversion-package-card:nth-child(4), .conversion-package-card:nth-child(5) { grid-column: auto; border: 1px solid rgba(17, 17, 15, .2); border-top: 8px solid var(--package-accent); }
  .conversion-package-card:last-child { width: calc(50% - 8px); grid-column: 1 / -1; justify-self: center; }
  .conversion-package-card .package-fit { min-height: 170px; }
}

@media (max-width: 900px) {
  .mobile-header-book { display: inline-flex; min-height: 42px; align-items: center; margin-left: auto; padding: 8px 13px; border: 1px solid var(--ink); font-size: .65rem; font-weight: 800; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
  .site-nav {
    inset: 74px 0 auto;
    height: calc(100dvh - 74px);
    overflow-y: auto;
    border-top: 1px solid var(--line);
    box-shadow: 0 24px 60px rgba(17, 17, 15, .16);
    overscroll-behavior: contain;
  }
  .admin-bar .site-nav {
    inset: 74px 0 auto;
    height: calc(100dvh - 74px - 46px);
  }
  .portfolio-home-hero-grid, .compact-about-grid, .simple-two-column, .team-booking-intro, .booking-intro-grid { grid-template-columns: 1fr; }
  .portfolio-home-hero-copy { max-width: 760px; padding-left: 0; }
  .portfolio-hero-collage { height: min(76vw, 680px); }
  .portfolio-continuation { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .portfolio-mosaic-group { display: contents; }
  .portfolio-mosaic-group > .gallery-item { grid-area: auto !important; aspect-ratio: 4 / 5; }
  .team-booking-intro { align-items: start; gap: 30px; }
  .team-booking-intro > div:last-child > p { max-width: 680px; }
  .corporate-contact .contact-hero-grid { gap: 48px; }
  .compact-about figure { max-width: 580px; }
  .simple-two-column > .simple-page-heading { position: static; margin-bottom: 15px; }
  .package-heading-row { grid-template-columns: 1fr; align-items: start; gap: 14px; }
  .package-heading-copy { max-width: 680px; justify-self: start; }
  .package-included-panel > ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .conversion-package-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .conversion-package-card { min-height: 0; }
  .booking-intro-grid .page-photo-collage { height: min(55vw, 430px); aspect-ratio: auto; }
  .conversion-review-grid { columns: 2; }
  .footer-grid-simple { grid-template-columns: 1.2fr repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .header-inner { gap: 9px; }
  .mobile-header-book { min-height: 40px; padding-inline: 10px; }
  .menu-button { min-width: 44px; min-height: 44px; }
  .site-nav { inset: 68px 0 auto; height: calc(100dvh - 68px); }
  .admin-bar .site-nav { inset: 68px 0 auto; height: calc(100dvh - 68px - 46px); }
  .portfolio-home-hero { padding-top: 44px; }
  .portfolio-home-hero-copy .button-row .button { width: 100%; }
  .portfolio-home-hero-grid { margin-bottom: 36px; }
  .portfolio-hero-collage { height: 560px; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: repeat(12, minmax(0, 1fr)); gap: 4px; }
  .portfolio-hero-collage-item:nth-child(1) { grid-area: 1 / 1 / 6 / 4; }
  .portfolio-hero-collage-item:nth-child(2) { grid-area: 1 / 4 / 4 / 7; }
  .portfolio-hero-collage-item:nth-child(3) { grid-area: 4 / 4 / 8 / 7; }
  .portfolio-hero-collage-item:nth-child(4) { grid-area: 6 / 1 / 10 / 3; }
  .portfolio-hero-collage-item:nth-child(5) { grid-area: 8 / 3 / 13 / 5; }
  .portfolio-hero-collage-item:nth-child(6) { grid-area: 8 / 5 / 13 / 7; }
  .portfolio-hero-collage-item:nth-child(7) { grid-area: 10 / 1 / 13 / 3; }
  .portfolio-continuation { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
  .team-portrait-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
  .team-booking-intro .button { width: 100%; }
  .corporate-contact-details ul { grid-template-columns: 1fr; }
  .compact-about-grid { gap: 36px; }
  .conversion-package-grid { grid-template-columns: 1fr; }
  .conversion-package-card, .conversion-package-card:last-child { width: 100%; min-height: 0; grid-column: auto; }
  .conversion-package-card .package-fit { min-height: 0; }
  .package-included-panel { padding: 26px 22px; }
  .package-included-panel > ul { grid-template-columns: 1fr; }
  .package-included-panel li { min-height: 0; }
  .package-gallery-note { grid-template-columns: 1fr; gap: 9px; }
  .page-photo-collage, .simple-faq .page-photo-collage, .simple-reviews > .frame > .page-photo-collage, .corporate-contact .page-photo-collage, .booking-intro-grid .page-photo-collage { height: 320px; aspect-ratio: auto; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); grid-template-rows: repeat(2, minmax(0, 1fr)); }
  .simple-booking { padding-top: 36px; }
  .simple-booking .booking-intro-grid { gap: 0; margin-bottom: 18px; }
  .simple-booking .booking-intro-grid .page-photo-collage { display: none; }
  .page-photo-collage-item:first-child { grid-row: 1 / 3; }
  .page-photo-collage-item:nth-child(2) { transform: none; }
  .package-deposit-line, .reviews-heading, .book-support-line { align-items: flex-start; flex-direction: column; }
  .reviews-heading { gap: 28px; }
  .review-proof, .review-proof-score { align-items: flex-start; flex-direction: column; }
  .review-proof { gap: 17px; padding: 20px; }
  .review-proof-score { gap: 8px; }
  .conversion-review-grid { columns: 1; }
  .simple-booking .scheduler { min-height: 980px; }
  .footer-grid-simple { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
  .wordmark-name { display: none; }
  .portfolio-hero-collage { height: 520px; }
}
