/* ============ FILMFUSE — WIRED-INSPIRED DESIGN SYSTEM ============ */
:root{
  --ink:#000;--ink-soft:#1a1a1a;--body:#757575;--hairline:#e0e0e0;
  --canvas:#fff;--canvas-soft:#f5f5f5;--link:#057dbc;
  --display:"Playfair Display","Times New Roman",Georgia,serif;
  --serif:"Lora",Georgia,"Times New Roman",serif;
  --sans:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --xxs:2px;--xs:4px;--sm:8px;--md:12px;--lg:16px;--xl:20px;--x2:24px;--x3:32px;--x4:48px;--x5:72px;
  --container:1320px;--reading:720px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{background:var(--canvas);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.05;letter-spacing:-0.5px;color:var(--ink);}
.eyebrow{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink);}
.byline{font-family:var(--serif);font-size:13px;font-weight:700;color:var(--body);letter-spacing:.3px;}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--xl);}
.section{padding:var(--x5) 0;}
.hairline{border:0;border-top:1px solid var(--hairline);}
.center{text-align:center;}

/* MASTHEAD */
.masthead{position:sticky;top:0;z-index:100;background:var(--canvas);border-bottom:1px solid var(--ink);}
.masthead-inner{max-width:var(--container);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:var(--md) var(--xl);gap:var(--lg);}
.wordmark{font-family:var(--display);font-weight:700;font-size:30px;letter-spacing:-1px;color:var(--ink);line-height:1;}
.wordmark span{font-style:italic;}
.nav-links{display:flex;gap:var(--x2);align-items:center;}
.nav-links a{font-family:var(--sans);font-size:14px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink);padding:var(--xs) 0;position:relative;}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--ink);transition:width .2s ease;}
.nav-links a:hover::after,.nav-links a.active::after{width:100%;}
.nav-cta{font-family:var(--sans);font-size:14px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;background:var(--ink);color:var(--canvas);padding:var(--sm) var(--lg);border:1px solid var(--ink);}
.nav-cta:hover{background:var(--canvas);color:var(--ink);}
.hamburger{display:none;background:none;border:0;cursor:pointer;padding:var(--sm);}
.hamburger span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:.3s;}

/* BUTTONS */
.btn{display:inline-block;font-family:var(--sans);font-size:16px;font-weight:700;letter-spacing:.3px;padding:var(--md) var(--x2);border-radius:0;cursor:pointer;transition:all .2s ease;border:1px solid var(--ink);}
.btn-primary{background:var(--ink);color:var(--canvas);}
.btn-primary:hover{background:var(--canvas);color:var(--ink);}
.btn-outline{background:var(--canvas);color:var(--ink);}
.btn-outline:hover{background:var(--ink);color:var(--canvas);}

/* HERO */
.hero{padding:var(--x5) 0 var(--x4);}
.hero-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--x4);align-items:center;}
.hero h1{font-size:72px;line-height:.95;letter-spacing:-1.5px;margin-bottom:var(--lg);}
.hero .lead{font-family:var(--serif);font-size:21px;line-height:1.5;color:var(--ink-soft);margin-bottom:var(--x2);max-width:34ch;}
.hero-actions{display:flex;gap:var(--md);flex-wrap:wrap;}
.hero-img{aspect-ratio:4/5;overflow:hidden;background:var(--canvas-soft);}
.hero-img img{width:100%;height:100%;object-fit:cover;}

/* TRUST */
.trust{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:var(--x2) 0;}
.trust-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--x2);}
.trust-item{text-align:center;flex:1;min-width:140px;}
.trust-num{font-family:var(--display);font-size:40px;line-height:1;}
.trust-label{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--body);margin-top:var(--xs);}

/* BENEFITS */
.benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--hairline);}
.benefit{padding:var(--x3) var(--x2);border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}
.benefit:last-child{border-right:0;}
.benefit .num{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:1px;color:var(--body);}
.benefit h3{font-size:26px;margin:var(--md) 0 var(--sm);}
.benefit p{font-size:16px;color:var(--ink-soft);line-height:1.55;}

