@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Inter:wght@400;500;600&display=swap');

:root{
  --gold:#b89a5a;
  --gold-deep:#8d7443;
  --gold-soft:#e7d6ad;
  --cream:#faf7f1;
  --beige:#eee5d8;
  --white:#ffffff;
  --text:#24211d;
  --muted:#6e675f;
  --line:#e8ddcd;
  --shadow:0 14px 36px rgba(83,63,36,.09);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:Inter,Arial,sans-serif;
  color:var(--text);
  background:#fff;
  line-height:1.65;
}
img{max-width:100%}
a{text-decoration:none;color:inherit}
p{color:var(--muted)}
h1,h2,h3,.logo-brand{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-weight:500;
  line-height:1.05;
}
h1{font-size:clamp(3.4rem,6vw,6.5rem);letter-spacing:-.04em}
h2{font-size:clamp(2.4rem,4.5vw,4.2rem);letter-spacing:-.03em}
h3{font-size:1.45rem}
.container{width:min(1180px,calc(100% - 38px));margin:0 auto}

.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid rgba(190,150,63,.13);
  backdrop-filter:blur(14px);
}
.nav{
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.logo-brand{
  display:flex;
  align-items:center;
  min-width:290px;
}
.logo-brand img{
  display:block;
  width:285px;
  max-height:72px;
  object-fit:contain;
  object-position:left center;
}
nav{
  display:flex;
  align-items:center;
  gap:34px;
  font-size:.9rem;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.03em;
}
nav a:hover{color:var(--gold-deep)}
.menu-button{
  display:none;
  border:0;
  background:transparent;
  font-size:1.5rem;
}
.button{
  min-height:52px;
  padding:0 27px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:3px;
  font-size:.82rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.035em;
  transition:.2s ease;
}
.button:hover{transform:translateY(-2px)}
.button-gold{background:var(--gold);color:#fff}
.button-outline{border:1px solid var(--gold);color:var(--gold-deep);background:#fff}

.hero{
  background:#fff;
  border-bottom:1px solid var(--line);
}
.hero-grid{
  min-height:610px;
  display:grid;
  grid-template-columns:43% 57%;
}
.hero-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:72px 56px 72px 0;
}
.hero-image{
  min-height:610px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.08),rgba(255,255,255,0)),
    url("https://images.unsplash.com/photo-1600334089648-b0d9d3028eb2?auto=format&fit=crop&w=1800&q=90")
    center/cover no-repeat;
}
.eyebrow{
  color:var(--gold-deep);
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.75rem;
  font-weight:600;
  margin-bottom:13px;
}
.gold-line{width:44px;height:1px;background:var(--gold);margin:20px 0}
.hero-text{
  max-width:520px;
  font-size:1rem;
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}

.section{padding:92px 0}
.about-section{background:#fff}
.about-grid{
  display:grid;
  grid-template-columns:.9fr 1.25fr;
  gap:58px;
  align-items:center;
}
.about-image{
  min-height:560px;
  border-radius:10px;
  background:
    url("https://images.unsplash.com/photo-1515377905703-c4788e51af15?auto=format&fit=crop&w=1400&q=90")
    center/cover no-repeat;
  box-shadow:var(--shadow);
}
.about-copy>h2{margin-bottom:22px}
#aboutText p+p{margin-top:14px}
.why-header{
  margin-top:34px;
  display:flex;
  align-items:center;
  gap:20px;
}
.why-header .eyebrow{margin:0;white-space:nowrap}
.section-rule{height:1px;flex:1;background:var(--line)}
.feature-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  margin-top:24px;
}
.feature{text-align:center}
.feature-icon{
  width:58px;height:58px;margin:0 auto 14px;
  border:1px solid var(--gold);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);
  font-size:1.5rem;
}
.feature strong{
  display:block;
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:1.35rem;
  font-weight:500;
  line-height:1.05;
}
.feature p{font-size:.83rem;margin-top:9px}

