/* DSGIN V1
   Palette sampled from the supplied logo:
   Ink: #141316
   Gold: #BF8852
   Warm white: #F5F1EA
*/
:root {
    --ink: #141316;
    --ink-2: #1d1b1e;
    --gold: #bf8852;
    --gold-light: #d2a16d;
    --paper: #f5f1ea;
    --white: #fffdf9;
    --muted: #777174;
    --line: rgba(20,19,22,.14);
    --container: 1240px;
    --radius: 2px;
    --shadow: 0 25px 70px rgba(20,19,22,.12);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: "DM Sans", Arial, sans-serif;
    line-height: 1.6;
    overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; }
.container { width: min(calc(100% - 48px), var(--container)); margin: 0 auto; }
.site-noise {
    position: fixed; inset: 0; pointer-events: none; opacity: .018; z-index: 100;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}
.site-header {
    position: fixed; top: 0; left: 0; right: 0; z-index: 50;
    color: #fff; transition: .35s ease;
}
.site-header.scrolled {
    background: rgba(20,19,22,.94);
    backdrop-filter: blur(16px);
    box-shadow: 0 8px 35px rgba(0,0,0,.12);
}
.header-inner { min-height: 88px; display: flex; align-items: center; gap: 32px; }
.brand { width: 116px; flex: 0 0 auto; }
.brand img { width: 100%; height: auto; }
.main-nav { display: flex; gap: 28px; margin-left: auto; }
.main-nav a { font-size: 13px; letter-spacing: .04em; opacity: .72; transition: .25s; position: relative; }
.main-nav a:hover, .main-nav a.active { opacity: 1; }
.main-nav a.active::after { content:""; position:absolute; left:0; right:0; bottom:-9px; height:1px; background:var(--gold-light); }
.header-actions { display:flex; align-items:center; gap:18px; }
.header-call { font-size: 12px; letter-spacing:.02em; display:flex; align-items:center; gap:8px; white-space:nowrap; }
.call-dot { width:6px; height:6px; background:var(--gold); border-radius:50%; }
.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:18px;
    min-height:52px; padding:0 24px; border:1px solid transparent;
    font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
    transition: transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
    cursor:pointer;
}
.btn:hover { transform:translateY(-3px); box-shadow:0 12px 30px rgba(20,19,22,.14); }
.btn-gold { background:var(--gold); color:#fff; }
.btn-gold:hover { background:var(--gold-light); }
.btn-small { min-height:42px; padding:0 17px; font-size:10px; }
.btn-full { width:100%; }
.menu-toggle { display:none; border:0; background:none; padding:8px; color:#fff; }
.menu-toggle span { display:block; width:25px; height:1px; background:#fff; margin:6px; transition:.25s; }

.hero {
    min-height: 94vh; position:relative; display:flex; align-items:center;
    color:#fff; overflow:hidden; background:var(--ink);
}
.hero-image, .landing-hero-image {
    position:absolute; inset:0; background-size:cover; background-position:center;
    background-image:url("https://images.unsplash.com/photo-1600210492486-724fe5c67fb0?auto=format&fit=crop&w=2200&q=85");
    transform:scale(1.03); animation:heroZoom 12s ease-out forwards;
}
.landing-hero-image { background-image:url("https://images.unsplash.com/photo-1616486338812-3dadae4b4ace?auto=format&fit=crop&w=2200&q=85"); }
@keyframes heroZoom { from{transform:scale(1.08)} to{transform:scale(1.02)} }
.hero-overlay {
    position:absolute; inset:0;
    background:linear-gradient(90deg, rgba(12,11,13,.84) 0%, rgba(12,11,13,.48) 52%, rgba(12,11,13,.2) 100%);
}
.hero-content { position:relative; z-index:2; padding-top:110px; }
.eyebrow { font-size:10px; letter-spacing:.22em; font-weight:700; color:var(--gold); }
.hero h1 { font-family:Manrope, sans-serif; font-size:clamp(54px,7.4vw,112px); line-height:.92; letter-spacing:-.065em; margin:20px 0 28px; max-width:850px; }
.hero h1 em, .display em, .landing-content em, .page-hero em { font-family:Georgia, serif; font-weight:400; color:var(--gold-light); }
.hero-copy { max-width:570px; font-size:17px; color:rgba(255,255,255,.8); }
.hero-actions { display:flex; align-items:center; gap:30px; margin-top:34px; }
.text-link { display:inline-flex; gap:15px; align-items:center; font-size:12px; text-transform:uppercase; letter-spacing:.09em; font-weight:700; border-bottom:1px solid var(--line); padding-bottom:7px; transition:.25s; }
.text-link:hover { gap:21px; color:var(--gold); }
.text-link.light { color:#fff; border-color:rgba(255,255,255,.3); }
.hero-scroll { position:absolute; right:40px; bottom:38px; z-index:2; writing-mode:vertical-rl; font-size:9px; letter-spacing:.18em; opacity:.7; display:flex; gap:12px; align-items:center; }
.hero-scroll span { height:50px; width:1px; background:var(--gold); }

.section { padding:120px 0; }
.intro-grid, .story-grid, .two-col { display:grid; grid-template-columns:260px 1fr; gap:60px; }
.section-label { font-size:10px; letter-spacing:.18em; font-weight:700; color:var(--gold); }
.display { font-family:Manrope, sans-serif; font-size:clamp(42px,5vw,74px); line-height:1.01; letter-spacing:-.055em; margin:0; }
.lead { max-width:710px; color:#605b60; font-size:18px; line-height:1.75; }
.body-copy { max-width:680px; color:#777174; }
.intro .lead { margin:30px 0; }

.dark-section { background:var(--ink); color:#fff; }
.display-light { color:#fff; }
.section-head { margin-bottom:60px; }
.section-head .display { margin-top:18px; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,.12); }
.service-card { background:var(--ink); min-height:420px; padding:36px; border:1px solid rgba(255,255,255,.07); position:relative; transition:.35s; }
.service-card:hover { background:#201e21; transform:translateY(-8px); z-index:2; box-shadow:0 25px 50px rgba(0,0,0,.25); }
.card-number { position:absolute; right:28px; top:28px; color:var(--gold); font-size:10px; }
.service-icon { color:var(--gold); font-size:40px; margin-top:55px; }
.service-card h3 { font-family:Manrope,sans-serif; font-size:25px; margin:30px 0 12px; }
.service-card p { color:rgba(255,255,255,.55); max-width:330px; }
.service-card a { position:absolute; left:36px; bottom:35px; color:#fff; font-size:11px; text-transform:uppercase; letter-spacing:.09em; display:flex; gap:13px; }

.feature { background:var(--white); }
.feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.feature-image {
    min-height:670px; background:url("https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?auto=format&fit=crop&w=1500&q=85") center/cover;
    position:relative;
}
.image-tag { position:absolute; left:22px; bottom:22px; background:var(--ink); color:#fff; padding:11px 14px; font-size:9px; letter-spacing:.16em; }
.feature-copy .display { margin:18px 0 45px; }
.feature-list { border-top:1px solid var(--line); }
.feature-item { display:grid; grid-template-columns:50px 1fr; gap:10px; padding:22px 0; border-bottom:1px solid var(--line); }
.feature-item > span { color:var(--gold); font-size:10px; font-weight:700; }
.feature-item h3 { margin:0 0 5px; font-size:16px; }
.feature-item p { margin:0; color:var(--muted); font-size:14px; }

.centered { text-align:center; }
.centered .section-label { display:block; }
.process { background:#ebe6dd; }
.process-line { display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; margin-top:75px; }
.process-line::before { content:""; position:absolute; top:7px; left:0; right:0; height:1px; background:var(--line); }
.process-step { position:relative; padding:0 28px 0 0; }
.process-step b { width:15px; height:15px; border-radius:50%; background:var(--gold); color:transparent; display:block; position:relative; z-index:2; box-shadow:0 0 0 7px #ebe6dd; }
.process-step h3 { margin:40px 0 8px; font-family:Manrope,sans-serif; font-size:17px; }
.process-step p { color:var(--muted); font-size:13px; max-width:220px; }

.lead-banner { background:var(--ink); color:#fff; padding:100px 0; }
.lead-banner-inner { display:grid; grid-template-columns:1fr 390px; gap:80px; align-items:end; }
.lead-banner p { color:rgba(255,255,255,.58); margin:0 0 25px; max-width:350px; }
.mini-faq { background:var(--white); }
.faq-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:110px; }
.faq-list { border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); padding:22px 0; }
summary { cursor:pointer; font-family:Manrope,sans-serif; font-size:16px; font-weight:700; list-style:none; display:flex; justify-content:space-between; }
summary::-webkit-details-marker { display:none; }
summary::after { content:"+"; color:var(--gold); font-size:20px; }
details[open] summary::after { content:"−"; }
details p { color:var(--muted); max-width:650px; margin:15px 0 0; font-size:14px; }

.page-hero { background:var(--ink); color:#fff; padding:190px 0 100px; }
.page-hero.compact { padding-bottom:95px; }
.page-hero .display { margin-top:18px; }
.page-hero-copy { color:rgba(255,255,255,.62); max-width:650px; font-size:17px; margin:28px 0 0; }
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.value-card { border:1px solid rgba(255,255,255,.12); padding:34px; min-height:280px; }
.value-card span, .seo-card span { color:var(--gold); font-size:10px; font-weight:700; }
.value-card h3 { font-family:Manrope,sans-serif; font-size:25px; margin-top:65px; }
.value-card p { color:rgba(255,255,255,.55); }
.about-cta { padding-top:20px; }
.cta-box { background:#e7e1d7; padding:65px 75px; display:flex; justify-content:space-between; align-items:center; }

.landing-hero { min-height:82vh; position:relative; display:flex; align-items:center; color:#fff; overflow:hidden; background:var(--ink); }
.landing-content { position:relative; z-index:2; padding-top:100px; }
.landing-content .display { max-width:900px; margin:18px 0 28px; }
.landing-content .btn { margin-top:20px; }
.seo-intro { background:var(--white); }
.seo-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.seo-card { background:#ebe6dd; padding:30px; min-height:245px; border:1px solid rgba(20,19,22,.04); transition:.3s; }
.seo-card:hover { transform:translateY(-7px); background:#e5ded2; box-shadow:var(--shadow); }
.seo-card h3 { font-family:Manrope,sans-serif; font-size:21px; margin:50px 0 8px; }
.seo-card p { color:var(--muted); font-size:14px; }
.location-strip { background:var(--gold); color:#fff; padding:100px 0; }
.location-strip .section-label { color:#fff; opacity:.72; }
.location-strip h2 { font-family:Manrope,sans-serif; font-size:clamp(40px,5vw,70px); line-height:1; letter-spacing:-.05em; margin:20px 0; }
.location-strip h2 em { font-family:Georgia,serif; font-weight:400; }
.location-strip p { max-width:540px; color:rgba(255,255,255,.78); }
.quote-section { background:var(--white); }
.quote-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; align-items:start; }
.quote-points { display:flex; flex-direction:column; gap:10px; margin-top:28px; color:#605b60; font-size:13px; }
.lead-form { background:var(--paper); padding:42px; border:1px solid var(--line); box-shadow:0 25px 70px rgba(20,19,22,.06); }
.lead-form label { display:block; font-size:10px; letter-spacing:.09em; text-transform:uppercase; font-weight:700; margin-bottom:18px; }
.lead-form input, .lead-form select, .lead-form textarea { display:block; width:100%; margin-top:8px; border:1px solid #d7d0c6; background:var(--white); color:var(--ink); padding:14px 15px; outline:none; border-radius:0; transition:.2s; }
.lead-form input:focus, .lead-form select:focus, .lead-form textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(191,136,82,.10); }
.lead-form textarea { resize:vertical; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-note { color:#8b8587; font-size:10px; text-align:center; margin:14px 0 0; }
.contact-methods { margin-top:45px; border-top:1px solid var(--line); }
.contact-method { display:block; padding:20px 0; border-bottom:1px solid var(--line); }
.contact-method span { color:var(--gold); font-size:9px; letter-spacing:.15em; font-weight:700; display:block; }
.contact-method strong { display:block; font-family:Manrope,sans-serif; font-size:17px; margin-top:5px; }
.contact-method small { color:var(--muted); }
.location-section { padding-top:0; }
.location-card { background:#e7e1d7; padding:65px 70px; display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.location-card h2 { font-family:Manrope,sans-serif; font-size:42px; line-height:1; letter-spacing:-.05em; margin:15px 0 0; }
.location-card p { color:var(--muted); max-width:420px; }

.thank-you { min-height:75vh; display:flex; align-items:center; background:var(--white); padding:150px 0 80px; }
.thank-inner { max-width:850px; }
.thank-mark { margin:35px 0 25px; width:56px; height:56px; display:grid; place-items:center; border:1px solid var(--gold); color:var(--gold); border-radius:50%; }
.thank-you .lead { margin:28px 0; }

.site-footer { background:#0e0d0f; color:#fff; padding:75px 0 25px; }
.footer-top { display:flex; justify-content:space-between; gap:80px; padding-bottom:60px; border-bottom:1px solid rgba(255,255,255,.1); }
.footer-brand { max-width:330px; }
.footer-brand img { width:120px; }
.footer-brand p { color:rgba(255,255,255,.45); font-size:13px; margin-top:25px; }
.footer-links { display:flex; gap:100px; }
.footer-links h4 { color:var(--gold); text-transform:uppercase; letter-spacing:.14em; font-size:9px; }
.footer-links a { display:block; color:rgba(255,255,255,.7); font-size:12px; margin:12px 0; }
.footer-links a:hover { color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; padding-top:20px; color:rgba(255,255,255,.32); font-size:10px; letter-spacing:.03em; }
.mobile-cta { display:none; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1); transition-delay:var(--delay,0ms); }
.reveal.is-visible { opacity:1; transform:none; }
.delay-1 { --delay:100ms; } .delay-2 { --delay:200ms; } .delay-3 { --delay:300ms; }

@media (max-width: 950px) {
    .container { width:min(calc(100% - 36px),var(--container)); }
    .header-inner { min-height:76px; }
    .main-nav { display:none; position:absolute; left:0; right:0; top:76px; background:rgba(20,19,22,.98); padding:24px 20px 30px; flex-direction:column; gap:20px; }
    .main-nav.open { display:flex; }
    .menu-toggle { display:block; margin-left:auto; }
    .header-actions .header-call { display:none; }
    .header-actions { display:block; }
    .header-actions .btn { display:none; }
    .brand { width:100px; }
    .hero h1 { font-size:clamp(50px,12vw,85px); }
    .hero-scroll { display:none; }
    .section { padding:85px 0; }
    .intro-grid, .story-grid, .two-col { grid-template-columns:1fr; gap:22px; }
    .service-grid, .values-grid, .seo-cards { grid-template-columns:1fr; }
    .service-card { min-height:350px; }
    .feature-grid, .quote-grid, .faq-grid { grid-template-columns:1fr; gap:55px; }
    .feature-image { min-height:500px; }
    .lead-banner-inner { grid-template-columns:1fr; gap:35px; }
    .process-line { grid-template-columns:1fr 1fr; gap:50px 25px; }
    .process-line::before { display:none; }
    .process-step { padding:0; }
    .cta-box, .location-card { grid-template-columns:1fr; gap:35px; padding:45px; }
    .footer-top { flex-direction:column; gap:45px; }
    .footer-links { gap:70px; }
    .page-hero { padding:150px 0 80px; }
    .landing-hero { min-height:75vh; }
}
@media (max-width: 620px) {
    .container { width:min(calc(100% - 28px),var(--container)); }
    .hero { min-height:88vh; }
    .hero-overlay { background:linear-gradient(90deg, rgba(12,11,13,.84), rgba(12,11,13,.48)); }
    .hero-copy { font-size:15px; }
    .hero-actions { flex-direction:column; align-items:flex-start; gap:22px; }
    .form-row { grid-template-columns:1fr; gap:0; }
    .lead-form { padding:25px 20px; }
    .feature-image { min-height:390px; }
    .process-line { grid-template-columns:1fr; gap:35px; }
    .footer-links { flex-direction:column; gap:25px; }
    .footer-bottom { flex-direction:column; gap:8px; }
    .mobile-cta { display:grid; grid-template-columns:1fr 1fr; position:fixed; bottom:0; left:0; right:0; z-index:80; background:var(--ink); box-shadow:0 -10px 35px rgba(0,0,0,.15); }
    .mobile-cta a { color:#fff; text-align:center; padding:15px 10px; font-size:10px; text-transform:uppercase; letter-spacing:.1em; border-right:1px solid rgba(255,255,255,.1); }
    .mobile-cta a:last-child { background:var(--gold); border:0; }
    .location-card, .cta-box { padding:32px 25px; }
    .display { font-size:42px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    *, *::before, *::after { animation:none !important; transition:none !important; }
    .reveal { opacity:1; transform:none; }
}
