/* Thesis Diligence — shared stylesheet
   Edit colors/fonts here and every page updates together. */

:root{
  --navy:#0f1b2e; --navy-2:#16263d; --gold:#b08d3e; --gold-soft:#cbab5e;
  --blue:#1a3a63; --cream:#faf8f3; --white:#ffffff; --ink:#1b1b18; --sub:#5c5c54; --line:#e5e1d5;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased;}
.wrap{max-width:1080px;margin:0 auto;padding-inline:24px;}
@media (max-width:640px){ .wrap{padding-inline:16px;} }
h1,h2,h3{font-family:'Source Serif 4',Georgia,serif;font-weight:600;margin:0;text-wrap:balance;}
a{color:inherit;}
.eyebrow{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--sub);font-weight:600;}

/* NAV */
nav.site-nav{background:var(--navy);border-bottom:1px solid rgba(255,255,255,.08);}
nav.site-nav .wrap{display:flex;align-items:center;justify-content:space-between;padding-block:12px;gap:16px;}
.wordmark{color:#fff;font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:18px;letter-spacing:.01em;display:flex;align-items:center;gap:10px;text-decoration:none;}
.wordmark img{display:block;height:80px;width:auto;}
@media (max-width:640px){ .wordmark img{height:60px;} }
.wordmark .dot{width:7px;height:7px;background:var(--gold);border-radius:1px;flex:none;}
.navlinks{display:flex;gap:28px;font-size:14px;color:#cfcabb;}
.navlinks a{text-decoration:none;}
.navlinks a:hover, .navlinks a.active{color:#fff;}
@media (max-width:640px){ .navlinks{gap:16px;font-size:13px;} }

/* PAGE HERO (project pages / work landing / privacy) */
.page-hero{background:var(--navy);color:#f2efe6;}
.page-hero .wrap{padding-block:52px;}
.page-hero .eyebrow{color:var(--gold-soft);margin-bottom:10px;}
.page-hero h1{color:#fff;font-size:32px;}
.page-hero p{margin:14px 0 0;color:#cfcabb;font-size:16px;line-height:1.6;max-width:60ch;}
.breadcrumb{font-size:13px;color:#a9a495;margin-bottom:14px;}
.breadcrumb a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25);}
.breadcrumb a:hover{color:#fff;}

/* HOMEPAGE HERO */
.hero{background:var(--navy);color:#f2efe6;}
.hero .wrap{padding-block:80px 64px;}
@media (max-width:640px){ .hero .wrap{padding-block:52px 44px;} }
.hero .rule{width:44px;height:2px;background:var(--gold);margin-bottom:22px;}
.hero h1{color:#fff;font-size:42px;line-height:1.16;}
.hero h1 .h1-line{display:block;}
@media (max-width:640px){ .hero h1{font-size:30px;} }
.hero p{margin:20px 0 0;max-width:54ch;font-size:17px;line-height:1.6;color:#cfcabb;}
.btn-gold{display:inline-flex;align-items:center;gap:8px;margin-top:28px;background:var(--gold);color:#1c1608;border:none;border-radius:3px;padding:12px 20px;font-size:14px;font-weight:600;cursor:pointer;font-family:'Inter',sans-serif;text-decoration:none;}
.btn-gold:hover{background:var(--gold-soft);}
.btn-line{display:inline-flex;align-items:center;gap:8px;margin-top:8px;color:var(--ink);border-bottom:1px solid var(--gold);padding-bottom:2px;font-size:14.5px;font-weight:600;text-decoration:none;}
.btn-line:hover{color:var(--gold);}

/* SECTION SHELL */
section{padding-block:72px;}
@media (max-width:640px){ section{padding-block:48px;} }
.section-head{max-width:62ch;margin-bottom:38px;}
.section-head h2{font-size:27px;margin-top:10px;}
.section-head p{margin:14px 0 0;color:var(--sub);font-size:16px;line-height:1.6;}
.on-white{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

/* DIFFERENTIATION */
.diff{background:var(--navy-2);color:#f2efe6;border-top:1px solid rgba(255,255,255,.08);}
.diff .wrap{padding-block:56px;}
.diff-head{max-width:52ch;margin-bottom:36px;}
.diff-head .eyebrow{color:var(--gold-soft);}
.diff-head h2{font-size:24px;margin-top:10px;color:#fff;}
.diff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
@media (max-width:760px){ .diff-grid{grid-template-columns:1fr;} }
.diff-item strong{display:block;font-size:16px;margin-bottom:8px;color:#fff;font-family:'Source Serif 4',serif;font-weight:600;}
.diff-item p{margin:0;font-size:14.5px;line-height:1.6;color:#cfcabb;}
.diff-note{margin-top:40px;padding-top:28px;border-top:1px solid rgba(255,255,255,.12);font-size:14.5px;line-height:1.6;color:#cfcabb;}
.diff-note strong{color:inherit;font-weight:700;}

/* SERVICES */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
@media (max-width:800px){ .services{grid-template-columns:1fr;} }
.service{background:var(--white);padding:32px;display:flex;flex-direction:column;gap:12px;}
.service .num{font-family:'Source Serif 4',serif;color:var(--gold);font-size:14px;font-weight:600;}
.service h3{font-size:19px;}
.service p{margin:0;color:var(--sub);font-size:15px;line-height:1.6;}

/* WORK CARDS (rendered from work-data.js) */
.cases{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);}
.case{background:var(--cream);padding:32px;display:grid;grid-template-columns:200px 1fr;gap:28px;}
@media (max-width:760px){ .case{grid-template-columns:1fr;gap:14px;} }
.case .tag{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--gold-soft);font-weight:700;margin-bottom:8px;}
.case h3{font-size:19px;margin-bottom:4px;}
.case .meta{font-size:12.5px;color:var(--sub);}
.case-thumb{display:block;margin-top:18px;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--white);}
.case-thumb img{display:block;width:100%;height:auto;transition:opacity .15s;}
.case-thumb:hover img{opacity:.85;}
@media (max-width:760px){ .case-thumb{max-width:360px;} }
.work-thumb{margin:-24px -24px 6px;border-bottom:1px solid var(--line);overflow:hidden;aspect-ratio:16/9;background:var(--white);}
.work-thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:top left;}
.case-body dl{margin:18px 0 0;display:flex;flex-direction:column;gap:14px;}
.case-body dt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--sub);font-weight:700;margin-bottom:4px;}
.case-body dd{margin:0;font-size:15px;line-height:1.6;color:var(--ink);}

.additional{margin-top:28px;padding-top:24px;border-top:1px solid var(--line);}
.additional p{margin:0;color:var(--sub);font-size:14.5px;line-height:1.6;}

.cta-row{text-align:center;margin-top:36px;}

/* WORK LANDING GRID */
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media (max-width:800px){ .work-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .work-grid{grid-template-columns:1fr;} }
.work-card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:3px;padding:24px;background:var(--white);text-decoration:none;color:inherit;}
.work-card:hover{border-color:var(--gold);}
.work-card .tag{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--gold-soft);font-weight:700;}
.work-card h3{font-size:17px;}
.work-card .meta{font-size:12.5px;color:var(--sub);margin-top:auto;padding-top:10px;border-top:1px solid var(--line);}

/* PROJECT PAGE BODY */
.project-body{display:flex;flex-direction:column;gap:32px;}
.project-block{max-width:74ch;}
.project-block.gallery-block{max-width:none;}
.project-block h2{font-size:19px;margin-bottom:10px;}
.project-block p{margin:0;font-size:15.5px;line-height:1.68;color:var(--sub);}
.project-meta-row{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:13.5px;color:#cfcabb;margin-top:4px;}
.project-meta-row strong{color:#fff;font-weight:600;}

/* SLIDE GALLERY */
.slide-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media (max-width:760px){ .slide-gallery{grid-template-columns:1fr;} }
.slide-thumb{border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--white);cursor:pointer;padding:0;text-align:left;}
.slide-thumb img{display:block;width:100%;height:auto;}
.slide-caption{font-size:12.5px;color:var(--sub);padding:10px 12px;border-top:1px solid var(--line);}
.project-block .anon-note, .anon-note{font-size:11.5px;color:var(--sub);opacity:.8;font-style:italic;margin-top:14px;max-width:70ch;line-height:1.5;}

/* LIGHTBOX */
.lightbox{position:fixed;inset:0;background:rgba(10,10,8,.86);display:none;align-items:center;justify-content:center;padding:24px;z-index:1000;}
.lightbox.open{display:flex;}
.lightbox img{max-width:100%;max-height:88vh;border-radius:2px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lightbox-close{position:absolute;top:20px;right:24px;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;font-size:14px;padding:8px 14px;border-radius:3px;cursor:pointer;font-family:'Inter',sans-serif;}
.lightbox-close:hover{border-color:#fff;}
@media (max-width:640px){ .lightbox{padding:8px;} .lightbox img{max-height:80vh;} }

/* HOW WE WORK */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;counter-reset:step;}
@media (max-width:760px){ .steps{grid-template-columns:1fr;} }
.step{position:relative;padding-top:8px;}
.step::before{counter-increment:step;content:counter(step);font-family:'Source Serif 4',serif;font-size:13px;font-weight:600;color:var(--gold);border:1px solid var(--gold);border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.step h3{font-size:17px;margin-bottom:8px;}
.step p{margin:0;font-size:14.5px;line-height:1.6;color:var(--sub);}

/* ABOUT */
.about-head{display:flex;align-items:center;gap:20px;}
.portrait{width:120px;height:120px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--gold);background:var(--line);}
@media (max-width:480px){ .portrait{width:96px;height:96px;} .about-head{gap:16px;} }
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
@media (max-width:700px){ .about-grid{grid-template-columns:1fr;} }
.about-grid p{margin:0 0 14px;font-size:15.5px;line-height:1.65;color:var(--sub);}
.about-grid p:last-child{margin-bottom:0;}
.credentials{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;}
.credentials li{display:flex;gap:12px;font-size:14.5px;color:var(--sub);line-height:1.5;}
.credentials li .rule-v{width:2px;background:var(--gold);flex:none;border-radius:1px;}
.credentials li strong{color:var(--ink);}
.linkedin-link{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:14px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--gold);padding-bottom:2px;text-decoration:none;}
.linkedin-link:hover{color:var(--gold);}

/* CONTACT */
.contact{background:var(--navy);color:#f2efe6;}
.contact .wrap{padding-block:64px;display:flex;flex-direction:column;gap:18px;}
.contact h2{color:#fff;font-size:26px;}
.contact p{margin:0;color:#cfcabb;max-width:52ch;line-height:1.6;font-size:15px;}
.contact-row{display:flex;align-items:center;gap:14px;margin-top:8px;flex-wrap:wrap;}
.email-box{border:1px solid rgba(255,255,255,.25);border-radius:3px;padding:10px 16px;font-size:15px;font-family:'Source Serif 4',serif;color:#fff;user-select:all;}
.copy-btn{background:var(--gold);color:#1c1608;border:none;border-radius:3px;padding:10px 16px;font-size:13px;font-weight:600;cursor:pointer;font-family:'Inter',sans-serif;}
.copy-btn:hover{background:var(--gold-soft);}
.contact-links{display:flex;gap:20px;margin-top:6px;font-size:14px;}
.contact-links a{color:#cfcabb;text-decoration:underline;}
.contact-links a:hover{color:#fff;}
.copy-btn:focus-visible, a:focus-visible, .btn-gold:focus-visible, .btn-line:focus-visible, .work-card:focus-visible, .slide-thumb:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}

/* FOOTER */
footer.site-footer{padding-block:24px;text-align:center;font-size:12px;color:var(--sub);display:flex;flex-direction:column;gap:6px;}
footer.site-footer a{text-decoration:underline;}

/* PRIVACY PAGE BODY */
.prose{max-width:70ch;display:flex;flex-direction:column;gap:20px;}
.prose h2{font-size:19px;margin-top:6px;}
.prose p, .prose li{font-size:15px;line-height:1.7;color:var(--sub);}
.prose ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;}

/* BLUE ON LIGHT: headings and bold text on white/cream sections carry the brand navy */
.section-head h2, .service h3, .case h3, .step h3, #about h2, .work-card h3,
.project-block h2, .prose h2, .credentials li strong, .additional strong,
.case-body dd strong{color:var(--blue);}
.btn-line, .linkedin-link{color:var(--blue);}
.btn-line:hover, .linkedin-link:hover{color:var(--gold);}
.section-head .eyebrow, #about .eyebrow{color:#94752f;}

/* APPROACH: tighter spacing and gold connectors between steps */
section.approach{padding-block:52px;}
.approach .section-head{margin-bottom:24px;}
.approach .steps{gap:40px;}
.approach .step::before{position:relative;z-index:1;background:var(--white);}
.approach .step::after{content:"";position:absolute;top:21px;left:34px;right:-32px;height:1px;background:var(--gold);}
.approach .step:last-child::after{right:0;}
@media (max-width:760px){ .approach .step::after{display:none;} section.approach{padding-block:40px;} }
.about-grid .about-head{grid-column:1 / -1;margin-bottom:-16px;}
.about-grid .about-head{grid-column:1 / -1;margin-bottom:-20px;}

.linkedin-btn{border:1px solid var(--gold);color:var(--gold-soft);border-radius:3px;padding:9px 16px;font-size:13px;font-weight:600;text-decoration:none;font-family:'Inter',sans-serif;}
.linkedin-btn:hover{background:rgba(203,171,94,.12);color:#fff;}
.linkedin-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}

/* remove doubled padding on the dark bands */
section.diff{padding-block:56px;}
.diff .wrap{padding-block:0;}
section.contact{padding-block:56px;}
.contact .wrap{padding-block:0;}
@media (max-width:640px){ section.diff, section.contact{padding-block:44px;} }
