*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --ink:#14171A;
  --charcoal:#2C3136;
  --steel:#51606B;
  --steel-mist:#A9B4BC;
  --white:#FFFFFF;
  --frost:#F3F5F6;
  --frost-deep:#E7EBED;
  --line:#DEE3E6;
  --muted:#6B747C;
  --serif:'Fraunces',Georgia,serif;
  --sans:'Inter',system-ui,sans-serif;
}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);color:var(--ink);background:var(--white);line-height:1.6;overflow-x:hidden;}
img{display:block;max-width:100%;}
a{color:inherit;}
.wrap{max-width:1240px;margin:0 auto;padding:0 40px;}
h1,h2,h3{font-family:var(--serif);font-weight:520;color:var(--ink);letter-spacing:-0.01em;}

/* NAV */
nav{position:sticky;top:0;z-index:200;background:rgba(255,255,255,0.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.nav-inner{max-width:1240px;margin:0 auto;padding:0 40px;height:76px;display:flex;align-items:center;justify-content:space-between;}
.logo{font-family:var(--serif);font-size:19px;font-weight:520;letter-spacing:0.01em;text-decoration:none;color:var(--ink);}
.logo em{font-style:normal;color:var(--steel);}
.nav-links{display:flex;align-items:center;gap:2px;}
.nav-links a{font-size:14px;font-weight:500;text-decoration:none;color:var(--charcoal);padding:10px 14px;border-radius:2px;transition:color .15s;}
.nav-links a:hover{color:var(--steel);}
.nav-links a.active{color:var(--steel);}
.nav-cta{margin-left:10px;background:var(--ink);color:var(--white)!important;padding:11px 22px!important;font-weight:600;font-size:13px;transition:background .15s;}
.nav-cta:hover{background:var(--steel);}

/* HERO (homepage crossfade) */
.hero{position:relative;height:100vh;min-height:640px;overflow:hidden;}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;animation:heroFade 20s infinite;}
.hero-slide::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg, rgba(20,23,26,.72) 0%, rgba(20,23,26,.28) 55%, rgba(30,38,44,.35) 100%);}
.hero-slide.s1{animation-delay:0s;} .hero-slide.s2{animation-delay:5s;} .hero-slide.s3{animation-delay:10s;} .hero-slide.s4{animation-delay:15s;}
@keyframes heroFade{0%{opacity:0;} 4%{opacity:1;} 23%{opacity:1;} 27%{opacity:0;} 100%{opacity:0;}}
.hero-body{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:0 40px 96px;max-width:1240px;margin:0 auto;}
.hero-body h1{color:var(--white);font-size:clamp(38px,6vw,74px);line-height:1.05;max-width:760px;font-weight:440;}
.hero-body p{color:rgba(255,255,255,.86);font-size:18px;max-width:520px;margin-top:22px;line-height:1.6;}
.hero-ctas{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap;}

/* PAGE HERO (subpages - single static image, shorter) */
.page-hero{position:relative;height:64vh;min-height:420px;background-size:cover;background-position:center;display:flex;align-items:flex-end;background-attachment:fixed;}
.page-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg, rgba(20,23,26,.78) 0%, rgba(20,23,26,.2) 60%);}
.page-hero-body{position:relative;z-index:2;padding:0 40px 64px;max-width:1240px;margin:0 auto;width:100%;}
.page-hero-body .kicker{color:var(--steel-mist);font-size:13px;font-weight:600;letter-spacing:.04em;margin-bottom:10px;}
.page-hero-body h1{color:var(--white);font-size:clamp(32px,5vw,58px);font-weight:460;max-width:760px;}
.page-hero-body p{color:rgba(255,255,255,.85);font-size:17px;max-width:540px;margin-top:16px;}
@media (max-width:768px){.page-hero{background-attachment:scroll;}}

.btn{display:inline-block;padding:15px 28px;font-size:14px;font-weight:600;text-decoration:none;border:1px solid transparent;transition:all .18s;}
.btn-light{background:var(--white);color:var(--ink);}
.btn-light:hover{background:var(--frost);}
.btn-outline{border-color:rgba(255,255,255,.55);color:var(--white);}
.btn-outline:hover{border-color:var(--white);background:rgba(255,255,255,.08);}
.btn-dark{background:var(--ink);color:var(--white);}
.btn-dark:hover{background:var(--steel);}

/* SELECTOR (homepage) */
.selector{display:grid;grid-template-columns:1fr 1fr;}
.sel-tile{position:relative;height:64vh;min-height:420px;overflow:hidden;display:flex;align-items:flex-end;text-decoration:none;}
.sel-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.sel-tile:hover img{transform:scale(1.05);}
.sel-tile::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg, rgba(20,23,26,.78), rgba(20,23,26,.12));}
.sel-body{position:relative;z-index:2;padding:44px;color:var(--white);}
.sel-kicker{font-size:13px;letter-spacing:.04em;color:var(--steel-mist);margin-bottom:8px;}
.sel-body h2{color:var(--white);font-size:clamp(26px,3vw,36px);font-weight:480;}
.sel-body p{color:rgba(255,255,255,.82);margin-top:10px;font-size:15px;max-width:360px;}
.sel-arrow{margin-top:18px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:8px;}

