@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600&display=swap');
:root{--ink:#182523;--accent:#9d7951;--paper:#f7f5ef;--line:#d8d8ca;--nav:#fff;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.75 var(--sans)}a{color:inherit}img{display:block;width:100%;object-fit:cover}header{background:var(--nav);padding:22px 6vw;display:flex;gap:22px;align-items:center;justify-content:space-between}header .brand{font:600 21px var(--serif);text-decoration:none;letter-spacing:.04em}nav{display:flex;gap:19px;flex-wrap:wrap;align-items:center}nav a{font-size:12px;text-decoration:none;font-weight:700;letter-spacing:.04em}nav a:hover,nav a[aria-current=page]{color:var(--accent)}.hero{min-height:300px;background:var(--ink);color:white;display:flex;align-items:center;padding:70px max(7vw,calc((100vw - 1150px)/2));position:relative;isolation:isolate}.hero.has-image{min-height:70vh;background-image:linear-gradient(90deg,rgba(9,20,20,.85),rgba(9,20,20,.16)),var(--hero-image);background-position:center;background-size:cover}.hero>div{max-width:760px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:700;color:var(--accent)}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15}h1{font-size:clamp(43px,6vw,82px);margin:.2em 0}h2{font-size:clamp(32px,4vw,51px);margin:.4em 0}h3{font-size:26px}p{max-width:72ch}section{padding:85px max(7vw,calc((100vw - 1150px)/2))}.intro{max-width:1250px}.split{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;background:#edece3}.split img{height:570px}.cards,.prices{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.cards article,.prices article{border-top:1px solid var(--accent);padding:15px 12px 20px 0}.cards a,.text-link{font-size:13px;font-weight:700;text-underline-offset:6px}.band{background:#243630;color:white}.button,button{display:inline-block;margin-top:20px;background:var(--ink);color:#fff;padding:14px 25px;border:1px solid var(--ink);text-decoration:none;font:700 12px var(--sans);letter-spacing:.05em}.prices{grid-template-columns:repeat(2,1fr)}.prices span{font-size:12px;color:var(--accent)}.prices strong{font-size:20px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw}address{font-style:normal}.form{background:#edece3;padding:30px}.form label{display:block;font-size:13px;font-weight:700;margin-top:14px}.form input,.form textarea{width:100%;padding:10px;border:1px solid #b8bdb5;background:#f8f8f5;font:inherit}.form textarea{min-height:120px}.form button{opacity:.45;cursor:not-allowed}footer{background:#101d1b;color:#fff;padding:50px 7vw}footer div{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}footer a{margin-right:18px;font-size:13px}footer p{font-size:12px;color:#d4ded9}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:white;color:black;padding:1rem}:focus-visible{outline:3px solid #c78638;outline-offset:4px}@media(max-width:850px){header{display:block}nav{margin-top:15px;gap:12px}.split,.contact-grid{grid-template-columns:1fr}.split img{height:380px}.cards{grid-template-columns:1fr}.hero.has-image{min-height:60vh}section{padding-top:60px;padding-bottom:60px}}@media(max-width:500px){.prices{grid-template-columns:1fr}nav a{font-size:11px}.hero{padding-top:55px;padding-bottom:55px}.split img{height:300px}}

.wedding{--ink:#3b3031;--accent:#9c675b;--paper:#faf5ef;--line:#e7d9cf;--nav:#faf5ef}.wedding header{padding-top:30px;padding-bottom:30px}.wedding .hero.has-image{min-height:78vh;background-image:linear-gradient(90deg,rgba(52,31,30,.75),rgba(52,31,30,.1)),var(--hero-image)}.wedding .hero:not(.has-image){background:#7c5149}.wedding .split{background:#f1e4db}.wedding .band{background:#704e47}.wedding footer{background:#3b3031}.wedding .form{background:#f1e4db}.wedding section:not(.split):not(.band){max-width:1600px;margin:auto}.wedding h1,.wedding h2{font-style:italic}.wedding .cards article{border:1px solid #d3b9ad;padding:25px}.wedding .button{background:#704e47;border-color:#704e47}

/* Editorial service photography */
.service-photo{max-width:1150px;margin:0 auto;padding:0 max(7vw,calc((100vw - 1150px)/2));transform:translateY(35px)}.service-photo img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.service-photo figcaption{font-size:.75rem;letter-spacing:.025em;color:var(--ink);margin-top:.8rem}.service-photo+section{padding-top:75px}@media(max-width:600px){.service-photo{transform:translateY(22px)}.service-photo img{aspect-ratio:4/3}.service-photo+section{padding-top:45px}}

/* Wedding concept: navy, slate blue and a disclosure menu */
.wedding{--ink:#1b3148;--accent:#516e88;--paper:#f1f6f8;--line:#cad9e1;--nav:#f7fafb}.wedding header{display:flex;align-items:center;position:relative;z-index:20;padding:24px 6vw}.wedding header .brand{font-size:22px}.wedding .menu{position:relative}.wedding .menu summary{display:flex;align-items:center;gap:12px;padding:10px;cursor:pointer;list-style:none;font:700 12px var(--sans);text-transform:uppercase;letter-spacing:.12em;color:#1b3148}.wedding .menu summary::-webkit-details-marker{display:none}.wedding .menu-icon{display:flex;flex-direction:column;gap:5px;width:24px}.wedding .menu-icon i{display:block;width:24px;height:2px;background:currentColor}.wedding .menu nav{position:absolute;right:0;top:100%;display:flex;flex-direction:column;align-items:stretch;gap:0;margin:8px 0 0;min-width:230px;padding:12px 20px;background:#f7fafb;box-shadow:0 14px 30px rgba(19,36,50,.18);border:1px solid #cad9e1}.wedding .menu nav a{font-size:14px;letter-spacing:.03em;padding:11px 0;border-bottom:1px solid #dce7eb}.wedding .menu nav a:last-child{border:0}.wedding .hero.has-image{background-image:linear-gradient(90deg,rgba(15,36,56,.86),rgba(15,36,56,.15)),var(--hero-image)}.wedding .hero:not(.has-image){background:#263f5b}.wedding .split{background:#dfeaf0}.wedding .band{background:#263f5b}.wedding footer{background:#14283c}.wedding .cards article{border-color:#aec4d0}.wedding .button{background:#263f5b;border-color:#263f5b}.wedding .service-photo{max-width:1230px}.wedding .service-photo img{aspect-ratio:21/9}.wedding .service-photo figcaption{font-style:italic}@media(max-width:850px){.wedding header{display:flex}.wedding .menu nav{margin-top:8px}.wedding .service-photo img{aspect-ratio:4/3}}

/* Illustrative craft photography within editorial content. */
.process-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin:2rem 0}.process-photo{margin:0;min-width:0}.process-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.process-photo figcaption{font-size:.75rem;line-height:1.5;margin-top:.55rem;color:#565c56}.service-photo figcaption{font-size:.75rem}@media(max-width:600px){.process-grid{grid-template-columns:1fr}.process-photo img{aspect-ratio:4/3}}

/* Homepage photography sits alongside the related editorial text. */
.home-photo{margin:0;min-width:0}.home-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.home-photo figcaption{font-size:.7rem;line-height:1.45;letter-spacing:.025em;opacity:.76;margin-top:9px}.split .home-photo img{height:570px;aspect-ratio:auto}.home-photo-section{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(30px,6vw,85px);align-items:center}.home-photo-section .home-section-copy{min-width:0}@media(max-width:850px){.home-photo-section{grid-template-columns:1fr}.split .home-photo img{height:380px}}@media(max-width:500px){.split .home-photo img{height:300px}}

.fabric-focus{background:#e8eef3;color:#1e334a;padding:clamp(54px,7vw,100px) clamp(24px,8vw,110px);margin:0}.fabric-focus>div{max-width:1040px;margin:auto}.fabric-focus-label{color:#a58a6b;font:600 .7rem/1.4 Arial,sans-serif;letter-spacing:.16em}.fabric-focus h2{font:400 clamp(2rem,4vw,3.6rem)/1.12 Georgia,serif;color:#1e334a;margin:22px 0}.fabric-focus p{max-width:850px;font:400 1rem/1.85 Arial,sans-serif;color:#1e334a}.fabric-focus a{display:inline-block;color:#1e334a;font:600 .85rem/1.5 Arial,sans-serif;text-underline-offset:5px;margin-top:12px}
