:root{
    --cream:#F3EFE6;
    --warm-white:#FBF9F4;
    --taupe:#C9BEA9;
    --charcoal:#20261F;
    --brass:#738877;
    --brass-light:#9CAC92;
    --terracotta:#5C7362;
    --line: rgba(32,38,31,0.13);
  }

  *{margin:0;padding:0;box-sizing:border-box;}

  html{scroll-behavior:smooth;}

  body{
    background:var(--cream);
    color:var(--charcoal);
    font-family:'Manrope', sans-serif;
    font-weight:400;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  h1,h2,h3,.serif{
    font-family:'Fraunces', serif;
    font-weight:500;
    letter-spacing:-0.01em;
  }

  a{color:inherit;text-decoration:none;}
  img{display:block;max-width:100%;}

  .eyebrow{
    font-family:'Manrope',sans-serif;
    font-size:0.72rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--brass);
    font-weight:600;
  }

  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 32px;
  }

  /* ---------- NAV ---------- */
  header.nav{
    position:fixed;
    top:0;left:0;right:0;
    z-index:100;
    padding:22px 32px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
  }
  header.nav.scrolled{
    background:rgba(251,248,243,0.92);
    backdrop-filter:blur(10px);
    padding:14px 32px;
    box-shadow:0 1px 0 var(--line);
  }
  .logo{
    display:flex;
    align-items:center;
  }
  .logo img{
    height:34px;
    width:auto;
    border-radius:2px;
    transition:height .4s ease;
  }
  header.nav.scrolled .logo img{height:28px;}
  .nav-cta{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:var(--brass);
    color:var(--warm-white);
    padding:10px 20px;
    border-radius:2px;
    font-size:0.82rem;
    font-weight:600;
    letter-spacing:0.02em;
    transition:background .25s ease, transform .25s ease;
  }
  .nav-cta:hover{background:var(--terracotta);transform:translateY(-1px);}
  .nav-cta svg{width:16px;height:16px;}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    height:100vh;
    min-height:620px;
    display:flex;
    align-items:flex-end;
    background:#181d16;
  }
  .hero img,
  .hero video{
    position:absolute;inset:0;
    width:100%;height:100%;
    object-fit:cover;
    object-position:center 60%;
    opacity:0.92;
  }
  .hero::after{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(24,29,23,0.18) 0%, rgba(24,29,23,0.18) 30%, rgba(18,22,17,0.90) 100%);
  }
  .hero-content{
    position:relative;
    z-index:2;
    color:var(--warm-white);
    padding:0 32px 90px;
    max-width:900px;
    margin:0 auto;
    width:100%;
  }
  .hero-eyebrow{
    color:var(--brass-light);
    font-size:0.75rem;
    letter-spacing:0.24em;
    text-transform:uppercase;
    font-weight:600;
    margin-bottom:22px;
    display:block;
  }
  .hero h1{
    font-size:clamp(2.4rem, 5.6vw, 4.4rem);
    font-weight:400;
    line-height:1.06;
    max-width:820px;
  }
  .hero h1 em{
    font-style:italic;
    color:var(--brass-light);
  }
  .hero p{
    margin-top:24px;
    font-size:1.08rem;
    max-width:520px;
    color:rgba(251,248,243,0.82);
    font-weight:300;
  }
  .hero-actions{
    margin-top:38px;
    display:flex;
    align-items:center;
    gap:22px;
    flex-wrap:wrap;
  }
  .btn-primary{
    display:inline-flex;
    align-items:center;
    gap:10px;
    background:var(--brass);
    color:var(--warm-white);
    padding:16px 30px;
    font-size:0.95rem;
    font-weight:600;
    border-radius:2px;
    transition:background .25s ease, transform .25s ease;
  }
  .btn-primary:hover{background:var(--terracotta);transform:translateY(-2px);}
  .btn-primary svg{width:19px;height:19px;flex-shrink:0;}
  .hero-note{
    font-size:0.82rem;
    color:rgba(251,248,243,0.65);
  }

  .scroll-cue{
    position:absolute;
    bottom:28px; left:50%;
    transform:translateX(-50%);
    z-index:2;
    width:1px; height:46px;
    background:linear-gradient(180deg, rgba(251,248,243,0.7), transparent);
  }

  /* ---------- SECTION GENERIC ---------- */
  section{
    padding:110px 0;
    position:relative;
  }
  .section-head{
    max-width:640px;
    margin-bottom:64px;
  }
  .section-head h2{
    font-size:clamp(1.8rem, 3.4vw, 2.7rem);
    font-weight:400;
    line-height:1.18;
    margin-top:16px;
  }
  .section-head p{
    margin-top:18px;
    font-size:1.02rem;
    color:rgba(34,31,26,0.68);
    max-width:520px;
  }

  .reveal{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .8s cubic-bezier(.16,.8,.3,1), transform .8s cubic-bezier(.16,.8,.3,1);
  }
  .reveal.in{opacity:1;transform:none;}

  /* ---------- PAIN SECTION ---------- */
  .pain{
    background:var(--charcoal);
    color:var(--warm-white);
  }
  .pain .eyebrow{color:var(--brass-light);}
  .pain .section-head p{color:rgba(251,248,243,0.6);}
  .pain-grid{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:60px;
    align-items:start;
  }
  .pain-list{
    list-style:none;
  }
  .pain-list li{
    padding:26px 0;
    border-top:1px solid rgba(251,248,243,0.14);
    display:flex;
    gap:20px;
    font-size:1.06rem;
    font-weight:300;
    color:rgba(251,248,243,0.88);
  }
  .pain-list li:last-child{border-bottom:1px solid rgba(251,248,243,0.14);}
  .pain-list li span.mark{
    font-family:'Fraunces',serif;
    font-style:italic;
    color:var(--brass-light);
    font-size:1.3rem;
    flex-shrink:0;
    line-height:1.2;
  }
  .pain-answer{
    background:rgba(251,248,243,0.05);
    border:1px solid rgba(251,248,243,0.14);
    padding:40px 36px;
    border-radius:2px;
  }
  .pain-answer p.serif{
    font-size:1.4rem;
    font-weight:400;
    line-height:1.4;
    color:var(--warm-white);
  }
  .pain-answer p.serif em{color:var(--brass-light);font-style:italic;}
  .pain-answer .small{
    margin-top:20px;
    font-size:0.92rem;
    color:rgba(251,248,243,0.6);
    font-weight:300;
  }

  /* ---------- ABOUT / FOUNDER ---------- */
  .about{
    background:var(--warm-white);
  }
  .about-grid{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:70px;
    align-items:center;
  }
  .about-mark{
    border-radius:2px;
    overflow:hidden;
    aspect-ratio:3/4;
    position:relative;
  }
  .about-mark img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 20%;
  }
  .about-text .eyebrow{display:block;margin-bottom:18px;}
  .about-text h2{
    font-size:clamp(1.7rem, 3vw, 2.3rem);
    font-weight:400;
    line-height:1.24;
    margin-bottom:26px;
  }
  .about-text p{
    font-size:1.02rem;
    color:rgba(32,38,31,0.7);
    max-width:520px;
    margin-bottom:16px;
  }
  .about-signature{
    margin-top:26px;
    font-family:'Fraunces',serif;
    font-style:italic;
    font-size:1.15rem;
    color:var(--brass);
  }
  .about-role{
    display:block;
    font-family:'Manrope',sans-serif;
    font-style:normal;
    font-size:0.8rem;
    letter-spacing:0.06em;
    color:rgba(32,38,31,0.55);
    margin-top:4px;
  }

  @media (max-width:860px){
    .about-grid{grid-template-columns:1fr;gap:36px;}
    .about-mark{aspect-ratio:4/5;}
  }


  .process{
    background:var(--cream);
  }
  .process-inner{
    position:relative;
  }
  .plan-line{
    position:absolute;
    left:22px;
    top:8px;
    bottom:8px;
    width:1px;
    background:var(--taupe);
  }
  .stage{
    position:relative;
    padding-left:64px;
    padding-bottom:64px;
  }
  .stage:last-child{padding-bottom:0;}
  .stage-tick{
    position:absolute;
    left:14px;
    top:2px;
    width:17px;height:17px;
    border-radius:50%;
    background:var(--warm-white);
    border:1.5px solid var(--brass);
  }
  .stage-tick::after{
    content:"";
    position:absolute;
    inset:4px;
    border-radius:50%;
    background:var(--brass);
  }
  .stage-label{
    font-family:'Manrope',sans-serif;
    font-size:0.72rem;
    letter-spacing:0.2em;
    text-transform:uppercase;
    color:var(--brass);
    font-weight:700;
  }
  .stage h3{
    font-size:1.5rem;
    font-weight:500;
    margin-top:8px;
    margin-bottom:10px;
  }
  .stage p{
    color:rgba(34,31,26,0.66);
    max-width:520px;
    font-size:1rem;
  }

  /* ---------- PORTFOLIO ---------- */
  .portfolio{background:var(--warm-white);}
  .gallery{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    grid-auto-rows:14vw;
    gap:14px;
  }
  .gallery figure{
    overflow:hidden;
    position:relative;
    border-radius:2px;
  }
  .gallery img{
    width:100%;height:100%;
    object-fit:cover;
    transition:transform .7s cubic-bezier(.16,.8,.3,1);
  }
  .gallery figure:hover img{transform:scale(1.06);}
  .gallery figcaption{
    position:absolute;
    bottom:0;left:0;right:0;
    padding:16px 18px;
    background:linear-gradient(0deg, rgba(18,22,17,0.75), transparent);
    color:var(--warm-white);
    font-size:0.78rem;
    letter-spacing:0.05em;
    opacity:0;
    transition:opacity .3s ease;
  }
  .gallery figure:hover figcaption{opacity:1;}

  .g1{grid-column:1/4; grid-row:1/3;}
  .g2{grid-column:4/7; grid-row:1/2;}
  .g3{grid-column:4/5; grid-row:2/3;}
  .g4{grid-column:5/7; grid-row:2/3;}
  .g5{grid-column:1/3; grid-row:3/4;}
  .g6{grid-column:3/7; grid-row:3/5;}

  /* ---------- VALUE PROPS ---------- */
  .values{
    background:var(--cream);
  }
  .value-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .value-item{
    background:var(--cream);
    padding:44px 38px;
  }
  .value-item .num{
    font-family:'Fraunces',serif;
    font-style:italic;
    font-size:2.6rem;
    color:var(--taupe);
    line-height:1;
  }
  .value-item h3{
    font-size:1.28rem;
    font-weight:500;
    margin-top:20px;
    margin-bottom:12px;
  }
  .value-item p{
    font-size:0.96rem;
    color:rgba(34,31,26,0.64);
  }

  /* ---------- FINAL CTA ---------- */
  .final-cta{
    position:relative;
    padding:0;
    min-height:560px;
    display:flex;
    align-items:center;
    background:#181d16;
  }
  .final-cta img{
    position:absolute;inset:0;
    width:100%;height:100%;
    object-fit:cover;
    opacity:0.55;
  }
  .final-cta::after{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(90deg, rgba(18,22,17,0.93) 0%, rgba(18,22,17,0.58) 60%, rgba(18,22,17,0.36) 100%);
  }
  .final-cta-inner{
    position:relative;
    z-index:2;
    padding:100px 32px;
    max-width:1180px;
    margin:0 auto;
    width:100%;
  }
  .final-cta-inner .box{max-width:560px;}
  .final-cta h2{
    color:var(--warm-white);
    font-size:clamp(2rem, 4vw, 3rem);
    font-weight:400;
    line-height:1.14;
  }
  .final-cta p{
    color:rgba(251,248,243,0.78);
    margin-top:20px;
    font-size:1.05rem;
    font-weight:300;
    max-width:460px;
  }
  .final-cta .btn-primary{margin-top:34px;}

  /* ---------- FOOTER ---------- */
  footer{
    background:var(--charcoal);
    color:rgba(251,248,243,0.55);
    padding:40px 32px;
    font-size:0.82rem;
  }
  .footer-inner{
    max-width:1180px;
    margin:0 auto;
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:16px;
  }
  footer .logo img{height:26px;opacity:0.92;}
  footer a:hover{color:var(--brass-light);}

  /* ---------- FLOATING WHATSAPP ---------- */
  .float-wa{
    position:fixed;
    right:22px; bottom:22px;
    z-index:200;
    width:58px;height:58px;
    border-radius:50%;
    background:var(--brass);
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 8px 24px rgba(0,0,0,0.28);
    transition:transform .25s ease, background .25s ease;
  }
  .float-wa:hover{transform:scale(1.07);background:var(--terracotta);}
  .float-wa svg{width:27px;height:27px;color:var(--warm-white);}

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:860px){
    .wrap{padding:0 22px;}
    section{padding:76px 0;}
    .pain-grid{grid-template-columns:1fr;gap:40px;}
    .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:52vw;}
    .g1{grid-column:1/3;grid-row:1/2;}
    .g2{grid-column:1/2;grid-row:2/3;}
    .g3{grid-column:2/3;grid-row:2/3;}
    .g4{grid-column:1/2;grid-row:3/4;}
    .g5{grid-column:2/3;grid-row:3/4;}
    .g6{grid-column:1/3;grid-row:4/5;}
    .value-grid{grid-template-columns:1fr;}
    .final-cta-inner{padding:80px 22px;}
    .hero-content{padding:0 22px 64px;}
  }

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .reveal{opacity:1;transform:none;transition:none;}
    .gallery img{transition:none;}
  }


  /* ---------- PROJECT FOLDERS ---------- */
  .project-section-head{max-width:720px;}
  .project-section-head p{max-width:610px;}

  .project-tabs{
    display:flex;
    gap:10px;
    margin:0 0 44px;
    padding-bottom:16px;
    border-bottom:1px solid var(--line);
    flex-wrap:wrap;
  }
  .project-tab{
    appearance:none;
    border:1px solid var(--line);
    background:transparent;
    color:rgba(32,38,31,.66);
    padding:12px 20px;
    border-radius:2px;
    font-family:'Manrope',sans-serif;
    font-size:.82rem;
    font-weight:600;
    letter-spacing:.04em;
    cursor:pointer;
    transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease;
  }
  .project-tab:hover{
    color:var(--charcoal);
    border-color:rgba(32,38,31,.28);
    transform:translateY(-1px);
  }
  .project-tab.active{
    background:var(--brass);
    border-color:var(--brass);
    color:var(--warm-white);
  }
  .project-category[hidden]{display:none!important;}
  .project-empty{
    min-height:260px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:54px 24px;
  }
  .project-empty-inner{max-width:540px;}
  .project-empty h3{
    font-size:clamp(1.45rem,2.8vw,2rem);
    font-weight:400;
    margin:10px 0 12px;
  }
  .project-empty p{
    color:rgba(32,38,31,.62);
    font-size:.96rem;
  }

  .project-folders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;}
  .project-folder{appearance:none;border:0;background:transparent;padding:0;text-align:left;color:inherit;cursor:pointer;width:100%;font:inherit;}
  .project-folder-cover{position:relative;overflow:hidden;aspect-ratio:4/3;background:#d7d2c8;}
  .project-folder-cover img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,.8,.3,1);}
  .project-folder-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,22,17,0.02),rgba(18,22,17,.48));opacity:.55;transition:opacity .35s ease;}
  .project-folder-action{position:absolute;right:22px;bottom:20px;color:#fff;font-size:.82rem;font-weight:600;letter-spacing:.03em;display:flex;gap:8px;align-items:center;transform:translateY(4px);transition:transform .35s ease;}
  .project-folder:hover .project-folder-cover img{transform:scale(1.035);}
  .project-folder:hover .project-folder-overlay{opacity:.8;}
  .project-folder:hover .project-folder-action{transform:none;}
  .project-folder-info{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding-top:18px;border-top:1px solid var(--line);margin-top:12px;}
  .project-type{font-size:.69rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);font-weight:700;}
  .project-folder-info h3{font-size:1.42rem;line-height:1.2;font-weight:500;margin-top:5px;}
  .project-folder-info h3 em{font-weight:400;color:rgba(32,38,31,.62);}
  .project-count{font-size:.78rem;color:rgba(32,38,31,.5);white-space:nowrap;padding-bottom:3px;}

  .project-modal{position:fixed;inset:0;z-index:500;background:rgba(18,22,17,.96);overflow:auto;color:var(--warm-white);}
  .project-modal[hidden],.lightbox[hidden]{display:none;}
  .project-modal-shell{max-width:1280px;margin:0 auto;padding:42px 32px 80px;}
  .project-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;margin-bottom:34px;position:sticky;top:0;z-index:2;padding:16px 0 22px;background:linear-gradient(180deg,rgba(18,22,17,1) 70%,rgba(18,22,17,0));}
  .project-modal-head .eyebrow{color:var(--brass-light);}
  .project-modal-head h2{font-size:clamp(2rem,4vw,3.4rem);font-weight:400;line-height:1.05;margin-top:10px;}
  .project-modal-head h2 em{font-style:italic;color:var(--brass-light);}
  .project-close,.lightbox-close{appearance:none;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.05);color:#fff;width:48px;height:48px;border-radius:50%;font-size:2rem;line-height:1;cursor:pointer;flex:0 0 auto;transition:background .2s ease,border-color .2s ease;}
  .project-close:hover,.lightbox-close:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.45);}
  .project-gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;}
  .project-photo{appearance:none;border:0;padding:0;cursor:zoom-in;overflow:hidden;background:#222;grid-column:span 6;min-height:280px;}
  .project-photo:nth-child(3n+1){grid-column:span 7;}
  .project-photo:nth-child(3n+2){grid-column:span 5;}
  .project-photo:nth-child(5n){grid-column:span 12;}
  .project-photo img{width:100%;height:100%;min-height:280px;max-height:720px;object-fit:cover;transition:transform .6s ease;}
  .project-photo:hover img{transform:scale(1.015);}

  .project-gallery-editorial{align-items:start;}
  .project-story{grid-column:span 12;display:grid;grid-template-columns:3fr 7fr;gap:52px;padding:82px 0 88px;border-top:1px solid rgba(251,248,243,.16);border-bottom:1px solid rgba(251,248,243,.16);margin:40px 0;}
  .project-story-kicker{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-light);font-weight:700;padding-top:7px;}
  .project-story h3{font-size:clamp(1.75rem,3vw,2.7rem);font-weight:400;line-height:1.16;max-width:760px;}
  .project-story-copy{grid-column:2;max-width:760px;margin-top:-18px;}
  .project-story-copy p{font-size:1.02rem;line-height:1.85;color:rgba(251,248,243,.74);margin-top:18px;font-weight:300;}
  .project-story-copy strong{color:var(--warm-white);font-weight:500;}
  .project-statement{grid-column:span 12;margin:72px 0;padding:84px 7vw;text-align:center;border-top:1px solid rgba(251,248,243,.14);border-bottom:1px solid rgba(251,248,243,.14);}
  .project-statement span{display:block;max-width:900px;margin:0 auto;font-family:'Fraunces',serif;font-size:clamp(2rem,4.4vw,4rem);font-style:italic;font-weight:400;line-height:1.14;color:var(--warm-white);}
  .project-statement span::first-letter{color:var(--brass-light);}
  .project-executed-divider{grid-column:span 12;margin:68px 0 26px;padding-top:54px;border-top:1px solid rgba(251,248,243,.16);text-align:center;}
  .project-executed-divider span{font-family:'Fraunces',serif;font-size:clamp(2rem,4vw,3.5rem);font-weight:400;color:var(--warm-white);}

  .lightbox{position:fixed;inset:0;z-index:700;background:rgba(8,10,8,.98);display:flex;align-items:center;justify-content:center;padding:42px 76px;}
  .lightbox-img{max-width:calc(100vw - 150px);max-height:calc(100vh - 90px);width:auto;height:auto;object-fit:contain;}
  .lightbox-close{position:absolute;top:24px;right:28px;z-index:2;}
  .lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);appearance:none;border:0;background:transparent;color:#fff;font-size:4rem;font-weight:200;cursor:pointer;opacity:.72;padding:20px;}
  .lightbox-nav:hover{opacity:1;}
  .lightbox-prev{left:10px;}.lightbox-next{right:10px;}
  .lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-size:.78rem;letter-spacing:.12em;color:rgba(255,255,255,.65);}
  body.modal-open{overflow:hidden;}

  @media(max-width:860px){

    .project-tabs{gap:8px;margin-bottom:32px;}
    .project-tab{flex:1 1 180px;text-align:center;padding:11px 14px;}
    .project-folders{grid-template-columns:1fr;}
    .project-folder-info{align-items:flex-start;}
    .project-modal-shell{padding:20px 16px 56px;}
    .project-modal-head{padding-top:8px;}
    .project-gallery{grid-template-columns:1fr;gap:10px;}
    .project-photo,.project-photo:nth-child(n){grid-column:1;min-height:0;}
    .project-photo img{min-height:0;max-height:none;}
    .project-story{grid-column:1;grid-template-columns:1fr;gap:18px;padding:52px 0 56px;margin:28px 0;}
    .project-story-copy{grid-column:1;margin-top:0;}
    .project-story-copy p{font-size:.96rem;line-height:1.75;}
    .project-statement{grid-column:1;margin:42px 0;padding:56px 8px;}
    .project-executed-divider{grid-column:1;margin:42px 0 18px;padding-top:42px;}
    .lightbox{padding:64px 14px;}
    .lightbox-img{max-width:100%;max-height:calc(100vh - 128px);}
    .lightbox-nav{font-size:3rem;padding:8px;}
    .lightbox-prev{left:0}.lightbox-next{right:0}
  }


