/* ============================================================
   ANSH STUDIO — Sub-page styles (about, services, gallery,
   contact, booking)
   ============================================================ */

/* ---------- Page hero (sub-pages) ---------- */
.page-hero {
  position: relative;
  padding: calc(var(--nav-h) + clamp(60px, 9vw, 120px)) var(--gutter) clamp(56px, 8vw, 110px);
  text-align: center;
  background: linear-gradient(180deg, var(--blush) 0%, var(--ivory) 100%);
  overflow: hidden;
}
.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(42% 55% at 82% 8%, rgba(234, 217, 199, 0.6), transparent 70%),
    radial-gradient(38% 50% at 12% 92%, rgba(192, 130, 114, 0.14), transparent 70%);
  pointer-events: none;
}
.page-hero .container { position: relative; }
.page-hero h1 { margin: 22px auto 0; max-width: 20ch; }
.page-hero p.lead { max-width: 52ch; margin: 24px auto 0; }
.page-hero .crumb {
  font-size: 10px;
  letter-spacing: 0.36em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-top: 34px;
}
.page-hero .crumb span { color: var(--rose-deep); }

/* ============================================================
   ABOUT PAGE
   ============================================================ */
.story-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 100px);
  align-items: center;
}
.story-block + .story-block { margin-top: clamp(70px, 9vw, 130px); }
.story-block.flip .text { order: 2; }
.story-block.flip .visual { order: 1; }
.story-block .visual { position: relative; }
.story-block .visual .frame { aspect-ratio: 4 / 5; overflow: hidden; }
.story-block .visual img, .story-block .visual video { width: 100%; height: 100%; object-fit: cover; }
.story-block .visual .side-cap {
  position: absolute;
  bottom: 18px; left: 18px;
  background: rgba(251, 247, 242, 0.88);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  padding: 12px 18px;
  font-size: 9.5px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.story-block .text .overline { margin-bottom: 18px; }
.story-block .text h2 { margin: 14px 0 22px; }
.story-block .text p + p { margin-top: 18px; }
.story-block .text .pillars {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 30px;
}
.story-block .text .pillars span {
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  border: 1px solid var(--line);
  padding: 9px 16px;
  color: var(--ink-soft);
  transition: border-color 0.3s ease, color 0.3s ease, background 0.3s ease;
}
.story-block .text .pillars span:hover { border-color: var(--rose); color: var(--rose-deep); background: var(--paper); }

/* why choose (about variant, numbered editorial) */
.why-editorial { background: var(--paper); }
.we-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1px;
  background: var(--line-soft);
  border: 1px solid var(--line-soft);
}
.we-cell {
  grid-column: span 2;
  background: var(--paper);
  padding: clamp(28px, 3vw, 44px);
  transition: background 0.45s var(--ease);
}
.we-cell:hover { background: var(--blush); }
.we-cell .n { font-family: var(--serif); font-style: italic; color: var(--rose); font-size: 1.2rem; display: block; margin-bottom: 16px; }
.we-cell h3 { font-size: clamp(1.2rem, 1.7vw, 1.5rem); margin-bottom: 10px; }
.we-cell p { font-size: 0.92rem; color: var(--ink-soft); }

/* meet ansh */
.meet-ansh .wrap {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: clamp(44px, 6vw, 100px);
  align-items: center;
}
.meet-ansh .visual .frame { aspect-ratio: 4 / 4.7; overflow: hidden; }
.meet-ansh .visual img { width: 100%; height: 100%; object-fit: cover; }
.meet-ansh .visual .mono {
  margin-top: 18px;
  font-size: 10px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.meet-ansh .text .overline { margin-bottom: 18px; }
.meet-ansh .text h2 { margin: 14px 0 24px; max-width: 18ch; }
.meet-ansh .text p + p { margin-top: 18px; }
.meet-ansh .sign {
  margin-top: 34px;
  font-family: var(--serif2);
  font-style: italic;
  font-size: 1.9rem;
  color: var(--rose-deep);
}

/* ============================================================
   SERVICES PAGE
   ============================================================ */
.service-section { border-top: 1px solid var(--line-soft); }
.service-section + .service-section { margin-top: 0; }
.service-section .wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 104px);
  align-items: center;
}
.service-section.flip .text { order: 2; }
.service-section.flip .visual { order: 1; }
.service-section .visual { position: relative; }
.service-section .visual .frame { aspect-ratio: 4 / 5; overflow: hidden; }
.service-section .visual img, .service-section .visual video { width: 100%; height: 100%; object-fit: cover; }
.service-section .visual .num-badge {
  position: absolute;
  top: -26px; left: -26px;
  width: 104px; height: 104px;
  border-radius: 50%;
  background: var(--champagne);
  display: grid;
  place-items: center;
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.6rem;
  color: var(--ink);
  box-shadow: var(--shadow-soft);
  z-index: 2;
}
.service-section .text .overline { margin-bottom: 16px; }
.service-section .text h2 { margin: 12px 0 20px; }
.service-section .text p { color: var(--ink-soft); max-width: 50ch; }
.service-section .text .price {
  margin-top: 30px;
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
}
.service-section .text .price .amount {
  font-family: var(--serif);
  font-size: clamp(1.7rem, 2.6vw, 2.3rem);
  color: var(--rose-deep);
}
.service-section .text .price .from {
  font-size: 10px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.service-section .text .actions { margin-top: 34px; display: flex; gap: 16px; flex-wrap: wrap; }

/* services — note strip */
.svc-note {
  border: 1px solid var(--line-soft);
  background: var(--paper);
  padding: 26px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.svc-note p { font-size: 0.95rem; color: var(--ink-soft); max-width: 60ch; }
.svc-note strong { font-family: var(--serif); font-weight: 400; font-size: 1.1rem; color: var(--ink); }

/* ============================================================
   GALLERY PAGE
   ============================================================ */
.gallery-page { background: var(--paper); }
.gallery-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: clamp(36px, 5vw, 56px);
  border-bottom: 1px solid var(--line-soft);
  padding-bottom: 24px;
}
.gal-filters { display: flex; gap: 6px; flex-wrap: wrap; }
.gal-filters button {
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--ink-soft);
  padding: 12px 20px;
  border: 1px solid transparent;
  transition: color 0.35s ease, border-color 0.35s ease, background 0.35s ease;
}
.gal-filters button:hover { color: var(--rose-deep); }
.gal-filters button.active {
  color: var(--rose-deep);
  border-color: var(--rose);
  background: var(--blush);
}
.gal-count { font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--ink-soft); }

