@font-face{font-family:'Cormorant Garamond';src:url('fonts/cormorant-garamond.woff2') format('woff2');font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:'Jost';src:url('fonts/jost.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--black:#0a0a0b;--panel:#141414;--card:#101010;--gold-deep:#9c7a30;--gold:#c9a24d;--gold-light:#f0d38c;--white:#f8f5ee;--text:#e6e0d4;--grey:#c4bcae;--line:rgba(201,162,77,.32);
--serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;--sans:'Jost','Avenir Next','Segoe UI',system-ui,sans-serif}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{background:var(--black);color:var(--text);font-family:var(--sans);font-weight:500;font-size:18px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--gold);color:var(--black)}
a{color:inherit;text-decoration:none}
img,svg{max-width:100%;display:block}
.gold-text{color:var(--gold-light)}
@supports (-webkit-background-clip:text){.gold-text{background:linear-gradient(115deg,var(--gold),var(--gold-light) 50%,var(--gold));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}}
.container{max-width:1180px;margin:0 auto;padding:0 32px}
.eyebrow{display:flex;align-items:center;justify-content:center;gap:14px;font-size:.85rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.eyebrow::before,.eyebrow::after{content:'';height:2px;width:32px;background:linear-gradient(90deg,transparent,var(--gold))}
.eyebrow::after{background:linear-gradient(90deg,var(--gold),transparent)}
.eyebrow.left{justify-content:flex-start}.eyebrow.left::before{display:none}
h1,h2{font-family:var(--serif);font-weight:700;line-height:1.12;color:var(--white)}
h3,h4{font-family:var(--sans);font-weight:600;line-height:1.3;color:var(--white)}
.section-heading{font-size:clamp(2.2rem,4.4vw,3.3rem);text-align:center;margin-bottom:18px}
.section-sub{text-align:center;max-width:640px;margin:0 auto 56px;color:var(--grey);font-size:1.08rem}
.section{padding:110px 0}
.section-alt{background:linear-gradient(180deg,var(--black),var(--panel) 10%,var(--panel) 90%,var(--black))}
.btn{display:inline-block;padding:15px 28px;border:2px solid var(--gold);color:var(--gold-light);font-family:var(--sans);font-size:.95rem;font-weight:600;letter-spacing:.04em;border-radius:3px;transition:all .3s ease;white-space:nowrap;background:none;cursor:pointer}
.btn:hover{background:var(--gold);color:var(--black)}
.btn-fill{background:linear-gradient(120deg,var(--gold-deep),var(--gold));color:#0a0a0b;font-weight:700}
.btn-fill:hover{box-shadow:0 0 28px rgba(201,162,77,.45)}
/* nav */
nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 40px;background:rgba(10,10,11,.94);border-bottom:1px solid var(--line)}
.nav-logo{height:52px;width:auto}
.nav-links{display:flex;gap:28px}
.nav-links a{font-size:.95rem;font-weight:600;color:var(--grey);transition:color .3s}
.nav-links a:hover,.nav-links a.active{color:var(--gold-light)}
.nav-toggle{display:none;background:none;border:2px solid var(--gold-deep);border-radius:3px;width:46px;height:40px;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer}
.nav-toggle span{width:20px;height:2px;background:var(--gold);display:block}
.nav-scrim{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:150;opacity:0;pointer-events:none;transition:opacity .4s}
.nav-scrim.open{opacity:1;pointer-events:auto}
.mobile-nav{position:fixed;top:0;right:0;height:100%;width:82%;max-width:340px;background:#0a0a0b;border-left:1px solid var(--line);z-index:200;transform:translateX(100%);transition:transform .4s ease;display:flex;flex-direction:column;padding:96px 32px 40px;gap:22px;visibility:hidden}
.mobile-nav.open{transform:none;visibility:visible}
.mobile-nav a{font-size:1.3rem;font-weight:600;color:var(--white)}
.mobile-nav .btn{font-size:1rem;text-align:center;margin-top:10px;color:#0a0a0b}
.mobile-close{position:absolute;top:22px;right:22px;background:none;border:2px solid var(--gold-deep);color:var(--gold);width:42px;height:42px;font-size:1.4rem;cursor:pointer;border-radius:3px}
/* hero */
.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;max-width:1280px;margin:0 auto;padding:40px 32px 80px;gap:56px}
.hero-img{order:2;position:relative;margin:0;border-radius:6px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 80px rgba(0,0,0,.6)}
.hero-img img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;object-position:42% 50%}
.hero-img figcaption{position:absolute;right:10px;bottom:10px;background:rgba(10,10,11,.78);color:var(--grey);font-size:.78rem;font-weight:600;padding:3px 10px;border-radius:20px}
.hero-copy{order:1}
.hero h1{font-size:clamp(2.4rem,5vw,4rem)}
.hero .lede{margin-top:18px;max-width:520px;color:var(--text);font-size:1.15rem}
.hero-ctas{margin-top:28px}
.hero-ctas .btn{padding:17px 34px;font-size:1.05rem}
.trust{margin-top:28px;display:flex;flex-wrap:wrap;gap:10px}
.trust span{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:40px;padding:7px 14px;font-size:.92rem;font-weight:600;color:var(--text);background:rgba(201,162,77,.06)}
.trust svg{width:16px;height:16px}
/* services */
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:1040px;margin:0 auto}
.svc{border:1px solid var(--line);background:var(--card);padding:40px 38px;border-radius:4px;display:flex;flex-direction:column}
.svc-icon{width:96px;height:96px;margin-bottom:22px}
.svc .num{font-size:.85rem;font-weight:700;letter-spacing:.12em;color:var(--gold);text-transform:uppercase}
.svc h3{font-size:1.75rem;margin:6px 0 14px;font-family:var(--serif);font-weight:700}
.svc p{color:var(--grey);margin-bottom:14px}
.svc ul{list-style:none;margin:10px 0 24px}
.svc li{padding:10px 0 10px 30px;border-top:1px solid var(--line);position:relative;color:var(--text)}
.svc li::before{content:'';position:absolute;left:4px;top:19px;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--gold-light),var(--gold-deep))}
.svc .note{color:var(--gold-light);font-weight:500;font-size:1rem;margin-top:auto;padding-top:8px}
/* surfaces */
.surfaces{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1040px;margin:0 auto}
.surf{border:1px solid var(--line);border-radius:4px;padding:26px 24px;background:var(--card);display:flex;gap:18px;align-items:flex-start}
.surf svg{width:64px;height:64px;flex:none}
.surf h4{font-size:1.15rem;margin-bottom:4px}
.surf .m{display:inline-block;font-size:.82rem;font-weight:700;color:#0a0a0b;background:var(--gold);border-radius:30px;padding:2px 12px;margin-bottom:8px}
.surf .m.alt{background:none;color:var(--gold-light);border:1px solid var(--gold)}
.surf p{font-size:.98rem;color:var(--grey);line-height:1.6}
.legend{text-align:center;color:var(--grey);font-size:.98rem;margin-top:28px}
/* owner */
.owner{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:center;max-width:1060px;margin:0 auto}
.owner-art{border:1px solid var(--line);border-radius:4px;padding:40px;background:radial-gradient(ellipse at 50% 30%,rgba(201,162,77,.13),transparent 65%),#0c0c0c;text-align:center}
.owner-art img{width:72%;margin:0 auto}
.owner-art .cap{margin-top:24px;font-family:var(--serif);font-weight:700;color:var(--gold-light);font-size:1.5rem;line-height:1.3}
.owner h2{font-size:clamp(2.1rem,3.8vw,3rem);margin-bottom:24px}
.owner p{margin-bottom:18px;font-size:1.08rem}
.owner .sig{font-family:var(--serif);font-weight:700;font-size:1.45rem;color:var(--gold)}
.meaning{margin-top:26px;padding:20px 22px;border:1px solid var(--line);border-radius:4px;background:rgba(201,162,77,.06)}
.meaning strong{color:var(--gold-light)}
/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1080px;margin:0 auto}
.step{border:1px solid var(--line);border-radius:4px;padding:30px 28px;background:var(--card);position:relative}
.step svg{width:58px;height:58px;margin-bottom:16px}
.step .o{position:absolute;top:22px;right:24px;font-family:var(--serif);font-weight:700;font-size:2.2rem;color:rgba(201,162,77,.35);line-height:1}
.step h4{font-size:1.22rem;margin-bottom:8px}
.step p{color:var(--grey);font-size:1rem;line-height:1.65}
/* faq */
.faq{max-width:840px;margin:0 auto}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:24px 48px 24px 0;font-weight:600;font-size:1.18rem;color:var(--white);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--gold);font-weight:500;font-size:1.7rem;transition:transform .3s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{color:var(--grey);padding:0 40px 26px 0}
/* estimate */
.inquiry{display:grid;grid-template-columns:1fr 1.15fr;gap:64px;max-width:1080px;margin:0 auto;align-items:start}
.inquiry h2{font-size:clamp(2.1rem,3.8vw,3rem);margin-bottom:20px}
.inquiry .intro p{margin-bottom:18px;font-size:1.08rem}
.est-steps{list-style:none;margin-top:22px}
.est-steps li{display:flex;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line);font-weight:500}
.est-steps li span{flex:none;width:34px;height:34px;border-radius:50%;border:2px solid var(--gold);color:var(--gold-light);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem}
.inquiry .privacy{font-size:.95rem;color:var(--grey);border-left:2px solid var(--gold-deep);padding-left:16px;margin-top:24px}
form.mock{border:1px solid var(--line);border-radius:4px;background:var(--card);padding:38px;display:grid;grid-template-columns:1fr 1fr;gap:20px}
.mock .full{grid-column:1/-1}
.mock label{display:block;font-size:.9rem;font-weight:600;color:var(--gold-light);margin-bottom:6px}
.mock input,.mock textarea{width:100%;background:#0a0a0b;border:1px solid var(--line);border-radius:3px;color:var(--white);font-family:var(--sans);font-size:1rem;font-weight:500;padding:12px 14px;outline:none}
.mock textarea{resize:none;height:90px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{border:1px solid var(--gold-deep);color:var(--gold-light);padding:9px 16px;font-size:.95rem;font-weight:600;border-radius:30px;background:none;font-family:var(--sans);cursor:pointer}
.chip.on{background:rgba(201,162,77,.18);border-color:var(--gold)}
.mock .btn{width:100%;padding:17px;font-size:1.02rem}
.mock .small{font-size:.92rem;color:var(--grey);text-align:center}
/* modal */
.modal{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.78);padding:24px}
.modal.open{display:flex}
.modal-box{max-width:440px;width:100%;background:var(--black);border:2px solid var(--gold);border-radius:4px;padding:40px 32px;text-align:center}
.modal-box h3{font-size:1.6rem;margin:6px 0 12px}
.modal-box p{color:var(--grey);margin-bottom:24px}
/* footer */
footer{border-top:1px solid var(--line);padding:54px 32px 40px;max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}
footer img{width:160px;margin-bottom:16px}
footer h5{font-family:var(--sans);font-weight:700;font-size:.95rem;color:var(--gold);margin-bottom:14px}
footer a,footer p{display:block;color:var(--grey);font-size:1rem;margin-bottom:10px}
footer a:hover{color:var(--gold-light)}
.footer-base{grid-column:1/-1;border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.9rem;color:var(--grey)}
/* motion only when JS confirms support */
.js-anim .fade-up{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}
.js-anim .fade-up.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js-anim .fade-up{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
@media (max-width:1040px){.nav-links{display:none}.js-on .nav-toggle{display:flex}.nav-cta{display:none}}
@media (max-width:900px){.owner,.inquiry{grid-template-columns:1fr;gap:44px}.hero{grid-template-columns:1fr;gap:0;padding:0 0 60px}.hero-img{order:0;border-radius:0;border:none;border-bottom:1px solid var(--line);box-shadow:none}.hero-img img{aspect-ratio:16/11;max-height:56vh}.hero-copy{padding:26px 32px 0}.svc-grid{grid-template-columns:1fr}.surfaces{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr 1fr}footer{grid-template-columns:1fr 1fr}footer .fb{grid-column:1/-1}}
@media (max-width:600px){body{font-size:17.5px;line-height:1.72}.container{padding:0 20px}nav{padding:10px 18px}.nav-logo{height:44px}.section{padding:76px 0}.hero-copy{padding:22px 20px 0}.hero h1{font-size:2.15rem}.hero .lede{font-size:1.08rem;margin-top:12px}.hero-ctas{margin-top:20px}.hero-ctas .btn{display:block;text-align:center}.trust{margin-top:20px}.trust span{font-size:.86rem}.nav-logo{height:40px}nav{padding:8px 16px}.svc{padding:30px 24px}.surfaces,.steps{grid-template-columns:1fr}form.mock{grid-template-columns:1fr;padding:26px 20px}.faq summary{font-size:1.1rem}footer{grid-template-columns:1fr}.eyebrow{font-size:.8rem;letter-spacing:.1em}}
/* live-site additions */
.mock input::placeholder,.mock textarea::placeholder{color:rgba(196,188,174,.55)}
.mock input:focus,.mock textarea:focus{border-color:var(--gold)}
.mock input.err{border-color:#d9776b}
.mock .small a{color:var(--gold-light);text-decoration:underline}
.chip:focus-visible,.btn:focus-visible,.modal-back:focus-visible{outline:2px solid var(--gold-light);outline-offset:3px}
.modal-actions{display:grid;gap:12px}
.modal-actions .btn{text-align:center}
.modal-back{background:none;border:none;color:var(--grey);font-family:var(--sans);font-size:.95rem;font-weight:600;cursor:pointer;padding:8px;text-decoration:underline}
.footer-base a{display:inline;margin:0;color:var(--gold-light);font-size:inherit}