/* ---------- CONTACT ---------- */
.contact{
  background:var(--warm-white);
  padding:100px 0;
}
.contact-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:70px;
  align-items:start;
}
.contact h2{
  font-size:clamp(2rem,4vw,3rem);
  font-weight:400;
  line-height:1.14;
  margin-top:14px;
  max-width:560px;
}
.contact-copy{
  margin-top:20px;
  color:rgba(32,38,31,.66);
  max-width:520px;
  font-size:1rem;
}
.contact-details{
  display:grid;
  gap:0;
  border-top:1px solid var(--line);
}
.contact-item{
  padding:22px 0;
  border-bottom:1px solid var(--line);
}
.contact-label{
  display:block;
  font-size:.7rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--brass);
  font-weight:700;
  margin-bottom:7px;
}
.contact-link,
.contact-address{
  font-family:'Fraunces',serif;
  font-size:1.2rem;
  line-height:1.4;
}
.contact-link:hover,
.contact-address:hover{color:var(--brass);}
.contact-note{
  display:block;
  margin-top:4px;
  font-size:.82rem;
  color:rgba(32,38,31,.52);
  font-family:'Manrope',sans-serif;
}
@media (max-width:860px){
  .contact{padding:76px 0;}
  .contact-grid{grid-template-columns:1fr;gap:38px;}
}