.masonry { columns: 3; column-gap: 18px; }
.g-item {
  position: relative;
  margin-bottom: 18px;
  break-inside: avoid;
  overflow: hidden;
  cursor: zoom-in;
  background: var(--blush);
}
.g-item img, .g-item video { width: 100%; height: auto; transition: transform 1.4s var(--ease-out); }
.g-item:hover img, .g-item:hover video { transform: scale(1.06); }
.g-item .veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(40, 28, 22, 0.55));
  opacity: 0;
  transition: opacity 0.6s var(--ease);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 22px;
}
.g-item:hover .veil { opacity: 1; }
.g-item .veil .tag {
  font-size: 9.5px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--rose-soft);
  margin-bottom: 6px;
}
.g-item .veil .t {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.25rem;
  color: #fff;
}
.g-item.video .v-badge {
  position: absolute;
  top: 16px; right: 16px;
  width: 40px; height: 40px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(40, 28, 22, 0.35);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  z-index: 2;
}
.g-item.video .v-badge svg { color: #fff; }

/* filter transitions */
.g-item.fading, .gal-wide.fading { transition: opacity 0.5s var(--ease), transform 0.5s var(--ease); opacity: 0; transform: scale(0.94); }
.g-item.hidden, .gal-wide.hidden { display: none; }

/* wide cinematic band */
.gal-wide {
  margin-top: 40px;
  position: relative;
  overflow: hidden;
  aspect-ratio: 21 / 8;
  cursor: zoom-in;
}
.gal-wide video, .gal-wide img { width: 100%; height: 100%; object-fit: cover; }
.gal-wide .veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(40, 28, 22, 0.5), transparent 60%);
  display: flex;
  align-items: flex-end;
  padding: clamp(22px, 4vw, 48px);
  opacity: 0;
  transition: opacity 0.6s var(--ease);
}
.gal-wide:hover .veil { opacity: 1; }
.gal-wide .veil .tag { font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--rose-soft); }
.gal-wide .veil .t { font-family: var(--serif); font-style: italic; font-size: clamp(1.4rem, 2.6vw, 2.2rem); color: #fff; margin-top: 6px; }

/* ---------- Lightbox ---------- */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 2200;
  background: rgba(26, 20, 16, 0.94);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s var(--ease), visibility 0s linear 0.5s;
}
.lightbox.open { opacity: 1; visibility: visible; transition: opacity 0.5s var(--ease); }
.lb-stage {
  max-width: min(1080px, 92vw);
  max-height: 84vh;
  position: relative;
}
.lb-stage img, .lb-stage video {
  max-width: 100%;
  max-height: 84vh;
  width: auto;
  height: auto;
  object-fit: contain;
  box-shadow: 0 40px 90px -30px rgba(0, 0, 0, 0.6);
  transform: scale(0.96);
  opacity: 0.6;
  transition: transform 0.5s var(--ease-out), opacity 0.5s var(--ease);
}
.lightbox.open .lb-stage img, .lightbox.open .lb-stage video { transform: scale(1); opacity: 1; }
.lb-caption {
  position: absolute;
  left: 0; right: 0;
  bottom: -52px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 20px;
}
.lb-caption .t { font-family: var(--serif); font-style: italic; font-size: 1.25rem; color: rgba(255,255,255,.92); }
.lb-caption .c { font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--rose-soft); }
.lb-btn {
  position: absolute;
  width: 54px; height: 54px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  transition: background 0.35s ease, border-color 0.35s ease, transform 0.35s var(--ease);
  z-index: 3;
}
.lb-btn:hover { background: rgba(255,255,255,.12); border-color: #fff; }
.lb-close { top: 26px; right: 26px; }
.lb-prev { left: 22px; top: 50%; transform: translateY(-50%); }
.lb-next { right: 22px; top: 50%; transform: translateY(-50%); }
.lb-counter {
  position: absolute;
  top: 34px; left: 26px;
  font-size: 11px;
  letter-spacing: 0.3em;
  color: rgba(255, 255, 255, 0.6);
}

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.contact-split {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(44px, 6vw, 96px);
  align-items: start;
}
.contact-side .k { font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--rose-deep); display: block; margin-bottom: 16px; }
.contact-side h2 { margin-bottom: 26px; }
.contact-list { list-style: none; margin-top: 40px; border-top: 1px solid var(--line-soft); }
.contact-list li {
  padding: 22px 0;
  border-bottom: 1px solid var(--line-soft);
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 16px;
  align-items: baseline;
}
.contact-list .lab { font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ink-soft); }
.contact-list .val { font-family: var(--serif); font-size: 1.2rem; }
.contact-list .val a { position: relative; }
.contact-list .val a::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 100%; height: 1px;
  background: var(--rose);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.4s var(--ease-out);
}
.contact-list .val a:hover::after { transform: scaleX(1); transform-origin: left; }

