
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');
:root{--green:#173a30;--green2:#0e2922;--cream:#faf7ef;--paper:#f2ecdf;--wine:#762d36;--gold:#bd9764;--ink:#25342e;--muted:#64736a;--line:#dfd9ca}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;line-height:1.65}img{max-width:100%;display:block}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3,.serif{font-family:'Playfair Display',Georgia,serif;line-height:1.16;font-weight:500}h1{font-size:clamp(3.3rem,6.8vw,6.7rem);letter-spacing:-.035em}h2{font-size:clamp(2.3rem,4.3vw,4.35rem);letter-spacing:-.03em}h3{font-size:1.55rem}p{max-width:65ch}small,.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.eyebrow{color:var(--wine);margin-bottom:22px}.wrap{width:min(1200px,calc(100% - 48px));margin:auto}.topbar{background:var(--green2);color:#efe9de;text-align:center;padding:9px 15px;font-size:.73rem;letter-spacing:.12em;text-transform:uppercase}.header{position:sticky;top:0;z-index:30;background:rgba(250,247,239,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav{height:83px;display:flex;align-items:center;justify-content:space-between;gap:25px}.logo{text-decoration:none;display:flex;align-items:center;gap:13px;color:var(--green)}.logo-mark{display:grid;place-items:center;border:1px solid var(--gold);width:45px;height:45px;border-radius:50%;font-family:Georgia,serif;font-size:1.15rem;color:var(--wine)}.logo-name{font:600 1.19rem Georgia,serif;line-height:1.1}.logo-sub{font-size:.63rem;letter-spacing:.15em;text-transform:uppercase;color:#6e7467;display:block;margin-top:6px}.navlinks{display:flex;align-items:center;gap:28px}.navlinks a{text-decoration:none;font-size:.79rem;font-weight:700;letter-spacing:.06em}.navlinks a:not(.btn):hover{color:var(--wine)}.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--green);background:var(--green);color:white;padding:15px 23px;min-height:50px;font-size:.75rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;transition:.2s}.btn:hover{background:var(--wine);border-color:var(--wine)}.btn.outline{background:transparent;color:var(--green)}.btn.outline:hover{background:var(--green);color:white}.btn.light{background:var(--cream);border-color:var(--cream);color:var(--green)}.btn.light:hover{background:#fff}.menu{display:none;border:0;background:transparent;font-size:1.4rem;color:var(--green)}.hero{background:#ede5d8;min-height:690px;display:grid;grid-template-columns:54% 46%;overflow:hidden}.hero-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:80px max(35px,calc((100vw - 1200px)/2)) 85px max(24px,calc((100vw - 1200px)/2));padding-right:5vw}.hero h1{color:var(--green);margin-bottom:28px}.hero p{font-size:1.07rem;color:#56645a;margin-bottom:32px;max-width:440px}.hero-image{position:relative;min-height:690px}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center top;position:absolute;inset:0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-bottom{margin-top:42px;color:#6f7469;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.section{padding:105px 0}.intro{text-align:center}.intro .eyebrow{margin-bottom:13px}.intro h2{max-width:780px;margin:0 auto 25px;color:var(--green)}.intro p{margin:0 auto;color:#607066;font-size:1.05rem}.ornament{width:58px;height:1px;background:var(--gold);margin:30px auto}.split{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.split h2{color:var(--green)}.split p{color:#647269;font-size:1.01rem}.photo-frame{position:relative}.photo-frame img{width:100%;height:625px;object-fit:cover;object-position:center}.photo-frame:after{content:'';position:absolute;left:19px;top:19px;right:-19px;bottom:-19px;border:1px solid var(--gold);z-index:-1}.cream-panel{background:var(--paper)}.dark-panel{background:var(--green);color:var(--cream)}.dark-panel h2,.dark-panel .eyebrow{color:var(--cream)}.dark-panel p{color:#dddcd1}.dark-panel .outline{border-color:#d8c7ac;color:#fff}.dark-panel .outline:hover{background:#fff;color:var(--green)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:55px}.card{padding:35px 30px 32px;background:#fffdf7;border:1px solid #e4ded2;min-height:250px}.card .number{color:var(--wine);font:500 1rem Georgia,serif}.card h3{color:var(--green);margin:22px 0 11px}.card p{font-size:.9rem;color:#697267;margin:0}.services-header{text-align:center}.services-header h2{color:var(--green);margin-bottom:10px}.services-header p{margin:auto;color:#667167}.story{display:grid;grid-template-columns:1fr 1fr;min-height:620px}.story .image{min-height:620px;overflow:hidden}.story img{width:100%;height:100%;object-fit:cover;object-position:50% 48%}.story .text{background:var(--green);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:clamp(35px,7vw,120px)}.story h2{color:#fff}.story p{color:#dfdfd6}.story .eyebrow{color:#d6b88a}.gallery-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:35px}.gallery-head h2{color:var(--green);margin-bottom:0}.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.gallery figure{margin:0;overflow:hidden;background:#e4ded4}.gallery figure:hover img{transform:scale(1.03)}.gallery figure:nth-child(1){grid-column:span 5;height:450px}.gallery figure:nth-child(2){grid-column:span 4;height:450px}.gallery figure:nth-child(3){grid-column:span 3;height:450px}.gallery figure:nth-child(4){grid-column:span 4;height:340px}.gallery figure:nth-child(5){grid-column:span 4;height:340px}.gallery figure:nth-child(6){grid-column:span 4;height:340px}.gallery figure:nth-child(1) img{object-position:center 38%}.process{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:48px}.process>div{border-top:1px solid var(--gold);padding-top:22px}.process .step{font:1.1rem Georgia,serif;color:var(--wine);margin-bottom:16px}.process h3{font-size:1.35rem}.process p{font-size:.91rem;color:#667269}.faq{max-width:900px;margin:auto}.faq details{border-bottom:1px solid var(--line);padding:22px 0}.faq summary{font-weight:700;color:var(--green);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:18px}.faq summary:after{content:'+';font-size:1.3rem;color:var(--wine)}.faq details[open] summary:after{content:'−'}.faq details p{margin:15px 0 0;color:#607066}.booking{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;align-items:start}.booking h2{color:var(--cream)}.booking p{color:#e1e6dc}.booking .eyebrow{color:#d4b98e}.contact-form{background:#fffdf6;padding:36px;color:var(--ink)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}label{font-size:.73rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700;color:var(--green)}input,select,textarea{width:100%;padding:12px 13px;background:white;border:1px solid #d9d7cf;border-radius:0;color:var(--ink);min-height:46px}textarea{min-height:95px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #c09e6b;outline-offset:1px}.form-note{font-size:.78rem;color:#647269;margin:13px 0 0}.footer{background:#0c241e;color:#dfe5dc;padding:55px 0 22px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px}.footer p{font-size:.88rem;color:#c6cec4}.footer a{text-decoration:none;color:#e1e7dc}.footer a:hover{text-decoration:underline}.footer-links{display:flex;flex-direction:column;gap:11px;font-size:.88rem}.footer-bottom{border-top:1px solid #355047;margin-top:45px;padding-top:20px;display:flex;justify-content:space-between;gap:20px;font-size:.76rem;color:#adbab0}.legal{max-width:800px;margin:80px auto 120px;padding:0 24px}.legal h1{font-size:3rem}.legal h2{font-size:1.5rem;margin-top:35px}.skip{position:absolute;top:-90px;left:10px;background:#fff;z-index:99;padding:10px}.skip:focus{top:5px}@media(max-width:900px){.navlinks{gap:14px}.navlinks a{font-size:.71rem}.hero{grid-template-columns:1fr 1fr}.hero-copy{padding:60px 28px}.hero h1{font-size:clamp(2.9rem,6vw,4.5rem)}.cards{grid-template-columns:repeat(2,1fr)}.split{gap:35px}.photo-frame img{height:530px}.booking{gap:5%}}@media(max-width:700px){.wrap{width:min(100% - 34px,1200px)}.topbar{font-size:.63rem}.nav{height:73px}.menu{display:block}.navlinks{display:none;position:absolute;top:73px;left:0;right:0;background:var(--cream);padding:23px;flex-direction:column;align-items:stretch;box-shadow:0 12px 15px #0002}.navlinks.open{display:flex}.navlinks .btn{text-align:center}.hero{display:flex;flex-direction:column}.hero-copy{order:2;padding:47px 25px 58px}.hero-image{order:1;min-height:390px}.hero-image img{object-position:center top}.hero h1{font-size:clamp(3.35rem,12vw,5rem);margin-bottom:18px}.hero-bottom{margin-top:25px}.section{padding:72px 0}.split,.story,.booking{grid-template-columns:1fr}.split .photo-frame{order:0}.split .copy{order:1}.photo-frame{margin-right:18px}.photo-frame img{height:490px}.story .image{min-height:470px;height:470px}.story .text{padding:68px 24px}.cards{grid-template-columns:1fr;gap:12px;margin-top:30px}.card{min-height:0;padding:27px}.card h3{margin-top:13px}.gallery{grid-template-columns:repeat(2,1fr)}.gallery figure:nth-child(n){grid-column:span 1;height:250px}.gallery figure:first-child{grid-column:span 2;height:350px}.gallery-head{display:block}.process{grid-template-columns:1fr;gap:22px}.booking{gap:25px}.contact-form{padding:24px 18px}.fields{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr;gap:25px}.footer-bottom{display:block}.footer-bottom span{display:block;margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* V3 gallery: prioritize faces in the lower middle portrait, including mobile. */
.gallery figure:nth-child(5) img{object-position:center top}

/* V4: show the upright full portrait without cropping Santa or Mrs. Claus. */
#story .photo-frame{background:transparent}
#story .photo-frame img{object-fit:contain;object-position:center center;height:625px}
@media(max-width:900px){#story .photo-frame img{height:530px}}
@media(max-width:700px){#story .photo-frame img{height:auto;max-height:none}}

/* V5: the garden portrait is vertical. Show the WHOLE photograph in the
   wide gallery tile instead of cropping faces with object-fit: cover. */
.gallery figure:nth-child(5){background:#eae3d7}
.gallery figure:nth-child(5) img{object-fit:contain;object-position:center center}
.gallery figure:nth-child(5):hover img{transform:none}

/* V6: editorial masonry gallery. Never crop a photograph to fit a tile. */
.gallery{display:block;columns:3;column-gap:16px}
.gallery figure:nth-child(n){display:block;break-inside:avoid;page-break-inside:avoid;margin:0 0 16px;height:auto;grid-column:auto;background:transparent;overflow:visible}
.gallery .gallery-trigger{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;overflow:hidden;text-align:left}
.gallery figure:nth-child(n) img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center;transition:transform .3s ease,filter .3s ease}
.gallery figure:nth-child(n):hover img{transform:scale(1.015);filter:brightness(.97)}
.gallery-trigger:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.gallery-lightbox{position:fixed;inset:0;max-width:none;max-height:none;width:100%;height:100%;margin:0;padding:20px;border:0;background:rgba(9,23,18,.96);color:#fff}
.gallery-lightbox::backdrop{background:rgba(9,23,18,.95)}
.gallery-lightbox:not([open]){display:none}
.lightbox-shell{height:100%;display:flex;align-items:center;justify-content:center;position:relative;padding:30px 65px}
.lightbox-shell figure{margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:100%;height:100%;min-height:0}
.lightbox-image{max-width:100%;max-height:calc(100vh - 115px);height:auto;width:auto;object-fit:contain;box-shadow:0 12px 45px #0005}
.lightbox-caption{text-align:center;font-size:.84rem;color:#f4eee5;margin-top:13px}
.lightbox-close,.lightbox-arrow{position:absolute;border:0;color:white;background:rgba(255,255,255,.12);border-radius:50%;display:grid;place-items:center;cursor:pointer}
.lightbox-close{top:0;right:0;width:46px;height:46px;font-size:2rem}
.lightbox-arrow{top:50%;transform:translateY(-50%);width:47px;height:47px;font-size:2.5rem;line-height:1}
.lightbox-prev{left:0}.lightbox-next{right:0}
.lightbox-close:hover,.lightbox-arrow:hover{background:rgba(255,255,255,.27)}
@media(max-width:900px){.gallery{columns:2}}
@media(max-width:600px){.gallery{columns:1;column-gap:0}.gallery figure:nth-child(n){margin-bottom:16px}.lightbox-shell{padding:55px 0 45px}.lightbox-arrow{top:auto;bottom:0;transform:none}.lightbox-close{top:0;right:0}.lightbox-image{max-height:calc(100vh - 155px)}}

/* V7: deliberately composed portrait + landscape gallery; no arbitrary masonry gaps. */
.gallery.gallery-curated {display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;columns:auto}
.gallery.gallery-curated figure:nth-child(n){grid-column:span 3;min-width:0;aspect-ratio:2/3;height:auto;margin:0;overflow:hidden;background:transparent}
.gallery.gallery-curated figure:nth-child(n+5){grid-column:span 6;aspect-ratio:3/2}
.gallery.gallery-curated .gallery-trigger{display:block;width:100%;height:100%;padding:0;border:0;overflow:hidden;background:transparent;cursor:zoom-in}
.gallery.gallery-curated figure:nth-child(n) img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:center top;aspect-ratio:auto;transition:transform .2s ease}
.gallery.gallery-curated figure:nth-child(2) img,.gallery.gallery-curated figure:nth-child(4) img{object-position:center top}
.gallery.gallery-curated figure:nth-child(n):hover img{transform:scale(1.02);filter:none}
@media(max-width:700px){.gallery.gallery-curated{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery.gallery-curated figure:nth-child(n){grid-column:span 1;aspect-ratio:2/3}.gallery.gallery-curated figure:nth-child(n+5){grid-column:span 2;aspect-ratio:3/2}}

/* V8: gallery heading is a centered editorial block. */
.gallery-head{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:0;margin-bottom:38px}
.gallery-head .eyebrow{margin-bottom:12px}
.gallery-head h2{margin-bottom:12px}
.gallery-head p{margin:0 auto;color:var(--muted);max-width:650px}
/* Explicitly fill photo tile with a separately composed crop; lightbox keeps full original. */
.gallery.gallery-curated figure:nth-child(5) img{object-fit:cover;object-position:center center}

/* V9: cohesive, natural-ratio editorial gallery (no empty crop containers). */
#gallery .gallery-head-v9 {display:block!important;text-align:center!important;max-width:850px;margin:0 auto 42px!important;}
#gallery .gallery-head-v9 .eyebrow {display:block;margin:0 0 10px!important;}
#gallery .gallery-head-v9 h2 {display:block;width:100%;max-width:none;margin:0 auto 12px!important;line-height:1.18;color:var(--green);}
#gallery .gallery-head-v9 p {display:block;margin:0 auto!important;max-width:650px;color:var(--muted);}
#gallery .gallery.gallery-editorial-v9{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start;}
#gallery .gallery-editorial-v9 .gallery-column{display:flex;flex-direction:column;gap:14px;min-width:0;}
#gallery .gallery-editorial-v9 figure:nth-child(n){margin:0;display:block;grid-column:auto;height:auto;aspect-ratio:auto;overflow:hidden;background:transparent;}
#gallery .gallery-editorial-v9 .gallery-trigger{display:block;width:100%;height:auto;cursor:zoom-in;}
#gallery .gallery-editorial-v9 figure:nth-child(n) img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center;transition:transform .2s ease;}
#gallery .gallery-editorial-v9 figure:hover img{transform:scale(1.015);}
.gallery-lightbox[open]{z-index:9999;}
.gallery-lightbox .lightbox-close{position:fixed;top:22px;right:28px;z-index:10001;width:54px;height:54px;border:2px solid #fff9;background:#173a30;color:#fff;font-size:2.4rem;line-height:1;box-shadow:0 5px 18px #0009;}
.gallery-lightbox .lightbox-close:focus-visible{outline:3px solid #e8c590;outline-offset:4px;}
@media(max-width:800px){#gallery .gallery.gallery-editorial-v9{grid-template-columns:repeat(2,minmax(0,1fr));}#gallery .gallery-editorial-v9 .gallery-column:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;}}
@media(max-width:560px){#gallery .gallery.gallery-editorial-v9{grid-template-columns:1fr;gap:12px;}#gallery .gallery-editorial-v9 .gallery-column{gap:12px;}#gallery .gallery-editorial-v9 .gallery-column:last-child{grid-column:auto;display:flex;}#gallery .gallery-head-v9 h2{font-size:clamp(2.35rem,10vw,3.6rem);} .gallery-lightbox .lightbox-close{top:12px;right:12px;}}

/* V10: dedicated stacked heading, independent of previous flex-based section headers. */
#gallery .gallery-heading-stacked{display:block;text-align:center;margin:0 auto 42px;max-width:850px}
#gallery .gallery-heading-stacked .eyebrow{display:block;margin:0 0 13px;color:var(--wine)}
#gallery .gallery-heading-stacked h2{display:block;margin:0 auto 14px;max-width:100%;color:var(--green);line-height:1.17}
#gallery .gallery-heading-stacked p{display:block;margin:0 auto;max-width:650px;color:var(--muted)}
/* A button opens the viewer, not the image URL: no browser-image page. */
#gallery .gallery-editorial-v9 .gallery-trigger{appearance:none;border:0;padding:0;margin:0;background:transparent;text-align:left;line-height:0;cursor:zoom-in}
.gallery-lightbox[hidden]{display:none!important}
.gallery-lightbox:not([hidden]){display:flex;align-items:center;justify-content:center;position:fixed;inset:0;z-index:99999;background:rgba(9,23,18,.96);padding:18px}
.gallery-lightbox .lightbox-shell{width:100%;height:100%;max-height:100%;position:relative}
.gallery-lightbox .lightbox-close{position:fixed;top:18px;right:22px;z-index:100001;display:grid;place-items:center;width:58px;height:58px;cursor:pointer}
body.viewer-open{overflow:hidden}
@media(max-width:600px){.gallery-lightbox .lightbox-close{top:12px;right:12px;width:52px;height:52px}}

/* V15 service pages and accessible inquiry feedback */
.service-link{display:inline-block;margin-top:12px;color:var(--wine);font-weight:700;text-decoration:underline;text-underline-offset:4px}
.honeypot{position:absolute!important;left:-9999px!important;opacity:0;pointer-events:none}
.form-status{font-size:.95rem;line-height:1.5;margin:14px 0 0;color:#fff}
.form-status.success{background:#e7f2e6;color:#173a30;border-radius:6px;padding:14px}
.form-status.error{background:#fff1e9;color:#6c1d15;border-radius:6px;padding:14px}
.contact-form button:disabled{opacity:.75;cursor:wait}
.subpage-hero{background:#173a30;color:#fff;padding:80px 0 72px}.subpage-hero .eyebrow{color:#e2c39a}.subpage-hero h1{font-size:clamp(2.7rem,5vw,5rem);line-height:1.08;max-width:900px;margin:14px 0 20px}.subpage-hero p{font-size:1.15rem;max-width:680px;line-height:1.65;color:#f1eee8}.subpage-hero .btn{margin-top:16px}
.detail-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:52px;align-items:center}.detail-grid img{width:100%;height:auto;border-radius:9px}.detail-copy h2{font-size:clamp(2rem,3.7vw,3.4rem);line-height:1.2}.detail-copy p,.detail-copy li{line-height:1.75}.detail-copy ul{padding-left:22px}.detail-band{background:#f4efe5;padding:55px 0}.detail-band h2{margin:0 0 12px}.detail-band p{max-width:730px;line-height:1.75}.detail-band .btn{margin-top:12px}
@media(max-width:780px){.detail-grid{grid-template-columns:1fr;gap:28px}.subpage-hero{padding:54px 0 48px}}

/* V16: guarantee spam trap is never rendered and notes are legible */
.honeypot,.honeypot[hidden]{display:none!important;visibility:hidden!important;}
.contact-form .form-note{color:#3d5147!important;opacity:1!important;line-height:1.6;}
.contact-form .form-note a{color:#173a30;text-decoration:underline;}
.contact-form .form-status{color:#173a30;min-height:1.5em;}