/* ---------- HEADER + FOOTER BRAND COLORS ---------- */
header,
.site-header,
.navbar {
  background:#77877A !important;
}

footer,
.site-footer,
footer::before,
footer::after,
.site-footer::before,
.site-footer::after,
footer .footer-inner,
.site-footer .footer-inner {
  background-color:#738878 !important;
  background-image:none !important;
}

footer .logo img,
.site-footer .logo img {
  opacity:1 !important;
  filter:none !important;
  mix-blend-mode:normal !important;
}


/* ---------- TESTIMONIALS ---------- */
.testimonials{
  background:var(--cream);
  padding:110px 0;
}
.testimonials .section-head{
  max-width:700px;
  margin-bottom:48px;
}
.testimonials-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:18px;
}
.testimonial-card{
  position:relative;
  overflow:hidden;
  background:var(--warm-white);
  border:1px solid var(--line);
  min-height:340px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.testimonial-card.video{grid-column:span 7;min-height:430px;}
.testimonial-card.print{grid-column:span 5;}
.testimonial-card.print.wide{grid-column:span 6;}
.testimonial-placeholder{
  width:100%;
  height:100%;
  min-height:inherit;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:34px;
  color:rgba(32,38,31,.5);
  background:
    linear-gradient(180deg,rgba(251,249,244,.45),rgba(251,249,244,.92));
}
.testimonial-placeholder .type{
  display:block;
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--brass);
  margin-bottom:10px;
}
.testimonial-placeholder strong{
  font-family:'Fraunces',serif;
  font-size:1.25rem;
  font-weight:400;
  color:rgba(32,38,31,.68);
}
.testimonials-note{
  margin-top:26px;
  font-size:.84rem;
  color:rgba(32,38,31,.5);
}
@media (max-width:860px){
  .testimonials{padding:76px 0;}
  .testimonials-grid{grid-template-columns:1fr;}
  .testimonial-card.video,
  .testimonial-card.print,
  .testimonial-card.print.wide{
    grid-column:auto;
    min-height:320px;
  }
}


