@import url('https://fonts.googleapis.com/css2?family=Allura&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap');

:root { --ink:#191719; --muted:#625960; --cream:#fff; --blush:#f6d2d5; --line:#e8dfe1; --accent:#8b3e50; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font:16px/1.65 'DM Sans',Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:'Playfair Display',Georgia,serif; font-weight:400; line-height:1.12; letter-spacing:-.025em; }
h2 { font-size:clamp(2.3rem,4.3vw,4rem); }
h1 em,h2 em { font-weight:400; }
a,button,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:10px; left:10px; z-index:100; padding:12px 20px; background:white; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.eyebrow { font-size:.7rem; letter-spacing:.19em; font-weight:700; color:var(--accent); margin-bottom:20px; text-transform:uppercase; }
.site-header { min-height:88px; display:flex; align-items:center; justify-content:space-between; gap:28px; padding:18px max(4%,calc((100vw - 1320px)/2)); background:#fff; position:relative; z-index:10; }
.brand { font:700 1.7rem/1 'DM Sans',Arial,sans-serif; white-space:nowrap; letter-spacing:-.05em; }
.brand span { font-weight:400; letter-spacing:-.04em; margin-left:.12em; }
.nav { display:flex; align-items:center; gap:clamp(14px,1.9vw,28px); font-size:.7rem; font-weight:600; letter-spacing:.065em; text-transform:uppercase; }
.nav a { padding-block:10px; }
.nav a:hover,.text-link:hover { color:var(--accent); }
.nav .nav-book { background:var(--ink); color:#fff; padding:14px 19px; }
.menu-toggle { display:none; }
.hero { min-height:640px; position:relative; isolation:isolate; overflow:hidden; background:#f6f4f0; display:flex; align-items:center; padding:70px max(5%,calc((100vw - 1200px)/2)); }
.hero>img { position:absolute; inset:0; z-index:-2; height:100%; width:100%; object-fit:cover; object-position:center 44%; }
.hero:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,transparent 27%,rgba(255,255,255,.3) 49%,rgba(255,255,255,.94) 76%,rgba(255,255,255,.97)); }
.hero-overlay { margin-left:auto; width:45%; max-width:570px; color:var(--ink); }
.hero-overlay .eyebrow { color:#723542; }
.hero h1 { font-size:clamp(2.9rem,4.3vw,4.5rem); margin-bottom:24px; }
.hero h1 em { font-family:'Allura',cursive; font-size:1.55em; line-height:1.08; color:#171517; font-style:normal; letter-spacing:-.035em; }
.hero-overlay>p:not(.eyebrow) { font-size:1.05rem; max-width:370px; margin-bottom:30px; color:#494047; }
.hero-side { position:absolute; left:max(5%,calc((100vw - 1200px)/2)); bottom:22px; font-size:.65rem; letter-spacing:.14em; text-transform:uppercase; background:#ffffffdf; padding:8px 12px; }
.button { display:inline-flex; gap:30px; align-items:center; justify-content:space-between; padding:16px 22px; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700; border:1px solid transparent; min-height:54px; transition:transform .2s,background .2s; }
.button.dark { background:var(--ink); color:white; }
.button.light { background:#fff; color:var(--ink); }
.button.outline { border-color:var(--ink); }
.button:hover { transform:translateY(-2px); }
.button.dark:hover,.nav .nav-book:hover { background:#733447; color:white; }
.section-wrap { max-width:1320px; margin:auto; padding:90px 5%; }
.treatments { padding-top:70px; padding-bottom:70px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:50px; margin-bottom:36px; }
.section-heading h2 { margin:0; }
.section-heading>p { max-width:380px; color:var(--muted); margin:0; font-size:.94rem; }
.treatment-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.treatment-card { background:var(--blush); display:flex; flex-direction:column; }
.card-photo { position:relative; aspect-ratio:1.4; overflow:hidden; }
.card-photo img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.card-number { position:absolute; top:16px; left:16px; background:white; color:var(--ink); font-size:.65rem; padding:4px 9px; letter-spacing:.1em; }
.card-copy { padding:25px 27px; flex:1; display:flex; flex-direction:column; }
.card-copy h3 { font:400 1.7rem/1.15 'Playfair Display',Georgia,serif; margin:0 0 12px; letter-spacing:-.02em; }
.card-copy p { font-size:.82rem; line-height:1.5; margin-bottom:23px; }
.card-link { display:flex; justify-content:space-between; align-items:center; font-size:.65rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-top:auto; padding-top:13px; border-top:1px solid #19171933; }
.card-link>span { font-size:1.1rem; }
.treatment-card-dark { background:var(--ink); color:white; }
.treatment-card-dark .card-link { border-color:#ffffff4d; }
.treatment-card:hover .card-photo img,.treatment-card:focus-visible .card-photo img { transform:scale(1.045); }
.treatment-menu { margin-top:34px; border-block:1px solid var(--line); }
.treatment-menu summary { list-style:none; display:flex; justify-content:space-between; gap:15px; align-items:center; padding:24px 0; cursor:pointer; font-size:.85rem; text-transform:uppercase; letter-spacing:.09em; font-weight:700; }
.treatment-menu summary::-webkit-details-marker { display:none; }
.treatment-menu summary>span { font-size:1.6rem; font-weight:400; }
.treatment-menu[open] summary>span { transform:rotate(45deg); }
.menu-content { padding-bottom:20px; }
.tabs { display:flex; gap:8px; flex-wrap:wrap; margin:8px 0 24px; }
.tabs button { border:1px solid #d5c7cd; background:white; color:var(--ink); padding:11px 16px; cursor:pointer; font-size:.8rem; min-height:44px; }
.tabs button.active,.tabs button:hover { background:var(--ink); color:white; border-color:var(--ink); }
.service-list { display:grid; grid-template-columns:1fr 1fr; gap:0 32px; }
.service { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:16px; border-bottom:1px solid var(--line); min-height:88px; padding:15px 0; }
.service h3 { font-size:.95rem; font-weight:600; margin:0; line-height:1.4; }
.service div span { font-size:.8rem; color:var(--muted); }
.service strong { font-size:.9rem; }
.service a { color:var(--accent); font-size:.78rem; font-weight:700; padding:12px 0; white-space:nowrap; }
.service a:hover { text-decoration:underline; }
.price-note { font-size:.8rem; color:var(--muted); margin:22px 0 0; }
.intro { text-align:center; padding:50px 20px 85px; max-width:820px; margin:auto; }
.intro .eyebrow { margin-bottom:15px; }
.intro h2 { font-size:clamp(2.1rem,3.5vw,3.2rem); margin-bottom:20px; }
.intro>p:last-child { max-width:570px; margin:0 auto; color:var(--muted); font-size:1rem; }
.about { display:grid; grid-template-columns:1fr 1fr; background:var(--blush); }
.about-photo { overflow:hidden; min-height:580px; }
.about-photo img { width:100%; height:100%; max-height:700px; object-fit:cover; object-position:center 32%; }
.about-copy { padding:65px clamp(30px,6vw,95px); align-self:center; }
.about-copy h2 { margin-bottom:28px; }
.about-copy p:not(.eyebrow) { max-width:500px; font-size:.95rem; }
.text-link { font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; border-bottom:1px solid currentColor; padding-block:12px 7px; display:inline-block; margin-top:5px; }
.reviews { text-align:center; }
.review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:40px; text-align:left; }
.review-grid blockquote { background:#fff7f7; border-top:2px solid var(--blush); padding:30px; margin:0; font:1.1rem/1.6 'Playfair Display',Georgia,serif; display:flex; flex-direction:column; justify-content:space-between; min-height:280px; }
.review-grid cite { font:700 .65rem/1.6 'DM Sans',sans-serif; font-style:normal; letter-spacing:.08em; text-transform:uppercase; margin-top:28px; color:var(--accent); }
.skincare { background:#f7edef; }
.skincare-inner { display:grid; grid-template-columns:1.1fr 1fr; gap:70px; align-items:center; }
.skincare h2 { max-width:690px; }
.skincare p:not(.eyebrow) { max-width:510px; margin-bottom:28px; }
.skincare-photo { margin:0; background:white; padding:20px 26px 28px; }
.product-photo { width:100%; height:auto; aspect-ratio:1.1; object-fit:contain; }
.skincare-photo figcaption { border-top:1px solid var(--line); padding-top:22px; text-align:center; }
.medik8-logo { width:180px; height:auto; margin:0 auto 8px; }
.skincare-photo figcaption span { display:block; font-size:.65rem; letter-spacing:.05em; color:var(--muted); }
.visit { display:grid; grid-template-columns:1.2fr 1fr; gap:10%; }
.visit>div>p:not(.eyebrow) { color:var(--muted); max-width:470px; }
.contact-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }
.visit-details { border-top:1px solid var(--line); }
.visit-details>div { padding:22px 0; border-bottom:1px solid var(--line); }
.visit-details span { font-size:.7rem; letter-spacing:.16em; font-weight:700; color:var(--accent); }
.visit-details p { margin:9px 0 3px; }
.visit-details a { text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
footer { background:var(--ink); color:#fff; padding:55px max(5%,calc((100vw - 1188px)/2)); display:grid; grid-template-columns:1fr 1fr; gap:18px; }
footer p { color:#e0d6db; margin:0; }
footer div { display:flex; gap:24px; font-size:.8rem; }
footer small { color:#c5b7be; text-align:right; }
section,details { scroll-margin-top:24px; }
@media(max-width:1050px) {
 .site-header { min-height:76px; padding:18px 5%; }
 .menu-toggle { display:flex; gap:9px; align-items:center; min-height:44px; border:0; background:none; text-transform:uppercase; font-size:.8rem; font-weight:700; cursor:pointer; }
 .nav { display:none; position:absolute; top:100%; left:0; right:0; background:white; padding:18px 5% 25px; flex-direction:column; align-items:stretch; box-shadow:0 15px 20px #0002; }
 .nav.open { display:flex; }
 .nav a { padding:12px 0; }
 .hero { min-height:600px; }
 .hero-overlay { width:47%; }
 .hero h1 { font-size:3rem; }
 .section-heading { align-items:start; gap:30px; }
 .section-heading>p { max-width:330px; }
 .card-copy { padding:22px; }
 .card-copy h3 { font-size:1.5rem; }
 .about-photo { min-height:530px; }
 .about-copy { padding:50px 8%; }
 .review-grid blockquote { padding:24px; }
 .skincare-inner { gap:35px; }
}
@media(max-width:760px) {
 .hero { min-height:560px; }
 .hero-overlay { width:49%; }
 .hero h1 { font-size:2.5rem; }
 .treatment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
 .section-heading { display:block; }
 .section-heading>p { max-width:520px; margin-top:20px; }
 .service-list { grid-template-columns:1fr; }
 .review-grid { grid-template-columns:1fr; }
 .review-grid blockquote { min-height:auto; }
 .visit { grid-template-columns:1fr; gap:40px; }
}
@media(max-width:600px) {
 .brand { font-size:1.5rem; }
 .site-header { min-height:72px; padding-block:10px; }
 .hero { display:block; min-height:0; padding:285px 6% 42px; background:#fff3f3; }
 .hero>img { height:310px; object-position:30% center; }
 .hero:after { background:linear-gradient(180deg,transparent 180px,#fff3f3 305px); }
 .hero-overlay { margin:0; width:100%; max-width:none; position:relative; }
 .hero .eyebrow { margin-bottom:17px; font-size:.62rem; }
 .hero h1 { font-size:clamp(2.5rem,10vw,3.6rem); margin-bottom:18px; }
 .hero h1 em { font-size:1.45em; }
 .hero-overlay>p:not(.eyebrow) { font-size:.95rem; max-width:350px; margin-bottom:24px; }
 .hero-side { display:none; }
 .section-wrap { padding:58px 6%; }
 .treatment-grid { gap:15px; }
 .card-photo { aspect-ratio:1; }
 .card-number { top:10px; left:10px; padding:2px 6px; font-size:.6rem; }
 .card-copy { padding:18px 14px; }
 .card-copy h3 { font-size:1.3rem; }
 .card-copy p { font-size:.75rem; margin-bottom:16px; }
 .card-link { font-size:.56rem; letter-spacing:.035em; gap:5px; }
 .tabs { gap:7px; }
 .tabs button { padding:10px 13px; }
 .service { grid-template-columns:minmax(0,1fr) auto; gap:3px 12px; }
 .service a { grid-column:2; grid-row:2; text-align:right; padding:8px 0; }
 .service strong { grid-column:2; grid-row:1; }
 .intro { padding:15px 6% 60px; }
 .about { grid-template-columns:1fr; }
 .about-photo { height:420px; min-height:0; }
 .about-copy { padding:48px 6%; }
 .skincare-inner { grid-template-columns:1fr; gap:35px; }
 .skincare-photo { padding:15px 20px 25px; }
 .product-photo { max-height:330px; }
 footer { grid-template-columns:1fr; padding:48px 6%; }
 footer small { text-align:left; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { transition:none!important; animation:none!important; }
 .treatment-card:hover .card-photo img,.treatment-card:focus-visible .card-photo img,.button:hover { transform:none; }
}

/* Layered photo-led direction, drawing on Beauty Nova's original visual identity. */
:root { --ink:#121212; --muted:#60575b; --blush:#f7d5d4; --accent:#a94e68; }
.site-header {
  min-height:90px;
  padding:15px max(5%,calc((100vw - 1190px)/2));
  box-shadow:0 3px 20px #0000000b;
}
.brand { display:inline-flex; align-items:baseline; gap:.22em; font-size:1.95rem; letter-spacing:-.055em; }
.brand strong { font-weight:700; }
.brand span { font-weight:400; margin:0; letter-spacing:-.055em; }
.nav { gap:clamp(14px,2.2vw,34px); font-size:.71rem; }
.nav .nav-book { background:var(--blush); color:var(--ink); padding:14px 18px; }
.nav .nav-book:hover { background:var(--ink); color:white; }
.nav-book span { margin-left:10px; font-size:1rem; }
.hero {
  min-height:725px;
  padding:90px max(7%,calc((100vw - 1110px)/2)) 185px;
  align-items:flex-start;
  background:#f8f8f6;
}
.hero>img { object-position:center 37%; }
.hero:after { background:linear-gradient(90deg,transparent 34%,#ffffff0d 48%,#ffffff6e 69%,#fffffff0 96%); }
.hero-overlay {
  width:min(510px,44%);
  max-width:none;
  margin:0 0 0 auto;
  padding:28px 0 0;
  position:relative;
}
.hero-overlay:before {
  content:"";
  display:block;
  width:48px;
  height:3px;
  background:var(--accent);
  margin-bottom:28px;
}
.hero-overlay .eyebrow { margin-bottom:10px; color:#6c3a47; font-size:.7rem; }
.hero h1 { margin:0 0 20px; line-height:1; letter-spacing:0; }
.hero h1 em {
  display:block;
  font-family:'Allura',cursive;
  font-size:clamp(6rem,10vw,10rem);
  line-height:.9;
  font-weight:400;
  font-style:normal;
  color:var(--ink);
  letter-spacing:-.025em;
  white-space:nowrap;
  margin-left:-.035em;
}
.hero h1 span {
  display:block;
  max-width:410px;
  margin-top:19px;
  font:400 clamp(1.45rem,2.1vw,2rem)/1.23 'Playfair Display',Georgia,serif;
  letter-spacing:-.015em;
}
.hero-overlay>p:not(.eyebrow) { max-width:360px; margin-bottom:22px; font-size:.92rem; line-height:1.6; }
.hero .button { background:var(--ink); color:white; padding:14px 19px; min-height:48px; }
.hero-side {
  left:auto;
  right:max(7%,calc((100vw - 1110px)/2));
  bottom:168px;
  background:#ffffffd9;
  padding:10px 14px;
  color:#333;
  font-size:.65rem;
}
.hero-side span { color:var(--accent); font-weight:700; margin-right:12px; }
.treatments {
  max-width:1240px;
  position:relative;
  z-index:2;
  margin-top:-137px;
  padding:0 3% 76px;
}
.treatment-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  box-shadow:0 28px 45px #251c1c1b;
}
.treatment-card {
  min-width:0;
  min-height:225px;
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:225px;
  background:var(--blush);
  overflow:hidden;
}
.treatment-card:nth-child(2),.treatment-card:nth-child(5) { background:var(--ink); color:white; }
.treatment-card:nth-child(3),.treatment-card:nth-child(6) { background:#f4eeeb; color:var(--ink); }
.treatment-card .card-photo {
  grid-column:2;
  grid-row:1;
  height:100%;
  aspect-ratio:auto;
}
.treatment-card:nth-child(4) .card-photo,
.treatment-card:nth-child(6) .card-photo { grid-column:1; }
.treatment-card .card-copy { grid-column:1; grid-row:1; padding:27px 20px 22px; justify-content:center; }
.treatment-card:nth-child(4) .card-copy,
.treatment-card:nth-child(6) .card-copy { grid-column:2; }
.card-photo img { width:100%; height:100%; object-fit:cover; }
.card-number { top:12px; left:12px; padding:3px 7px; background:#ffffffdc; }
.card-copy h3 { font:600 clamp(1rem,1.45vw,1.35rem)/1.18 'Playfair Display',Georgia,serif; text-transform:uppercase; margin:0 0 13px; }
.card-copy h3:before { content:""; display:block; width:27px; height:2px; background:currentColor; margin:0 0 20px; }
.card-copy p { font-size:.75rem; line-height:1.4; margin:0 0 14px; opacity:.85; }
.card-link { border:0; padding:0; margin:auto 0 0; font-size:.61rem; }
.card-link>span { font-size:.98rem; }
.treatment-card:hover .card-photo img,.treatment-card:focus-visible .card-photo img { transform:scale(1.08); }
.section-heading {
  margin:95px auto 25px;
  padding:0 3%;
  align-items:end;
  border:0;
}
.section-heading h2 { font-size:clamp(2.6rem,4.5vw,4.5rem); }
.section-heading h2 em { color:var(--accent); }
.section-heading>p { max-width:370px; font-size:.98rem; }
.treatment-menu { margin:20px 3% 0; }
.intro {
  max-width:none;
  padding:92px 20px 105px;
  background:#f9f4f2;
  position:relative;
}
.intro:before { content:""; display:block; height:3px; width:45px; margin:0 auto 25px; background:var(--accent); }
.intro h2 { font-size:clamp(2.4rem,4.4vw,4.1rem); }
.about { background:#f5d5d2; }
.about-photo { min-height:620px; position:relative; }
.about-photo:after { content:""; position:absolute; inset:20px; border:1px solid #ffffff9c; pointer-events:none; }
.about-copy { padding:75px clamp(32px,7vw,110px); }
.about-copy h2 { font-size:clamp(2.5rem,4.4vw,4.2rem); }
.skincare { background:#f8efee; }
.reviews { padding-top:100px; padding-bottom:110px; }
.review-grid blockquote { background:#f8f1ef; border:0; }
.visit { padding-top:110px; padding-bottom:110px; }
footer { background:#141313; }

@media(max-width:1050px) {
  .site-header { min-height:76px; padding:14px 5%; }
  .nav { gap:12px; }
  .hero { min-height:640px; padding:90px 5% 155px; }
  .hero-overlay { width:47%; }
  .hero h1 em { font-size:clamp(5.6rem,9.5vw,8rem); }
  .hero-side { right:5%; bottom:145px; }
  .treatments { margin-top:-120px; padding-inline:4%; }
  .treatment-card { grid-template-rows:190px; min-height:190px; }
  .card-copy h3 { font-size:1.02rem; }
  .card-copy p { display:none; }
}
@media(max-width:760px) {
  .hero { min-height:620px; padding-top:115px; }
  .hero>img { object-position:40% center; }
  .hero:after { background:linear-gradient(90deg,#ffffff05 10%,#ffffff4d 43%,#fffffff0 100%); }
  .hero-overlay { width:51%; }
  .hero h1 em { font-size:clamp(5rem,12vw,7rem); }
  .hero h1 span { font-size:1.45rem; }
  .treatment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .treatment-card { grid-template-rows:200px; min-height:200px; }
  .card-copy p { display:block; }
  .section-heading { margin-top:75px; }
}
@media(max-width:600px) {
  .site-header { min-height:72px; }
  .brand { font-size:1.42rem; }
  .hero {
    min-height:680px;
    display:block;
    padding:0;
    background:#f8f0ed;
  }
  .hero>img { inset:0 0 auto; height:470px; object-position:38% center; }
  .hero:after { inset:0 0 auto; height:470px; background:linear-gradient(180deg,transparent 55%,#f8f0ed); }
  .hero-overlay {
    width:calc(100% - 38px);
    margin:0 19px 0 auto;
    padding:29px 27px 30px;
    position:absolute;
    top:320px;
    right:0;
    z-index:1;
    background:#ffffffed;
    box-shadow:0 16px 35px #51403924;
  }
  .hero-overlay:before { margin-bottom:15px; width:32px; }
  .hero .eyebrow { font-size:.57rem; margin-bottom:7px; }
  .hero h1 { margin-bottom:12px; }
  .hero h1 em { font-size:clamp(4.5rem,18vw,7rem); }
  .hero h1 span { margin-top:6px; font-size:1.38rem; max-width:280px; }
  .hero-overlay>p:not(.eyebrow) { margin:11px 0 17px; font-size:.81rem; }
  .hero .button { min-height:44px; padding:10px 14px; font-size:.62rem; }
  .hero-side { display:none; }
  .treatments { margin-top:-15px; padding:0 5% 60px; }
  .treatment-grid { gap:0; box-shadow:0 16px 30px #251c1c16; }
  .treatment-card {
    display:flex;
    flex-direction:column;
    min-height:0;
    grid-template-rows:none;
  }
  .treatment-card .card-photo { height:138px; flex:none; aspect-ratio:auto; order:0; }
  .treatment-card .card-copy { min-height:150px; padding:16px 13px; order:1; }
  .card-copy h3 { font-size:1.04rem; margin-bottom:9px; }
  .card-copy h3:before { margin-bottom:11px; width:23px; }
  .card-copy p { display:none; }
  .card-link { font-size:.55rem; }
  .section-heading { margin:57px 0 22px; padding:0; }
  .section-heading h2 { font-size:2.75rem; }
  .section-heading>p { margin-top:15px; }
  .treatment-menu { margin-inline:0; }
  .intro { padding:64px 6% 75px; }
  .about-photo { height:420px; min-height:0; }
  .about-photo:after { inset:12px; }
  .reviews { padding-block:75px; }
}
@media(max-width:380px) {
  .hero-overlay { top:300px; padding:22px; }
  .hero h1 em { font-size:4.5rem; }
  .treatment-card .card-photo { height:115px; }
  .treatment-card .card-copy { min-height:146px; }
}

/* Original Beauty Nova photographic backgrounds, layered with readable panels. */
.about {
  max-width:none;
  grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  align-items:center;
  padding:100px max(6%,calc((100vw - 1190px)/2));
  background:#f7d5d4 url('/assets/home_bg.webp') center / cover no-repeat;
}
.about-photo {
  min-height:570px;
  height:570px;
  box-shadow:0 20px 35px #1c2d1f26;
}
.about-copy {
  position:relative;
  z-index:1;
  margin:42px 0 42px -70px;
  background:#ffffffee;
  padding:58px clamp(30px,5vw,80px);
  box-shadow:0 22px 40px #1c2d1f22;
}
.visit {
  max-width:none;
  padding:110px max(6%,calc((100vw - 1190px)/2));
  gap:22px;
  grid-template-columns:1.15fr 1fr;
  align-items:stretch;
  background:#e4d2d1 url('/assets/bottom_.webp') center / cover no-repeat;
}
.visit > div { background:#fffffff0; padding:40px; box-shadow:0 18px 35px #291a231c; }
.visit-details { border-top:0; }
.visit-details > div:first-child { padding-top:0; }
.visit-details > div:last-child { border-bottom:0; padding-bottom:0; }
@media(max-width:760px) {
  .about { display:block; padding:65px 5%; }
  .about-photo { width:82%; height:460px; min-height:0; }
  .about-copy { width:85%; margin:-62px 0 0 auto; padding:45px 7%; }
  .visit { grid-template-columns:1fr; padding:70px 5%; }
}
@media(max-width:600px) {
  .about { padding:55px 5%; }
  .about-photo { width:88%; height:370px; }
  .about-copy { width:91%; margin:-36px 0 0 auto; padding:34px 7%; }
  .visit { padding:55px 5%; gap:15px; }
  .visit > div { padding:30px 7%; }
}

/* Appointment contact feedback */
#appointment { scroll-margin-top:110px; }

.enquiry-context { font-weight:600; color:var(--ink) !important; }
.email-fallback { margin-top:18px; font-size:.9rem; overflow-wrap:anywhere; }
.email-fallback button { border:0; background:none; color:var(--accent); text-decoration:underline; text-underline-offset:3px; cursor:pointer; padding:2px 0; font-weight:700; }
.email-status { min-height:1.4em; margin:8px 0 0; color:var(--accent) !important; font-size:.9rem; }

.booking-note { font-size:.82rem; color:var(--muted) !important; margin:4px 0 0; }

/* Appointment enquiry */
.enquiry { display:grid; grid-template-columns:.85fr 1.15fr; gap:8%; background:#f8f0f0; }
.enquiry-intro { align-self:start; position:sticky; top:130px; }
.enquiry-intro p:not(.eyebrow) { max-width:440px; color:var(--muted); }
.enquiry-form { background:#fff; padding:clamp(24px,4vw,54px); box-shadow:0 20px 60px #291a2318; display:grid; gap:20px; }
.enquiry-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.enquiry-form label { display:flex; flex-direction:column; gap:8px; font-size:.82rem; font-weight:700; letter-spacing:.02em; }
.enquiry-form label span { font-weight:400; color:var(--muted); }
.enquiry-form input,.enquiry-form select,.enquiry-form textarea { width:100%; border:1px solid #d7c8ca; border-radius:0; padding:12px 14px; background:white; color:var(--ink); font:inherit; font-size:1rem; min-height:48px; }
.enquiry-form textarea { resize:vertical; }
.enquiry-form [hidden],.form-trap { display:none !important; }
.enquiry-form .button { cursor:pointer; width:max-content; border:0; }
.enquiry-form .button:disabled { opacity:.55; cursor:not-allowed; }
.enquiry-privacy,.enquiry-status { font-size:.84rem; color:var(--muted); margin:0; }
.enquiry-status { min-height:1.5em; color:var(--accent); }
#enquiry { scroll-margin-top:90px; }
@media(max-width:760px) { .enquiry { grid-template-columns:1fr; gap:25px; } .enquiry-intro { position:static; } }
@media(max-width:600px) { .enquiry-row { grid-template-columns:1fr; } .enquiry-form { padding:24px 6%; } }
