/* ==========================================================================
   Albfuture Consulting Group — stylesheet
   Self-hosted fonts (GDPR): no external font requests.
   ========================================================================== */

@font-face{font-family:'Source Serif 4';src:url('../fonts/sourceserif4.woff2') format('woff2');font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('../fonts/sourceserif4-italic.woff2') format('woff2');font-weight:200 900;font-style:italic;font-display:swap}
@font-face{font-family:'Libre Franklin';src:url('../fonts/librefranklin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --bg:#FFFFFF; --alt:#F6F3ED; --ink:#1B1A16; --soft:#5C574D;
  --red:#D8000B; --red-2:#F0000C; --line:#E5E1D7; --dark:#17160F;
  --wrap:1220px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:#fff;overscroll-behavior:none}
body{font-family:'Libre Franklin',system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden;overscroll-behavior:none}
.serif{font-family:'Source Serif 4',Georgia,serif}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 40px}
.kicker{font-size:.74rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--red)}
.rule{width:54px;height:3px;background:var(--red);margin-top:14px}
.center{text-align:center}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:'Libre Franklin',sans-serif;font-weight:600;font-size:.9rem;padding:.9rem 1.6rem;transition:.25s;cursor:pointer;border:1px solid transparent}
.btn-solid{background:var(--ink);color:#fff}
.btn-solid:hover{background:var(--red)}
.btn-out{border-color:var(--ink);color:var(--ink);background:none}
.btn-out:hover{background:var(--ink);color:#fff}
.btn-light{border-color:rgba(255,255,255,.5);color:#fff;background:none}
.btn-light:hover{background:var(--red-2);border-color:var(--red-2)}
.btn svg{width:15px;height:15px}
.txtlink{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem;color:var(--ink);border-bottom:2px solid var(--red);padding-bottom:3px;transition:.2s}
.txtlink:hover{gap:.85rem;color:var(--red)}

/* header */
.site-header{position:sticky;top:0;z-index:90;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);transition:box-shadow .3s,border-color .3s;border-bottom:1px solid transparent}
.site-header.stuck{border-color:var(--line);box-shadow:0 4px 24px -18px rgba(0,0,0,.35)}
.nav{display:flex;align-items:center;justify-content:space-between;height:90px}
.logo{height:46px;width:auto}
.nav-r{display:flex;align-items:center;gap:2.4rem}
.menu ul{display:flex;list-style:none;gap:2.1rem}
.menu a{font-size:.9rem;font-weight:500;color:var(--ink);position:relative;padding:.3rem 0}
.menu a::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--red);transition:width .3s}
.menu a:hover::after,.menu a.active::after{width:100%}
.menu a.active{color:var(--red)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.burger span{width:26px;height:2px;background:var(--ink);transition:.3s}

/* hero + slider */
.hero{padding:78px 0 30px}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:66px;align-items:center}
.hero h1{font-family:'Source Serif 4',serif;font-weight:500;font-size:clamp(2.6rem,4.7vw,4.15rem);line-height:1.07;letter-spacing:-.015em;margin:1.5rem 0 0}
.hero h1 em{font-style:italic;color:var(--red);font-weight:500}
.hero .dek{font-size:1.12rem;color:var(--soft);max-width:500px;margin:1.7rem 0 2.4rem}
.hero-cta{display:flex;gap:1.8rem;align-items:center;flex-wrap:wrap}
.hero-media{position:relative}
.hero-media::before{content:"";position:absolute;left:-18px;top:-18px;width:120px;height:120px;border-top:3px solid var(--red);border-left:3px solid var(--red);z-index:2}
.slider{position:relative;height:560px}
.slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;pointer-events:none}
.slide.on{opacity:1;pointer-events:auto}
.slide img{width:100%;height:560px;object-fit:cover;object-position:center}
.slide .cap{position:absolute;right:0;bottom:0;background:var(--ink);color:#fff;padding:16px 22px;max-width:280px}
.slide .cap .t{font-family:'Source Serif 4',serif;font-size:1.05rem;line-height:1.3}
.dots{position:absolute;left:16px;bottom:16px;display:flex;gap:9px;z-index:4}
.dots button{width:9px;height:9px;border-radius:50%;border:0;padding:0;cursor:pointer;background:rgba(255,255,255,.45);transition:.25s}
.dots button.on{background:var(--red-2);transform:scale(1.15)}

/* practice strip */
.strip{background:var(--alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:40px}
.strip-in{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:26px 0;flex-wrap:wrap}
.strip-in .lab{font-size:.9rem;color:var(--soft);max-width:260px}
.strip-in .lab b{color:var(--ink);font-weight:600}
.practices{display:flex;flex-wrap:wrap}
.practices span{font-family:'Source Serif 4',serif;font-size:1.02rem;color:var(--ink);padding:0 22px;position:relative}
.practices span+span::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:var(--red)}

/* sections */
.sec{padding:110px 0}
.sec-head{max-width:680px}
.sec-head h2{font-family:'Source Serif 4',serif;font-weight:500;font-size:clamp(1.9rem,3.5vw,2.8rem);line-height:1.12;margin-top:1rem;letter-spacing:-.01em}

/* about */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}
.about-grid .body p{color:var(--soft);font-size:1.06rem;margin-bottom:1.3rem}
.principles{list-style:none;margin-top:2rem;display:grid;gap:1.1rem}
.principles li{display:flex;gap:.9rem;align-items:flex-start;font-size:1rem}
.principles li svg{width:20px;height:20px;stroke:var(--red);fill:none;stroke-width:2;flex-shrink:0;margin-top:3px}
.principles li b{font-weight:600}