.contact-visual { position: relative; }
.contact-visual .frame { aspect-ratio: 3 / 4; overflow: hidden; }
.contact-visual img { width: 100%; height: 100%; object-fit: cover; }
.contact-visual .hours-card {
  position: absolute;
  bottom: -30px; left: -30px;
  background: var(--ink);
  color: var(--paper);
  padding: 26px 30px;
  min-width: 210px;
  box-shadow: var(--shadow-soft);
}
.contact-visual .hours-card .k { font-size: 9px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--rose-soft); margin-bottom: 10px; display: block; }
.contact-visual .hours-card .v { font-family: var(--serif); font-size: 1.5rem; color: #fff; }
.contact-visual .hours-card small { color: rgba(251,247,242,.6); font-size: 0.8rem; letter-spacing: 0.14em; display: block; margin-top: 6px; }

/* contact form */
.contact-form-card {
  background: var(--paper);
  border: 1px solid var(--line-soft);
  padding: clamp(28px, 4vw, 54px);
  box-shadow: var(--shadow-soft);
}
.contact-form-card h3 { font-size: clamp(1.5rem, 2.2vw, 2rem); margin-bottom: 8px; }
.contact-form-card > p { color: var(--ink-soft); font-size: 0.95rem; margin-bottom: 36px; }

.field { position: relative; margin-bottom: 30px; }
.field input, .field select, .field textarea {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--line);
  padding: 16px 2px 12px;
  font-size: 1rem;
  color: var(--ink);
  transition: border-color 0.4s var(--ease);
  border-radius: 0;
  appearance: none;
  -webkit-appearance: none;
}
.field textarea { resize: vertical; min-height: 90px; }
.field select { cursor: pointer; }
.field select option { background: var(--paper); color: var(--ink); }
.field label {
  position: absolute;
  left: 2px; top: 16px;
  font-size: 0.95rem;
  color: var(--ink-soft);
  pointer-events: none;
  transition: all 0.35s var(--ease);
  letter-spacing: 0.04em;
}
.field .under {
  position: absolute;
  left: 0; bottom: 0;
  height: 1px; width: 100%;
  background: var(--rose);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.6s var(--ease);
  pointer-events: none;
}
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: transparent; }
.field input:focus ~ .under, .field select:focus ~ .under, .field textarea:focus ~ .under,
.field.filled input ~ .under, .field.filled select ~ .under, .field.filled textarea ~ .under { transform: scaleX(1); }
.field input:focus ~ label, .field select:focus ~ label, .field textarea:focus ~ label,
.field.filled input ~ label, .field.filled select ~ label, .field.filled textarea ~ label {
  top: -10px;
  font-size: 10px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--rose-deep);
}
.field.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.form-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.form-foot .hint { font-size: 0.82rem; color: var(--ink-soft); letter-spacing: 0.06em; max-width: 34ch; }
.form-note {
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px dashed var(--line);
  font-size: 0.85rem;
  color: var(--ink-soft);
  line-height: 1.8;
}
.form-note a { color: var(--rose-deep); border-bottom: 1px solid var(--rose-soft); }

/* map */
.map-wrap {
  margin-top: clamp(60px, 8vw, 110px);
  position: relative;
  aspect-ratio: 21 / 8;
  min-height: 320px;
  overflow: hidden;
  background: var(--blush);
}
.map-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: sepia(0.25) saturate(0.85) contrast(0.95); }

/* ============================================================
   BOOKING PAGE
   ============================================================ */
.booking-page { background: linear-gradient(180deg, var(--blush) 0%, var(--ivory) 60%); }
.booking-shell {
  max-width: 780px;
  margin-inline: auto;
  background: var(--paper);
  border: 1px solid var(--line-soft);
  box-shadow: var(--shadow-soft);
  padding: clamp(24px, 4.5vw, 60px);
  position: relative;
}
.booking-shell::before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid var(--line-soft);
  pointer-events: none;
}

/* progress */
.bk-progress { display: flex; align-items: center; margin-bottom: clamp(34px, 4vw, 52px); }
.bk-step-dot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  flex: 1;
  position: relative;
  min-width: 0;
}
.bk-step-dot::before {
  content: "";
  position: absolute;
  top: 17px; right: 50%;
  width: 100%; height: 1px;
  background: var(--line);
  z-index: 0;
}
.bk-step-dot:first-child::before { display: none; }
.bk-step-dot .circle {
  width: 34px; height: 34px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: var(--paper);
  display: grid;
  place-items: center;
  font-family: var(--serif);
  font-style: italic;
  font-size: 0.95rem;
  color: var(--ink-soft);
  position: relative;
  z-index: 1;
  transition: all 0.45s var(--ease);
}
.bk-step-dot .lab {
  font-size: 8.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-soft);
  text-align: center;
  white-space: nowrap;
  transition: color 0.35s ease;
}
.bk-step-dot.done .circle { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.bk-step-dot.done::before { background: var(--ink); }
.bk-step-dot.current .circle { border-color: var(--rose); color: var(--rose-deep); background: var(--blush); box-shadow: 0 0 0 6px var(--blush); }
.bk-step-dot.current .lab { color: var(--rose-deep); font-weight: 500; }

.bk-panel { position: relative; }
.bk-panel:not(.active) { display: none; }
.bk-panel.active { animation: bkIn 0.65s var(--ease); }
@keyframes bkIn {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: none; }
}
.bk-panel .step-title { font-family: var(--serif); font-size: clamp(1.6rem, 2.6vw, 2.2rem); margin-bottom: 6px; }
.bk-panel .step-sub { color: var(--ink-soft); font-size: 0.95rem; margin-bottom: 34px; }
.step-err {
  margin-top: 18px;
  font-size: 11.5px;
  letter-spacing: 0.12em;
  color: var(--rose-deep);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.4s ease, transform 0.4s ease;
  min-height: 16px;
}
.step-err.show { opacity: 1; transform: none; }

/* service options */
.bk-options { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bk-option {
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 20px 22px;
  text-align: left;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  transition: border-color 0.4s var(--ease), background 0.4s var(--ease), transform 0.4s var(--ease);
  position: relative;
}
.bk-option:hover { border-color: var(--rose-soft); transform: translateY(-2px); }
.bk-option.selected { border-color: var(--rose); background: var(--blush); }
.bk-option .name { font-family: var(--serif); font-size: 1.18rem; }
.bk-option .meta { font-size: 0.8rem; color: var(--ink-soft); margin-top: 4px; letter-spacing: 0.06em; }
.bk-option .radio-dot {
  width: 18px; height: 18px;
  border: 1px solid var(--line);
  border-radius: 50%;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  transition: border-color 0.3s ease;
}
.bk-option.selected .radio-dot { border-color: var(--rose); }
.bk-option.selected .radio-dot::after {
  content: "";
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--rose);
  animation: pop 0.3s var(--ease-out);
}
@keyframes pop { from { transform: scale(0); } to { transform: scale(1); } }

