:root { --paper:#f5f1eb; --ink:#262522; --sage:#7d8b79; --sand:#d7c3b1; --line:rgba(38,37,34,.18); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
.topbar { height:86px; padding:0 clamp(24px,5vw,72px); display:flex; align-items:center; justify-content:space-between; background:var(--paper); }
.logo { display:flex; flex-direction:column; line-height:1; }.logo span { font:400 25px/1 "Italiana",serif; }.logo small { font-size:8px; letter-spacing:3px; margin-top:7px; }
.topbar nav { display:flex; gap:35px; font-size:12px; }.text-link { font-size:12px; border-bottom:1px solid; padding-bottom:3px; }
.hero { height:calc(100vh - 86px); min-height:680px; position:relative; overflow:hidden; color:white; }
.hero>img { width:100%; height:100%; object-fit:cover; object-position:center 42%; }.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(11,15,12,.66) 0%,rgba(11,15,12,.25) 48%,rgba(11,15,12,.05) 75%),linear-gradient(0deg,rgba(0,0,0,.32),transparent 45%); }
.hero-copy { position:absolute; left:clamp(28px,8vw,120px); top:50%; transform:translateY(-48%); }.hero-copy>p,.kicker { font-size:10px; letter-spacing:2.2px; margin:0 0 24px; }.hero h1,.intro-section h2,.portfolio h2,.contact h2 { font:400 clamp(54px,7vw,105px)/.92 "Italiana",serif; letter-spacing:-2px; margin:0; }.hero h1 em,h2 em { font-weight:400; }.cta { margin-top:38px; display:inline-flex; gap:40px; align-items:center; padding:17px 20px 17px 24px; background:white; color:var(--ink); font-size:12px; }.cta span { font-size:18px; }.hero-note { position:absolute; right:clamp(24px,5vw,72px); bottom:34px; margin:0; font-size:10px; letter-spacing:1.6px; }
.intro-section { padding:150px max(7vw,28px); display:grid; grid-template-columns:1fr 2fr; gap:7vw; }.intro-section h2 { font-size:clamp(50px,6.2vw,88px); }.intro-section>div>p { max-width:590px; margin:38px 0 0 auto; font-size:17px; line-height:1.8; color:#5d5954; }
.about { padding:130px max(8vw,28px); display:grid; grid-template-columns:minmax(340px,.9fr) minmax(420px,1.1fr); align-items:center; gap:clamp(55px,9vw,145px); background:#e5ddd4; }.about-photo { position:relative; }.about-photo img { width:100%; aspect-ratio:4/5; display:block; object-fit:cover; object-position:center top; filter:saturate(.85); }.experience { position:absolute; right:-38px; bottom:35px; width:165px; height:165px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:#34443e; color:white; }.experience strong { font:400 62px/.8 "Italiana",serif; }.experience span { margin-top:12px; font-size:9px; line-height:1.4; letter-spacing:1.3px; text-transform:uppercase; }.about-copy h2 { max-width:670px; margin:0 0 36px; font:400 clamp(44px,5vw,72px)/1 "Italiana",serif; letter-spacing:-1.5px; }.about-copy h2 em { font-weight:400; }.about-copy>p:not(.kicker) { max-width:650px; margin:0 0 19px; color:#59554f; font-size:15px; line-height:1.75; }.about-copy blockquote { max-width:610px; margin:34px 0 0; padding:24px 0 0; border-top:1px solid var(--line); font:400 23px/1.4 "Italiana",serif; }
.services { background:#d8c8ba; padding:100px max(6vw,28px); }.service-list { width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); }.service-list article { min-width:0; min-height:300px; padding:24px clamp(24px,2.5vw,42px) 22px 0; border-right:1px solid var(--line); margin-right:clamp(24px,2.5vw,42px); display:flex; flex-direction:column; align-items:flex-start; }.service-list article:last-child { border-right:0; margin-right:0; }.service-list span { font-size:10px; }.service-list h3 { font:400 clamp(30px,2.6vw,38px) "Italiana",serif; margin:78px 0 12px; }.service-list p { width:100%; max-width:280px; font-size:13px; line-height:1.6; }.session-link { margin-top:auto; padding-bottom:4px; border-bottom:1px solid; font-size:10px; letter-spacing:.5px; }
.wedding-teaser { display:grid; grid-template-columns:1.1fr .9fr; min-height:760px; background:#28322f; color:#f5f1eb; }.wedding-teaser figure { margin:0; min-height:760px; overflow:hidden; }.wedding-teaser figure img { width:100%; height:100%; display:block; object-fit:cover; }.wedding-teaser-copy { padding:clamp(75px,9vw,140px) clamp(40px,7vw,100px); display:flex; flex-direction:column; justify-content:center; }.wedding-teaser h2 { margin:0; font:400 clamp(55px,6.5vw,92px)/.94 "Italiana",Georgia,serif; letter-spacing:-2px; }.wedding-teaser-copy>p:not(.kicker) { max-width:570px; margin:34px 0; color:#cbd1ce; font-size:15px; line-height:1.8; }.teaser-details { display:flex; flex-direction:column; gap:0; max-width:570px; border-top:1px solid rgba(255,255,255,.24); }.teaser-details span { padding:14px 0; border-bottom:1px solid rgba(255,255,255,.24); font-size:11px; color:#dce1de; }.wedding-teaser .cta { align-self:flex-start; margin-top:34px; }
.weddings { background:#f0ebe4; }.wedding-intro { padding:145px max(7vw,28px); display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(55px,8vw,130px); align-items:center; }.wedding-heading h1,.wedding-heading h2,.wedding-offer h2,.wedding-extras h2 { font:400 clamp(52px,6.2vw,92px)/.95 "Italiana",Georgia,serif; letter-spacing:-2px; margin:0; }.wedding-heading>p:not(.kicker) { max-width:560px; margin:35px 0 0; color:#5b5650; font-size:16px; line-height:1.8; }.cta.dark { background:#34443e; color:white; }.wedding-main-photo { margin:0; height:min(72vw,760px); max-height:760px; overflow:hidden; }.wedding-main-photo img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
.wedding-journey { padding:110px max(7vw,28px); background:#28322f; color:#f5f1eb; }.journey-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.22); }.journey-grid article { min-height:300px; padding:26px clamp(20px,3vw,48px) 20px 0; margin-right:clamp(20px,3vw,48px); border-right:1px solid rgba(255,255,255,.22); }.journey-grid article:last-child { border:0; margin-right:0; }.journey-grid span { font-size:10px; color:#b8c1bd; }.journey-grid h2,.journey-grid h3 { font:400 42px "Italiana",Georgia,serif; margin:80px 0 18px; }.journey-grid p { max-width:350px; margin:0; color:#ccd1ce; font-size:13px; line-height:1.7; }
.wedding-mosaic { display:grid; grid-template-columns:1fr .7fr 1fr; gap:12px; padding:12px; background:#28322f; }.wedding-mosaic figure { margin:0; height:540px; overflow:hidden; }.wedding-mosaic figure.portrait { height:660px; margin-top:-70px; z-index:1; }.wedding-mosaic img { width:100%; height:100%; display:block; object-fit:cover; }
.wedding-offer { padding:140px max(8vw,28px); display:grid; grid-template-columns:1.4fr .7fr; gap:clamp(60px,10vw,160px); align-items:start; }.offer-copy>p:not(.kicker) { max-width:720px; margin:36px 0; color:#5b5650; font-size:15px; line-height:1.8; }.offer-copy ul { list-style:none; margin:0; padding:0; max-width:720px; display:grid; grid-template-columns:1fr 1fr; gap:0 34px; }.offer-copy li { padding:15px 0 15px 22px; border-top:1px solid var(--line); font-size:13px; line-height:1.45; position:relative; }.offer-copy li:before { content:'·'; position:absolute; left:3px; font-size:22px; top:9px; }.price-card { background:#34443e; color:white; padding:42px; min-height:460px; display:flex; flex-direction:column; }.price-card>p { margin:0; font-size:10px; letter-spacing:1.8px; }.price-card>strong { display:flex; flex-direction:column; font:400 clamp(65px,7vw,96px)/.9 "Italiana",serif; margin:75px 0 10px; }.price-card>strong small { font:400 15px "DM Sans",sans-serif; margin-bottom:12px; color:#cbd3ce; }.price-card>span { font-size:11px; color:#cbd3ce; }.price-card>a { display:flex; justify-content:space-between; border-top:1px solid rgba(255,255,255,.3); border-bottom:1px solid rgba(255,255,255,.3); padding:18px 0; margin:45px 0 18px; font-size:12px; }.price-card>a b { font-size:18px; font-weight:400; }.price-card>small { color:#aeb9b3; font-size:9px; line-height:1.5; }
.wedding-extras { padding:125px max(8vw,28px); display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(60px,9vw,150px); background:#ded3c7; }.extra-list { border-top:1px solid var(--line); }.extra-list article { display:grid; grid-template-columns:1fr auto; gap:30px; align-items:start; padding:26px 0; border-bottom:1px solid var(--line); }.extra-list h3 { font:400 30px "Italiana",serif; margin:0 0 8px; }.extra-list p { max-width:520px; margin:0; color:#5b5650; font-size:12px; line-height:1.65; }.extra-list strong { font:400 30px "Italiana",serif; white-space:nowrap; }.extra-list .preboda { margin-top:35px; padding:35px; background:#f4f0ea; border:0; }.preboda span { display:block; margin-bottom:16px; font-size:9px; letter-spacing:1.5px; }.preboda h3 { font-size:38px; }.tax-note { margin:14px 0 0; font-size:9px; color:#746e67; }
.portfolio { padding:140px max(4vw,22px); }.portfolio-title { display:grid; grid-template-columns:1fr 1.5fr .8fr; gap:30px; align-items:end; margin:0 3vw 70px; }.portfolio-title .kicker { align-self:start; }.portfolio-title h2 { font-size:clamp(52px,6.5vw,92px); }.portfolio-title>p:last-child { font-size:14px; line-height:1.6; color:#66605a; }
.gallery-filters { display:flex; justify-content:center; flex-wrap:wrap; gap:9px; margin:0 auto 18px; }.filter-button { appearance:none; border:1px solid var(--line); border-radius:50px; background:transparent; color:var(--ink); padding:11px 18px; font:500 11px/1 "DM Sans",Arial,sans-serif; letter-spacing:.7px; cursor:pointer; transition:.25s ease; }.filter-button:hover,.filter-button.active { background:var(--ink); border-color:var(--ink); color:var(--paper); }.gallery-count { min-height:18px; margin:0 0 28px; text-align:center; font-size:11px; color:#746e67; }.photo-grid { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-flow:dense; gap:12px; }.photo { margin:0; overflow:hidden; background:#e7e0d8; min-height:320px; grid-column:span 4; cursor:zoom-in; }.photo[hidden] { display:none; }.photo-1,.photo-5 { grid-row:span 2; min-height:660px; }.photo-2,.photo-6 { grid-column:span 5; }.photo-3,.photo-7 { grid-column:span 3; }.photo-4 { grid-column:span 4; }.photo img { width:100%; height:100%; display:block; object-fit:cover; opacity:0; transition:opacity .45s ease,transform .7s ease; }.photo img.is-loaded { opacity:1; }.photo:hover img { transform:scale(1.025); }
.lightbox { position:fixed; inset:0; z-index:1000; display:grid; grid-template-columns:80px minmax(0,1fr) 80px; align-items:center; background:rgba(15,15,14,.96); color:white; opacity:0; visibility:hidden; transition:opacity .25s ease,visibility .25s ease; }.lightbox.open { opacity:1; visibility:visible; }.lightbox-stage { height:100vh; padding:28px 0 20px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; }.lightbox-stage img { display:block; max-width:100%; max-height:calc(100vh - 78px); object-fit:contain; box-shadow:0 18px 70px rgba(0,0,0,.35); }.lightbox-counter { margin:0; font-size:11px; letter-spacing:1.5px; color:rgba(255,255,255,.72); }.lightbox-close,.lightbox-nav { appearance:none; border:0; background:transparent; color:white; cursor:pointer; }.lightbox-close { position:absolute; top:20px; right:25px; z-index:2; font:300 38px/1 Arial,sans-serif; }.lightbox-nav { height:100%; font-size:28px; opacity:.7; transition:opacity .2s; }.lightbox-nav:hover { opacity:1; }body.lightbox-open { overflow:hidden; }
.local-seo { padding:120px max(8vw,28px); background:#e8e0d7; }.local-seo-title { display:grid; grid-template-columns:.65fr 1.35fr; gap:60px; align-items:start; }.local-seo h2 { max-width:850px; margin:0; font:400 clamp(48px,5.5vw,78px)/1 "Italiana",Georgia,serif; letter-spacing:-1.5px; }.local-seo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:75px; border-top:1px solid var(--line); }.local-seo-grid article { min-height:220px; padding:28px 35px 10px 0; margin-right:35px; border-right:1px solid var(--line); }.local-seo-grid article:last-child { border-right:0; }.local-seo h3 { margin:38px 0 15px; font:400 29px/1.15 "Italiana",Georgia,serif; }.local-seo-grid p { max-width:360px; margin:0; color:#5d5954; font-size:13px; line-height:1.7; }
.contact { padding:130px max(8vw,30px); display:grid; grid-template-columns:1fr 2fr; gap:7vw; background:#34443e; color:#f7f2eb; }.contact h2 { font-size:clamp(52px,6.5vw,90px); }.contact>div>p { max-width:520px; font-size:16px; line-height:1.75; color:#d7ddd9; }.cta.light { margin-top:22px; }
footer { min-height:150px; padding:40px max(5vw,28px); display:flex; justify-content:space-between; align-items:center; gap:25px; font-size:12px; }.legal-links { display:flex; flex-wrap:wrap; justify-content:center; gap:9px 18px; font-size:10px; }.legal-links a { border-bottom:1px solid transparent; }.legal-links a:hover { border-color:currentColor; }
@media(max-width:760px){.topbar{height:72px;padding:0 20px}.topbar nav{display:none}.logo span{font-size:21px}.hero{height:78vh;min-height:600px}.hero>img{object-position:54% center}.hero-shade{background:linear-gradient(0deg,rgba(8,12,10,.7),rgba(8,12,10,.05) 75%)}.hero-copy{left:24px;right:20px;top:auto;bottom:75px;transform:none}.hero h1{font-size:55px}.hero-copy>p{line-height:1.5}.hero-note{display:none}.intro-section,.contact{grid-template-columns:1fr;padding:90px 24px;gap:35px}.intro-section>div>p{margin-left:0}.about{grid-template-columns:1fr;padding:85px 24px;gap:65px}.about-photo{margin-right:20px}.experience{width:135px;height:135px;right:-20px;bottom:-28px}.experience strong{font-size:51px}.about-copy h2{font-size:47px}.about-copy blockquote{font-size:21px}.service-list{grid-template-columns:1fr 1fr}.service-list article{min-height:230px;margin:0;padding:24px 16px 22px 0;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.service-list article:nth-child(2n){padding-left:16px;padding-right:0;border-right:0}.service-list article:nth-last-child(-n+2){border-bottom:0}.service-list h3{font-size:31px;margin-top:50px}.wedding-intro,.wedding-offer,.wedding-extras{grid-template-columns:1fr;padding:90px 24px;gap:55px}.wedding-heading h1,.wedding-heading h2,.wedding-offer h2,.wedding-extras h2{font-size:51px}.wedding-main-photo{height:110vw;max-height:620px}.wedding-journey{padding:85px 24px}.journey-grid{grid-template-columns:1fr}.journey-grid article{min-height:auto;margin:0;padding:24px 0 32px;border-right:0;border-bottom:1px solid rgba(255,255,255,.22)}.journey-grid h2,.journey-grid h3{margin:38px 0 14px;font-size:36px}.wedding-mosaic{grid-template-columns:1fr 1fr;padding:7px;gap:7px}.wedding-mosaic figure,.wedding-mosaic figure.portrait{height:350px;margin:0}.wedding-mosaic figure:last-child{grid-column:span 2;height:300px}.offer-copy ul{grid-template-columns:1fr}.price-card{min-height:420px;padding:32px}.price-card>strong{margin-top:60px}.extra-list article{gap:18px}.extra-list .preboda{padding:26px}.preboda h3{font-size:34px}.portfolio{padding:90px 10px}.portfolio-title{grid-template-columns:1fr;margin:0 14px 45px}.gallery-filters{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding:0 4px 5px}.filter-button{white-space:nowrap}.photo-grid{grid-template-columns:1fr 1fr;gap:7px}.photo,.photo-1,.photo-5,.photo-2,.photo-3,.photo-4,.photo-6,.photo-7{grid-column:span 1;min-height:280px;grid-row:span 1}.photo:nth-child(3n+1){grid-column:span 2;min-height:420px}.lightbox{grid-template-columns:48px minmax(0,1fr) 48px}.lightbox-stage{padding:55px 0 18px}.lightbox-stage img{max-height:calc(100vh - 110px)}.lightbox-close{top:14px;right:17px}.contact h2{font-size:54px}footer{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){.local-seo{padding:85px 24px}.local-seo-title,.local-seo-grid{grid-template-columns:1fr}.local-seo h2{font-size:47px}.local-seo-grid{margin-top:50px}.local-seo-grid article{min-height:auto;margin:0;padding:25px 0 32px;border-right:0;border-bottom:1px solid var(--line)}.local-seo h3{margin-top:20px}.legal-links{justify-content:flex-start}}
@media(max-width:760px){.wedding-teaser{grid-template-columns:1fr;min-height:0}.wedding-teaser figure{min-height:520px}.wedding-teaser-copy{padding:85px 24px}.wedding-teaser h2{font-size:52px}}
@media(min-width:761px) and (max-width:1100px){.service-list{grid-template-columns:1fr 1fr}.service-list article{min-height:250px;margin:0;padding:24px 34px 24px 0;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.service-list article:nth-child(2n){padding-left:34px;padding-right:0;border-right:0}.service-list article:nth-last-child(-n+2){border-bottom:0}.service-list h3{margin-top:58px}.service-list p{max-width:340px}}