/* SECTION HEAD */
.section-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:var(--md);margin-bottom:var(--x3);}
.section-head h2{font-size:34px;}
.section-head a{font-family:var(--sans);font-size:14px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;}
.section-head a:hover{color:var(--link);}

/* STORY CARDS */
.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--x2);}
.story-card{display:flex;flex-direction:column;}
.story-card .thumb{aspect-ratio:4/3;overflow:hidden;background:var(--canvas-soft);margin-bottom:var(--md);}
.story-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.story-card:hover .thumb img{transform:scale(1.04);}
.story-card .cat{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--ink);margin-bottom:var(--xs);}
.story-card h3{font-size:23px;line-height:1.1;margin-bottom:var(--sm);}
.story-card:hover h3{color:var(--link);}
.story-card p{font-size:15px;color:var(--ink-soft);line-height:1.5;}

/* STORY ROWS */
.story-rows{margin-top:var(--x2);}
.story-row{display:grid;grid-template-columns:1fr auto;gap:var(--x2);align-items:center;padding:var(--lg) 0;border-bottom:1px solid var(--hairline);}
.story-row .cat{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--body);}
.story-row h3{font-size:22px;margin:var(--xs) 0;}
.story-row:hover h3{color:var(--link);}
.story-row .meta{font-family:var(--serif);font-size:13px;color:var(--body);}

/* ABOUT SPLIT */
.about-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--x4);align-items:center;}
.about-split img{aspect-ratio:1/1;object-fit:cover;width:100%;background:var(--canvas-soft);}
.about-split h2{font-size:40px;margin-bottom:var(--lg);}
.about-split p{font-size:18px;color:var(--ink-soft);margin-bottom:var(--lg);line-height:1.6;}
.about-split .btn{margin-top:var(--lg);display:inline-block;}

/* CTA BAND */
.cta-band{background:var(--ink);color:var(--canvas);padding:var(--x5) 0;text-align:center;}
.cta-band h2{color:var(--canvas);font-size:48px;margin-bottom:var(--md);}
.cta-band p{font-family:var(--serif);font-size:19px;color:#cfcfcf;margin-bottom:var(--x2);max-width:48ch;margin-left:auto;margin-right:auto;}
.cta-band .btn-outline{background:transparent;color:var(--canvas);border-color:var(--canvas);}
.cta-band .btn-outline:hover{background:var(--canvas);color:var(--ink);}

/* PAGE HEAD */
.page-head{border-bottom:2px solid var(--ink);padding:var(--x4) 0 var(--x3);}
.page-head .eyebrow{margin-bottom:var(--md);}
.page-head h1{font-size:60px;line-height:1;letter-spacing:-1.5px;}
.page-head .lead{font-family:var(--serif);font-size:20px;color:var(--ink-soft);margin-top:var(--lg);max-width:60ch;}

/* PROSE */
.prose{max-width:var(--reading);margin:0 auto;}
.prose p{font-size:19px;line-height:1.65;margin-bottom:var(--lg);color:var(--ink-soft);}
.prose h2{font-size:32px;margin:var(--x3) 0 var(--md);}
.prose h3{font-size:24px;margin:var(--x2) 0 var(--sm);}
.prose ul,.prose ol{margin:0 0 var(--lg) var(--x2);color:var(--ink-soft);font-size:19px;line-height:1.65;}
.prose li{margin-bottom:var(--sm);}
.prose a{color:var(--link);text-decoration:underline;}
.prose strong{font-weight:700;color:var(--ink);}
.prose blockquote{border-left:3px solid var(--ink);padding-left:var(--lg);margin:var(--x2) 0;font-style:italic;font-size:21px;color:var(--ink);}
.article-hero{aspect-ratio:16/9;overflow:hidden;background:var(--canvas-soft);margin:var(--x3) 0;}
.article-hero img{width:100%;height:100%;object-fit:cover;}
.related{border-top:2px solid var(--ink);margin-top:var(--x4);padding-top:var(--x2);}
.related h2{font-size:26px;margin-bottom:var(--lg);}

/* SERVICES GRID */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--ink);border-left:1px solid var(--ink);}
.svc{padding:var(--x3);border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);}
.svc .num{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:1px;color:var(--body);}
.svc h3{font-size:28px;margin:var(--md) 0 var(--sm);}
.svc p{font-size:16px;color:var(--ink-soft);line-height:1.55;margin-bottom:var(--md);}
.svc a{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink);border-bottom:2px solid var(--ink);padding-bottom:2px;}
.svc a:hover{color:var(--link);border-color:var(--link);}