/* services cards */
.services{background:var(--alt)}
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:56px}
.card{background:#fff;border:1px solid var(--line);padding:38px 36px 34px;transition:.28s;position:relative;overflow:hidden}
.card::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--red);transition:width .35s}
.card:hover{transform:translateY(-4px);box-shadow:0 30px 50px -34px rgba(0,0,0,.4);border-color:#d9d3c6}
.card:hover::before{width:100%}
.card .ic{width:40px;height:40px;color:var(--red);margin-bottom:22px}
.card .ic svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.3}
.card h3{font-family:'Source Serif 4',serif;font-weight:500;font-size:1.45rem}
.card p{color:var(--soft);font-size:.98rem;margin:.7rem 0 1.4rem}
.card .more{font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--red);display:inline-flex;align-items:center;gap:.5rem}
.card .more svg{width:14px;height:14px;transition:.2s}
.card:hover .more svg{transform:translateX(4px)}

/* experience */
.exp-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center}
.exp-media img{width:100%;height:520px;object-fit:cover}
.exp-block{margin-bottom:38px}
.exp-block:last-child{margin-bottom:0}
.exp-block .lab{font-size:.74rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--red)}
.exp-block h3{font-family:'Source Serif 4',serif;font-weight:500;font-size:1.5rem;margin:.5rem 0 .8rem}
.exp-block p{color:var(--soft);margin-bottom:1rem}
.exp-block ul{list-style:none;display:grid;gap:.7rem}
.exp-block li{display:flex;gap:.7rem;align-items:flex-start;color:var(--ink);font-size:.97rem}
.exp-block li svg{width:17px;height:17px;stroke:var(--red);fill:none;stroke-width:2;flex-shrink:0;margin-top:4px}

/* careers band */
.band{position:relative;padding:120px 0;color:#fff;text-align:center}
.band .bgimg{position:absolute;inset:0;z-index:0}
.band .bgimg img{width:100%;height:100%;object-fit:cover}
.band .ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,22,15,.78),rgba(23,22,15,.88));z-index:1}
.band .inner{position:relative;z-index:2;max-width:640px;margin:0 auto}
.band .kicker{color:var(--red-2)}
.band h2{font-family:'Source Serif 4',serif;font-weight:500;font-size:clamp(1.9rem,3.4vw,2.7rem);margin:1rem 0 1.2rem;line-height:1.14}
.band p{color:rgba(255,255,255,.8);font-size:1.08rem;margin-bottom:2.2rem}