/* SECTION SHELL */
.section{padding:120px 0;}
.section.tight{padding:80px 0;}
.section.alt{background:var(--frost);}
.sec-head{max-width:640px;margin-bottom:64px;}
.sec-head.center{max-width:680px;margin-left:auto;margin-right:auto;text-align:center;}
.sec-kicker{font-size:13px;font-weight:600;color:var(--steel);letter-spacing:.03em;margin-bottom:14px;}
.sec-head h2{font-size:clamp(28px,3.4vw,42px);line-height:1.15;font-weight:480;}
.sec-head p{margin-top:18px;color:var(--muted);font-size:17px;line-height:1.65;}

/* CATEGORY / SELECTOR GRID */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:4px;}
.cat-card{position:relative;overflow:hidden;text-decoration:none;grid-column:span 1;grid-row:span 1;}
.cat-card.big{grid-column:span 2;grid-row:span 2;}
.cat-card img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease;}
.cat-card:hover img{transform:scale(1.06);}
.cat-card::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg, rgba(20,23,26,.75) 0%, rgba(20,23,26,0) 46%);}
.cat-label{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:22px;color:var(--white);}
.cat-label .n{font-family:var(--serif);font-size:20px;font-weight:500;}
.cat-label .d{font-size:13px;color:rgba(255,255,255,.78);margin-top:4px;}

/* PLAIN GALLERY (masonry-ish via columns) for subpages */
.gallery{column-count:3;column-gap:6px;}
.gallery img{width:100%;margin-bottom:6px;break-inside:avoid;transition:transform .5s ease, opacity .3s;}
.gallery a{display:block;overflow:hidden;}
.gallery a:hover img{transform:scale(1.03);}
@media (max-width:768px){.gallery{column-count:2;}}

/* PARALLAX QUOTE BAND */
.parallax-band{height:56vh;min-height:340px;background-size:cover;background-position:center;background-attachment:fixed;position:relative;}
.parallax-band::after{content:'';position:absolute;inset:0;background:rgba(20,23,26,.42);}
.parallax-band .pb-text{position:relative;z-index:2;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 24px;}
.parallax-band .pb-text p{color:var(--white);font-family:var(--serif);font-size:clamp(22px,3vw,34px);font-weight:440;max-width:780px;line-height:1.35;}
@media (max-width:768px){.parallax-band{background-attachment:scroll;}}

/* TESTIMONIALS */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.testi{background:var(--white);padding:40px;}
.testi .stars{color:var(--steel);font-size:14px;letter-spacing:2px;margin-bottom:18px;}
.testi p{font-size:15px;color:var(--charcoal);line-height:1.7;}
.testi .who{margin-top:22px;font-size:13px;color:var(--muted);}
.testi .who b{color:var(--ink);}

/* PROCESS */
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;}
.step .num{font-family:var(--serif);font-size:34px;color:var(--steel-mist);font-weight:500;}
.step h3{margin-top:14px;font-size:19px;font-weight:520;}
.step p{margin-top:10px;font-size:14.5px;color:var(--muted);line-height:1.6;}

/* PRICING */
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.price-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.price-card{background:var(--white);padding:36px 30px;}
.price-card.featured{background:var(--ink);color:var(--white);}
.price-card.featured .amt,.price-card.featured h3{color:var(--white);}
.price-card.featured li{color:rgba(255,255,255,.7);border-top-color:rgba(255,255,255,.14);}
.price-card.featured .tag{color:var(--steel-mist);}
.price-card .tag{font-size:12.5px;color:var(--muted);letter-spacing:.02em;}
.price-card h3{margin-top:10px;font-size:20px;font-weight:520;}
.price-card .amt{margin-top:16px;font-family:var(--serif);font-size:32px;font-weight:500;}
.price-card .amt span{font-family:var(--sans);font-size:13px;color:var(--muted);font-weight:500;}
.price-card ul{margin-top:18px;padding-left:0;list-style:none;}
.price-card li{font-size:13.5px;color:var(--muted);padding:6px 0;border-top:1px solid var(--frost-deep);}
.price-card li:first-child{border-top:none;}
.price-note{margin-top:28px;font-size:13.5px;color:var(--muted);}