/* ---------- TESTIMONIAL VIDEO ---------- */
.testimonial-video-card{
  background:#111;
}
.testimonial-video{
  width:100%;
  height:100%;
  min-height:430px;
  display:block;
  object-fit:cover;
  background:#111;
}
@media (max-width:860px){
  .testimonial-video{min-height:320px;}
}


/* ---------- COMPACT TESTIMONIAL VIDEOS ---------- */
.testimonials-grid{
  align-items:start;
}
.testimonial-card.video.compact{
  grid-column:span 4;
  min-height:0;
  aspect-ratio:9/12;
  background:#111;
}
.testimonial-video-open{
  position:relative;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:#111;
  cursor:pointer;
  overflow:hidden;
}
.testimonial-video-preview{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.testimonial-video-open::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.5));
}
.testimonial-play{
  position:absolute;
  z-index:2;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:58px;
  height:58px;
  border-radius:50%;
  display:grid;
  place-items:center;
  padding-left:4px;
  background:rgba(255,255,255,.9);
  color:#20261f;
  font-size:18px;
}
.testimonial-expand{
  position:absolute;
  z-index:2;
  left:20px;
  bottom:18px;
  color:#fff;
  font-size:.75rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:600;
}
.testimonial-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(17,20,17,.92);
  display:grid;
  place-items:center;
  padding:34px;
}
.testimonial-lightbox[hidden]{display:none!important;}
.testimonial-lightbox-inner{
  width:min(92vw,560px);
  max-height:88vh;
}
.testimonial-lightbox-video{
  display:block;
  width:100%;
  max-height:88vh;
  background:#000;
  object-fit:contain;
}
.testimonial-lightbox-close{
  position:fixed;
  top:22px;
  right:26px;
  z-index:10000;
  border:0;
  background:transparent;
  color:#fff;
  font-size:2.2rem;
  cursor:pointer;
}
@media (max-width:860px){
  .testimonial-card.video.compact{
    grid-column:auto;
    width:min(78vw,360px);
    justify-self:center;
    aspect-ratio:9/12;
    min-height:0;
  }
  .testimonial-lightbox{padding:18px;}
}


