
:root {
  --plum: #321922;
  --taupe: #C1B5A8;
  --stone: #E7E0D9;
  --nude: #D4C7BC;
  --mauve: #8C7379;
  --ivory: #F8F5F1;
  --paper: #FCFAF8;
  --muted: #6F5A61;
  --line: rgba(50, 25, 34, 0.16);
  --shadow: 0 18px 45px rgba(50, 25, 34, 0.10);
  --radius: 10px;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--plum);
  background: var(--ivory);
  font-family: "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.7;
  letter-spacing: .01em;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3 {
  margin: 0 0 .7em;
  font-family: "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: .045em;
  text-transform: uppercase;
}
h1 { font-size: clamp(2.8rem, 7vw, 6.2rem); letter-spacing: .07em; }
h2 { font-size: clamp(2rem, 4.8vw, 3.8rem); letter-spacing: .06em; }
h3 { font-size: clamp(1.15rem, 2.2vw, 1.55rem); letter-spacing: .07em; }
p { margin: 0 0 1.15em; }
small, .eyebrow {
  text-transform: uppercase;
  letter-spacing: .23em;
  font-size: .72rem;
  font-weight: 600;
}
.container { width: min(calc(100% - 36px), var(--max)); margin-inline: auto; }
.section { padding: 104px 0; }
.section-tight { padding: 68px 0; }
.muted { color: var(--muted); }
.center { text-align: center; }
.max-copy { max-width: 720px; }
.center .max-copy { margin-inline: auto; }
.skip-link { position:absolute; left:-999px; top:8px; background:#fff; padding:10px 14px; z-index:999; }
.skip-link:focus { left:8px; }

.site-header {
  position: sticky; top: 0; z-index: 30;
  background: rgba(193, 181, 168, .94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(50, 25, 34, .15);
}
.nav {
  min-height: 98px; display:flex; align-items:center; justify-content:space-between; gap:30px;
}
.brand { display:flex; align-items:center; text-decoration:none; }
.brand img { width: 178px; height:auto; }
.nav-links { display:flex; align-items:center; gap:28px; }
.nav-links a {
  text-decoration:none; font-size:.79rem; text-transform:uppercase; letter-spacing:.14em;
}
.nav-links a:hover { opacity:.62; }
.mobile-toggle { display:none; border:0; background:transparent; color:var(--plum); font-size:1.7rem; cursor:pointer; }

.btn {
  display:inline-flex; align-items:center; justify-content:center;
  min-height:50px; padding:0 24px; border:1px solid var(--plum);
  border-radius:0; text-decoration:none; font-size:.76rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.16em; transition:.2s ease;
}
.btn:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(50,25,34,.12); }
.btn-dark { background:var(--plum); color:var(--ivory); }
.btn-light { background:var(--ivory); }
.btn-ghost { background:transparent; }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }

.hero { background:var(--taupe); padding:68px 0 78px; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:1.02fr .98fr; align-items:center; gap:70px; }
.hero-copy { padding:34px 0; }
.hero-copy .eyebrow { color:var(--plum); margin-bottom:24px; }
.hero-copy p { max-width:630px; font-size:1.05rem; }
.hero-art { min-height:620px; position:relative; }
.hero-photo {
  position:absolute; inset:20px 0 20px 72px;
  box-shadow:var(--shadow); overflow:hidden; background:var(--nude);
}
.hero-photo img {
  width:100%; height:100%; object-fit:cover; object-position:center 34%;
}
.photo-label {
  position:absolute; left:0; bottom:62px; width:225px; padding:24px;
  background:rgba(248,245,241,.94); box-shadow:var(--shadow);
}
.photo-label strong {
  display:block; font-weight:300; font-size:2.1rem; letter-spacing:.08em;
}
.photo-label span { color:var(--muted); font-size:.82rem; }
.badge {
  position:absolute; right:-2px; top:64px; width:142px; height:142px;
  border:1px solid var(--plum); border-radius:50%; display:grid; place-items:center;
  text-align:center; padding:18px; background:rgba(193,181,168,.88);
  font-size:.72rem; text-transform:uppercase; letter-spacing:.14em;
}

.trustbar { border-block:1px solid var(--line); background:var(--paper); }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.trust-item { padding:25px 18px; text-align:center; border-right:1px solid var(--line); }
.trust-item:last-child { border-right:0; }
.trust-item strong {
  display:block; font-size:.78rem; text-transform:uppercase; letter-spacing:.15em;
}
.trust-item span { color:var(--muted); font-size:.82rem; }

.section-heading {
  display:flex; justify-content:space-between; align-items:end; gap:34px; margin-bottom:48px;
}
.section-heading p { max-width:530px; margin-bottom:8px; }