/* ---- interior pages ---- */
.page-banner{background:var(--alt);border-bottom:1px solid var(--line);padding:64px 0 58px}
.page-banner .crumbs{font-size:.78rem;letter-spacing:.05em;color:var(--soft);margin-bottom:14px}
.page-banner .crumbs a:hover{color:var(--red)}
.page-banner h1{font-family:'Source Serif 4',serif;font-weight:500;font-size:clamp(2.1rem,4vw,3.1rem);line-height:1.08;letter-spacing:-.01em}
.page-banner p{color:var(--soft);max-width:620px;margin-top:16px;font-size:1.08rem}

.prose{max-width:760px}
.prose p{color:var(--soft);font-size:1.07rem;margin-bottom:1.4rem}
.prose h2{font-family:'Source Serif 4',serif;font-weight:500;font-size:1.9rem;margin:2.4rem 0 1rem;line-height:1.16}
.prose h3{font-family:'Source Serif 4',serif;font-weight:500;font-size:1.35rem;margin:2rem 0 .8rem}
.prose ul{margin:0 0 1.4rem 0;list-style:none;display:grid;gap:.7rem}
.prose ul li{display:flex;gap:.7rem;align-items:flex-start;color:var(--ink)}
.prose ul li::before{content:"";width:16px;height:16px;flex-shrink:0;margin-top:6px;background:var(--red);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12l4 4L19 6' fill='none' stroke='black' stroke-width='2.5'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12l4 4L19 6' fill='none' stroke='black' stroke-width='2.5'/%3E%3C/svg%3E") center/contain no-repeat}
.prose a{color:var(--red);border-bottom:1px solid rgba(216,0,11,.35)}

/* service detail blocks */
.svc-detail{display:grid;grid-template-columns:64px 1fr;gap:30px;padding:44px 0;border-top:1px solid var(--line)}
.svc-detail:last-child{border-bottom:1px solid var(--line)}
.svc-detail .n{font-family:'Source Serif 4',serif;font-size:2rem;color:var(--red);line-height:1}
.svc-detail h2{font-family:'Source Serif 4',serif;font-weight:500;font-size:1.7rem;margin-bottom:6px}
.svc-detail .tag{color:var(--ink);font-weight:600;margin-bottom:14px}
.svc-detail p{color:var(--soft);margin-bottom:1rem}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:70px;align-items:start}
.contact-info .item{margin-bottom:28px}
.contact-info .item .l{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:6px}
.contact-info .item .v{font-size:1.05rem}
.contact-info .item .v a:hover{color:var(--red)}
form.cform .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
form.cform label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);margin:0 0 7px}
form.cform input,form.cform textarea{width:100%;font-family:inherit;font-size:1rem;color:var(--ink);background:#fff;border:1px solid var(--line);padding:13px 15px;margin-bottom:18px;transition:border-color .2s}
form.cform input:focus,form.cform textarea:focus{outline:none;border-color:var(--red)}
form.cform textarea{min-height:150px;resize:vertical}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{padding:14px 16px;margin-bottom:20px;font-size:.95rem;border-left:3px solid}
.form-note.ok{background:#F0F7F0;border-color:#2E7D32;color:#1E5620}
.form-note.err{background:#FCF0F0;border-color:var(--red);color:#8A0007}

/* footer */
.site-footer{background:var(--dark);color:#fff;padding:90px 0 42px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:50px;padding-bottom:56px;border-bottom:1px solid rgba(255,255,255,.12)}
.foot-brand .flogo{height:50px;width:auto;margin-bottom:18px}
.foot-brand p{color:rgba(255,255,255,.58);font-size:.95rem;max-width:300px}
.foot-col h4{font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--red-2);margin-bottom:1.3rem}
.foot-col a,.foot-col p.fp{display:block;color:rgba(255,255,255,.72);font-size:.94rem;margin-bottom:.7rem;transition:.2s}
.foot-col a:hover{color:var(--red-2)}
.foot-bottom{display:flex;justify-content:space-between;padding-top:26px;color:rgba(255,255,255,.4);font-size:.82rem;flex-wrap:wrap;gap:10px}
.foot-bottom a:hover{color:var(--red-2)}

/* reveal */
.fade{opacity:0;transform:translateY(20px);animation:fade .9s ease forwards}
@keyframes fade{to{opacity:1;transform:none}}

/* responsive */
@media(max-width:920px){
  .wrap{padding:0 24px}
  .nav-r{gap:1rem}
  .menu ul{position:fixed;inset:90px 0 auto 0;flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--line);transform:translateY(-140%);transition:transform .35s}
  .menu ul.open{transform:none}
  .menu li{width:100%;text-align:center;border-top:1px solid var(--line)}
  .menu a{display:block;padding:1.1rem}
  .burger{display:flex}
  .hero-grid,.about-grid,.exp-grid,.contact-grid{grid-template-columns:1fr;gap:40px}
  .slider,.slide img{height:420px}
  .exp-media{order:-1}.exp-media img{height:340px}
  .svc-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr;gap:36px}
  .sec{padding:74px 0}
  form.cform .row{grid-template-columns:1fr}
  .svc-detail{grid-template-columns:1fr;gap:10px}
}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}.fade{opacity:1;transform:none}.slide{transition:none}}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}

