@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Montserrat:wght@400;500;600&display=swap');
:root{--cream:#f5efe4;--paper:#fffaf2;--ink:#241b16;--gold:#b58a49;--line:#d8c5a5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Montserrat,Arial,sans-serif}img{display:block;max-width:100%}a{color:inherit}.site-header{height:100px;display:flex;align-items:center;padding:8px clamp(22px,5vw,72px);gap:40px;background:rgba(255,250,242,.97);position:sticky;top:0;z-index:10;border-bottom:1px solid #eee3d2}.brand img{width:145px;height:82px;object-fit:contain}.site-header nav{margin-left:auto;display:flex;gap:28px;align-items:center}.site-header nav a{text-decoration:none;text-transform:uppercase;font-size:11px;letter-spacing:.12em}.site-header nav a:hover{color:var(--gold)}.menu{display:none;margin-left:auto;border:0;background:none;font-size:25px}.hero{min-height:680px;padding:70px clamp(24px,7vw,110px);display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:65px;background:linear-gradient(120deg,#f2e7d5,#fffaf2)}.eyebrow{color:#9b733b;font-size:11px;letter-spacing:.25em;font-weight:600}.hero h1,.intro h2,.services h2,.engagement h2,.gallery h2,.visit h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500}.hero h1{font-size:clamp(65px,7vw,112px);line-height:.77;margin:18px 0 30px;text-transform:uppercase;letter-spacing:-.035em}.lead{max-width:580px;line-height:1.8;font-family:'Cormorant Garamond',serif;font-size:23px}.button{display:inline-block;margin-top:15px;padding:16px 25px;background:var(--gold);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-size:11px}.hero-collage{height:540px;position:relative}.hero-collage img{position:absolute;object-fit:cover;box-shadow:0 20px 45px #6d503126}.hero-collage .a{width:67%;height:75%;right:0;top:0}.hero-collage .b{width:48%;height:51%;left:0;bottom:0;border:9px solid var(--paper)}.hero-collage .c{width:31%;height:35%;right:5%;bottom:0;border:8px solid var(--paper)}.intro{text-align:center;max-width:850px;margin:auto;padding:95px 25px}.intro h2,.gallery h2{font-size:58px;margin:10px 0}.intro>p:last-child{font-family:'Cormorant Garamond',serif;font-size:22px;line-height:1.7}.services article{display:grid;grid-template-columns:1fr 1fr;min-height:540px;background:var(--cream)}.services article:nth-child(even){background:#2b211b;color:#fff}.services article:nth-child(even) img{order:2}.services article img{width:100%;height:100%;min-height:540px;object-fit:cover}.services article div{padding:70px clamp(35px,7vw,105px);display:flex;flex-direction:column;justify-content:center}.services h2{font-size:55px;margin:8px 0 15px}.services p:not(.eyebrow){line-height:1.8}.services a{margin-top:15px;text-transform:uppercase;letter-spacing:.14em;font-size:11px}
.engagement{display:grid;grid-template-columns:1fr 1fr;min-height:570px;background:#fffaf2}.engagement-photo{min-height:570px;overflow:hidden}.engagement-photo img{width:100%;height:100%;min-height:570px;object-fit:cover;object-position:center 58%}.engagement-copy{padding:75px clamp(35px,7vw,105px);display:flex;flex-direction:column;justify-content:center}.engagement h2{font-size:55px;line-height:1.05;margin:8px 0 18px}.engagement-copy>p:not(.eyebrow){line-height:1.8;max-width:600px}.engagement .button{align-self:flex-start}
.gallery{text-align:center;padding:95px clamp(20px,5vw,75px)}.grid{margin-top:40px;display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.grid img{width:100%;height:390px;object-fit:cover}.gallery-note{margin-top:28px;color:#806e5e;font-size:12px}.visit{padding:90px clamp(25px,8vw,130px);background:#efe1ca;display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:center}.visit h2{font-size:55px;margin:8px 0}.visit>div:first-child>p:last-child{line-height:1.8}.visit-card{background:#fffaf2;padding:40px;border:1px solid var(--line)}.visit-card strong{font-family:'Cormorant Garamond',serif;font-size:28px}.muted{font-size:12px;line-height:1.7;color:#7c6c5d}footer{text-align:center;padding:45px 20px;background:#1f1814;color:#e9d7b8}footer img{width:140px;height:110px;object-fit:contain;margin:auto}footer p{font-size:11px;letter-spacing:.14em;text-transform:uppercase}.small{opacity:.55;font-size:9px}@media(max-width:850px){.site-header{height:82px;padding:5px 18px}.brand img{width:105px;height:68px}.menu{display:block}.site-header nav{display:none;position:absolute;top:82px;left:0;right:0;background:#fffaf2;padding:25px;flex-direction:column;border-bottom:1px solid var(--line)}.site-header nav.open{display:flex}.hero{grid-template-columns:1fr;padding:55px 24px 70px;gap:35px}.hero h1{font-size:62px}.hero-collage{height:410px}.intro{padding:70px 24px}.intro h2,.gallery h2{font-size:45px}.services article{grid-template-columns:1fr}.services article:nth-child(even) img{order:0}.services article img{min-height:0;height:380px}.services article div{padding:55px 28px}.services h2,.engagement h2,.visit h2{font-size:44px}.engagement{grid-template-columns:1fr}.engagement-photo,.engagement-photo img{min-height:0;height:430px}.engagement-copy{padding:55px 28px}.grid{grid-template-columns:repeat(2,1fr)}.grid img{height:270px}.visit{grid-template-columns:1fr;gap:30px;padding:70px 25px}}@media(max-width:480px){.hero-collage{height:340px}.hero-collage .a{width:75%}.hero-collage .b{width:55%}.hero-collage .c{display:none}.grid{grid-template-columns:1fr 1fr}.grid img{height:210px}}

/* Louise Mae hero brand */
.hero-brand {
  margin: 0 0 10px;
  font-size: 1.05rem;
  letter-spacing: .08em;
  font-weight: 500;
}

/* Brand name beside header logo */
.site-header .brand {
  display: flex;
  align-items: center;
  gap: 22px;
  text-decoration: none;
}

.site-header .brand span {
  font-size: 1.2rem;
  letter-spacing: .10em;
  font-weight: 500;
  white-space: nowrap;
  color: #17130f;
}

/* Contact links */
.contact-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 14px;
}

.contact-links a {
  display: flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  text-decoration: none;
}

.contact-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  font-size: 15px;
  line-height: 1;
}

.facebook-icon {
  font-family: Arial, sans-serif;
  font-weight: 700;
  font-size: 17px;
}

/* Location / directions */
.location-link {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 18px 0;
  padding: 16px 18px;
  border: 1px solid rgba(184, 137, 66, .35);
  background: rgba(255, 255, 255, .35);
  text-decoration: none;
  transition: transform .2s ease, border-color .2s ease;
}

.location-link:hover {
  transform: translateY(-2px);
  border-color: rgba(184, 137, 66, .75);
}

.location-pin {
  flex: 0 0 auto;
  font-size: 28px;
  color: #b88942;
}

.location-details {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.location-details strong {
  font-weight: 600;
}

.location-details .directions {
  margin-top: 5px;
  color: #9a6d2d;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Mobile hero alignment */
@media (max-width: 700px) {
  .hero-copy h1 {
    font-size: clamp(3.7rem, 13vw, 5rem);
    line-height: .88;
    letter-spacing: -.035em;
  }

  .hero-copy {
    padding-right: 20px;
  }
}


/* Fine-tune mobile hero photo placement */
@media (max-width: 480px) {
  .hero-collage .a {
    right: 4%;
  }

  .hero-collage .b {
    left: 4%;
  }
}

/* Gallery lightbox */
.gallery-image {
  cursor: zoom-in;
}

.lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 30px;
  background: rgba(20, 15, 12, .92);
}

.lightbox.open {
  display: flex;
}

.lightbox-image {
  max-width: 92vw;
  max-height: 88vh;
  width: auto;
  height: auto;
  object-fit: contain;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
}

.lightbox-close {
  position: fixed;
  top: 18px;
  right: 24px;
  border: 0;
  background: transparent;
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 42px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
}

body.lightbox-open {
  overflow: hidden;
}

@media (max-width: 480px) {
  .lightbox {
    padding: 16px;
  }

  .lightbox-image {
    max-width: 96vw;
    max-height: 84vh;
  }
}

/* Lightbox navigation */
.lightbox-nav {
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1001;
  border: 0;
  background: rgba(255, 255, 255, .08);
  color: #fff;
  width: 54px;
  height: 72px;
  font-family: Georgia, serif;
  font-size: 52px;
  line-height: 1;
  cursor: pointer;
}

.lightbox-prev {
  left: 18px;
}

.lightbox-next {
  right: 18px;
}

.lightbox-nav:hover {
  background: rgba(255, 255, 255, .18);
}

@media (max-width: 480px) {
  .lightbox-nav {
    width: 42px;
    height: 60px;
    font-size: 42px;
    background: rgba(0, 0, 0, .25);
  }

  .lightbox-prev {
    left: 5px;
  }

  .lightbox-next {
    right: 5px;
  }
}

/* Louise Mae contact page */
.contact-hero {
  padding: 90px 25px 65px;
  text-align: center;
  background: linear-gradient(120deg, #f2e7d5, #fffaf2);
}

.contact-hero h1 {
  max-width: 850px;
  margin: 10px auto 18px;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(52px, 6vw, 82px);
  font-weight: 500;
  line-height: .95;
  letter-spacing: -.025em;
}

.contact-hero > p:last-child {
  max-width: 680px;
  margin: 0 auto;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 22px;
  line-height: 1.65;
}

.contact-section {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 35px 100px;
  gap: 75px;
  align-items: start;
}

.contact-form-wrap {
  background: #fffaf2;
  border: 1px solid var(--line);
  padding: 45px;
}

.contact-field {
  margin-bottom: 24px;
}

.contact-field label {
  display: block;
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.contact-field input,
.contact-field select,
.contact-field textarea {
  width: 100%;
  border: 1px solid #d8c5a5;
  border-radius: 0;
  background: #fff;
  color: var(--ink);
  padding: 14px 15px;
  font: inherit;
  font-size: 15px;
}

.contact-field textarea {
  resize: vertical;
  min-height: 150px;
}

.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 1px var(--gold);
}

.contact-submit {
  border: 0;
  cursor: pointer;
}

.contact-submit:disabled {
  opacity: .65;
  cursor: wait;
}

.contact-status {
  margin-top: 20px;
  font-size: 14px;
  line-height: 1.6;
}

.contact-status.success {
  color: #536846;
}

.contact-status.error {
  color: #8a3f35;
}

.contact-info {
  padding-top: 20px;
}

.contact-info h2 {
  margin: 8px 0 20px;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 48px;
  font-weight: 500;
  line-height: 1.05;
}

.contact-info > p:not(.eyebrow) {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 21px;
  line-height: 1.65;
}

.contact-details {
  margin-top: 35px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
  line-height: 1.7;
}

@media (max-width: 850px) {
  .contact-hero {
    padding: 65px 24px 50px;
  }

  .contact-hero h1 {
    font-size: 52px;
  }

  .contact-section {
    grid-template-columns: 1fr;
    gap: 45px;
    padding: 55px 24px 75px;
  }

  .contact-form-wrap {
    padding: 30px 24px;
  }

  .contact-info {
    padding-top: 0;
  }

  .contact-info h2 {
    font-size: 42px;
  }
}

@media (max-width: 480px) {
  .contact-hero h1 {
    font-size: 45px;
  }

  .contact-hero > p:last-child {
    font-size: 20px;
  }

  .contact-section {
    padding-left: 18px;
    padding-right: 18px;
  }
}