/* ---------- TESTIMONIAL PREVIEW FRAMES ---------- */
.testimonial-video-preview{
  transition:transform .45s ease,filter .45s ease;
}
.testimonial-video-open:hover .testimonial-video-preview{
  transform:scale(1.025);
  filter:brightness(.92);
}


/* ---------- TESTIMONIAL PRINT ---------- */
.testimonial-print-card{
  overflow:hidden;
  background:#f2f0eb;
}
.testimonial-print-open{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  overflow:hidden;
}
.testimonial-print-open img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:top center;
  transition:transform .45s ease, filter .45s ease;
}
.testimonial-print-open:hover img{
  transform:scale(1.02);
  filter:brightness(.94);
}
.testimonial-image-lightbox{
  position:fixed;
  inset:0;
  z-index:10001;
  background:rgba(17,20,17,.94);
  display:grid;
  place-items:center;
  padding:34px;
}
.testimonial-image-lightbox[hidden]{display:none!important;}
.testimonial-image-lightbox img{
  display:block;
  max-width:min(92vw,720px);
  max-height:90vh;
  width:auto;
  height:auto;
  object-fit:contain;
}
.testimonial-image-close{
  position:fixed;
  top:22px;
  right:26px;
  z-index:10002;
  border:0;
  background:transparent;
  color:#fff;
  font-size:2.2rem;
  cursor:pointer;
}
