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




:root { font-family: 'DM Sans', sans-serif; color: #2f1724; background: #fffaf7; font-synthesis: none; --ink: #2f1724; --muted: #765d67; --plum: #531431; --berry: #8a1c4b; --gold: #d9a13c; --blush: #f5e3de; --cream: #fffaf7; --line: #ead8d3; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--cream); }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
.container { width: min(1160px, calc(100% - 64px)); margin: 0 auto; }
.site-header { height: 88px; background: rgba(255,250,247,.94); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(234,216,211,.7); display: flex; align-items: center; position: sticky; top: 0; z-index: 20; }
.nav-wrap { display: flex; justify-content: space-between; align-items: center; }
.brand { display: flex; align-items: center; gap: 10px; background: none; border: 0; color: var(--ink); padding: 0; text-align: left; }
.brand img { width: 49px; height: 49px; border-radius: 50%; object-fit: cover; }
.brand span { display: flex; flex-direction: column; gap: 2px; }
.brand strong { font: 600 24px/1 'Playfair Display', serif; letter-spacing: -.03em; }
.brand small { font-size: 8px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.main-nav { display: flex; align-items: center; gap: 30px; }
.main-nav button, .site-footer button { background: none; border: 0; color: var(--muted); font-size: 12px; padding: 8px 0; transition: color .2s ease; }
.main-nav button:hover, .site-footer button:hover { color: var(--berry); }
.main-nav .nav-call { display: flex; align-items: center; gap: 8px; color: var(--plum); border: 1px solid var(--line); padding: 11px 16px; border-radius: 2px; }
.menu-button { display: none; border: 0; background: transparent; color: var(--ink); }
.hero-section { min-height: 700px; position: relative; overflow: hidden; display: flex; align-items: center; background: #fffaf7; }
.hero-section:before { content: ''; position: absolute; width: 620px; height: 620px; border-radius: 50%; right: -80px; top: 55px; background: #f8e8e1; }
.hero-orb { position: absolute; border-radius: 50%; filter: blur(1px); opacity: .55; }.orb-one { width: 25px; height: 25px; background: var(--gold); right: 20%; top: 18%; }.orb-two { width: 11px; height: 11px; background: var(--berry); left: 8%; bottom: 22%; }
.hero-grid { display: grid; grid-template-columns: 51% 49%; align-items: center; position: relative; z-index: 1; }
.hero-copy { padding: 72px 0 84px; }.eyebrow { display: flex; align-items: center; gap: 11px; color: var(--berry); text-transform: uppercase; letter-spacing: .18em; font-weight: 600; font-size: 10px; }.eyebrow-line { width: 34px; height: 1px; background: var(--gold); display: inline-block; }
h1, h2 { font: 500 clamp(46px, 5.6vw, 76px)/1.04 'Playfair Display', serif; letter-spacing: -.05em; margin: 24px 0; color: var(--ink); } h1 em, h2 em { color: var(--berry); font-weight: 500; } .hero-description { width: min(430px,100%); font-size: 16px; line-height: 1.8; color: var(--muted); margin-bottom: 30px; }.hero-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }.button { border: 0; border-radius: 2px; padding: 15px 19px; display: inline-flex; gap: 10px; align-items: center; font-weight: 600; font-size: 12px; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }.button:hover { transform: translateY(-2px); }.button-primary { color: white; background: var(--plum); box-shadow: 0 12px 24px rgba(83,20,49,.15); }.button-primary:hover { background: var(--berry); box-shadow: 0 15px 28px rgba(83,20,49,.22); }.button-quiet { color: var(--ink); background: transparent; padding-left: 0; }.play-mark { border: 1px solid var(--gold); color: var(--berry); border-radius: 50%; width: 30px; height: 30px; display: grid; place-items: center; }.hero-trust { margin-top: 45px; display: flex; align-items: center; gap: 12px; }.trust-avatars { display: flex; }.trust-avatars span { width: 29px; height: 29px; margin-right: -6px; border: 2px solid var(--cream); border-radius: 50%; display: grid; place-items: center; font: 500 10px 'Playfair Display'; color: white; background: #9a6172; }.trust-avatars span:nth-child(2) { background: #bb8b61; }.trust-avatars span:nth-child(3) { background: #4d6570; }.stars { color: var(--gold); letter-spacing: 2px; font-size: 11px; }.hero-trust p { color: var(--muted); font-size: 11px; margin: 2px 0 0; }
.hero-art { min-height: 600px; position: relative; display: grid; place-items: center; }.hero-image-frame { width: min(520px, 90%); aspect-ratio: 1; overflow: hidden; border-radius: 50%; border: 1px solid var(--gold); box-shadow: 0 0 0 12px rgba(255,250,247,.8), 0 0 0 13px rgba(217,161,60,.35), 0 30px 55px rgba(83,20,49,.2); }.hero-image-frame img { width: 100%; height: 100%; object-fit: cover; }.hero-note { position: absolute; background: rgba(255,250,247,.9); box-shadow: 0 12px 25px rgba(83,20,49,.1); padding: 16px; display: flex; gap: 10px; align-items: flex-start; color: var(--berry); font-size: 10px; line-height: 1.4; letter-spacing: .04em; }.hero-note strong { color: var(--ink); font-weight: 600; }.note-top { top: 17%; left: 3%; }.note-bottom { bottom: 15%; right: 3%; align-items: center; }.note-number { color: var(--gold); font: 500 25px 'Playfair Display'; }.hero-stamp { position: absolute; bottom: 16%; left: 8%; color: var(--gold); text-align: center; font-size: 7px; letter-spacing: .14em; line-height: 1.7; transform: rotate(-13deg); }.hero-stamp strong { font: 500 18px 'Playfair Display'; letter-spacing: .04em; }.scroll-cue { position: absolute; bottom: 20px; left: max(32px, calc((100% - 1160px)/2)); color: #a18b8e; display: flex; align-items: center; gap: 7px; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.marquee { overflow: hidden; padding: 18px 0; background: var(--plum); color: #f7d9c7; font: 500 11px 'Playfair Display'; letter-spacing: .2em; white-space: nowrap; }.marquee div { text-align: center; }.marquee span { color: var(--gold); margin: 0 20px; }
.section { padding: 120px 0; }.about-grid { display: grid; grid-template-columns: 48% 52%; gap: 90px; align-items: center; }.about-visual { min-height: 560px; position: relative; }.about-main-image { width: 78%; height: 460px; overflow: hidden; }.about-main-image img, .about-small-image img { width: 100%; height: 100%; object-fit: cover; }.about-small-image { position: absolute; width: 44%; height: 210px; right: 0; bottom: 0; border: 10px solid var(--cream); }.experience-badge { position: absolute; top: 25px; right: 0; background: var(--plum); color: white; width: 128px; height: 128px; border-radius: 50%; display: flex; flex-direction: column; justify-content: center; text-align: center; transform: rotate(9deg); }.experience-badge strong { color: var(--gold); font: 500 27px 'Playfair Display'; }.experience-badge span { font-size: 9px; line-height: 1.4; letter-spacing: .08em; text-transform: uppercase; }.about-copy h2, .section-heading h2, .contact-copy h2 { font-size: clamp(42px, 4.5vw, 62px); }.about-copy p { color: var(--muted); line-height: 1.8; font-size: 14px; max-width: 510px; }.about-copy .lead { font-size: 17px; color: var(--ink); line-height: 1.75; }.check-list { margin: 28px 0; display: grid; gap: 12px; font-size: 12px; font-weight: 600; color: var(--ink); }.check-list div { display: flex; align-items: center; gap: 10px; }.check-list svg { color: var(--berry); }.text-button { border: 0; background: none; color: var(--berry); font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; gap: 10px; padding: 10px 0; }.text-button:hover { gap: 15px; }
.services-section { background: var(--blush); }.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 55px; }.section-heading h2 { margin-bottom: 0; max-width: 560px; }.section-heading > p { max-width: 300px; color: var(--muted); line-height: 1.7; font-size: 13px; }.service-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }.service-card { background: rgba(255,250,247,.73); padding: 29px; min-height: 240px; transition: transform .25s ease, box-shadow .25s ease; }.service-card:hover { transform: translateY(-6px); box-shadow: 0 18px 30px rgba(83,20,49,.08); }.service-card.featured { background: var(--plum); color: white; }.service-top { display: flex; justify-content: space-between; color: var(--berry); }.featured .service-top { color: var(--gold); }.service-number { font: 500 12px 'Playfair Display'; color: var(--gold); }.service-card h3 { font: 500 26px 'Playfair Display'; margin: 28px 0 10px; }.service-card p { color: var(--muted); line-height: 1.65; font-size: 12px; min-height: 40px; }.featured p { color: #e5cbd0; }.service-card button { border: 0; background: none; color: var(--berry); display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; margin-top: 22px; padding: 0; }.featured button { color: #f4d9a0; }
.approach-section { background: #fffaf7; }.centered { align-items: center; flex-direction: column; text-align: center; }.centered h2 { margin-top: 20px; }.steps-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }.step-line { display: flex; align-items: center; margin-bottom: 26px; }.step-line span { width: 42px; height: 42px; border: 1px solid var(--gold); border-radius: 50%; display: grid; place-items: center; color: var(--berry); font: 500 14px 'Playfair Display'; flex: 0 0 auto; }.step-line i { height: 1px; background: var(--line); width: 100%; display: block; }.step h3 { font: 500 25px 'Playfair Display'; margin: 0 0 12px; }.step p { color: var(--muted); font-size: 12px; line-height: 1.7; max-width: 200px; }.statement-section { padding: 85px 0; background: var(--berry); color: white; text-align: center; }.statement-inner { display: flex; flex-direction: column; align-items: center; }.statement-icon { color: var(--gold); margin-bottom: 14px; }.statement-inner p { font: 500 clamp(28px, 4vw, 48px)/1.2 'Playfair Display'; margin: 0; }.statement-inner em { color: #f5d1bf; }.statement-inner > span { margin-top: 22px; font-size: 10px; color: #eac5c9; letter-spacing: .15em; text-transform: uppercase; }
.gallery-section { background: var(--cream); }.gallery-filters { display: flex; gap: 22px; }.gallery-filters button { color: var(--muted); background: none; border: 0; padding: 8px 0; font-size: 12px; }.gallery-filters button.active { color: var(--berry); border-bottom: 1px solid var(--gold); }.gallery-grid { display: grid; grid-template-columns: 1.15fr .85fr .85fr; grid-auto-rows: 200px; gap: 14px; }.gallery-item { border: 0; padding: 0; overflow: hidden; position: relative; background: #ead8d3; }.gallery-item:first-child { grid-row: span 2; }.gallery-item:nth-child(4) { grid-column: span 2; }.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }.gallery-item:hover img { transform: scale(1.05); }.gallery-item:after { content: ''; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, rgba(47,23,36,.65)); }.gallery-item span { position: absolute; bottom: 14px; left: 17px; color: white; z-index: 1; font-size: 10px; display: flex; gap: 8px; align-items: center; }
.testimonial-section { background: #f6e9e4; }.testimonial-grid { display: grid; grid-template-columns: 42% 58%; gap: 50px; align-items: center; }.testimonial-intro h2 { margin-bottom: 50px; }.testimonial-card { background: white; padding: 55px 65px; position: relative; min-height: 340px; box-shadow: 0 17px 35px rgba(83,20,49,.06); }.quote-mark { position: absolute; color: #ead8d3; top: 26px; right: 29px; }.testimonial-card blockquote { max-width: 550px; color: var(--ink); font: 500 25px/1.5 'Playfair Display'; margin: 20px 0 34px; }.testimonial-person { display: flex; align-items: center; gap: 12px; }.testimonial-person > span { width: 40px; height: 40px; border-radius: 50%; background: var(--plum); color: var(--gold); display: grid; place-items: center; font: 500 13px 'Playfair Display'; }.testimonial-person div { display: flex; flex-direction: column; gap: 4px; }.testimonial-person strong { font-size: 12px; }.testimonial-person small { color: var(--muted); font-size: 10px; }.testimonial-controls { display: flex; align-items: center; gap: 10px; }.testimonial-controls button { width: 38px; height: 38px; border: 1px solid var(--line); color: var(--berry); background: transparent; display: grid; place-items: center; }.testimonial-controls span { margin-left: 12px; color: var(--muted); font: 11px 'Playfair Display'; display: flex; align-items: center; gap: 8px; }.testimonial-controls i { width: 30px; height: 1px; background: var(--gold); }
.contact-section { background: var(--plum); color: white; }.contact-grid { display: grid; grid-template-columns: 45% 55%; gap: 100px; align-items: center; }.contact-copy h2 { color: white; }.contact-copy h2 em { color: #f4d9a0; }.contact-copy > p { color: #e5cbd0; font-size: 14px; line-height: 1.8; max-width: 430px; }.contact-details { display: grid; gap: 21px; margin-top: 40px; }.contact-details > div { display: flex; align-items: flex-start; gap: 13px; color: var(--gold); }.contact-details span { display: flex; flex-direction: column; gap: 4px; }.contact-details strong { color: white; font-size: 12px; }.contact-details small { color: #d7b8bf; font-size: 11px; }.contact-form { background: var(--cream); color: var(--ink); padding: 40px; }.form-heading { border-bottom: 1px solid var(--line); margin-bottom: 24px; padding-bottom: 19px; }.form-heading span { color: var(--gold); font-size: 10px; letter-spacing: .1em; }.form-heading h3 { font: 500 31px 'Playfair Display'; margin: 8px 0; }.form-heading p { color: var(--muted); font-size: 11px; margin: 0; }.contact-form label { display: block; color: var(--ink); font-size: 11px; font-weight: 600; margin-bottom: 18px; }.contact-form label > span { font-weight: 400; color: var(--muted); }.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.contact-form input, .contact-form textarea { display: block; width: 100%; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink); padding: 10px 0; outline: 0; resize: vertical; font-size: 13px; margin-top: 5px; }.contact-form input:focus, .contact-form textarea:focus { border-color: var(--berry); }.contact-form input::placeholder, .contact-form textarea::placeholder { color: #b6a2a3; }.form-submit { margin-top: 5px; }.form-submit:disabled { opacity: .65; cursor: wait; }.form-message { margin-top: 16px; font-size: 11px; display: flex; align-items: center; gap: 7px; }.form-message.success { color: #26754f; }.form-message.error { color: #a22c3e; }
.site-footer { background: #24111b; color: white; padding: 75px 0 22px; }.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.3fr; gap: 45px; padding-bottom: 65px; }.footer-brand img { width: 58px; height: 58px; object-fit: cover; border-radius: 50%; }.footer-brand h3 { font: 500 30px 'Playfair Display'; margin: 15px 0 6px; }.footer-brand p, .footer-cta p { color: #baa5ad; font-size: 12px; line-height: 1.7; max-width: 200px; }.footer-grid h4 { color: var(--gold); text-transform: uppercase; letter-spacing: .14em; font-size: 9px; margin: 8px 0 18px; }.footer-grid > div:not(.footer-brand):not(.footer-cta) { display: flex; flex-direction: column; align-items: flex-start; }.site-footer button { color: #d7bfc6; }.social-button { border: 1px solid #5b3b47 !important; width: 34px; height: 34px; display: grid; place-items: center; margin-top: 18px; }.footer-cta h4 { font: 500 25px 'Playfair Display'; text-transform: none; letter-spacing: 0; color: white; }.footer-bottom { border-top: 1px solid #412b35; padding-top: 19px; display: flex; justify-content: space-between; color: #8e727d; font-size: 9px; letter-spacing: .04em; }
.lightbox { position: fixed; inset: 0; z-index: 50; background: rgba(26,9,18,.96); display: grid; place-items: center; }.lightbox img { max-width: min(80vw, 900px); max-height: 80vh; object-fit: contain; }.lightbox-close, .lightbox-arrow { border: 0; color: white; background: rgba(255,255,255,.1); display: grid; place-items: center; }.lightbox-close { position: absolute; right: 30px; top: 25px; width: 42px; height: 42px; }.lightbox-arrow { position: absolute; top: 50%; width: 46px; height: 46px; }.lightbox-arrow.left { left: 30px; }.lightbox-arrow.right { right: 30px; }.lightbox-caption { position: absolute; bottom: 26px; color: #eac5c9; font-size: 11px; letter-spacing: .15em; text-transform: uppercase; }
@media (max-width: 900px) { .container { width: min(100% - 40px, 650px); }.main-nav { position: absolute; top: 88px; left: 0; right: 0; background: var(--cream); border-bottom: 1px solid var(--line); padding: 20px; display: none; flex-direction: column; align-items: stretch; gap: 5px; }.main-nav.is-open { display: flex; }.main-nav button { text-align: left; padding: 12px 0; }.main-nav .nav-call { justify-content: center; text-align: center; margin-top: 5px; }.menu-button { display: block; }.hero-grid { grid-template-columns: 1fr; }.hero-copy { padding: 70px 0 35px; }.hero-art { min-height: 500px; }.hero-image-frame { width: min(430px, 85%); }.hero-note { transform: scale(.9); }.about-grid, .testimonial-grid, .contact-grid { grid-template-columns: 1fr; gap: 50px; }.about-visual { min-height: 480px; }.contact-grid { gap: 38px; }.section-heading { align-items: flex-start; flex-direction: column; gap: 20px; }.gallery-filters { flex-wrap: wrap; }.footer-grid { grid-template-columns: 1fr 1fr; }.footer-cta { grid-column: span 2; }.steps-grid { grid-template-columns: repeat(2,1fr); row-gap: 35px; }.step-line i { display: none; } }
@media (max-width: 580px) { .container { width: calc(100% - 32px); }.site-header { height: 76px; }.main-nav { top: 76px; }.brand img { width: 42px; height: 42px; }.brand strong { font-size: 21px; }.brand small { font-size: 7px; }.hero-section { min-height: auto; }.hero-copy { padding-top: 56px; }.hero-actions { gap: 13px; }.hero-art { min-height: 385px; }.hero-note { padding: 10px; font-size: 8px; }.note-top { left: 0; }.note-bottom { right: 0; }.hero-stamp { left: 2%; bottom: 9%; }.section { padding: 82px 0; }.about-visual { min-height: 385px; }.about-main-image { height: 330px; }.about-small-image { height: 150px; border-width: 6px; }.experience-badge { width: 100px; height: 100px; top: 15px; }.experience-badge strong { font-size: 21px; }.experience-badge span { font-size: 7px; }.service-grid { grid-template-columns: 1fr; }.service-card { min-height: 210px; }.steps-grid { grid-template-columns: 1fr 1fr; gap: 20px 14px; }.step h3 { font-size: 21px; }.gallery-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 150px; }.gallery-item:first-child { grid-row: span 2; }.gallery-item:nth-child(4) { grid-column: span 1; }.testimonial-card { padding: 40px 25px; }.testimonial-card blockquote { font-size: 20px; }.contact-form { padding: 28px 20px; }.form-row { grid-template-columns: 1fr; gap: 0; }.footer-grid { grid-template-columns: 1fr 1fr; gap: 30px 20px; }.footer-brand, .footer-cta { grid-column: span 2; }.footer-bottom { flex-direction: column; gap: 8px; }.lightbox img { max-width: 90vw; }.lightbox-arrow.left { left: 10px; }.lightbox-arrow.right { right: 10px; } }

.main-nav a{font-size:12px;color:var(--muted);text-decoration:none}.main-nav a:hover{color:var(--berry)}.service-card a{color:var(--berry);font-size:11px;text-decoration:none}.featured a{color:#f4d9a0}.gallery-item{cursor:pointer}.lightbox[hidden]{display:none}.testimonial-card[hidden]{display:none}.contact-form .feedback{font-size:12px;color:#26754f}.contact-form .feedback.error{color:#a22c3e}.hp{position:absolute;left:-9999px}a.button{text-decoration:none}.footer-grid a{display:block;color:#d7bfc6;text-decoration:none;font-size:12px;margin:8px 0}.footer-grid a:hover{color:var(--gold)}

#lightbox{border:0;background:#24111b;padding:18px;max-width:95vw;max-height:95vh}#lightbox::backdrop{background:#1a0912e8}#lightbox img{max-width:80vw;max-height:78vh;object-fit:contain;vertical-align:middle}#lightbox button{background:#531431;color:white;border:0;padding:12px;margin:5px}#close{position:absolute;top:0;right:0;font-size:24px}.gallery-item[hidden]{display:none}@media(max-width:900px){.main-nav a{padding:10px 0}.main-nav.is-open{display:flex}}
