:root { --ivory:#fbf6f1; --pearl:#f3e8df; --rose:#d8b3aa; --plum:#6f4650; --plum-deep:#4b3038; --ink:#32282a; --gold:#b8905d; --line:rgba(79,53,59,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ivory); color:var(--ink); font-family:'Manrope',sans-serif; }
a { color:inherit; text-decoration:none; }
h1,h2,h3,p { margin-top:0; }
.section-shell { max-width:1240px; margin:0 auto; padding-left:42px; padding-right:42px; }

.site-header { height:82px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 48px; position:absolute; inset:0 0 auto; z-index:10; border-bottom:1px solid rgba(75,48,56,.13); color:var(--plum-deep); }
.brand,.footer-brand { display:flex; width:fit-content; flex-direction:column; font-family:'Cormorant Garamond',serif; line-height:.82; font-size:25px; letter-spacing:.08em; }
.brand small,.footer-brand small { margin-top:8px; font-family:var(--font-sans); font-size:7px; letter-spacing:.32em; }
.site-header nav { display:flex; gap:32px; font-size:11px; letter-spacing:.09em; text-transform:uppercase; }
.site-header nav a { padding:10px 0; position:relative; }
.site-header nav a:after { content:""; position:absolute; left:0; right:100%; bottom:3px; height:1px; background:var(--plum); transition:.25s; }
.site-header nav a:hover:after { right:0; }
.header-cta { justify-self:end; border:1px solid rgba(75,48,56,.36); border-radius:999px; padding:12px 19px; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.menu-button { display:none; justify-self:end; border:0; background:transparent; color:inherit; }

.hero { min-height:790px; height:100vh; max-height:940px; position:relative; overflow:hidden; background:var(--pearl); }
.cover-image { position:absolute; inset:0; width:100%; height:100%; }
.hero>img { object-fit:cover; object-position:center; }
.hero-wash { position:absolute; inset:0; background:linear-gradient(90deg,rgba(251,246,241,.97) 0%,rgba(251,246,241,.8) 34%,rgba(251,246,241,.08) 66%,rgba(251,246,241,0) 100%); }
.hero-copy { position:absolute; z-index:2; left:max(48px,calc((100vw - 1240px)/2 + 42px)); top:50%; transform:translateY(-44%); width:min(550px,45vw); }
.kicker,.eyebrow { display:inline-flex; align-items:center; gap:8px; color:var(--plum); font-size:10px; letter-spacing:.2em; text-transform:uppercase; font-weight:700; }
.hero h1 { margin:25px 0; font-family:var(--font-serif); font-weight:500; font-size:clamp(70px,7.5vw,118px); line-height:.75; letter-spacing:-.055em; color:var(--plum-deep); }
h1 em,h2 em { font-weight:400; color:var(--gold); }
.hero-copy>p { max-width:465px; font-family:var(--font-serif); font-size:21px; line-height:1.42; color:#66575a; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:35px; }
.primary-button { display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:16px 22px; color:white; background:var(--plum); border-radius:999px; font-size:11px; letter-spacing:.05em; box-shadow:0 10px 30px rgba(75,48,56,.16); transition:transform .2s,background .2s; }
.primary-button:hover { transform:translateY(-2px); background:var(--plum-deep); }
.text-link { display:inline-flex; align-items:center; gap:8px; border-bottom:1px solid var(--line); padding:10px 0; font-size:11px; }
.hero-note { position:absolute; right:42px; bottom:35px; display:flex; align-items:center; gap:13px; color:var(--plum-deep); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.hero-note b { font-family:var(--font-serif); font-size:28px; font-weight:400; border-right:1px solid var(--line); padding-right:13px; }

.marquee { min-height:48px; display:flex; align-items:center; justify-content:space-around; gap:24px; overflow:hidden; color:white; background:var(--plum); font-size:8px; letter-spacing:.2em; white-space:nowrap; }
.marquee i { color:#e8cfab; font-style:normal; }

.concept { padding-top:130px; padding-bottom:140px; display:grid; grid-template-columns:.9fr 1.1fr; gap:9vw; align-items:center; }
.image-frame { position:relative; }
.concept-image { height:630px; }
.image-frame>img { object-fit:cover; }
.concept-image:before,.specialist-image:before { content:""; position:absolute; inset:-18px 18px 18px -18px; border:1px solid var(--rose); z-index:0; }
.image-stamp { position:absolute; right:-35px; bottom:42px; width:100px; height:100px; display:grid; place-items:center; border-radius:50%; background:var(--plum); color:white; font-family:var(--font-serif); font-size:12px; letter-spacing:.15em; text-align:center; box-shadow:0 8px 35px rgba(75,48,56,.23); }
.concept-copy { max-width:540px; }
h2 { margin:20px 0 28px; font-family:var(--font-serif); font-size:clamp(52px,5.4vw,80px); line-height:.88; font-weight:500; letter-spacing:-.045em; color:var(--plum-deep); }
.concept-copy p,.services-heading p,.specialist-copy>p { color:#746467; font-size:14px; line-height:1.85; }
.outline-button { display:inline-flex; gap:12px; align-items:center; margin-top:20px; border:1px solid var(--plum); border-radius:999px; padding:14px 20px; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }

.services { padding:120px 0 135px; background:#f1e5dc; }
.services-heading { display:grid; grid-template-columns:1fr .7fr; gap:12vw; align-items:end; margin-bottom:70px; }
.services-heading h2 { margin-bottom:0; }
.services-heading p { padding-bottom:8px; }
.service-list { display:grid; gap:2px; }
.service-card { min-height:480px; display:grid; grid-template-columns:1fr 1fr; background:var(--ivory); }
.service-card.reverse .service-photo { order:2; }
.service-photo { position:relative; min-height:480px; overflow:hidden; }
.service-image { object-fit:cover; transition:transform .7s; }
.service-card:hover .service-image { transform:scale(1.025); }
.service-image-2 { object-position:75% 28%; }
.service-image-3 { object-position:center 25%; }
.service-content { position:relative; display:flex; flex-direction:column; justify-content:center; padding:60px clamp(44px,6vw,86px); }
.service-number { position:absolute; top:30px; right:34px; color:var(--rose); font-family:var(--font-serif); font-size:38px; }
.service-content h3 { margin:18px 0; color:var(--plum-deep); font-family:var(--font-serif); font-size:clamp(42px,4vw,62px); line-height:.9; font-weight:500; }
.service-content p { color:#77686b; font-size:13px; line-height:1.8; }
.service-content a { display:inline-flex; align-items:center; gap:9px; width:fit-content; margin-top:18px; padding-bottom:6px; border-bottom:1px solid var(--rose); font-size:10px; letter-spacing:.08em; text-transform:uppercase; }

.promise { padding:130px 0 110px; background:var(--plum-deep); color:white; }
.eyebrow.light { color:#e5c9bd; }
.promise h2 { color:white; max-width:780px; }
.promise h2 em { color:#e5c6a0; }
.promise-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.18); margin-top:65px; }
.promise-grid>div { padding:36px 28px 15px 0; border-right:1px solid rgba(255,255,255,.13); }
.promise-grid>div:not(:first-child) { padding-left:28px; }
.promise-grid>div:last-child { border-right:0; }
.promise-grid b { color:#d9b7a8; font-family:var(--font-serif); font-weight:400; }
.promise-grid h4 { margin:55px 0 12px; font-family:var(--font-serif); font-size:24px; font-weight:500; }
.promise-grid p { color:rgba(255,255,255,.65); font-size:11px; line-height:1.65; }

.testimonials { padding-top:130px; padding-bottom:140px; text-align:center; }
.testimonial-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:60px; text-align:left; }
.testimonial-grid figure { margin:0; padding:38px; background:#f3e7df; border:1px solid #ead9cf; }
.testimonial-grid svg { color:var(--rose); }
.testimonial-grid blockquote { min-height:140px; margin:28px 0; font-family:var(--font-serif); color:var(--plum-deep); font-size:23px; line-height:1.25; }
.testimonial-grid figcaption { display:flex; flex-direction:column; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.testimonial-grid figcaption span { color:#a08b8e; margin-top:5px; font-size:8px; }

.specialist { display:grid; grid-template-columns:1fr .85fr; gap:9vw; align-items:center; padding-bottom:150px; }
.specialist-copy { max-width:560px; }
.specialist-image { height:680px; }
.specialist-image img { object-position:center top; }
.image-caption { position:absolute; left:0; right:0; bottom:0; padding:14px; background:rgba(75,48,56,.9); color:white; text-align:center; font-size:8px; letter-spacing:.22em; }
.credentials { display:flex; gap:35px; margin:35px 0 12px; }
.credentials span { display:flex; flex-direction:column; color:#8c777b; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.credentials b { color:var(--plum); font-family:var(--font-serif); font-size:35px; font-weight:500; text-transform:none; }

.ownership { min-height:690px; display:grid; place-items:center; position:relative; padding:80px 30px; overflow:hidden; color:white; text-align:center; background:linear-gradient(rgba(75,48,56,.76),rgba(75,48,56,.82)),url('images/hero-lumera.png') center 36%/cover; }
.ownership:before { content:""; position:absolute; inset:28px; border:1px solid rgba(255,255,255,.22); }
.ownership-content { position:relative; max-width:800px; }
.ownership h2 { color:white; font-size:clamp(58px,7vw,94px); }
.ownership h2 em { color:#f0d3b1; }
.ownership p { max-width:650px; margin:0 auto 32px; color:rgba(255,255,255,.82); font-family:var(--font-serif); font-size:20px; line-height:1.5; }
.ownership .primary-button { background:#ead1ba; color:var(--plum-deep); }

footer { min-height:260px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:30px; padding:55px 48px 35px; background:#eadfd7; color:var(--plum-deep); }
footer>p { margin:0; font-family:var(--font-serif); font-size:18px; }
.footer-links { justify-self:end; display:flex; gap:22px; align-items:center; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
footer>small { grid-column:1/-1; border-top:1px solid var(--line); padding-top:20px; text-align:center; color:#9e888b; font-size:8px; letter-spacing:.12em; }

@media (max-width:900px) {
  .section-shell { padding-left:24px; padding-right:24px; }
  .site-header { height:70px; padding:0 22px; grid-template-columns:1fr auto; }
  .site-header nav,.header-cta { display:none; }
  .menu-button { display:block; }
  .hero { min-height:720px; height:88vh; }
  .hero>img { object-position:64% center; }
  .hero-wash { background:linear-gradient(0deg,rgba(251,246,241,.98) 0%,rgba(251,246,241,.82) 45%,rgba(251,246,241,.1) 80%); }
  .hero-copy { left:24px; right:24px; top:auto; bottom:50px; transform:none; width:auto; }
  .hero h1 { font-size:clamp(59px,17vw,80px); }
  .hero-copy>p { max-width:440px; font-size:17px; }
  .hero-note { display:none; }
  .concept,.specialist { grid-template-columns:1fr; gap:70px; padding-top:90px; padding-bottom:100px; }
  .concept-image,.specialist-image { height:520px; }
  .concept-copy { max-width:none; }
  .services { padding:90px 0; }
  .services-heading { grid-template-columns:1fr; gap:25px; margin-bottom:45px; }
  .service-card,.service-card.reverse { grid-template-columns:1fr; }
  .service-card.reverse .service-photo { order:initial; }
  .service-photo { min-height:410px; }
  .service-content { min-height:380px; }
  .promise { padding:90px 0 70px; }
  .promise-grid { grid-template-columns:1fr 1fr; }
  .promise-grid>div:nth-child(2) { border-right:0; }
  .promise-grid h4 { margin-top:28px; }
  .testimonial-grid { grid-template-columns:1fr; }
  .testimonial-grid blockquote { min-height:auto; }
  .specialist-copy { order:2; }
  .specialist-image { order:1; }
  footer { grid-template-columns:1fr; text-align:center; justify-items:center; }
  .footer-links { justify-self:center; }
}

@media (max-width:560px) {
  .brand { font-size:21px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:8px; }
  .marquee { justify-content:flex-start; padding:0 20px; }
  h2 { font-size:50px; }
  .concept-image,.specialist-image { height:460px; }
  .image-stamp { right:-8px; width:82px; height:82px; font-size:10px; }
  .service-photo { min-height:340px; }
  .service-content { min-height:350px; padding:52px 30px; }
  .promise-grid { grid-template-columns:1fr; }
  .promise-grid>div,.promise-grid>div:not(:first-child) { border-right:0; border-bottom:1px solid rgba(255,255,255,.13); padding:26px 0; }
  .testimonials { padding-top:90px; padding-bottom:100px; }
  .ownership { min-height:650px; }
  .ownership:before { inset:14px; }
  .ownership h2 { font-size:56px; }
  footer { padding-left:24px; padding-right:24px; }
}