.services-section{background:#fff}
.section-heading{max-width:770px;margin-bottom:42px}
.centered{text-align:center;margin-left:auto;margin-right:auto}
.section-heading p:last-child{margin-top:14px}
.service-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:16px;
}
.service-card{
  background:#fff;
  border:1px solid #eee5d8;
  box-shadow:0 10px 25px rgba(72,53,29,.06);
  overflow:hidden;
}
.service-image{
  height:185px;
  background-size:cover;
  background-position:center;
}
.service-content{
  padding:22px 17px 24px;
  text-align:center;
}
.service-content h3{font-size:1.4rem}
.service-content p{font-size:.82rem;margin-top:9px;min-height:64px}
.service-link{
  display:inline-block;
  margin-top:15px;
  color:var(--gold-deep);
  font-size:.74rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.reviews-section{
  background:linear-gradient(180deg,#fff,#fdfaf5);
  border-top:1px solid #f0e8db;
}
.review-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.review-card{
  padding:24px;
  background:#fff;
  border:1px solid #eee5d8;
  box-shadow:0 8px 22px rgba(70,52,30,.05);
}
.stars{color:var(--gold);letter-spacing:.12em;margin-bottom:12px}
.review-card p{font-size:.84rem}
.review-name{display:block;margin-top:15px;font-weight:600;font-size:.85rem}

.contact-strip{
  padding:22px 0 30px;
  background:#fff;
}
.contact-strip-grid{
  display:grid;
  grid-template-columns:1.2fr .85fr 1fr;
  border:1px solid #efe5d6;
  background:#fffdf9;
}
.contact-strip-card{
  display:grid;
  grid-template-columns:62px 1fr;
  gap:16px;
  padding:26px;
  border-right:1px solid #eadfce;
}
.contact-strip-card:last-child{border-right:0}
.contact-icon{
  width:52px;height:52px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--gold);color:#fff;font-size:1.3rem;
}
.contact-strip-card h3{font-size:1.35rem;margin-bottom:5px}
.contact-strip-card p{font-size:.84rem}
.contact-highlight{
  display:block;
  color:var(--gold-deep);
  font-size:1.2rem;
  margin-bottom:4px;
}
.small-button{
  display:inline-block;
  margin-top:12px;
  padding:9px 15px;
  background:var(--gold);
  color:#fff;
  font-size:.72rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
}

footer{
  background:#f8f4ed;
  border-top:1px solid #eadfce;
  padding:52px 0 24px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr .8fr .9fr 1.2fr;
  gap:48px;
}
.footer-brand img{width:225px;display:block;margin-bottom:12px}
.footer-brand p{font-size:.8rem;max-width:240px}
footer h4{
  color:var(--gold-deep);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:14px;
}
footer a,footer p{display:block;font-size:.8rem;margin-bottom:7px}
.footer-bottom{
  margin-top:38px;
  padding-top:18px;
  border-top:1px solid #e6dbc9;
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:.74rem;
  color:#7a7167;
}

.inner-hero{
  padding:140px 0 70px;
  background:var(--cream);
}
.price-section{padding:70px 0 100px}
.price-group{margin-bottom:40px}
.price-group h2{font-size:2.2rem;margin-bottom:14px}
.price-list{border-top:1px solid var(--line)}
.price-row{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:17px 0;
  border-bottom:1px solid var(--line);
}
.price-row span:last-child{font-weight:600;color:var(--gold-deep)}
.back-link{
  display:inline-block;
  margin-top:24px;
  color:var(--gold-deep);
  font-weight:600;
}

@media(max-width:980px){
  .logo-brand{min-width:190px}
  .logo-brand img{width:185px}
  nav{gap:18px}
  .hero-grid{grid-template-columns:1fr}
  .hero-copy{padding:74px 0}
  .hero-image{min-height:460px}
  .about-grid{grid-template-columns:1fr}
  .feature-grid{grid-template-columns:repeat(2,1fr)}
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .review-grid{grid-template-columns:repeat(2,1fr)}
  .contact-strip-grid{grid-template-columns:1fr}
  .contact-strip-card{border-right:0;border-bottom:1px solid #eadfce}
  .contact-strip-card:last-child{border-bottom:0}
  .footer-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:720px){
  .menu-button{display:block}
  nav{
    position:absolute;
    top:82px;left:0;right:0;
    display:none;
    flex-direction:column;
    align-items:flex-start;
    padding:24px;
    background:#fff;
    border-bottom:1px solid var(--line);
  }
  nav.open{display:flex}
  .desktop-book{display:none}
  .hero-copy{padding:56px 0}
  .hero-image{min-height:390px}
  .section{padding:72px 0}
  .about-image{min-height:420px}
  .feature-grid,.service-grid,.review-grid,.footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column}
  .button{width:100%}
  .hero-actions{flex-direction:column}
}

/* V6 relaxation visual refinement */
.hero-image,
.about-image,
.service-image {
  position: relative;
  filter: saturate(.78) contrast(.96) brightness(1.04);
}
.hero-image::after,
.about-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,248,238,.06), rgba(194,158,98,.035));
  pointer-events: none;
}
.service-card {
  border-color: #eadfce;
  box-shadow: 0 12px 30px rgba(84,64,38,.07);
}
.service-content { min-height: 190px; }
.reviews-section { background: #fbf8f2; }
.review-card { border-radius: 4px; }
footer { background: #f5f0e8; }
.opening-hours {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e2d6c4;
}
.social-links {
  display: flex;
  gap: 12px;
  margin-top: 12px;
}
.social-links a {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #cdb88d;
  border-radius: 50%;
  color: var(--gold-deep);
  font-weight: 600;
}

/* V8: local images and hard cache reset */
.hero-image {
  background-image:
    linear-gradient(90deg, rgba(255,255,255,.08), rgba(255,255,255,0)),
    url("images/hero-relaxation-v8.jpg") !important;
  background-position: center center !important;
  background-size: cover !important;
  filter: none !important;
}


/* =====================================================
   V9 FINAL BRAND & EXPERIENCE REFINEMENTS
   ===================================================== */
html { scroll-behavior: smooth; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  background: rgba(255,255,255,.94);
  box-shadow: 0 1px 0 rgba(116,91,53,.10);
}

.logo-brand img { max-height: 82px; }

.hero-brand-line {
  letter-spacing: .17em;
  font-size: .76rem;
  line-height: 1.7;
}

.hero-image {
  overflow: hidden;
  transform: translateZ(0);
}
.hero-image::before {
  content: "";
  position: absolute;
  inset: -2%;
  background: inherit;
  background-position: center center;
  background-size: cover;
  animation: heroBreath 18s ease-in-out infinite alternate;
  z-index: -1;
}
@keyframes heroBreath {
  from { transform: scale(1); }
  to { transform: scale(1.055); }
}

.button,
.small-button {
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
}
.button:hover,
.small-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(95,72,36,.14);
}

.service-card {
  overflow: hidden;
  transition: transform .35s ease, box-shadow .35s ease;
}
.service-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 18px 40px rgba(84,64,38,.11);
}
.service-image {
  transition: transform .6s ease;
}
.service-card:hover .service-image {
  transform: scale(1.025);
}

