:root{--rose:#bc8f91;--rose-dark:#9e7174;--blush:#f6ece8;--cream:#fffaf7;--ink:#242121;--muted:#6b6260;--line:#dfc2c1;--white:#fff;--shadow:0 12px 35px rgba(70,45,45,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Montserrat,Arial,sans-serif;line-height:1.65}img{display:block;max-width:100%}a{color:inherit}.container{width:min(1180px,92%);margin:auto}.narrow{width:min(760px,92%);margin:auto}.center{text-align:center}.section{padding:78px 0}h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;line-height:1.05;font-weight:600}h1{font-size:clamp(3rem,6vw,5.3rem);margin:.2em 0}h2{font-size:clamp(2rem,3.6vw,3.2rem);margin:.3em 0 .5em}p{color:var(--muted)}.script-line,.script-small{font-family:Parisienne,cursive;color:var(--rose-dark)}.script-line{font-size:clamp(2.3rem,4vw,4.4rem);margin-top:-10px;border-bottom:2px solid var(--rose);padding-bottom:8px;width:max-content;max-width:100%}.script-small{font-size:2.1rem;margin-bottom:18px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;color:var(--rose-dark);font-weight:600}.button{display:inline-block;border:1px solid var(--rose);background:var(--rose);color:#fff;text-transform:uppercase;letter-spacing:.06em;font-weight:600;font-size:.82rem;padding:14px 24px;text-decoration:none;border-radius:2px;transition:.2s}.button:hover{background:var(--rose-dark);border-color:var(--rose-dark);transform:translateY(-1px)}.button-outline-light{background:transparent;border-color:#fff}.site-header{background:rgba(255,250,247,.97);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(188,143,145,.2)}.nav-wrap{display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:25px;min-height:112px}.brand img{width:130px;height:130px;object-fit:contain;margin-bottom:-28px}.main-nav{display:flex;justify-content:center;align-items:center;gap:28px}.main-nav a{text-decoration:none;text-transform:uppercase;font-size:.76rem;font-weight:600;padding:8px 0;border-bottom:2px solid transparent}.main-nav a:hover,.main-nav a.active{color:var(--rose-dark);border-color:var(--rose)}.social-links{display:flex;gap:14px;font-weight:700;font-size:1.2rem}.social-links a{text-decoration:none}.menu-toggle{display:none;border:0;background:none;font-size:1.8rem}.hero{background:linear-gradient(90deg,#f8efeb 0%,#fffaf7 55%)}.hero-grid{display:grid;grid-template-columns:46% 54%;align-items:stretch;min-height:520px}.hero-copy{padding:85px 5% 70px 0;align-self:center}.hero-copy p{max-width:520px;font-size:1.12rem;margin:28px 0}.hero-grid>img{width:100%;height:100%;min-height:520px;object-fit:cover}.services{background:#fffaf8}.three-columns{display:grid;grid-template-columns:repeat(3,1fr)}.service-card{text-align:center;padding:20px 55px;border-right:1px solid var(--line)}.service-card:last-child{border-right:0}.service-card h2{font-size:1.7rem}.service-card a{color:var(--rose-dark);font-weight:600;text-transform:uppercase;font-size:.78rem;text-decoration:none}.line-icon {
    font-size: 2.8rem;
    color: #a86d73;
}.split{display:grid;grid-template-columns:1fr 1.12fr;align-items:center}.split>img{width:100%;height:520px;object-fit:cover}.copy{padding:65px}.floral-corner{background:linear-gradient(135deg,#fff 0%,#fffaf8 100%);position:relative}.floral-corner:after{content:"❀";position:absolute;right:7%;bottom:12%;font-size:9rem;color:rgba(188,143,145,.18)}.portfolio{background:#fff}.section-title{text-align:center;text-transform:uppercase;letter-spacing:.09em}.gallery-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin:34px 0 28px}.gallery-grid img{width:100%;aspect-ratio:1/1;object-fit:cover}.gallery-grid.large{grid-template-columns:repeat(3,1fr)}.gallery-grid.large img{aspect-ratio:4/5}.cta-band{padding:50px 0;background:linear-gradient(rgba(158,113,116,.88),rgba(158,113,116,.88)),url('../images/family-walk.jpg') center/cover;color:#fff}.cta-band h2{font-size:3rem}.cta-band p{color:#fff;max-width:720px;margin:0 auto 20px}.site-footer{background:var(--rose);color:#fff;padding:45px 0 18px}.site-footer p,.site-footer a{color:#fff}.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1.2fr 1fr;gap:50px}.footer-grid h3{text-transform:uppercase;font-family:Montserrat,sans-serif;font-size:.85rem;letter-spacing:.09em}.footer-grid a{display:block;text-decoration:none;margin:4px 0}.footer-logo{width:125px;filter:;margin-bottom:10px}.copyright{text-align:center;border-top:1px solid rgba(255,255,255,.25);padding-top:16px;margin-top:30px;font-size:.8rem}.page-hero{padding:95px 0;text-align:center}.soft-bg{background:linear-gradient(135deg,#f7eae7,#fffaf7)}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.contact-form{background:#fff;padding:38px;box-shadow:var(--shadow)}.contact-form label{display:block;font-weight:600;font-size:.9rem;margin-bottom:18px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;margin-top:7px;border:1px solid var(--line);background:#fffaf8;padding:13px;font:inherit}.notice{padding:15px;margin-bottom:20px}.notice.success{background:#e8f4ea}.notice.error{background:#f8e1e1}.honeypot{position:absolute;left:-9999px}
@media(max-width:900px){.nav-wrap{grid-template-columns:110px 1fr auto;min-height:88px}.brand img{width:100px;height:100px}.menu-toggle{display:block;justify-self:end}.main-nav{display:none;position:absolute;top:88px;left:0;right:0;background:#fffaf7;flex-direction:column;padding:22px;border-bottom:1px solid var(--line)}.main-nav.open{display:flex}.social-links{display:none}.hero-grid,.split,.contact-grid{grid-template-columns:1fr}.hero-copy{padding:70px 0}.hero-grid>img{min-height:380px}.three-columns{grid-template-columns:1fr}.service-card{border-right:0;border-bottom:1px solid var(--line)}.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid img:last-child{grid-column:1/-1}.footer-grid{grid-template-columns:1fr 1fr}.copy{padding:48px 25px}.split>img{height:430px}}
@media(max-width:560px){.section{padding:55px 0}.gallery-grid,.gallery-grid.large{grid-template-columns:1fr}.gallery-grid img:last-child{grid-column:auto}.footer-grid{grid-template-columns:1fr}.hero-grid>img{min-height:300px}.page-hero{padding:70px 0}.contact-form{padding:24px}.brand img{margin-bottom:-18px}}

/* Click-to-enlarge macro gallery */
.macro-gallery .gallery-button {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
    overflow: hidden;
}

.macro-gallery .gallery-button img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    transition: transform .25s ease, opacity .25s ease;
}

.macro-gallery .gallery-button:hover img,
.macro-gallery .gallery-button:focus-visible img {
    transform: scale(1.03);
    opacity: .92;
}

.macro-gallery .gallery-button:focus-visible {
    outline: 3px solid var(--rose-dark);
    outline-offset: 4px;
}

.photo-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 70px 90px;
    background: rgba(0, 0, 0, .94);
}

.photo-lightbox.is-open {
    display: flex;
}

.lightbox-image {
    display: block;
    max-width: 90vw;
    max-height: 82vh;
    width: auto;
    height: auto;
    object-fit: contain;
}

.lightbox-close,
.lightbox-arrow {
    position: absolute;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
    z-index: 2;
}

.lightbox-close {
    top: 14px;
    right: 24px;
    font-size: 52px;
    line-height: 1;
}

.lightbox-arrow {
    top: 50%;
    transform: translateY(-50%);
    padding: 18px;
    font-size: 48px;
}

.lightbox-prev { left: 14px; }
.lightbox-next { right: 14px; }

.lightbox-close:hover,
.lightbox-arrow:hover,
.lightbox-close:focus-visible,
.lightbox-arrow:focus-visible {
    color: var(--rose);
}

.lightbox-caption {
    position: absolute;
    left: 20px;
    right: 20px;
    bottom: 14px;
    margin: 0;
    color: #fff;
    text-align: center;
}

body.lightbox-open {
    overflow: hidden;
}

@media (max-width: 700px) {
    .photo-lightbox {
        padding: 58px 44px;
    }

    .lightbox-arrow {
        padding: 8px;
        font-size: 34px;
    }

    .lightbox-prev { left: 0; }
    .lightbox-next { right: 0; }
    .lightbox-close { right: 12px; font-size: 44px; }
}
.button {
    border-radius: 30px;
}
.footer-logo{
    width:125px;
    margin-bottom:10px;
}

.footer-logo img{
    width:100%;
    height:auto;
    display:block;
    filter:none;
}
.footer-logo{
    width:125px;
    filter:;
    margin-bottom:10px;
}