/* date & time */
.bk-date-input {
  width: 100%;
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 18px 20px;
  font-size: 1rem;
  color: var(--ink);
  cursor: pointer;
  transition: border-color 0.35s ease, background 0.35s ease;
}
.bk-date-input:focus { outline: none; border-color: var(--rose); background: var(--blush); }
.bk-times { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.bk-time {
  border: 1px solid var(--line);
  padding: 15px 8px;
  font-size: 0.92rem;
  color: var(--ink-soft);
  text-align: center;
  transition: all 0.35s var(--ease);
  letter-spacing: 0.06em;
}
.bk-time:hover { border-color: var(--rose-soft); color: var(--ink); }
.bk-time.selected { background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* details form inside booking */
.bk-details .field { margin-bottom: 26px; }

/* review */
.bk-review { border: 1px solid var(--line-soft); background: var(--paper); }
.bk-review li {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 15px 24px;
  border-bottom: 1px solid var(--line-soft);
  font-size: 0.95rem;
}
.bk-review li:last-child { border-bottom: none; }
.bk-review .k { color: var(--ink-soft); font-size: 10px; letter-spacing: 0.24em; text-transform: uppercase; flex-shrink: 0; padding-top: 4px; }
.bk-review .v { font-family: var(--serif); font-size: 1.12rem; text-align: right; }
.bk-review .v.empty { color: var(--rose-soft); font-style: italic; }

.bk-nav { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-top: 40px; }
.bk-confirm-note {
  margin-top: 30px;
  padding: 20px 24px;
  border: 1px dashed var(--line);
  background: var(--blush);
  font-size: 0.86rem;
  color: var(--ink-soft);
  line-height: 1.8;
}
.bk-confirm-note strong { color: var(--ink); font-weight: 500; }
.bk-confirm-note a { color: var(--rose-deep); border-bottom: 1px solid var(--rose-soft); }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 980px) {
  .story-block, .story-block.flip, .service-section .wrap, .meet-ansh .wrap,
  .contact-split { grid-template-columns: 1fr; }
  .story-block.flip .text { order: 0; }
  .story-block.flip .visual { order: 1; }
  .service-section.flip .text { order: 0; }
  .service-section.flip .visual { order: 1; }
  .service-section .visual { max-width: 560px; }
  .we-cell { grid-column: span 3; }
  .masonry { columns: 2; }
  .bk-options { grid-template-columns: 1fr; }
  .bk-times { grid-template-columns: repeat(3, 1fr); }
  .contact-visual { max-width: 480px; }
}

@media (max-width: 640px) {
  .we-cell { grid-column: span 6; }
  .bk-step-dot .lab { display: none; }
  .bk-step-dot { flex: 0 0 auto; }
  .bk-progress { justify-content: space-between; gap: 8px; }
  .bk-step-dot { flex: 1; }
  .bk-step-dot .circle { width: 30px; height: 30px; }
  .bk-times { grid-template-columns: repeat(2, 1fr); }
  .field.two-col { grid-template-columns: 1fr; gap: 0; }
  .contact-list li { grid-template-columns: 1fr; gap: 4px; }
  .contact-visual .hours-card { left: 0; }
  .lb-prev { left: 8px; } .lb-next { right: 8px; }
  .lb-btn { width: 44px; height: 44px; }
  .service-section .visual .num-badge { left: -8px; top: -20px; width: 84px; height: 84px; }
  .gal-wide { aspect-ratio: 4 / 3; }
  .map-wrap { aspect-ratio: 4 / 5; min-height: 0; }
}

/* Editorial page refinements */
.service-section{overflow:hidden}
.service-section .visual{transition:transform .9s var(--ease-out)}
.service-section:hover .visual{transform:translateY(-5px)}
.service-section .text{position:relative}
.service-section .text::before{
  content:"";position:absolute;left:-28px;top:8px;width:1px;height:0;background:var(--rose);
  transition:height .9s var(--ease-out)
}
.service-section:hover .text::before{height:78px}
.service-section .price{display:flex;align-items:baseline;gap:12px}
.service-section .price .amount{font-family:var(--serif);font-size:clamp(2rem,3vw,3rem)}
.service-section .actions{display:flex;flex-wrap:wrap;gap:10px}
.we-cell{transition:transform .6s var(--ease-out),background .6s var(--ease-out),box-shadow .6s var(--ease-out)}
.we-cell:hover{transform:translateY(-6px);background:rgba(255,255,255,.5);box-shadow:0 20px 50px rgba(75,52,45,.07)}
.gallery-toolbar{position:sticky;top:calc(var(--nav-h) + 8px);z-index:10;background:rgba(251,247,242,.78);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:10px 12px;border:1px solid var(--line-soft)}
.g-item,.gal-wide{transition:opacity .55s var(--ease-out),transform .7s var(--ease-out),filter .7s ease}
.g-item:hover,.gal-wide:hover{transform:translateY(-5px)}
.g-item img,.g-item video,.gal-wide img,.gal-wide video{transition:transform 1.1s var(--ease-out)}
.g-item:hover img,.g-item:hover video,.gal-wide:hover img,.gal-wide:hover video{transform:scale(1.035)}
.lightbox{backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.contact-form,.booking-shell{box-shadow:0 30px 90px rgba(76,51,45,.09)}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus,
.booking-shell input:focus,.booking-shell select:focus,.booking-shell textarea:focus{
  border-color:var(--rose);box-shadow:0 0 0 4px rgba(192,130,114,.08);background:#fffdfb
}
.field-focus{transform:translateY(-1px);transition:transform .3s var(--ease-out)}
.bk-option{
  position:relative;overflow:hidden;isolation:isolate;
  min-height:94px;text-align:left;padding-left:112px!important;
  background:linear-gradient(90deg,rgba(255,255,255,.74),rgba(255,255,255,.46));
}
.bk-option::before{
  content:"";position:absolute;left:14px;top:14px;bottom:14px;width:78px;
  background-image:var(--service-image);background-size:cover;background-position:center;
  opacity:.95;z-index:-1;transition:transform .6s var(--ease-out),filter .6s ease
}
.bk-option:hover::before,.bk-option.selected::before{transform:scale(1.07)}
.bk-option.selected{border-color:var(--rose);box-shadow:0 16px 38px rgba(113,76,67,.1)}
@media(max-width:760px){
  .page-chapter-label{width:calc(100% - 40px);padding-top:calc(var(--nav-h) + 14px);font-size:8px}
  .page-hero .page-chapter-label + .container{padding-top:34px}
  .section[data-chapter-index]::before{display:none}
  .gallery-toolbar{top:var(--nav-h);overflow:auto}
  .bk-option{padding-left:104px!important}
}

/* ============================================================
   CONTACT + BOOKING — CONVERSION ART DIRECTION
   ============================================================ */
.contact-hero,.booking-hero{padding-bottom:clamp(60px,8vw,120px)}
.contact-hero-grid,.booking-hero-grid{
  display:grid;grid-template-columns:1.04fr .76fr;gap:clamp(48px,7vw,110px);align-items:center
}
.contact-hero-image,.booking-hero-image{position:relative;max-width:470px;justify-self:end}
.contact-hero-image img,.booking-hero-image img{
  width:100%;aspect-ratio:4/5;object-fit:cover;display:block;
  box-shadow:0 36px 90px rgba(76,51,45,.15)
}
.contact-hero-image::before,.booking-hero-image::before{
  content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid rgba(165,104,90,.28);z-index:-1
}
.contact-hero-note,.booking-image-caption{
  position:absolute;left:-24px;bottom:22px;background:rgba(251,247,242,.9);
  backdrop-filter:blur(14px);padding:18px 22px;box-shadow:0 16px 45px rgba(76,51,45,.1)
}
.contact-hero-note span,.booking-image-caption span{
  display:block;font-size:8px;letter-spacing:.28em;text-transform:uppercase;color:var(--rose-deep);margin-bottom:5px
}
.contact-hero-note strong,.booking-image-caption strong{font-family:var(--serif);font-size:1.25rem;font-weight:500}
.contact-quick{display:grid;grid-template-columns:repeat(3,1fr);margin-top:42px;border-top:1px solid var(--line-soft)}
.contact-quick a{padding:18px 14px;border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft);transition:background .4s var(--ease-out),transform .4s var(--ease-out)}
.contact-quick a:last-child{border-right:0}
.contact-quick a:hover{background:rgba(255,255,255,.5);transform:translateY(-3px)}
.contact-quick span{display:block;font-family:var(--serif);font-size:13px;color:var(--rose-deep);margin-bottom:12px}
.contact-quick strong{display:block;font-family:var(--serif);font-size:1.08rem;font-weight:500}
.contact-quick small{display:block;color:var(--ink-soft);font-size:.72rem;margin-top:4px}

.contact-conversation{background:linear-gradient(180deg,var(--ivory),#f4e3df)}
.contact-form-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(38px,7vw,100px);align-items:start}
.contact-form-side{padding-top:clamp(20px,5vw,70px)}
.contact-form-side h2{margin:18px 0 18px}
.contact-form-side>p{max-width:42ch;color:var(--ink-soft);line-height:1.85}
.conversation-steps{margin-top:42px;border-top:1px solid var(--line-soft)}
.conversation-steps>div{display:grid;grid-template-columns:34px 1fr;gap:10px;padding:18px 0;border-bottom:1px solid var(--line-soft)}
.conversation-steps span{font-family:var(--serif);font-size:14px;color:var(--rose-deep)}
.conversation-steps strong{font-family:var(--serif);font-size:1.08rem;font-weight:500}
.conversation-steps small{grid-column:2;color:var(--ink-soft);font-size:.78rem}
.contact-form-card{position:relative}
.form-topline{display:flex;justify-content:space-between;gap:20px;padding-bottom:15px;margin-bottom:25px;border-bottom:1px solid var(--line-soft);font-size:8px;letter-spacing:.28em;color:var(--rose-deep)}
.contact-form-card h3{font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.5rem);font-weight:400}
.contact-form-card .btn.solid{min-width:210px}
.contact-form-card .form-foot{margin-top:18px}

.booking-hero-grid{grid-template-columns:1fr .62fr}
.booking-hero-image{max-width:390px}
.booking-hero-image img{aspect-ratio:4/5}
.booking-hero-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.booking-hero-links span{border:1px solid var(--line-soft);padding:9px 13px;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);background:rgba(255,255,255,.34)}
.booking-intro{
  display:grid;grid-template-columns:1fr .72fr;gap:35px;align-items:end;
  padding-bottom:30px;margin-bottom:30px;border-bottom:1px solid var(--line-soft)
}
.booking-kicker{font-size:8px;letter-spacing:.34em;text-transform:uppercase;color:var(--rose-deep)}
.booking-intro h2{font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.45rem);font-weight:400;margin-top:10px;line-height:1.05}
.booking-intro p{color:var(--ink-soft);font-size:.86rem;line-height:1.8}
.booking-shell{max-width:920px}
.bk-option{min-height:112px!important;padding:18px 20px 18px 116px!important}
.bk-option::before{
  z-index:0!important;width:84px!important;top:12px!important;bottom:12px!important;left:12px!important;
  filter:saturate(.92)
}
.bk-option>span{position:relative;z-index:2}
.bk-option .name{font-size:1.25rem}
.bk-option .meta{font-size:.72rem}
.bk-option:hover{box-shadow:0 16px 40px rgba(76,51,45,.07)}
.bk-option.select-pulse{animation:servicePulse .5s var(--ease-out)}
@keyframes servicePulse{0%{transform:scale(.985)}60%{transform:scale(1.012)}100%{transform:scale(1)}}
.bk-date-input{
  min-height:64px;border-radius:0;background:rgba(255,255,255,.45)
}
.bk-time{background:rgba(255,255,255,.42);min-height:52px}
.bk-time.selected{box-shadow:0 12px 28px rgba(76,51,45,.13)}
.bk-review{
  box-shadow:0 18px 50px rgba(76,51,45,.06)
}
.bk-review li{padding:18px 24px}
.bk-confirm-note{background:linear-gradient(135deg,#f3e0dc,#fbf7f2);border-style:solid}
.booking-assurance{background:var(--ivory)}
.assurance-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.assurance-card{padding:30px 24px;border-right:1px solid var(--line-soft)}
.assurance-card:last-child{border-right:0}
.assurance-card>span{font-family:var(--serif);font-size:13px;color:var(--rose-deep)}
.assurance-card h3{font-family:var(--serif);font-size:1.45rem;font-weight:400;margin:12px 0 7px}
.assurance-card p{color:var(--ink-soft);font-size:.8rem;line-height:1.7;max-width:30ch}

@media(max-width:900px){
  .contact-hero-grid,.booking-hero-grid,.contact-form-layout{grid-template-columns:1fr}
  .contact-hero-image,.booking-hero-image{justify-self:start;max-width:520px}
  .contact-form-side{padding-top:0}
  .booking-intro{grid-template-columns:1fr}
}
@media(max-width:640px){
  .contact-quick{grid-template-columns:1fr}
  .contact-quick a{border-right:0}
  .contact-hero-image,.booking-hero-image{width:calc(100% - 18px);margin-left:18px}
  .contact-hero-note,.booking-image-caption{left:-18px}
  .booking-intro{gap:14px}
  .bk-option{min-height:96px!important;padding-left:108px!important}
  .assurance-grid{grid-template-columns:1fr}
  .assurance-card{border-right:0;border-bottom:1px solid var(--line-soft)}
  .assurance-card:last-child{border-bottom:0}
  .form-topline{font-size:7px}
}


/* ============================================================
   ANSH STUDIO — BLUSH PINK LUXURY BEAUTY THEME
   ============================================================ */
:root{
  --ivory:#fff9f8;
  --paper:#fff5f4;
  --paper-2:#fdf0ef;
  --ink:#302527;
  --ink-soft:#78696a;
  --rose:#d99a9f;
  --rose-deep:#a9616b;
  --line-soft:rgba(169,97,107,.16);
  --pink-soft:#f7dfe1;
  --pink:#e8b5ba;
  --champagne:#ead8ce;
}
html,body{
  background:
    radial-gradient(circle at 8% 8%,rgba(232,181,186,.18),transparent 28%),
    radial-gradient(circle at 92% 34%,rgba(247,223,225,.24),transparent 30%),
    var(--ivory);
  color:var(--ink);
}
body:before{
  background:linear-gradient(90deg,rgba(232,181,186,.035),transparent 35%,rgba(217,154,159,.025));
}
.site-nav{
  background:rgba(255,249,248,.68);
  border-color:rgba(169,97,107,.12);
}
body.scrolled .site-nav{
  background:rgba(255,249,248,.90);
  box-shadow:0 12px 42px rgba(132,79,87,.10);
  border-color:rgba(169,97,107,.16);
}
.nav-links a:hover,.nav-links a.active{color:var(--rose-deep)}
.nav-cta,.btn.solid{
  background:linear-gradient(135deg,#b96f79,#d7969d);
  color:#fff;
  box-shadow:0 12px 28px rgba(169,97,107,.18);
}
.btn.outline{
  border-color:rgba(169,97,107,.32);
  color:var(--rose-deep);
  background:rgba(255,255,255,.34);
}
.btn.outline:hover{background:#f8e4e5;border-color:var(--rose)}
.hero-overlay{
  background:
    linear-gradient(180deg,rgba(80,34,43,.12),rgba(255,209,215,.04) 45%,rgba(70,34,40,.34));
}
.hero::after{
  background:linear-gradient(to bottom,transparent,rgba(255,249,248,.82));
}
.overline,.booking-kicker,.page-chapter-label,.booking-image-caption span,
.contact-hero-note span,.form-topline,.lux-chapter-num{
  color:var(--rose-deep);
}
.display em,.hero-title em,.booking-intro em,.contact-form-side em{
  color:var(--rose-deep);
}
.section-label,.eyebrow{color:var(--rose-deep)}
.section-title:after,.rule,.line{background:var(--rose)}
.paper,.paper-section{
  background:linear-gradient(145deg,#fffafa,#fdf0ef);
}
.card,.frame,.contact-form-card,.booking-shell{
  background:rgba(255,250,249,.82);
  border-color:rgba(169,97,107,.13);
  box-shadow:0 28px 75px rgba(126,76,83,.09);
}
.service-section .text::before{background:var(--rose)}
.price .amount,.service-price,.amount{color:var(--rose-deep)}
.we-cell:hover{
  background:rgba(250,228,229,.45);
  box-shadow:0 22px 55px rgba(126,76,83,.08);
}
.gallery-toolbar{
  background:rgba(255,249,248,.84);
  border-color:rgba(169,97,107,.13);
}
.gallery-toolbar button.active,.filter-btn.active{
  background:#f2d2d5;
  color:#75434b;
  border-color:#e2b0b5;
}
.contact-quick a:hover{
  background:rgba(249,224,226,.68);
}
.contact-conversation{
  background:
    radial-gradient(circle at 85% 10%,rgba(232,181,186,.22),transparent 30%),
    linear-gradient(180deg,#fff9f8,#f8e6e5);
}
.conversation-steps span,.assurance-card>span{color:var(--rose-deep)}
.booking-intro,.conversation-steps,.assurance-grid{
  border-color:rgba(169,97,107,.15);
}
.booking-assurance{
  background:linear-gradient(180deg,#fff9f8,#f9e5e5);
}
.assurance-card:hover{
  background:rgba(246,220,222,.38);
}
.bk-option{
  background:linear-gradient(100deg,rgba(255,255,255,.86),rgba(250,229,230,.52));
  border-color:rgba(169,97,107,.12);
}
.bk-option:hover,.bk-option.selected{
  border-color:#d79ba2;
  background:linear-gradient(100deg,#fffafa,#f8e1e2);
  box-shadow:0 18px 45px rgba(126,76,83,.11);
}
.bk-option.selected{
  box-shadow:inset 3px 0 #bd727d,0 18px 45px rgba(126,76,83,.11);
}
.bk-time.selected{
  background:#f2d2d5;
  border-color:#d99a9f;
  color:#6f3f47;
}
.bk-confirm-note{
  background:linear-gradient(135deg,#f5dadd,#fff8f7);
  border-color:#e1b2b6;
}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus,
.booking-shell input:focus,.booking-shell select:focus,.booking-shell textarea:focus{
  border-color:#d99a9f;
  box-shadow:0 0 0 4px rgba(217,154,159,.12);
  background:#fffdfd;
}
.float-actions a,.floating-actions a{
  background:rgba(255,249,248,.92);
  border-color:rgba(169,97,107,.16);
  color:var(--rose-deep);
  box-shadow:0 12px 32px rgba(126,76,83,.10);
}
.lux-scroll-progress span{background:var(--rose-deep)}
.lux-scroll-progress{background:rgba(169,97,107,.13)}
.lux-chapter-marker{color:#8a7476}
.mobile-menu{
  background:
    radial-gradient(circle at 80% 10%,rgba(232,181,186,.24),transparent 28%),
    #fff8f7;
}
.mobile-menu a:hover{color:var(--rose-deep)}
footer{
  background:linear-gradient(145deg,#f4dddd,#ead0d1);
}
footer a:hover{color:#7d454d}
@media(max-width:760px){
  .site-nav{background:rgba(255,249,248,.88)}
}

/* ============================================================
   ABOUT — CHAPTER 02 LUXURY EDITORIAL HERO
   ============================================================ */
.about-hero-lux{
  padding-bottom:clamp(75px,10vw,145px);
  overflow:hidden;
  background:
    radial-gradient(circle at 78% 22%,rgba(232,181,186,.24),transparent 31%),
    linear-gradient(135deg,#fffafa 0%,#f8e6e5 100%);
}
.about-hero-grid{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:clamp(45px,8vw,120px);
  align-items:center;
}
.about-hero-copy{padding-top:clamp(30px,5vw,70px)}
.about-hero-copy h1{
  margin:16px 0 24px;
  font-size:clamp(4rem,8vw,8rem);
  line-height:.79;
  letter-spacing:-.035em;
}
.about-hero-copy h1 em{
  color:var(--rose-deep);
  font-weight:400;
}
.about-hero-copy .lead{
  max-width:43ch;
  line-height:1.9;
  color:var(--ink-soft);
}
.about-hero-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:34px;
}
.about-hero-meta span{
  border:1px solid rgba(169,97,107,.16);
  background:rgba(255,255,255,.42);
  padding:9px 12px;
  font-size:8px;
  letter-spacing:.22em;
  color:var(--rose-deep);
}
.about-hero-visual{
  position:relative;
  min-height:650px;
}
.about-hero-main{
  position:absolute;
  width:72%;
  height:86%;
  right:4%;
  top:4%;
  overflow:hidden;
  box-shadow:0 40px 100px rgba(102,62,68,.16);
}
.about-hero-main::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 65%,rgba(52,25,29,.14));
}
.about-hero-main img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.5s cubic-bezier(.16,1,.3,1);
}
.about-hero-visual:hover .about-hero-main img{transform:scale(1.035)}
.about-hero-detail{
  position:absolute;
  width:31%;
  height:34%;
  left:1%;
  bottom:2%;
  overflow:hidden;
  border:8px solid #fff9f8;
  box-shadow:0 25px 60px rgba(102,62,68,.15);
  transform:rotate(-4deg);
}
.about-hero-detail img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .9s ease;
}
.about-hero-detail:hover img{transform:scale(1.08)}
.about-hero-stamp{
  position:absolute;
  right:-2%;
  top:9%;
  width:104px;height:104px;
  border:1px solid rgba(169,97,107,.35);
  border-radius:50%;
  background:rgba(255,249,248,.82);
  backdrop-filter:blur(12px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  transform:rotate(8deg);
  box-shadow:0 15px 40px rgba(102,62,68,.09);
}
.about-hero-stamp span{
  font-size:8px;letter-spacing:.3em;color:var(--rose-deep);
}
.about-hero-stamp strong{
  font-family:var(--serif);
  font-size:1.35rem;font-weight:400;
  line-height:1;
}
.about-hero-stamp small{
  margin-top:7px;font-size:6px;letter-spacing:.18em;color:var(--ink-soft);
}
@media(max-width:900px){
  .about-hero-grid{grid-template-columns:1fr}
  .about-hero-visual{min-height:650px;margin-top:10px}
  .about-hero-main{width:74%;right:4%}
}
@media(max-width:620px){
  .about-hero-copy{padding-top:20px}
  .about-hero-copy h1{font-size:clamp(3.6rem,17vw,5.4rem)}
  .about-hero-visual{min-height:500px}
  .about-hero-main{width:82%;height:82%;right:0}
  .about-hero-detail{width:40%;height:34%;left:0}
  .about-hero-stamp{width:82px;height:82px;right:-2%;top:7%}
  .about-hero-stamp strong{font-size:1.05rem}
}

/* ============================================================
   WHY CHOOSE US — CHAPTER EDITORIAL SECTION
   ============================================================ */
.why-choose-editorial{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 88% 12%,rgba(232,181,186,.22),transparent 28%),
    linear-gradient(135deg,#fffafa,#f8e7e6);
}
.why-choose-heading{
  display:grid;
  grid-template-columns:1fr .55fr;
  gap:60px;
  align-items:end;
  margin-bottom:55px;
}
.why-choose-heading h2{margin-top:14px}
.why-choose-heading h2 em{color:var(--rose-deep);font-weight:400}
.why-choose-heading>p{
  max-width:40ch;
  color:var(--ink-soft);
  line-height:1.85;
  font-size:.86rem;
  padding-left:24px;
  border-left:1px solid rgba(169,97,107,.25);
  margin-bottom:6px;
}
.why-choose-stage{
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:clamp(35px,7vw,95px);
  align-items:start;
}
.why-choose-image{
  position:sticky;
  top:120px;
  height:620px;
  overflow:hidden;
  box-shadow:0 38px 90px rgba(104,62,69,.14);
}
.why-choose-image::after{
  content:"";
  position:absolute;
  inset:16px -16px -16px 16px;
  border:1px solid rgba(169,97,107,.25);
  pointer-events:none;
}
.why-choose-image img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.3s cubic-bezier(.16,1,.3,1);
}
.why-choose-image:hover img{transform:scale(1.045)}
.why-choose-image-caption{
  position:absolute;
  left:20px;bottom:20px;
  padding:15px 18px;
  background:rgba(255,249,248,.90);
  backdrop-filter:blur(15px);
  box-shadow:0 15px 38px rgba(70,40,46,.11);
}
.why-choose-image-caption span{
  display:block;
  font-size:8px;
  letter-spacing:.27em;
  color:var(--rose-deep);
  margin-bottom:5px;
}
.why-choose-image-caption strong{
  font-family:var(--serif);
  font-size:1.15rem;
  font-weight:400;
}
.why-choose-list{border-top:1px solid rgba(169,97,107,.16)}
.why-choose-row{
  display:grid;
  grid-template-columns:48px 1fr 30px;
  gap:20px;
  align-items:start;
  padding:27px 0;
  border-bottom:1px solid rgba(169,97,107,.16);
  transition:padding .55s cubic-bezier(.16,1,.3,1),background .5s ease,box-shadow .5s ease;
}
.why-choose-row:hover{
  padding-left:18px;
  padding-right:18px;
  background:rgba(255,255,255,.46);
  box-shadow:0 15px 45px rgba(105,64,70,.05);
}
.roman{
  font-family:var(--serif);
  font-size:1.05rem;
  color:var(--rose-deep);
  padding-top:2px;
}
.why-choose-row h3{
  margin:0 0 9px;
  font-family:var(--serif);
  font-size:clamp(1.45rem,2.2vw,2.1rem);
  line-height:1;
  font-weight:400;
}
.why-choose-row p{
  margin:0;
  max-width:53ch;
  color:var(--ink-soft);
  font-size:.78rem;
  line-height:1.75;
}
.row-mark{
  font-size:8px;
  letter-spacing:.18em;
  color:var(--rose-deep);
  opacity:.45;
  padding-top:5px;
}
.why-choose-footer{
  margin-top:80px;
  padding-top:38px;
  border-top:1px solid rgba(169,97,107,.16);
  display:grid;
  grid-template-columns:1fr 1.3fr auto;
  gap:35px;
  align-items:center;
}
.footer-line{width:100%;height:1px;background:var(--rose)}
.why-choose-footer p{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(1.5rem,2.7vw,2.55rem);
  line-height:1;
}
.why-choose-footer p em{color:var(--rose-deep);font-weight:400}
.why-choose-footer a{
  font-size:9px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--rose-deep);
  white-space:nowrap;
}
.why-choose-footer a span{
  display:inline-block;
  margin-left:7px;
  transition:transform .35s ease;
}
.why-choose-footer a:hover span{transform:translate(4px,-4px)}
@media(max-width:900px){
  .why-choose-heading{grid-template-columns:1fr;gap:22px}
  .why-choose-stage{grid-template-columns:1fr}
  .why-choose-image{position:relative;top:auto;height:560px}
  .why-choose-footer{grid-template-columns:1fr;gap:18px}
  .footer-line{max-width:80px}
}
@media(max-width:620px){
  .why-choose-heading{margin-bottom:35px}
  .why-choose-heading>p{padding-left:16px}
  .why-choose-image{height:440px}
  .why-choose-image::after{inset:10px -10px -10px 10px}
  .why-choose-row{grid-template-columns:30px 1fr 20px;gap:12px;padding:21px 0}
  .why-choose-row:hover{padding-left:10px;padding-right:10px}
  .why-choose-row h3{font-size:1.4rem}
  .why-choose-row p{font-size:.74rem}
  .why-choose-footer{margin-top:60px;padding-top:30px}
}

/* ============================================================
   MOBILE PHOTO FIX — SERVICES + GALLERY
   ============================================================ */
.service-section .visual,
.service-section .visual .frame{
  width:100%;
}
.service-section .visual .frame{
  display:block;
  min-height:0;
}
.service-section .visual img,
.service-section .visual video{
  display:block;
  width:100%;
  height:100%;
}
@media (max-width: 980px){
  .service-section .visual{
    width:100%;
    max-width:560px;
  }
}
@media (max-width: 640px){
  .service-section .visual{
    width:100%;
    max-width:none;
    margin:0;
  }
  .service-section .visual .frame{
    width:100%;
    aspect-ratio:4/5;
    min-height:0;
  }
  .service-section .visual img,
  .service-section .visual video{
    width:100%;
    height:100%;
    min-width:0;
    object-fit:cover;
  }

  /* Two-column gallery was creating awkward gaps on phones.
     Use a controlled editorial grid instead. */
  #gallery-grid.masonry,
  .masonry{
    columns:unset;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .masonry .g-item{
    width:100%;
    margin:0;
    break-inside:initial;
  }
  .masonry .g-item img,
  .masonry .g-item video{
    display:block;
    width:100%;
    height:auto;
    min-width:0;
  }
  .masonry .g-item:nth-child(3n+1){
    transform:none;
  }
  .masonry .g-item:nth-child(4n+1){
    grid-row:span 1;
  }
}

/* ============================================================
   ABOUT MOBILE OVERFLOW FIX
   Preserve intentional line breaks and keep every word inside viewport.
   ============================================================ */
.about-hero-copy,
.about-hero-grid,
.about-hero-copy .lead,
.about-title{
  min-width:0;
  max-width:100%;
}
.about-title{
  overflow-wrap:normal;
  word-break:normal;
  white-space:normal;
}
.about-hero-copy .lead{
  overflow-wrap:anywhere;
}
@media(max-width:900px){
  .about-hero-copy{
    width:100%;
  }
  .about-title{
    font-size:clamp(3.25rem,13vw,5.4rem);
    line-height:.86;
    letter-spacing:-.025em;
  }
  .about-hero-copy .lead{
    width:100%;
    max-width:38ch;
  }
}
@media(max-width:620px){
  .about-title{
    font-size:clamp(2.9rem,14.2vw,4.7rem);
    line-height:.88;
    letter-spacing:-.025em;
  }
  .about-hero-copy .lead{
    max-width:100%;
    font-size:.82rem;
    line-height:1.75;
  }
  .about-hero-meta{
    max-width:100%;
    gap:7px;
  }
  .about-hero-meta span{
    letter-spacing:.16em;
    padding:8px 9px;
    font-size:7px;
  }
}

/* ============================================================
   CONTACT FORM — MOBILE DATE FIELD FIX
   ============================================================ */
.contact-date-input{
  width:100%;
  min-height:48px;
  padding:15px 34px 12px 0 !important;
  line-height:1.2;
  font-size:14px;
  color:var(--ink);
  background:transparent;
  border:0;
  border-bottom:1px solid rgba(169,97,107,.18);
  border-radius:0;
  box-sizing:border-box;
  appearance:auto;
  -webkit-appearance:auto;
}
.contact-date-input:focus{
  outline:none;
  border-bottom-color:var(--rose);
}
.contact-date-input::-webkit-calendar-picker-indicator{
  opacity:.72;
  width:18px;
  height:18px;
  cursor:pointer;
}
@media(max-width:620px){
  .contact-date-input{
    min-height:52px;
    padding-top:16px !important;
    padding-bottom:14px !important;
    font-size:14px;
  }
  .contact-form .field:has(.contact-date-input){
    min-height:76px;
    padding-top:0;
    margin-bottom:18px;
  }
  .contact-form .field:has(.contact-date-input) label{
    position:relative;
    display:block;
    margin-bottom:3px;
    transform:none !important;
    top:auto !important;
    left:auto !important;
  }
}