/* STEPS */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--x2);margin-top:var(--x2);}
.step{border-top:3px solid var(--ink);padding-top:var(--md);}
.step .n{font-family:var(--display);font-size:48px;line-height:1;}
.step h3{font-size:20px;margin:var(--sm) 0;}
.step p{font-size:15px;color:var(--ink-soft);line-height:1.5;}

/* FAQ */
.faq{max-width:var(--reading);margin:0 auto;}
.faq details{border-bottom:1px solid var(--hairline);padding:var(--lg) 0;}
.faq summary{font-family:var(--display);font-size:22px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:var(--lg);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-family:var(--sans);font-size:28px;font-weight:400;transition:transform .2s;}
.faq details[open] summary::after{content:"\2212";}
.faq p{font-size:17px;color:var(--ink-soft);margin-top:var(--md);line-height:1.6;}

/* FILTER */
.filter-bar{display:flex;gap:var(--sm);flex-wrap:wrap;padding:var(--x2) 0;border-bottom:1px solid var(--hairline);margin-bottom:var(--x3);}
.filter-btn{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:var(--sm) var(--lg);border:1px solid var(--ink);background:var(--canvas);color:var(--ink);cursor:pointer;border-radius:0;transition:.15s;}
.filter-btn:hover{background:var(--canvas-soft);}
.filter-btn.active{background:var(--ink);color:var(--canvas);}

/* TESTIMONIALS */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--x2);}
.quote{border-top:3px solid var(--ink);padding-top:var(--lg);}
.quote p{font-family:var(--display);font-size:22px;line-height:1.25;font-style:italic;margin-bottom:var(--md);}
.quote .who{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;}
.quote .role{font-family:var(--serif);font-size:14px;color:var(--body);}

/* FORM */
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--x4);}
.form-field{margin-bottom:var(--lg);}
.form-field label{display:block;font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:var(--sm);}
.form-field input,.form-field textarea{width:100%;font-family:var(--serif);font-size:17px;padding:var(--md) var(--lg);border:1px solid var(--ink);border-radius:0;background:var(--canvas);color:var(--ink);}
.form-field input:focus,.form-field textarea:focus{outline:2px solid var(--link);outline-offset:-1px;}
.form-field textarea{min-height:140px;resize:vertical;}
.contact-info dt{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--body);margin-top:var(--lg);}
.contact-info dd{font-family:var(--serif);font-size:18px;margin-top:var(--xs);}
.contact-info dd a:hover{color:var(--link);}
.map-embed{margin-top:var(--x2);border:1px solid var(--ink);width:100%;aspect-ratio:16/7;filter:grayscale(1);}
.social-row{display:flex;gap:var(--md);margin-top:var(--lg);}
.social-row a{width:42px;height:42px;border:1px solid var(--ink);border-radius:9999px;display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:14px;font-weight:700;transition:.2s;}
.social-row a:hover{background:var(--ink);color:var(--canvas);}