.contact-section {
  background: linear-gradient(180deg, #fff 0%, #faf7f1 100%);
}
.contact-intro {
  max-width: 760px;
  margin: 0 auto 36px;
}
.contact-intro h2 {
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}
.contact-panel {
  max-width: 1050px;
  margin: 0 auto;
  padding: 42px;
  background: rgba(255,255,255,.82);
  border: 1px solid #eadfce;
  box-shadow: 0 18px 46px rgba(84,64,38,.08);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 38px;
  align-items: center;
}
.contact-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 26px 42px;
}
.contact-item {
  min-width: 0;
}
.contact-item p,
.contact-item a {
  margin: 5px 0 0;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.contact-label {
  display: block;
  color: var(--gold-deep);
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: .72rem;
  font-weight: 700;
}
.contact-actions {
  display: flex;
  flex-direction: column;
  min-width: 190px;
  gap: 13px;
}
.contact-actions .button {
  text-align: center;
}

.footer-brand-message {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.18rem;
  color: var(--gold-deep);
}
.footer-hours {
  margin-top: 12px;
}
.policy-links {
  display: flex;
  justify-content: center;
  gap: 24px;
  padding-top: 22px;
  border-top: 1px solid #e4d9c9;
  font-size: .86rem;
}
.policy-links a:hover {
  color: var(--gold-deep);
}

.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .75s ease, transform .75s ease;
}
.reveal.visible {
  opacity: 1;
  transform: none;
}

.policy-page {
  min-height: 65vh;
  padding: 80px 0;
}
.policy-content {
  max-width: 850px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #eadfce;
  padding: 48px;
  box-shadow: 0 14px 38px rgba(84,64,38,.07);
}
.policy-content h1 { margin-top: 0; }
.policy-content h2 {
  font-size: 1.45rem;
  margin-top: 34px;
}
.policy-content p,
.policy-content li {
  line-height: 1.8;
}
.policy-back {
  display: inline-block;
  margin-top: 24px;
  color: var(--gold-deep);
  font-weight: 600;
}

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

@media (max-width: 820px) {
  .logo-brand img { max-height: 68px; }
  .contact-panel {
    grid-template-columns: 1fr;
    padding: 30px 24px;
  }
  .contact-actions {
    flex-direction: row;
    min-width: 0;
  }
  .contact-actions .button {
    flex: 1;
  }
}