.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card {
  background:var(--paper); border:1px solid var(--line); border-radius:0; overflow:hidden;
  box-shadow:0 4px 18px rgba(50,25,34,.035);
}
.card-image {
  position:relative;
  width:100%;
  aspect-ratio:4 / 3;
  min-height:0;
  overflow:hidden;
  background:var(--nude);
}
.card-image img {
  width:100%;
  height:100%;
  min-height:0;
  object-fit:cover;
  transition:transform .45s ease;
}
.card:hover .card-image img { transform:scale(1.025); }
.card-image.top img { object-position:center 22%; }
.card-image.center img { object-position:center; }
.card-image.bottom img { object-position:center 72%; }
.card-body { padding:30px; }
.card-body p { color:var(--muted); }
.card-link { font-size:.75rem; text-transform:uppercase; letter-spacing:.15em; text-underline-offset:5px; }

.split { display:grid; grid-template-columns:1fr 1fr; gap:68px; align-items:center; }
.image-panel {
  min-height:570px; position:relative; overflow:hidden; box-shadow:var(--shadow);
  background:var(--nude);
}
.image-panel img {
  width:100%; height:100%; min-height:570px; object-fit:cover; object-position:center;
}
.image-panel.portrait img { object-position:center 20%; }
.image-panel.action img { object-position:center 42%; }
.ticks { display:grid; gap:14px; padding:0; margin:28px 0; list-style:none; }
.ticks li { display:flex; gap:13px; align-items:flex-start; }
.ticks li::before {
  content:""; flex:0 0 18px; width:18px; height:18px; border:1px solid var(--plum); margin-top:5px;
}

.quote-section { background:var(--plum); color:var(--ivory); }
.quote {
  max-width:920px; margin:auto; text-align:center;
  font-size:clamp(1.65rem,3.8vw,3.15rem); line-height:1.4; font-weight:300; letter-spacing:.035em;
}
.quote-note { text-align:center; color:rgba(248,245,241,.62); margin-top:28px; font-size:.78rem; }

.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.feature { padding:30px; border-top:1px solid var(--line); }
.feature-number { font-weight:300; font-size:2.2rem; color:var(--mauve); letter-spacing:.08em; }

.cta-box {
  background:var(--taupe); padding:66px; display:grid; grid-template-columns:1.35fr .65fr;
  align-items:center; gap:32px; overflow:hidden; border:1px solid rgba(50,25,34,.10);
}
.cta-box p { max-width:650px; }

.site-footer { padding:64px 0 30px; background:var(--plum); color:var(--ivory); }
.footer-grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:54px; }
.footer-title { font-size:1rem; text-transform:uppercase; letter-spacing:.18em; margin-bottom:18px; }
.footer-links { display:grid; gap:10px; }
.footer-links a { color:rgba(248,245,241,.72); text-decoration:none; }
.footer-links a:hover { color:var(--ivory); }
.footer-bottom {
  border-top:1px solid rgba(248,245,241,.15); margin-top:46px; padding-top:24px;
  display:flex; justify-content:space-between; gap:20px; color:rgba(248,245,241,.56); font-size:.77rem;
}

.page-hero { background:var(--taupe); padding:86px 0 58px; }
.page-hero .max-copy { font-size:1.05rem; }
.service-list { display:grid; gap:18px; }
.service-row {
  display:grid; grid-template-columns:1fr auto; gap:24px; padding:26px 0; border-top:1px solid var(--line);
}
.service-row:last-child { border-bottom:1px solid var(--line); }
.service-row h3 { margin-bottom:8px; }
.service-meta { text-align:right; white-space:nowrap; color:var(--muted); }
.notice { background:var(--paper); border:1px solid var(--line); padding:22px 24px; }
.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:52px; }
.contact-card { background:var(--paper); border:1px solid var(--line); padding:34px; }
.form { display:grid; gap:16px; }
.form label { font-size:.76rem; text-transform:uppercase; letter-spacing:.13em; font-weight:600; }
.form input, .form textarea, .form select {
  width:100%; padding:14px 15px; border:1px solid var(--line);
  border-radius:0; font:inherit; background:#fff; color:var(--plum);
}
.form textarea { min-height:140px; resize:vertical; }
.policy h2 { font-size:1.75rem; margin-top:1.65em; }
.policy h3 { font-size:1.2rem; margin-top:1.5em; }


.image-credit {
  margin-top:10px; color:var(--muted); font-size:.72rem; letter-spacing:.05em;
}
.brand-strip {
  display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--line); border:1px solid var(--line);
}
.brand-panel {
  min-height:230px; background:var(--paper); padding:38px;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  text-align:center;
}
.brand-panel img { max-width:180px; max-height:72px; object-fit:contain; margin-bottom:24px; }
.brand-panel p { color:var(--muted); max-width:430px; margin-bottom:0; }

.treatment-section {
  display:grid; grid-template-columns:minmax(300px,.82fr) 1.18fr;
  gap:62px; align-items:start;
}
.treatment-section.reverse { grid-template-columns:1.18fr minmax(300px,.82fr); }
.treatment-section.reverse .treatment-visual { order:2; }
.treatment-visual {
  position:sticky; top:130px; min-height:480px; overflow:hidden; background:var(--nude);
  box-shadow:var(--shadow);
}
.treatment-visual img { width:100%; height:100%; min-height:480px; object-fit:cover; }
.treatment-visual.square img { object-position:center; }
.treatment-visual.face img { object-position:center 42%; }
.treatment-visual.tall img { object-position:center 38%; }
.treatment-copy .section-heading { display:block; margin-bottom:24px; }
.treatment-copy .section-heading p { max-width:680px; }

