*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:#fafaf8;color:#1a3048;font:17px/1.7 Arial,sans-serif}
a{color:inherit}
header{display:flex;justify-content:space-between;align-items:center;padding:25px 6%;border-bottom:1px solid #d8dde0;background:#fafaf8}
nav{display:flex;align-items:center;gap:30px}
nav a{text-decoration:none;font-size:14px}
.brand{display:flex;align-items:center;gap:15px;text-decoration:none;font-size:14px;letter-spacing:2px}
.brand small{display:block;font-size:10px;letter-spacing:1.6px;margin-top:4px}
.mark{font:32px Georgia,serif;letter-spacing:-3px;border:1px solid #99a4b0;border-radius:50%;height:62px;width:62px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.mark span{color:#a68d64;margin:0 3px}
.nav-cta{border:1px solid #1a3048;padding:10px 22px}
.hero{display:grid;grid-template-columns:1.05fr 1fr;min-height:730px}
.hero-copy{padding:85px 11% 60px 12%;align-self:center}
.eyebrow{font-size:12px;letter-spacing:2px;font-weight:600;line-height:1.8;margin:0 0 24px}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.08;margin:0 0 26px}
h1{font-size:clamp(44px,5.3vw,82px);letter-spacing:-2.7px}
em{font-weight:400;color:#526982}
h2{font-size:clamp(36px,4vw,58px);letter-spacing:-1.6px}
h3{font-size:29px;letter-spacing:-.6px}
.intro{max-width:440px;margin:27px 0 35px;color:#53616e}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:19px 25px;background:#1a3048;color:white;border:1px solid #1a3048;text-decoration:none;font:14px/1.5 Arial,sans-serif;cursor:pointer}
.button:hover{background:#304e6c}
.button span{font-size:22px}
.hero-note{font-size:13px;color:#697783;margin-top:20px}
.hero figure{margin:0;position:relative;overflow:hidden;background:#a6a3a2}
.hero img{height:100%;width:100%;object-fit:cover;object-position:center 25%;position:absolute}
.hero figcaption{position:absolute;bottom:30px;left:30px;right:30px;padding:18px 22px;background:#ffffffed;color:#4c5b67;font-size:12px;letter-spacing:1px}
.hero figcaption span{display:block;color:#1a3048;font:27px Georgia,serif;margin-top:4px}
.values{display:flex;justify-content:space-around;border-bottom:1px solid #d8dde0;padding:25px 6%;font-size:14px;letter-spacing:.4px}
.section{padding:100px 8%;max-width:1500px;margin:auto}
.section-heading{max-width:650px;margin-bottom:55px}
.section-heading>p:last-child{color:#596671}
.occasions{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}
.occasions article{border-top:1px solid #acb7c0;padding-top:23px}
.number{font-size:12px;letter-spacing:1.7px;display:block;margin-bottom:29px}
.occasions p{color:#596671;font-size:16px}
.additional{margin:40px 0 0;color:#65717a;max-width:820px;font-size:15px}
.about{background:#eaf0f4;max-width:none;display:grid;grid-template-columns:minmax(300px,.9fr) 1.1fr;gap:clamp(45px,7vw,110px);align-items:center}
.about-photo{margin:0;min-height:590px;overflow:hidden;background:#c6cbd0}
.about-photo img{display:block;width:100%;height:100%;min-height:590px;object-fit:cover;object-position:center 42%}
.about-copy{max-width:670px}
.signature{font:italic 29px Georgia,serif;display:block;margin-top:30px}
.boundary{background:#1a3048;color:#fff;text-align:center;padding:75px 8%}
.boundary h2{font-size:42px}
.boundary p:last-child{max-width:790px;margin:25px auto 0;color:#dbe3ea;font-size:16px}
.boundary .eyebrow{color:#c8b38d}
.prices{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.prices article{border:1px solid #c8d0d6;padding:42px}
.prices article>p:not(.eyebrow),.premium-copy>p:not(.eyebrow){color:#566774}
.prices .premium{background:#edf1f5;padding:0;overflow:hidden}
.premium-photo{height:330px;margin:0;background:#c3bcb7;overflow:hidden}
.premium-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 28%}
.premium-copy{padding:38px 42px 42px}
.price{font:45px Georgia,serif;margin-top:36px}
.price span,.price small{font:16px Arial,sans-serif}
.minimum{font-size:14px;margin-bottom:30px}
.text-link{font-size:15px;text-underline-offset:7px}
.fine{font-size:14px;color:#67727d;margin-top:30px;max-width:1000px}
.process{border-top:1px solid #d8dde0;display:grid;grid-template-columns:1fr 1fr;gap:70px}
.process ol{padding-left:30px;margin:0}
.process li{padding:0 0 28px 15px}
.process li::marker{font:italic 24px Georgia,serif;color:#8290a0}
.process h3{font-size:25px;margin-bottom:10px}
.process p{font-size:16px;color:#596671;margin:0}
.inquiry{display:grid;grid-template-columns:.85fr 1.4fr;gap:70px;background:#eef2f5;max-width:none}
.inquiry>div>p:not(.eyebrow){color:#526371}
.inquiry-portrait{margin:34px 0 28px;width:min(100%,270px);background:#c9cdd2}
.inquiry-portrait img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 22%}
.inquiry-portrait figcaption{padding:13px 15px;background:#fff;color:#526371;font-size:11px;letter-spacing:1px}
.inquiry-portrait figcaption span{display:block;color:#1a3048;font:21px Georgia,serif;letter-spacing:0;margin-top:3px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
label{font-size:14px;display:block}
.full{grid-column:1/-1}
input,select,textarea{display:block;width:100%;border:1px solid #b5c1cb;background:#fafcfd;border-radius:0;padding:13px 12px;font:16px/1.5 Arial,sans-serif;color:#1a3048;margin-top:7px;min-width:0}
textarea{resize:vertical}
.checks{margin:25px 0}
.checks label{display:flex;gap:12px;margin:15px 0;font-size:14px;align-items:flex-start}
.checks input{width:18px;height:18px;flex-shrink:0;margin:4px 0;accent-color:#1a3048}
button:disabled{opacity:.5;cursor:not-allowed}
.preview-note{font-size:14px;border-left:2px solid #9baab7;padding-left:16px;margin-top:30px}
#form-status{font-size:13px;color:#526371}
footer{padding:55px 8% 25px}
footer>p{color:#65717a;font-size:15px}
.legal{display:flex;gap:35px;border-top:1px solid #d8dde0;padding-top:22px;margin-top:28px}
.legal details{flex:1;font-size:14px}
.legal summary{cursor:pointer}
.copyright{font-size:12px!important;margin-top:40px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:10px;top:10px;background:white;padding:15px;z-index:20}
:focus-visible{outline:3px solid #ab8245;outline-offset:4px}
@media(min-width:1500px){.hero{max-width:1600px;margin:auto}
}
@media(max-width:850px){header{padding:18px 5%}
nav a:not(.nav-cta){display:none}
.brand{font-size:11px;letter-spacing:1px}
.brand small{font-size:8px}
.mark{width:48px;height:48px;font-size:25px}
.hero{min-height:620px}
.hero-copy{padding:55px 8%}
.hero h1{font-size:52px}
.button{padding:16px;font-size:14px}
.section{padding:65px 6%}
.occasions{gap:25px}
.about,.process,.inquiry{gap:35px}
.prices article{padding:26px}
.price{font-size:36px}
.inquiry{grid-template-columns:1fr}
.inquiry>div{max-width:570px}
.hero-note{font-size:12px}
}
@media(max-width:600px){header nav{gap:0}
.nav-cta{padding:9px 12px}
.brand small{display:none}
.hero{grid-template-columns:1fr}
.hero-copy{padding:50px 7% 35px}
.hero h1{font-size:clamp(36px,10.2vw,42px);letter-spacing:-1.25px;line-height:1.05}
.hero .eyebrow{font-size:11px}
.hero figure{height:560px}
.hero img{object-position:center 22%}
.hero figcaption{bottom:18px;left:20px;right:20px;padding:12px 18px}
.values{gap:12px;padding:20px 6%;flex-wrap:wrap;justify-content:center;font-size:12px}
.occasions,.prices,.about,.process{grid-template-columns:1fr}
.occasions{gap:26px}
.number{margin-bottom:15px}
.section{padding:55px 7%}
.section-heading{margin-bottom:35px}
.boundary{padding:55px 7%}
.boundary h2{font-size:33px}
.about{gap:30px}
.about-photo,.about-photo img{min-height:490px}
.prices{gap:20px}
.price{font-size:42px}
.premium-photo{height:420px}
.premium-copy{padding:28px}
.inquiry-portrait{width:220px}
.form-grid{grid-template-columns:1fr}
.full{grid-column:auto}
.legal{flex-direction:column;gap:20px}
.inquiry .button{width:100%}
footer{padding:45px 7% 20px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
}

/* Unified photo gallery */
.hero-gallery{position:relative;overflow:hidden;min-height:730px;background:#a6a3a2;touch-action:pan-y}
.hero-gallery .gallery-slide{position:absolute;inset:0;margin:0;overflow:hidden;opacity:0;visibility:hidden;transition:opacity .45s ease;z-index:0}
.hero-gallery .gallery-slide.is-active{opacity:1;visibility:visible;z-index:1}
.hero-gallery .gallery-slide img{object-position:center 43%}
.hero-gallery .gallery-slide:nth-child(2) img{object-position:center 24%}
.hero-gallery .gallery-slide:nth-child(3) img{object-position:center 25%}
.hero-gallery .gallery-slide:nth-child(4) img{object-position:center 40%}
.gallery-arrow{position:absolute;top:50%;z-index:3;width:48px;height:48px;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(26,48,72,.58);color:#fff;font:38px/1 Georgia,serif;display:grid;place-items:center;transform:translateY(-50%);cursor:pointer;backdrop-filter:blur(4px)}
.gallery-arrow:hover{background:rgba(26,48,72,.85)}
.gallery-prev{left:22px}
.gallery-next{right:22px}
.gallery-dots{position:absolute;z-index:4;right:30px;bottom:118px;display:flex;gap:9px}
.gallery-dots button{width:10px;height:10px;padding:0;border:1px solid #fff;border-radius:50%;background:rgba(255,255,255,.35);cursor:pointer}
.gallery-dots button.is-active{background:#fff}
.about{grid-template-columns:1fr 1.8fr;gap:40px;align-items:start}
.about>div{max-width:670px}
.prices .premium{padding:42px;overflow:visible}
.premium-copy{padding:0}

@media(max-width:850px){.hero-gallery{min-height:620px}.gallery-arrow{width:44px;height:44px}.about{grid-template-columns:1fr 1.8fr}}
@media(max-width:600px){.hero-gallery{height:560px;min-height:560px}.hero-gallery .gallery-slide{height:560px}.hero-gallery .gallery-slide img{object-position:center 42%}.hero-gallery .gallery-slide:nth-child(2) img{object-position:center 22%}.hero-gallery .gallery-slide:nth-child(3) img{object-position:center 22%}.hero-gallery .gallery-slide:nth-child(4) img{object-position:center 38%}.gallery-arrow{width:42px;height:42px;font-size:32px}.gallery-prev{left:14px}.gallery-next{right:14px}.gallery-dots{right:20px;bottom:92px}.about{grid-template-columns:1fr;gap:0}.prices .premium{padding:26px}}
@media(prefers-reduced-motion:reduce){.hero-gallery .gallery-slide{transition:none}}
