
:root {
  --ink: #342b29;
  --muted: #786a66;
  --cream: #fbf8f4;
  --paper: #fffdf9;
  --blush: #eadbd6;
  --rose: #a96f79;
  --wine: #603943;
  --line: rgba(52, 43, 41, 0.17);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
button, a { -webkit-tap-highlight-color: transparent; }

.site-header {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 20;
  height: 92px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 30px;
  width: min(1420px, calc(100% - 80px));
  margin: 0 auto;
  border-bottom: 1px solid rgba(52, 43, 41, 0.13);
}

.wordmark {
  font-family: var(--serif);
  font-size: 24px;
  line-height: 1;
  letter-spacing: -0.03em;
}
.wordmark span { display: block; margin: 4px 0 0 19px; font-size: 12px; font-family: var(--sans); letter-spacing: 0.2em; text-transform: uppercase; }
.desktop-nav { display: flex; gap: 38px; font-size: 13px; letter-spacing: 0.06em; }
.desktop-nav a, .header-phone { transition: opacity 180ms ease; }
.desktop-nav a:hover, .header-phone:hover { opacity: 0.58; }
.header-phone { justify-self: end; font-size: 14px; font-weight: 650; letter-spacing: 0.03em; }
.mobile-menu { display: none; }

.hero {
  min-height: 930px;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(540px, 1.08fr);
  align-items: center;
  gap: 8vw;
  padding: 150px max(40px, calc((100vw - 1420px) / 2)) 70px;
  overflow: hidden;
  background:
    radial-gradient(circle at 9% 35%, rgba(234, 219, 214, 0.68), transparent 23%),
    linear-gradient(110deg, #fbf8f4 0%, #fbf8f4 54%, #f0e9e2 54%, #f0e9e2 100%);
}
.hero-copy { position: relative; z-index: 2; max-width: 650px; padding-bottom: 24px; }
.eyebrow { margin: 0 0 24px; color: var(--rose); font-size: 11px; font-weight: 750; letter-spacing: 0.22em; text-transform: uppercase; }
.hero h1, h2 {
  margin: 0;
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -0.045em;
}
.hero h1 { max-width: 670px; font-size: clamp(62px, 6.2vw, 108px); line-height: 0.94; }
.hero h1 em, .contact h2 em { display: block; color: var(--rose); font-weight: 400; }
.hero-lead { max-width: 550px; margin: 35px 0 0; color: var(--muted); font-size: 18px; line-height: 1.75; }
.hero-actions { display: flex; align-items: center; gap: 34px; margin-top: 42px; }
.button { display: inline-flex; min-height: 58px; align-items: center; justify-content: center; gap: 35px; padding: 0 27px; border-radius: 999px; font-size: 13px; font-weight: 650; letter-spacing: 0.04em; transition: transform 180ms ease, background 180ms ease; }
.button:hover { transform: translateY(-3px); }
.button-dark { background: var(--wine); color: white; }
.button-dark:hover { background: #4d2c34; }
.button span { font-size: 17px; }
.text-link { display: inline-flex; align-items: center; gap: 16px; padding-bottom: 4px; border-bottom: 1px solid var(--ink); font-size: 13px; font-weight: 630; }
.text-link span { color: var(--rose); }

.hero-photo-wrap { position: relative; justify-self: end; width: min(100%, 700px); height: 705px; }
.hero-photo {
  position: relative;
  z-index: 2;
  height: 100%;
  object-fit: cover;
  object-position: center 17%;
  border-radius: 340px 340px 24px 24px;
  box-shadow: 0 28px 80px rgba(66, 42, 38, 0.13);
}
.hero-orbit { position: absolute; z-index: 1; inset: -30px -36px 55px 34px; border: 1px solid rgba(96, 57, 67, 0.28); border-radius: 50% 50% 38px 38px; transform: rotate(3deg); }
.hero-note { position: absolute; z-index: 3; left: -48px; bottom: 46px; width: 170px; height: 170px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border-radius: 50%; background: var(--paper); box-shadow: 0 15px 40px rgba(52,43,41,.13); color: var(--wine); font-family: var(--serif); font-size: 17px; transform: rotate(-7deg); }

.statement { padding: 125px 8vw 130px; text-align: center; background: var(--paper); }
.statement .eyebrow { margin-bottom: 34px; }
.statement-text { max-width: 1130px; margin: 0 auto; font-family: var(--serif); font-size: clamp(35px, 4.2vw, 65px); line-height: 1.18; letter-spacing: -0.035em; }

.section { width: min(1240px, calc(100% - 80px)); margin: 0 auto; padding: 130px 0; }
.section-heading { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: 8vw; }
.section-heading h2 { font-size: clamp(48px, 5vw, 75px); line-height: 1.02; }
.about-copy { padding-top: 34px; color: var(--muted); }
.about-copy p { max-width: 590px; margin: 0 0 30px; }
.about-copy .large-copy { color: var(--ink); font-family: var(--serif); font-size: 27px; line-height: 1.45; }
.about-copy .text-link { margin-top: 16px; color: var(--ink); }

.tasks { width: 100%; max-width: none; padding: 125px max(40px, calc((100vw - 1420px) / 2)); background: var(--blush); }
.section-heading.compact { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 62px; }
.section-heading.compact .eyebrow { margin-bottom: 0; }
.task-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(52,43,41,.25); }
.task-card { position: relative; min-height: 310px; padding: 33px 32px; border-right: 1px solid rgba(52,43,41,.25); transition: background 220ms ease, transform 220ms ease; }
.task-card:first-child { border-left: 1px solid rgba(52,43,41,.25); }
.task-card:hover { background: rgba(255,253,249,.5); transform: translateY(-5px); }
.task-index { font-size: 11px; letter-spacing: .2em; }
.task-card h3 { margin: 95px 0 0; font-family: var(--serif); font-size: clamp(25px, 2.4vw, 38px); font-weight: 400; line-height: 1.16; letter-spacing: -.03em; }
.task-arrow { position: absolute; right: 31px; top: 29px; color: var(--rose); font-size: 29px; }

.services-heading { align-items: end; margin-bottom: 55px; }
.services-heading > p { max-width: 455px; margin: 0 0 6px; color: var(--muted); }
.service-list { border-top: 1px solid var(--line); }
.service-card { display: grid; grid-template-columns: 70px 1fr 150px 55px; align-items: start; gap: 34px; padding: 38px 0; border-bottom: 1px solid var(--line); }
.service-number { padding-top: 9px; color: var(--rose); font-size: 11px; letter-spacing: .18em; }
.service-main h3 { margin: 0 0 12px; font-family: var(--serif); font-size: 33px; font-weight: 400; letter-spacing: -.03em; }
.service-main p { max-width: 680px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.75; }
.service-meta { display: flex; flex-direction: column; align-items: flex-start; padding-top: 8px; }
.service-meta strong { font-family: var(--serif); font-size: 22px; font-weight: 400; }
.service-meta span { color: var(--muted); font-size: 12px; }
.service-card > a { display: grid; width: 52px; height: 52px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--rose); font-size: 19px; transition: background 180ms ease, color 180ms ease; }
.service-card > a:hover { background: var(--wine); color: white; }

.model-section { padding: 86px max(40px, calc((100vw - 1420px) / 2)) 105px; overflow: hidden; background: var(--wine); color: white; }
.model-kicker { display: flex; justify-content: space-between; padding-bottom: 27px; border-bottom: 1px solid rgba(255,255,255,.23); color: #d8bec5; font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.model-grid { display: grid; grid-template-columns: 0.9fr 0.78fr 0.52fr; gap: 28px; align-items: end; padding-top: 70px; }
.model-copy { align-self: center; padding-right: 4vw; }
.model-copy .eyebrow { color: #d8aeb8; }
.model-copy h2 { font-size: clamp(50px, 5.3vw, 82px); line-height: 1.03; }
.model-lead { max-width: 550px; margin: 34px 0 28px; color: #e1d5d7; line-height: 1.78; }
.model-tags { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 38px; padding: 0; list-style: none; }
.model-tags li { padding: 8px 13px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; color: #eadfe1; font-size: 11px; }
.button-light { background: #f1e5e2; color: var(--wine); }
.button-light:hover { background: white; }
.model-photo { overflow: hidden; background: #d8c8c2; }
.model-photo img { height: 100%; object-fit: cover; transition: transform 800ms ease; }
.model-photo:hover img { transform: scale(1.025); }
.model-photo-main { height: 710px; border-radius: 230px 230px 8px 8px; }
.model-photo-main img { object-position: center 22%; }
.model-photo-detail { height: 475px; margin-bottom: 55px; border-radius: 8px 8px 170px 170px; }
.model-photo-detail img { object-position: center 16%; }
.shoot-gallery { display: grid; grid-template-columns: 1fr 1.18fr 1fr; gap: 28px; align-items: start; margin-top: 105px; padding-top: 30px; border-top: 1px solid rgba(255,255,255,.23); }
.shoot-card { margin: 0; }
.shoot-card img { aspect-ratio: 1 / 1; object-fit: cover; filter: saturate(.92); transition: transform 700ms ease, filter 350ms ease; }
.shoot-card:hover img { transform: scale(.985); filter: saturate(1.04); }
.shoot-card-high { margin-top: -42px; }
.shoot-card-high img { border-radius: 180px 180px 8px 8px; }
.shoot-card-low img { border-radius: 8px; }
.shoot-card figcaption { display: flex; align-items: center; gap: 12px; margin-top: 16px; color: #d8bec5; font-size: 10px; font-weight: 650; letter-spacing: .18em; text-transform: uppercase; }
.shoot-card figcaption::before { content: ""; width: 30px; height: 1px; background: rgba(255,255,255,.45); }

.process { padding-bottom: 100px; }
.process-list { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.process-list li { display: grid; grid-template-columns: 90px 1fr; gap: 25px; padding: 30px 0; border-bottom: 1px solid var(--line); }
.process-list li > span { color: var(--rose); font-size: 11px; letter-spacing: .2em; }
.process-list div { display: grid; grid-template-columns: .65fr 1fr; align-items: baseline; gap: 45px; }
.process-list h3 { margin: 0; font-family: var(--serif); font-size: 27px; font-weight: 400; }
.process-list p { max-width: 530px; margin: 0; color: var(--muted); font-size: 14px; }

.reviews { width: 100%; max-width: none; padding: 125px max(40px, calc((100vw - 1240px) / 2)); background: #f0e9e2; }
.review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.review-card { min-height: 360px; display: flex; flex-direction: column; justify-content: space-between; margin: 0; padding: 50px; background: var(--paper); }
.review-accent { background: var(--blush); }
.review-card blockquote { max-width: 500px; margin: 0; font-family: var(--serif); font-size: clamp(25px, 2.4vw, 34px); line-height: 1.4; letter-spacing: -.025em; }
.review-card figcaption { display: flex; gap: 12px; font-size: 12px; }
.review-card figcaption strong { font-weight: 700; }
.review-card figcaption span { color: var(--muted); }

.contact { position: relative; padding: 140px 40px 105px; overflow: hidden; text-align: center; background: var(--paper); }
.contact::before, .contact::after { content: ""; position: absolute; width: 330px; height: 330px; border: 1px solid rgba(169,111,121,.25); border-radius: 50%; }
.contact::before { left: -100px; top: 60px; }
.contact::after { right: -130px; bottom: -80px; }
.contact h2 { position: relative; z-index: 2; font-size: clamp(58px, 7vw, 105px); line-height: .98; }
.contact > p:not(.eyebrow) { max-width: 550px; margin: 32px auto; color: var(--muted); }
.contact-button { display: inline-flex; align-items: center; gap: 50px; margin-top: 5px; padding: 19px 25px 19px 30px; border-radius: 999px; background: var(--wine); color: white; font-size: 13px; font-weight: 650; }
.contact-button span { font-size: 18px; }
.contact-meta { display: flex; justify-content: center; flex-wrap: wrap; gap: 40px; margin-top: 70px; font-size: 13px; }
.contact-meta span { color: var(--muted); }

footer { min-height: 150px; display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; gap: 20px; padding: 35px max(40px, calc((100vw - 1420px) / 2)); background: var(--ink); color: white; }
footer > p { margin: 0; color: #bfb4b1; text-align: center; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
footer > div { display: flex; justify-content: flex-end; gap: 28px; font-size: 12px; }
.footer-mark { font-size: 22px; }

@media (max-width: 1050px) {
  .site-header { width: calc(100% - 42px); }
  .desktop-nav { display: none; }
  .site-header { grid-template-columns: 1fr auto auto; }
  .mobile-menu { position: relative; display: block; justify-self: end; }
  .mobile-menu summary { display: flex; width: 44px; height: 44px; flex-direction: column; justify-content: center; gap: 7px; padding: 0 10px; border: 1px solid var(--line); border-radius: 50%; cursor: pointer; list-style: none; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .mobile-menu summary span { width: 100%; height: 1px; background: var(--ink); }
  .mobile-menu nav { position: absolute; right: 0; top: 54px; width: 230px; display: flex; flex-direction: column; gap: 18px; padding: 24px; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 14px 35px rgba(52,43,41,.12); font-size: 14px; }
  .hero { min-height: 820px; grid-template-columns: 1fr .92fr; gap: 45px; padding-left: 40px; padding-right: 40px; }
  .hero h1 { font-size: 68px; }
  .hero-photo-wrap { height: 610px; }
  .hero-note { left: -30px; width: 135px; height: 135px; font-size: 14px; }
  .model-grid { grid-template-columns: 1fr 1fr; }
  .model-copy { grid-column: 1 / -1; padding: 0 0 35px; }
  .model-photo-main { height: 660px; }
  .model-photo-detail { height: 500px; }
  .shoot-gallery { margin-top: 75px; }
}

@media (max-width: 760px) {
  .site-header { height: 74px; }
  .header-phone { display: none; }
  .site-header { grid-template-columns: 1fr auto; }
  .wordmark { font-size: 20px; }
  .wordmark span { font-size: 10px; }
  .hero { min-height: auto; display: flex; flex-direction: column; gap: 50px; padding: 125px 22px 55px; background: linear-gradient(155deg, #fbf8f4 0%, #fbf8f4 56%, #f0e9e2 56%); }
  .hero h1 { font-size: clamp(51px, 15vw, 70px); }
  .hero-lead { margin-top: 25px; font-size: 16px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 24px; margin-top: 31px; }
  .hero-photo-wrap { align-self: center; width: 95%; height: 540px; }
  .hero-photo { border-radius: 230px 230px 12px 12px; }
  .hero-orbit { inset: -17px -14px 45px 20px; }
  .hero-note { left: -12px; bottom: 24px; width: 124px; height: 124px; }
  .statement { padding: 85px 22px; }
  .statement-text { font-size: 36px; }
  .section { width: calc(100% - 44px); padding: 85px 0; }
  .section-heading, .section-heading.compact, .services-heading { display: block; }
  .section-heading h2 { font-size: 47px; }
  .about-copy { padding-top: 44px; }
  .about-copy .large-copy { font-size: 24px; }
  .tasks { width: 100%; padding: 85px 22px; }
  .section-heading.compact { margin-bottom: 38px; }
  .section-heading.compact .eyebrow { margin-bottom: 20px; }
  .task-grid { grid-template-columns: 1fr; }
  .task-card, .task-card:first-child { min-height: 205px; border-left: 1px solid rgba(52,43,41,.25); border-bottom: 1px solid rgba(52,43,41,.25); }
  .task-card h3 { margin-top: 50px; font-size: 29px; }
  .services-heading > p { margin-top: 26px; }
  .service-card { grid-template-columns: 40px 1fr 48px; gap: 13px; }
  .service-main h3 { font-size: 26px; }
  .service-meta { grid-column: 2 / 3; }
  .service-card > a { grid-column: 3; grid-row: 1; }
  .model-section { padding: 70px 22px 85px; }
  .model-kicker span:nth-child(2) { display: none; }
  .model-grid { display: flex; flex-direction: column; gap: 18px; padding-top: 52px; }
  .model-copy { order: 1; }
  .model-photo-main { order: 2; width: 100%; height: 570px; border-radius: 190px 190px 6px 6px; }
  .model-photo-detail { order: 3; width: 67%; height: 380px; align-self: flex-end; margin: -82px 10px 0 0; border: 8px solid var(--wine); }
  .shoot-gallery { grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 70px; padding-top: 22px; }
  .shoot-card-high { margin-top: 0; }
  .shoot-card-high img { border-radius: 100px 100px 5px 5px; }
  .shoot-card:last-child { grid-column: 1 / -1; width: calc(50% - 7px); justify-self: end; }
  .shoot-card figcaption { margin-top: 10px; font-size: 8px; letter-spacing: .12em; }
  .model-copy h2 { font-size: 50px; }
  .model-copy .button { margin-bottom: 25px; }
  .process-list li { grid-template-columns: 45px 1fr; }
  .process-list div { display: block; }
  .process-list h3 { margin-bottom: 8px; font-size: 24px; }
  .reviews { width: 100%; padding: 85px 22px; }
  .review-grid { grid-template-columns: 1fr; }
  .review-card { min-height: 330px; padding: 33px; }
  .review-card blockquote { font-size: 26px; }
  .contact { padding: 90px 22px 80px; }
  .contact h2 { font-size: 55px; }
  .contact-meta { flex-direction: column; gap: 10px; margin-top: 55px; }
  footer { grid-template-columns: 1fr auto; padding: 35px 22px; }
  footer > p { display: none; }
  footer > div { gap: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; }
}