/* group / divisions additions */
.svc-grid.cols3{grid-template-columns:repeat(3,1fr)}
a.card{display:block;color:inherit}
.divisions-nav{display:flex;flex-wrap:wrap;gap:14px;margin-top:20px}
.divisions-nav a{display:inline-flex;align-items:center;gap:.5rem;font-family:'Source Serif 4',serif;font-size:1.05rem;
  color:var(--ink);background:#fff;border:1px solid var(--line);padding:12px 20px;transition:.25s}
.divisions-nav a:hover{border-color:var(--red);color:var(--red)}
.divisions-nav a svg{width:15px;height:15px;stroke:currentColor;fill:none}
@media(max-width:920px){.svc-grid.cols3{grid-template-columns:1fr}}
@media(min-width:921px) and (max-width:1100px){.svc-grid.cols3{grid-template-columns:repeat(2,1fr)}}

/* wide top nav (divisions promoted) */
.menu ul{gap:1.3rem}
.menu a{font-size:.82rem}
.nav-r{gap:1.6rem}
@media(max-width:1280px){
  .menu ul{position:fixed;inset:90px 0 auto 0;flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--line);transform:translateY(-140%);transition:transform .35s;z-index:80}
  .menu ul.open{transform:none}
  .menu li{width:100%;text-align:center;border-top:1px solid var(--line)}
  .menu a{display:block;padding:1.1rem;font-size:.95rem}
  .burger{display:flex}
}

/* feature image + placeholder on division pages */
.img-ph{display:flex;align-items:center;justify-content:center;text-align:center;background:var(--alt);
  border:2px dashed #cdbfae;color:var(--soft);height:480px;font-size:.95rem;line-height:1.7;padding:24px}
.img-ph strong{color:var(--ink);font-weight:600;font-size:1.05rem}
.feature-img{width:100%;height:480px;object-fit:cover}
@media(max-width:920px){.img-ph,.feature-img{height:300px}}

/* small-screen header: keep logo, Contact button and menu button from overlapping */
@media(max-width:600px){
  .logo{height:40px}
  .nav-r{gap:12px}
  .nav-r .btn-solid{padding:.7rem 1.05rem;font-size:.82rem}
  .strip-in{flex-direction:column;align-items:flex-start;gap:14px}
  .practices span{padding:0 14px 0 0}
  .practices span+span::before{display:none}
}
@media(max-width:400px){
  .logo{height:34px}
  .wrap{padding:0 16px}
  .menu ul{inset:74px 0 auto 0}
  .nav{height:74px}
  .nav-r .btn-solid{padding:.6rem .85rem;font-size:.78rem}
}

/* mobile header: only logo + hamburger; Contact moves into the menu */
.nav-contact{display:none}
@media(max-width:1280px){
  .nav-r .btn-solid{display:none}
  .nav-contact{display:block}
}