.image-duo {
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
.image-duo figure { margin:0; min-height:320px; overflow:hidden; background:var(--nude); }
.image-duo img { width:100%; height:100%; min-height:320px; object-fit:cover; }
.image-duo figure:first-child img { object-position:center 36%; }
.image-duo figure:last-child img { object-position:center 50%; }

.product-showcase {
  display:grid; grid-template-columns:1.1fr .9fr; gap:42px; align-items:center;
  background:var(--stone); padding:46px; border:1px solid var(--line);
}
.product-showcase > img { width:100%; max-height:420px; object-fit:cover; }
.product-logo { max-width:150px; max-height:55px; object-fit:contain; margin:0 0 24px; }

.about-photo-grid {
  display:grid; grid-template-columns:1fr .75fr; gap:18px; align-items:stretch;
}
.about-photo-grid figure { margin:0; overflow:hidden; min-height:500px; background:var(--nude); }
.about-photo-grid img { width:100%; height:100%; min-height:500px; object-fit:cover; }
.about-photo-grid figure:first-child img { object-position:center 18%; }
.about-photo-grid figure:last-child img { object-position:center 40%; }

.visual-note {
  padding:15px 18px; border-left:2px solid var(--mauve); color:var(--muted);
  background:rgba(193,181,168,.18); font-size:.88rem;
}
@media (max-width: 900px) {
  .nav-links {
    display:none; position:absolute; top:98px; left:0; right:0; background:var(--taupe);
    padding:24px; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch;
  }
  .nav-links.open { display:flex; }
  .nav-links .btn { width:100%; }
  .mobile-toggle { display:block; }
  .hero-grid, .split, .contact-grid, .cta-box, .treatment-section, .treatment-section.reverse, .product-showcase { grid-template-columns:1fr; }
  .treatment-section.reverse .treatment-visual { order:0; }
  .treatment-visual { position:relative; top:auto; min-height:420px; }
  .brand-strip { grid-template-columns:1fr; }
  .about-photo-grid { grid-template-columns:1fr 1fr; }
  .hero-art { min-height:520px; }
  .hero-photo { left:34px; }
  .trust-grid { grid-template-columns:repeat(2,1fr); }
  .trust-item:nth-child(2) { border-right:0; }
  .trust-item:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .cards, .feature-grid { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px) {
  .section { padding:76px 0; }
  .nav { min-height:86px; }
  .brand img { width:145px; }
  .nav-links { top:86px; }
  .hero { padding-top:32px; }
  h1 { font-size:clamp(2.65rem,15vw,4.6rem); letter-spacing:.055em; }
  .hero-art { min-height:430px; }
  .hero-photo { inset:10px 0 10px 26px; }
  .photo-label { width:185px; bottom:25px; }
  .badge { width:112px; height:112px; right:-2px; top:30px; font-size:.62rem; }
  .section-heading { display:block; }
  .cards, .feature-grid, .footer-grid, .image-duo, .about-photo-grid { grid-template-columns:1fr; }
  .treatment-visual, .treatment-visual img { min-height:360px; }
  .about-photo-grid figure, .about-photo-grid img { min-height:390px; }
  .cta-box { padding:42px 24px; }
  .service-row { grid-template-columns:1fr; gap:8px; }
  .service-meta { text-align:left; }
  .footer-bottom { flex-direction:column; }
}


/* Price list */
.price-list-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  align-items:start;
}
.price-card {
  background:var(--paper);
  border:1px solid var(--line);
  padding:34px;
  box-shadow:0 4px 18px rgba(50,25,34,.035);
}
.price-card-wide { grid-column:1 / -1; }
.price-card h2 { font-size:clamp(1.65rem,3.2vw,2.45rem); margin-bottom:22px; }
.price-item {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  align-items:start;
  padding:18px 0;
  border-top:1px solid var(--line);
}
.price-item:last-of-type { border-bottom:1px solid var(--line); }
.price-item h3 { margin:0; font-size:1rem; line-height:1.4; }
.price-detail { margin:5px 0 0; color:var(--muted); font-size:.88rem; }
.price-amount {
  font-size:1.45rem;
  font-weight:300;
  letter-spacing:.06em;
  white-space:nowrap;
}
.price-description { max-width:860px; margin:24px 0 0; color:var(--muted); }
.price-package-note {
  margin-top:34px;
  padding:54px;
  background:var(--taupe);
  border:1px solid rgba(50,25,34,.10);
}
.price-package-note p { max-width:800px; }
@media (max-width: 760px) {
  .price-list-grid { grid-template-columns:1fr; }
  .price-card-wide { grid-column:auto; }
  .price-card { padding:27px 22px; }
  .price-package-note { padding:38px 24px; }
}