/* ABOUT */
.about{display:grid;grid-template-columns:0.9fr 1.1fr;gap:72px;align-items:center;}
.about img{width:100%;height:520px;object-fit:cover;}
.about h2{font-size:clamp(26px,3vw,36px);font-weight:480;line-height:1.2;}
.about p{margin-top:20px;color:var(--muted);font-size:16px;line-height:1.75;}
.about-stats{display:flex;gap:40px;margin-top:36px;}
.about-stats div b{display:block;font-family:var(--serif);font-size:28px;font-weight:500;color:var(--ink);}
.about-stats div span{font-size:12.5px;color:var(--muted);}

/* INFO / TEXT+IMAGE ROW (used on service pages) */
.info-row{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
.info-row.reverse .info-img{order:2;}
.info-row img{width:100%;height:460px;object-fit:cover;}
.info-row h2{font-size:clamp(24px,2.8vw,34px);font-weight:480;line-height:1.2;}
.info-row p{margin-top:16px;color:var(--muted);font-size:16px;line-height:1.75;}
.info-row ul{margin-top:20px;}
.info-row li{font-size:15px;color:var(--charcoal);padding:8px 0 8px 22px;position:relative;border-top:1px solid var(--frost-deep);}
.info-row li:first-child{border-top:none;}
.info-row li::before{content:'—';position:absolute;left:0;color:var(--steel);}

/* FAQ */
.faq-item{border-top:1px solid var(--line);padding:26px 0;}
.faq-item:last-child{border-bottom:1px solid var(--line);}
.faq-item h3{font-size:17px;font-weight:560;font-family:var(--sans);}
.faq-item p{margin-top:10px;color:var(--muted);font-size:15px;line-height:1.7;}

/* BLOG */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;}
.blog-card{text-decoration:none;color:inherit;}
.blog-card img{width:100%;height:260px;object-fit:cover;}
.blog-card .bc-meta{font-size:12.5px;color:var(--steel);letter-spacing:.02em;margin-top:18px;}
.blog-card h3{margin-top:8px;font-size:19px;font-weight:520;line-height:1.3;}
.blog-card p{margin-top:8px;font-size:14px;color:var(--muted);line-height:1.6;}
.article-hero{padding:180px 0 60px;background:var(--frost);}
.article-hero .kicker{color:var(--steel);font-size:13px;font-weight:600;letter-spacing:.03em;}
.article-hero h1{font-size:clamp(30px,4vw,48px);margin-top:14px;font-weight:480;line-height:1.2;max-width:820px;}
.article-hero .meta{margin-top:20px;color:var(--muted);font-size:14px;}
.article-body{max-width:760px;margin:0 auto;padding:80px 40px;}
.article-body img{width:100%;margin:36px 0;}
.article-body h2{font-size:26px;margin-top:44px;margin-bottom:16px;font-weight:520;}
.article-body p{font-size:17px;line-height:1.85;color:var(--charcoal);margin-bottom:20px;}
.article-body ul{margin:0 0 20px 22px;}
.article-body li{font-size:17px;line-height:1.85;color:var(--charcoal);margin-bottom:8px;}

/* CONTACT FORM */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;}
.field{margin-bottom:20px;}
.field label{display:block;font-size:13px;font-weight:600;color:var(--charcoal);margin-bottom:8px;}
.field input,.field select,.field textarea{width:100%;padding:14px 16px;border:1px solid var(--line);background:var(--frost);font-family:var(--sans);font-size:15px;color:var(--ink);}
.field textarea{min-height:130px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--steel);outline-offset:1px;background:var(--white);}
.contact-item{margin-bottom:26px;}
.contact-item .l{font-size:12.5px;color:var(--steel-mist);letter-spacing:.02em;}
.contact-item .v{font-size:19px;margin-top:6px;font-family:var(--serif);}
.contact-item .v a{text-decoration:none;color:inherit;}
.sprout-form-wrap{min-height:420px;}

.contact{background:var(--ink);color:var(--white);}
.contact .sec-head h2{color:var(--white);}
.contact .sec-head p{color:rgba(255,255,255,.7);}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;}

footer{background:var(--ink);color:rgba(255,255,255,.55);border-top:1px solid rgba(255,255,255,.12);padding:32px 0;font-size:13px;}
.footer-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}

/* BREADCRUMB */
.crumb{font-size:13px;color:var(--muted);margin-bottom:8px;}
.crumb a{color:var(--steel);text-decoration:none;}

@media (max-width:900px){
  .nav-links{display:none;}
  .selector{grid-template-columns:1fr;}
  .cat-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px;}
  .cat-card.big{grid-column:span 2;grid-row:span 1;}
  .testi-grid,.process,.price-grid,.price-grid.cols-3,.blog-grid{grid-template-columns:1fr;}
  .about,.info-row,.form-grid,.contact-grid{grid-template-columns:1fr;gap:32px;}
  .info-row.reverse .info-img{order:0;}
  .about img,.info-row img{height:300px;}
  .section{padding:72px 0;}
  .section.tight{padding:56px 0;}
  .wrap{padding:0 22px;}
  .nav-inner{padding:0 22px;}
  .gallery{column-count:2;}
}