@media (max-width: 580px) {
  .hero-brand-line {
    font-size: .67rem;
    letter-spacing: .11em;
  }
  .contact-details {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .contact-actions {
    flex-direction: column;
  }
  .policy-links {
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
  .policy-content {
    padding: 30px 22px;
  }
}


/* ========================= V10 ========================= */
.service-grid-six {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.featured-section {
  background: #f7f1e8;
}
.featured-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 22px;
  margin-top: 38px;
}
.featured-card {
  background: rgba(255,255,255,.9);
  border: 1px solid #e5d8c5;
  padding: 30px;
  min-height: 290px;
  display: flex;
  flex-direction: column;
  box-shadow: 0 14px 34px rgba(84,64,38,.06);
}
.featured-card h3 { margin: 12px 0 8px; }
.featured-category {
  margin: 0;
  color: var(--gold-deep);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .7rem;
  font-weight: 700;
}
.featured-meta,
.treatment-meta {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  margin: 8px 0 14px;
  color: #7a6a56;
}
.featured-meta strong,
.treatment-meta strong {
  color: var(--gold-deep);
  font-size: 1.15rem;
}
.featured-card > a {
  margin-top: auto;
  color: var(--gold-deep);
  font-weight: 650;
}
.service-badge,
.table-badge {
  display: inline-flex;
  width: fit-content;
  border: 1px solid #cfb184;
  color: #86673d;
  background: #fbf6ee;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: .68rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
}
.table-badge { margin-left: 8px; padding: 3px 7px; }

.service-page-hero {
  padding: 72px 0;
  background: linear-gradient(135deg,#fbf8f3,#f2e9dc);
}
.service-page-hero-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 64px;
  align-items: center;
}
.service-page-hero h1 {
  font-size: clamp(2.6rem,5vw,4.8rem);
  margin: 12px 0 20px;
}
.service-page-hero p {
  line-height: 1.8;
  max-width: 600px;
}
.service-page-photo {
  min-height: 480px;
  background-size: cover;
  background-position: center;
  box-shadow: 0 24px 55px rgba(77,58,34,.12);
}
.service-page-content {
  max-width: 1120px;
}
.price-group + .price-group {
  margin-top: 72px;
}
.price-group-heading {
  text-align: center;
  margin-bottom: 30px;
}
.treatment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 20px;
}
.treatment-card {
  border: 1px solid #e7dbc9;
  background: #fff;
  padding: 27px;
  box-shadow: 0 10px 28px rgba(84,64,38,.05);
}
.treatment-title-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}
.treatment-card h3 { margin: 0; }
.treatment-card p { line-height: 1.75; }
.text-book-link {
  display: inline-block;
  margin-top: 8px;
  color: var(--gold-deep);
  font-weight: 650;
}
.lash-table-wrap {
  overflow-x: auto;
  border: 1px solid #e2d4c0;
  background: #fff;
}
.lash-price-table {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
}
.lash-price-table th,
.lash-price-table td {
  padding: 18px 16px;
  text-align: center;
  border-bottom: 1px solid #eadfce;
}
.lash-price-table th {
  background: #f6efe5;
  color: #80633e;
  font-size: .78rem;
  line-height: 1.5;
}
.lash-price-table td:first-child,
.lash-price-table th:first-child {
  text-align: left;
}
.lash-price-table tbody tr:hover {
  background: #fcfaf6;
}
.table-note {
  text-align: center;
  font-size: .86rem;
  color: #7c7163;
}
.service-bottom-cta {
  margin-top: 72px;
  padding: 38px;
  border: 1px solid #e4d6c2;
  background: #f9f4ec;
  text-align: center;
}
.service-bottom-cta .button { margin: 8px; }
.service-nav { display: flex; gap: 24px; }

@media (max-width: 900px) {
  .service-grid-six,
  .featured-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service-page-hero-grid { grid-template-columns: 1fr; gap: 32px; }
  .service-page-photo { min-height: 390px; }
  .treatment-grid { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
  .service-grid-six,
  .featured-grid { grid-template-columns: 1fr; }
  .service-nav { display: none; }
  .service-page-hero { padding: 48px 0; }
  .service-page-photo { min-height: 300px; }
  .featured-card { min-height: auto; }
  .treatment-title-row { display: block; }
  .treatment-title-row .service-badge { margin-top: 10px; }
}
