@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Montserrat:wght@400;500;600&display=swap');
:root{--espresso:#33241d;--black:#171310;--cognac:#a77550;--cream:#e9ddd0;--ivory:#faf7f1;--ink:#352c27;--muted:#756b64}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:Montserrat,Arial,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}p{line-height:1.9}h1,h2,h3,.serif{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;line-height:1.03;margin:0}h1{font-size:clamp(54px,7vw,116px)}h2{font-size:clamp(42px,5vw,73px)}h3{font-size:clamp(28px,3vw,39px)}.container{max-width:1340px;margin:0 auto;padding:0 5%}.eyebrow{font-size:10px;letter-spacing:.27em;text-transform:uppercase;color:var(--cognac);font-weight:600}.header{position:sticky;top:0;z-index:50;background:var(--espresso);color:var(--ivory);box-shadow:0 3px 20px #0002}.headerbar{display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:105px}.logo{display:flex;align-items:center;background:var(--ivory);padding:5px}.logo img{width:245px;max-width:100%;display:block}.nav{display:flex;gap:23px;align-items:center}.nav a{font-size:10px;letter-spacing:.13em;text-transform:uppercase;transition:color .2s}.nav a:hover,.nav a[aria-current=page]{color:#d8a77e}.nav .nav-cta{border:1px solid var(--cognac);padding:14px 18px}.menu{display:none;background:transparent;border:1px solid #7d675a;color:white;padding:10px;font-size:21px}.hero{position:relative;min-height:660px;background:var(--black) url('assets/hero.jpg') center 45%/cover;display:flex;align-items:center;color:white}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#171310ee 0%,#171310bd 43%,#17131010 100%)}.hero .inner{position:relative;z-index:1;padding:95px 0;width:100%}.hero h1{max-width:750px;margin:21px 0}.hero h1 em{font-weight:400;color:#dfb58f}.hero p{max-width:520px;color:#f3e9df}.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--cognac);color:var(--black);font-size:10px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;padding:19px 25px;transition:filter .2s;border:1px solid var(--cognac)}.btn:hover{filter:brightness(1.1)}.btn-outline{background:transparent;color:var(--ivory)}.btnrow{display:flex;gap:13px;flex-wrap:wrap;margin-top:35px}.section{padding:98px 0}.section.lite{background:var(--ivory)}.section.cream{background:var(--cream)}.section.dark{background:var(--espresso);color:var(--ivory)}.section.black{background:var(--black);color:var(--ivory)}.center{text-align:center}.lede{max-width:790px;margin:20px auto 0;font-size:15px;color:var(--muted)}.dark .lede,.black .lede{color:#d3c7bd}.heading{margin:16px 0 22px}.split{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}.split img{width:100%;max-height:550px;object-fit:cover;display:block}.split p{color:var(--muted)}.dark .split p{color:#dfd1c5}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:44px}.service-card{min-width:0}.service-card img{width:100%;aspect-ratio:4/4.3;object-fit:cover}.service-card h3{font-size:29px;margin:18px 0 11px}.service-card p{color:var(--muted);font-size:12px;line-height:1.8}.textlink{display:inline-block;margin-top:16px;border-bottom:1px solid var(--cognac);padding-bottom:8px;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.pagehero{background:var(--espresso);color:var(--ivory);padding:105px 0 98px;text-align:center}.pagehero h1{font-size:clamp(55px,7vw,105px);margin:15px auto 14px;max-width:850px}.pagehero p{color:#e3d7ca;max-width:730px;margin:0 auto}.details{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}.details img{width:100%;height:480px;object-fit:cover}.details .copy{max-width:540px}.details p{color:var(--muted)}.dark .details p{color:#d6c9be}.details ul{padding-left:19px;line-height:2.3;color:var(--muted);font-size:13px}.dark .details ul{color:#d6c9be}.details.reverse .copy{order:2}.details.reverse img{order:1}.callout{background:var(--espresso);color:white;text-align:center;padding:90px 0}.callout h2{max-width:860px;margin:17px auto 22px}.callout p{color:#dfd3c9;max-width:640px;margin:auto}.callout .btn{margin-top:28px}.footer{background:var(--black);color:#e4d8cf;padding:56px 0 22px}.footer-grid{display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap}.footer p{font-size:12px;color:#d0beb1}.footer-nav{display:flex;gap:17px;flex-wrap:wrap;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.copyright{font-size:10px;border-top:1px solid #493930;padding-top:20px;margin-top:37px;color:#b0a197}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:38px}.tiles img{width:100%;height:330px;object-fit:cover}.tile-note{color:var(--muted);font-size:12px;margin-top:13px}.philosophy{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:40px}.philosophy article{border-top:1px solid #b59a83;padding-top:19px}.philosophy h3{font-size:30px}.philosophy p{color:var(--muted)}.contact-card{background:white;padding:40px;border:1px solid #e9ded2}.contact-card label{display:block;margin-top:18px;font-size:11px;text-transform:uppercase;letter-spacing:.12em}.contact-card input,.contact-card textarea,.contact-card select{width:100%;margin-top:8px;padding:13px;border:1px solid #cfc3b9;background:#fff;color:var(--ink);font:inherit}.contact-card textarea{min-height:120px}.contact-card .btn{margin-top:20px;width:100%;cursor:pointer}.smallprint{font-size:11px;color:var(--muted)}.note{padding:20px;background:#ede4d8;border-left:3px solid var(--cognac);line-height:1.8}.skip{position:absolute;left:-10000px}.skip:focus{left:10px;top:10px;background:white;color:black;z-index:100;padding:10px} @media(max-width:1050px){.headerbar{min-height:85px}.logo img{width:200px}.nav{gap:13px}.nav a{font-size:9px}.service-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:740px){.menu{display:block}.headerbar{min-height:75px}.nav{display:none;position:absolute;left:0;right:0;top:75px;background:var(--espresso);padding:25px 5%;flex-direction:column;align-items:stretch}.nav.open{display:flex}.nav a{padding:7px}.hero{min-height:560px}.hero:before{background:linear-gradient(90deg,#171310e9,#1713108c)}.section{padding:65px 0}.split,.details{grid-template-columns:1fr;gap:30px}.details.reverse .copy,.details.reverse img{order:initial}.details img{height:350px}.philosophy,.tiles{grid-template-columns:1fr}.tiles img{height:330px}.service-grid{gap:15px}.service-card h3{font-size:25px}.footer-grid{display:block}}@media(max-width:480px){.service-grid{grid-template-columns:1fr}.logo img{width:185px}.contact-card{padding:23px}}

/* Post-review refinements: keyboard navigation, small-screen legibility */
:where(a,button,input,select,textarea):focus-visible{outline:3px solid #a77550;outline-offset:4px}
@media(max-width:740px){.hero h1{font-size:clamp(44px,11vw,72px)}.pagehero h1{font-size:clamp(43px,11vw,70px)}.hero p,.pagehero p{font-size:14px}.menu{cursor:pointer}.contact-card input,.contact-card textarea,.contact-card select{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* v3: refined responsive editorial layout and consistent photographic sizing */
:root{--content-max:1320px}
body{font-size:15px;-webkit-font-smoothing:antialiased}
p{line-height:1.78}
.container{max-width:var(--content-max)}
.pagehero h1,.center .heading,.callout h2{text-wrap:balance}
h1,h2,h3{overflow-wrap:break-word}
.pagehero .container{max-width:1050px}
.pagehero{padding:90px 0 85px}
.pagehero p{font-size:15px;line-height:1.85}
.split img{width:100%;height:auto;aspect-ratio:5/4;max-height:none;object-fit:cover;object-position:center}
.founder-grid{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:8%}
.founder-photo{max-width:470px;width:100%;margin:auto}
.founder-photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 38%;border:7px solid #f4e8dc10}
.founder-section .heading{font-size:clamp(46px,5vw,76px)}
.founder-section p{font-size:15px;line-height:1.85}
.service-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:24px}
.service-card img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center;display:block}
.service-card h3{font-size:clamp(25px,2.2vw,33px);line-height:1.1;min-height:2.15em;text-wrap:balance}
.service-card p{font-size:13px;line-height:1.75}
.details img{display:block;width:100%;height:auto;aspect-ratio:5/4;object-fit:cover}
.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
.tiles img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block}
.callout{padding:88px 0}
.callout h2{line-height:1.08}
.nav a{white-space:nowrap}
@media(max-width:1050px){
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .service-card h3{min-height:0}
 .headerbar{gap:16px}
}
@media(max-width:740px){
 .founder-grid{grid-template-columns:1fr;gap:30px}
 .founder-photo{max-width:410px}
 .founder-section .heading{font-size:clamp(42px,10vw,58px)}
 .split img{aspect-ratio:4/3}
 .section{padding:64px 0}
 .pagehero{padding:74px 0}
 .tiles{grid-template-columns:1fr}
 .tiles img{aspect-ratio:4/3}
 .service-grid{gap:24px}
 .service-card h3{font-size:28px}
 .headerbar{gap:10px}
}
@media(max-width:480px){
 .service-grid{grid-template-columns:1fr}
 .service-card img{aspect-ratio:5/4}
 .service-card h3{margin-top:14px;margin-bottom:6px}
 .service-card p{font-size:14px}
 .founder-photo img{aspect-ratio:4/5}
 .container{padding-left:6%;padding-right:6%}
 .hero .inner{padding:80px 0}
 .pagehero h1{font-size:clamp(40px,11vw,60px)}
 .heading{font-size:clamp(40px,11vw,62px)}
}

/* v4 approved SoireebyDC logo: original artwork, full mark and tagline, uncropped */
.header .logo{display:inline-flex;align-items:center;flex:0 0 auto;background:transparent;padding:0;line-height:0}
.header .logo img{display:block;width:clamp(245px,24vw,318px);max-width:100%;height:auto;aspect-ratio:2048/429;object-fit:contain;background:#fbf3e8}
.header .headerbar{min-height:103px}
@media(max-width:1050px){.header .logo img{width:245px}.header .headerbar{min-height:90px}}
@media(max-width:740px){.header .logo img{width:min(235px,68vw)}.header .headerbar{min-height:76px}}
@media(max-width:380px){.header .logo img{width:min(205px,64vw)}}

/* v5: editorial heading rhythm; prevent giant multi-line hero headlines */
h1,h2,h3{hyphens:none;overflow-wrap:normal;word-break:normal}
.hero h1.headline-home{
  font-size:clamp(3.25rem,6vw,6.15rem);
  line-height:1.04;letter-spacing:-.022em;
  max-width:1000px;text-wrap:balance;
}
.pagehero .container{max-width:1200px}
.pagehero h1{
  font-size:clamp(3rem,5.8vw,5.6rem);
  line-height:1.04;letter-spacing:-.028em;
  max-width:1100px;text-wrap:balance;
}
.pagehero h1.headline-about{max-width:1070px}
.pagehero h1.headline-portfolio{max-width:980px}
.pagehero h1.headline-testimonials{font-size:clamp(3rem,5.1vw,5.15rem);max-width:1150px}
.pagehero h1.headline-contact{font-size:clamp(3rem,5.3vw,5.3rem);max-width:1100px}
.callout h2.headline-cta{
  font-size:clamp(2.9rem,5vw,5rem);
  line-height:1.08;letter-spacing:-.025em;
  max-width:1080px;text-wrap:balance;
}
.center .heading,.split .heading,.details .heading,.founder-section .heading{
  font-size:clamp(2.5rem,4.25vw,4.45rem);
  line-height:1.06;letter-spacing:-.018em;
  text-wrap:balance;
}
@media(max-width:740px){
 .hero h1.headline-home{font-size:clamp(2.5rem,9.1vw,4.2rem);line-height:1.06}
 .pagehero h1{font-size:clamp(2.45rem,8.2vw,4rem);line-height:1.07}
 .pagehero h1.headline-testimonials{font-size:clamp(2.2rem,7.7vw,3.8rem)}
 .pagehero h1.headline-contact{font-size:clamp(2.2rem,7.7vw,3.8rem)}
 .callout h2.headline-cta{font-size:clamp(2.25rem,8vw,4rem)}
 .center .heading,.split .heading,.details .heading,.founder-section .heading{
   font-size:clamp(2.35rem,8vw,3.9rem)
 }
}
@media(max-width:420px){
 .hero h1.headline-home{font-size:clamp(2.35rem,9.4vw,2.85rem)}
 .pagehero h1.headline-testimonials{font-size:clamp(1.95rem,7.5vw,2.35rem)}
 .pagehero h1.headline-contact{font-size:clamp(2.05rem,7.8vw,2.5rem)}
 .pagehero h1.headline-about{font-size:clamp(2.25rem,8vw,2.75rem)}
 .callout h2.headline-cta{font-size:clamp(2rem,7.8vw,2.6rem)}
}