/* FOOTER */
footer{background:var(--ink);color:var(--canvas);padding:var(--x5) 0 var(--x3);}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:var(--x3);margin-bottom:var(--x4);}
.footer-grid .wordmark{color:var(--canvas);margin-bottom:var(--md);}
.footer-about{font-family:var(--serif);font-size:15px;color:#bbb;line-height:1.6;max-width:36ch;}
.footer-col h4{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#888;margin-bottom:var(--md);}
.footer-col a{display:block;font-family:var(--serif);font-size:16px;color:var(--canvas);padding:var(--xs) 0;}
.footer-col a:hover{color:#9fd0ec;}
.footer-bottom{border-top:1px solid #333;padding-top:var(--lg);display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--sm);font-family:var(--sans);font-size:13px;color:#888;}

/* RESPONSIVE */
@media(max-width:1023px){
  .hero h1{font-size:56px;}
  .story-grid,.quotes{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:767px){
  html,body{overflow-x:hidden;}
  body{font-size:16px;}
  .container{padding:0 var(--lg);}
  /* NAV */
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--canvas);flex-direction:column;align-items:flex-start;padding:var(--lg) var(--xl);border-bottom:1px solid var(--ink);gap:var(--lg);z-index:99;}
  .nav-links.open{display:flex;}
  .nav-cta{display:none;}
  .hamburger{display:block;order:3;margin-left:auto;}
  .wordmark{order:1;}
  .masthead-inner{justify-content:flex-start;}
  /* HERO */
  .hero{padding:var(--x2) 0;}
  .hero-grid{grid-template-columns:1fr;gap:var(--lg);}
  .hero h1{font-size:32px;letter-spacing:-.3px;line-height:1.1;}
  .hero .lead{font-size:16px;max-width:100%;}
  .hero .eyebrow{font-size:11px;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .hero-img{aspect-ratio:16/9;max-height:220px;}
  .hero-actions{flex-direction:row;flex-wrap:wrap;gap:var(--sm);}
  .hero-actions .btn{font-size:14px;padding:var(--sm) var(--lg);}
  /* TRUST */
  .trust-inner{gap:var(--lg);}
  .trust-item{min-width:42%;flex:1 1 42%;}
  .trust-num{font-size:34px;}
  /* GRIDS */
  .benefits-grid,.story-grid,.quotes,.svc-grid,.steps,.about-split,.contact-grid{grid-template-columns:1fr;}
  .benefit{border-right:0;}
  .svc-grid{border-left:0;}
  .svc{border-right:0;}
  .story-row{grid-template-columns:1fr;}
  .story-row .thumb{display:none;}
  /* SECTION HEADS */
  .section-head{flex-direction:column;gap:var(--sm);}
  .section-head h2{font-size:26px;}
  /* PAGE */
  .page-head{padding:var(--x3) 0 var(--x2);}
  .page-head h1{font-size:34px;letter-spacing:-.5px;}
  /* CTA */
  .cta-band h2{font-size:30px;}
  .cta-band p{font-size:16px;}
  /* SECTION */
  .section{padding:var(--x3) 0;}
  /* PROSE */
  .prose p,.prose ul,.prose ol{font-size:17px;}
  .prose h2{font-size:26px;}
  .prose h3{font-size:21px;}
  .prose blockquote{font-size:18px;}
  /* FOOTER */
  .footer-grid{grid-template-columns:1fr 1fr;gap:var(--x2);margin-bottom:var(--x2);}
  .footer-grid > div:first-child{grid-column:1/-1;}
  .footer-about{max-width:100%;}
  footer{padding:var(--x3) 0 var(--x2);}
  /* ABOUT SPLIT bottom gap */
  .about-split{padding-bottom:var(--x2);}
  /* FILTER */
  .filter-bar{gap:var(--xs);}
  .filter-btn{font-size:12px;padding:var(--xs) var(--md);}
}
@media(max-width:480px){
  .container{padding:0 var(--md);}
  .hero h1{font-size:28px;}
  .hero .lead{font-size:15px;}
  .hero-img{max-height:180px;}
  .trust-num{font-size:28px;}
  .trust-label{font-size:11px;}
  .page-head h1{font-size:28px;}
  .story-card h3{font-size:20px;}
  .story-card p{font-size:14px;}
  .cta-band h2{font-size:26px;}
  .section-head h2{font-size:22px;}
  .prose p,.prose ul,.prose ol{font-size:16px;}
  .prose h2{font-size:22px;}
  .prose h3{font-size:19px;}
  .article-hero{margin:var(--x2) 0;}
  .faq summary{font-size:18px;}
  .masthead-inner{padding:var(--sm) var(--md);}
  .wordmark{font-size:24px;}
}


.img-caption{font-family:Inter,system-ui,sans-serif;font-size:13px;letter-spacing:.01em;color:var(--ink-soft);margin:8px 0 40px;}
