:root{
    --milk:#FEFCFF;
    --charcoal:#111111;
    --grey:#6B6B6B;
    --coral:#E8A0A4;
    --coral-deep:#D7787D;
    --border:#ECECEC;
    --radius:20px;
    --container:1240px;
    --ease:cubic-bezier(.22,.68,0,1);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter',sans-serif;
    background:var(--milk);
    color:var(--charcoal);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,h4{
    font-family:'Plus Jakarta Sans',sans-serif;
    color:var(--charcoal);
    line-height:1.15;
    letter-spacing:-0.02em;
    font-weight:700;
  }
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  ul{list-style:none;}
  .container{max-width:var(--container);margin:0 auto;padding:0 32px;}
  section{position:relative;}
  ::selection{background:var(--coral);color:#fff;}

  .eyebrow{
    display:inline-flex;align-items:center;gap:10px;
    font-size:12px;font-weight:600;letter-spacing:3px;text-transform:uppercase;
    color:var(--coral-deep);
  }
  .eyebrow::before{content:'';width:18px;height:1px;background:var(--coral-deep);}

  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:15px 28px;border-radius:100px;
    font-family:'Inter',sans-serif;font-weight:600;font-size:14.5px;
    transition:all .35s var(--ease);cursor:pointer;border:1px solid transparent;
    white-space:nowrap;
  }
  .btn-primary{background:var(--charcoal);color:var(--milk);}
  .btn-primary:hover{background:var(--coral-deep);transform:translateY(-2px);}
  .btn-ghost{border-color:var(--charcoal);color:var(--charcoal);}
  .btn-ghost:hover{background:var(--charcoal);color:var(--milk);transform:translateY(-2px);}
  .btn-light{background:var(--milk);color:var(--charcoal);}
  .btn-light:hover{background:var(--coral);color:#fff;transform:translateY(-2px);}
  .btn svg{transition:transform .35s var(--ease);}
  .btn:hover svg{transform:translateX(4px);}

  /* reveal */
  .reveal{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease);}
  .js .reveal.is-pending{opacity:0;transform:translateY(28px);}
  .js .reveal.is-pending.in{opacity:1;transform:translateY(0);}
  .skip-link{position:fixed;left:16px;top:12px;z-index:2000;padding:12px 16px;border-radius:10px;background:var(--charcoal);color:#fff;transform:translateY(-160%);transition:transform .2s;}
  .skip-link:focus{transform:translateY(0);}
  :focus-visible{outline:2px solid var(--coral-deep);outline-offset:4px;}

  /* ---------------- NAV ---------------- */
  header{
    position:fixed;top:0;left:0;right:0;z-index:1000;
    padding:22px 0;transition:all .4s var(--ease);
    background:rgba(254,252,255,.75);backdrop-filter:blur(14px);
    border-bottom:1px solid transparent;
  }
  header.scrolled{
    padding:14px 0;background:rgba(254,252,255,.92);
    border-bottom:1px solid var(--border);
  }
  .nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;}
  .brand{display:flex;align-items:center;gap:12px;font-family:'Plus Jakarta Sans';font-weight:700;font-size:19px;white-space:nowrap;}
  .brand img{width:42px;height:42px;border-radius:50%;}
  .nav-links{display:flex;align-items:center;gap:38px;}
  .nav-links a{font-size:14.5px;font-weight:500;color:var(--charcoal);position:relative;padding:4px 0;}
  .nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1.5px;background:var(--coral-deep);transition:width .3s var(--ease);}
  .nav-links a:hover::after{width:100%;}
  .nav-cta{display:flex;align-items:center;gap:18px;}
  .nav-cta .phone{font-size:13px;font-weight:600;display:inline-flex;align-items:center;white-space:nowrap;}
  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:1001;background:none;border:none;padding:6px;}
  .burger span{width:24px;height:2px;background:var(--charcoal);transition:all .3s var(--ease);}

  /* ---------------- SERVICES DROPDOWN ---------------- */
  .nav-item{position:relative;}
  .nav-services-link{display:inline-flex;align-items:center;gap:4px;}
  .nav-services-link > a{display:inline-flex;align-items:center;gap:5px;}
  .services-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--charcoal);cursor:pointer;}
  .services-toggle:hover{background:#FFF3F4;color:var(--coral-deep);}
  .services-toggle .chev{transition:transform .3s var(--ease);}
  .nav-item:hover .chev,.nav-item.mobile-open .chev{transform:rotate(180deg);}
  .services-toggle:focus-visible,.burger:focus-visible,.faq-question:focus-visible{outline:2px solid var(--coral-deep);outline-offset:3px;}
  .dropdown-panel{
    position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(6px);
    background:#fff;border:1px solid var(--border);border-radius:16px;
    box-shadow:0 24px 50px -20px rgba(17,17,17,.18);
    padding:10px;min-width:270px;display:flex;flex-direction:column;gap:2px;
    opacity:0;visibility:hidden;transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s;
    z-index:500;
  }
  .nav-item.has-dropdown:hover .dropdown-panel,
  .nav-item.has-dropdown:focus-within .dropdown-panel{
    opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);
  }
  .dropdown-panel a{
    font-size:13.5px;font-weight:500;color:var(--charcoal);padding:10px 14px;border-radius:10px;
    white-space:nowrap;transition:background .2s,color .2s;
  }
  .dropdown-panel a::after{display:none;}
  .dropdown-panel a:hover{background:#FFF3F4;color:var(--coral-deep);}

  /* ---------------- HERO ---------------- */
  .hero{
    padding-top:190px;padding-bottom:90px;
    display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;
  }
  .hero h1{font-size:clamp(42px,5.4vw,74px);margin:22px 0 24px;}
  .hero h1 .accent{color:var(--coral-deep);font-style:italic;}
  .hero p.lede{font-size:17px;color:var(--grey);max-width:480px;margin-bottom:36px;}
  .hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:44px;}
  .hero-pillars{display:flex;gap:22px;flex-wrap:wrap;font-size:13px;color:var(--grey);font-weight:500;}
  .hero-pillars span{position:relative;padding-left:14px;}
  .hero-pillars span::before{content:'';position:absolute;left:0;top:6px;width:5px;height:5px;border-radius:50%;background:var(--coral);}

  /* hero visual collage */
  .hero-visual{position:relative;height:520px;}
  .card-float{
    position:absolute;border-radius:24px;box-shadow:0 30px 60px -20px rgba(17,17,17,.15);
    display:flex;align-items:flex-end;padding:18px;font-family:'Plus Jakarta Sans';font-weight:600;font-size:13px;color:#fff;
    overflow:hidden;background-size:cover;background-position:center;
  }
  .card-float::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.45));}
  .card-float span{position:relative;z-index:1;}
  .c1{width:230px;height:290px;top:0;left:30px;background:linear-gradient(150deg,#E8A0A4,#c97377);animation:float1 7s ease-in-out infinite;}
  .c2{width:190px;height:230px;top:60px;right:0;background:linear-gradient(150deg,#2b2b2b,#111);animation:float2 8s ease-in-out infinite;}
  .c3{width:210px;height:180px;bottom:0;left:0;animation:float3 6.5s ease-in-out infinite;}
  .c4{width:150px;height:150px;bottom:20px;right:20px;background:var(--charcoal);animation:float1 9s ease-in-out infinite reverse;}
  .dot-accent{position:absolute;top:20px;right:190px;width:16px;height:16px;background:var(--coral-deep);border-radius:4px;animation:float2 5s ease-in-out infinite;}
  @keyframes float1{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-14px) rotate(-1.5deg)}}
  @keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(12px)}}
  @keyframes float3{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-10px) rotate(1deg)}}

  /* ---------------- MARQUEE ---------------- */
  .marquee-wrap{
    border-top:1px solid var(--border);border-bottom:1px solid var(--border);
    padding:26px 0;overflow:hidden;white-space:nowrap;
  }
  .marquee-track{display:inline-flex;animation:scroll 32s linear infinite;}
  .marquee-track span{
    font-family:'Plus Jakarta Sans';font-weight:700;font-size:26px;letter-spacing:.5px;
    color:var(--charcoal);padding:0 28px;display:inline-flex;align-items:center;gap:28px;
    transition:color .3s;
  }
  .marquee-track span:hover{color:var(--coral-deep);}
  .marquee-track span::after{content:'';width:7px;height:7px;border-radius:50%;background:var(--coral);}
  @keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  /* ---------------- PHILOSOPHY ---------------- */
  .philosophy{padding:150px 0;}
  .phi-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:64px;align-items:end;}
  .phi-head h2{font-size:clamp(30px,3.6vw,44px);}
  .phi-head p{color:var(--grey);font-size:15.5px;max-width:420px;}
  .phi-line{
    display:grid;grid-template-columns:60px 1fr 1fr;gap:24px;align-items:baseline;
    padding:30px 0;border-top:1px solid var(--border);
  }
  .phi-line:last-child{border-bottom:1px solid var(--border);}
  .phi-num{font-family:'Plus Jakarta Sans';font-size:13px;color:var(--coral-deep);font-weight:700;}
  .phi-no{font-size:19px;color:#C7C7C7;font-weight:500;}
  .phi-yes{font-family:'Plus Jakarta Sans';font-size:22px;font-weight:700;color:var(--charcoal);}
  .phi-yes .u{box-shadow:inset 0 -0.45em 0 var(--coral);}

  /* ---------------- SERVICES (bento) ---------------- */
  .services{padding-bottom:150px;}
  .sec-head{margin-bottom:56px;max-width:640px;}
  .sec-head h2{font-size:clamp(30px,3.6vw,44px);margin-top:16px;}
  .bento{
    display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:18px;
  }
  .bento-card{
    border:1px solid var(--border);border-radius:var(--radius);padding:30px;
    display:flex;flex-direction:column;justify-content:space-between;
    background:#fff;transition:all .4s var(--ease);position:relative;overflow:hidden;
  }
  .bento-card:hover{border-color:var(--coral);transform:translateY(-4px);box-shadow:0 24px 50px -24px rgba(17,17,17,.18);}
  .bento-card h3{font-size:19px;}
  .bento-card p{font-size:13.5px;color:var(--grey);margin-top:8px;}
  .bento-card .idx{font-size:12px;color:var(--coral-deep);font-weight:700;letter-spacing:1px;}
  .b-large{grid-column:span 2;grid-row:span 2;background:var(--charcoal);}
  .b-large h3,.b-large .idx{color:var(--milk);}
  .b-large p{color:#B9B9B9;}
  .b-large::after{
    content:'';position:absolute;width:200px;height:200px;border-radius:50%;
    background:radial-gradient(circle,rgba(232,160,164,.35),transparent 70%);
    bottom:-80px;right:-80px;
  }
  .b-wide{grid-column:span 2;}

  .bento-card.has-img{background-size:cover;background-position:center;}
  .bento-card.has-img::after{
    content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15) 30%,rgba(0,0,0,.65));z-index:0;
  }
  .bento-card.has-img h3,.bento-card.has-img .idx{color:#fff;position:relative;z-index:1;}
  .bento-card.has-img p{color:#E6E6E6;position:relative;z-index:1;}
  .bento-card.has-img > div{position:relative;z-index:1;}
  .bento-card.has-img.b-large::after{
    background:linear-gradient(180deg,rgba(0,0,0,.1) 30%,rgba(0,0,0,.7));
    inset:0;width:auto;height:auto;border-radius:0;bottom:auto;right:auto;
  }

  /* ---------------- EVENTS ---------------- */
  .events{padding:130px 0;background:#fff;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
  .events-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
  .events-grid h2{font-size:clamp(28px,3.4vw,40px);margin:16px 0 20px;}
  .events-grid p{color:var(--grey);font-size:15.5px;max-width:440px;margin-bottom:8px;}
  .chip-cloud{display:flex;flex-wrap:wrap;gap:10px;}
  .chip{
    border:1px solid var(--border);border-radius:100px;padding:10px 18px;font-size:13px;font-weight:500;
    transition:all .3s var(--ease);background:var(--milk);
  }
  .chip:hover{background:var(--coral);border-color:var(--coral);color:#fff;transform:translateY(-2px);}
  .campaign-line{font-family:'Plus Jakarta Sans';font-weight:700;font-size:15px;color:var(--charcoal);margin-top:26px;padding-top:22px;border-top:1px solid var(--border);}
  .campaign-line span{color:var(--coral-deep);}

  /* ---------------- PROCESS ---------------- */
  .process{padding:150px 0;}
  .process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:60px;}
  .p-step{padding:0 26px 0 0;position:relative;}
  .p-step:not(:first-child){border-left:1px solid var(--border);padding-left:26px;}
  .p-step .idx{font-family:'Plus Jakarta Sans';font-size:40px;font-weight:800;color:var(--border);margin-bottom:18px;display:block;}
  .p-step h3{font-size:18px;margin-bottom:10px;}
  .p-step p{font-size:13.5px;color:var(--grey);}

  /* ---------------- WHY ---------------- */
  .why{padding-bottom:150px;}
  .why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
  .why-card{border:1px solid var(--border);border-radius:var(--radius);padding:34px;background:#fff;}
  .why-card h3{font-size:18px;margin-bottom:10px;display:flex;align-items:center;gap:12px;}
  .why-card h3 svg{flex-shrink:0;color:var(--coral-deep);}
  .why-card p{font-size:14px;color:var(--grey);}

  /* ---------------- CTA ---------------- */
  .cta-band{
    margin:0 32px;background:var(--charcoal);border-radius:32px;
    padding:90px 60px;text-align:center;position:relative;overflow:hidden;
  }
  .cta-band::before{
    content:'';position:absolute;width:500px;height:500px;border-radius:50%;
    background:radial-gradient(circle,rgba(232,160,164,.25),transparent 70%);
    top:-250px;left:-150px;
  }
  .cta-band h2{color:var(--milk);font-size:clamp(30px,4vw,48px);max-width:700px;margin:18px auto 30px;position:relative;}
  .cta-band .eyebrow{color:var(--coral);}
  .cta-band .eyebrow::before{background:var(--coral);}
  .cta-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;position:relative;}

  /* ---------------- FOOTER ---------------- */
  footer{padding:110px 0 40px;}
  .foot-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr 1fr;gap:50px;padding-bottom:60px;}
  .foot-brand{display:flex;align-items:center;gap:12px;font-family:'Plus Jakarta Sans';font-weight:700;font-size:19px;margin-bottom:16px;}
  .foot-brand img{width:44px;height:44px;border-radius:50%;}
  .foot-tag{color:var(--grey);font-size:14px;max-width:280px;}
  .foot-col h4{font-size:13px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:18px;color:var(--grey);font-weight:600;}
  .foot-col li{margin-bottom:11px;font-size:14.5px;}
  .foot-col a:hover{color:var(--coral-deep);}
  .foot-social{display:flex;gap:14px;margin-top:20px;}
  .foot-social a{width:38px;height:38px;border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s;}
  .foot-social a:hover{background:var(--coral);border-color:var(--coral);color:#fff;}
  .foot-bottom{border-top:1px solid var(--border);padding-top:26px;display:flex;justify-content:space-between;font-size:13px;color:var(--grey);flex-wrap:wrap;gap:10px;}

  /* ---------------- RESPONSIVE ---------------- */
  @media(max-width:980px){
    .nav-links{position:fixed;top:0;right:-100%;width:78%;max-width:340px;height:100vh;
      background:var(--milk);flex-direction:column;justify-content:flex-start;align-items:flex-start;
      padding:100px 32px 40px;gap:22px;transition:right .45s var(--ease);box-shadow:-20px 0 60px rgba(0,0,0,.08);
      overflow-y:auto;}
    .nav-links.open{right:0;}
    .nav-links a{font-size:19px;}
    .nav-cta .phone{display:none;}
    .burger{display:flex;}
    .nav-item{width:100%;}
    .nav-services-link{width:100%;}
    .nav-services-link > a{font-size:19px;}
    .services-toggle{margin-left:auto;width:42px;height:42px;}
    .dropdown-panel{
      position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;
      background:transparent;padding:10px 0 0 0;min-width:0;margin-top:6px;display:none;
    }
    .nav-item.has-dropdown:hover .dropdown-panel,
    .nav-item.has-dropdown:focus-within .dropdown-panel{
      transform:none;
    }
    .nav-item.mobile-open .dropdown-panel{display:flex;flex-direction:column;}
    .nav-item.mobile-open .chev{transform:rotate(180deg);}
    .dropdown-panel a{font-size:15px;padding:8px 0 8px 16px;color:var(--grey);white-space:normal;}
    .hero{grid-template-columns:1fr;padding-top:150px;}
    .hero-visual{height:380px;margin-top:20px;}
    .phi-head{grid-template-columns:1fr;}
    .bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:auto;}
    .b-large{grid-column:span 2;grid-row:span 1;min-height:260px;}
    .b-wide{grid-column:span 2;}
    .events-grid{grid-template-columns:1fr;gap:36px;}
    .process-grid{grid-template-columns:repeat(2,1fr);gap:40px;}
    .p-step:nth-child(3){border-left:none;padding-left:0;}
    .why-grid{grid-template-columns:1fr;}
    .foot-grid{grid-template-columns:1fr 1fr;gap:36px;}
    .cta-band{padding:60px 30px;margin:0 16px;}
  }
  @media(max-width:600px){
    .brand{font-size:16px;gap:8px;}
    .brand img{width:34px;height:34px;}
    .nav-cta .btn-primary{display:none;}
    .container{padding:0 22px;}
    .hero{padding-top:145px;}
    .bento{grid-template-columns:1fr;}
    .b-large,.b-wide{grid-column:span 1;}
    .process-grid{grid-template-columns:1fr;}
    .p-step{border-left:none!important;padding-left:0!important;padding-bottom:30px;}
    .foot-grid{grid-template-columns:1fr;}
    .foot-bottom{flex-direction:column;}
    .hero-actions{flex-direction:column;align-items:flex-start;}
    .hero-visual{height:340px;}
    .c1{width:140px;height:175px;top:0;left:0;}
    .c2{width:120px;height:140px;top:15px;right:0;}
    .c3{width:130px;height:120px;bottom:0;left:0;}
    .c4{width:95px;height:95px;bottom:10px;right:8px;}
    .dot-accent{top:5px;right:110px;}
  }

  /* ---------------- SUBPAGE HERO ---------------- */
  .page-hero{padding-top:175px;padding-bottom:60px;}
  .page-hero h1{font-size:clamp(36px,5vw,56px);margin-top:18px;max-width:720px;}
  .page-hero p{color:var(--grey);font-size:16px;max-width:580px;margin-top:16px;}

  .page-banner{
    display:block;width:100%;height:420px;object-fit:cover;border-radius:24px;
    box-shadow:0 30px 60px -30px rgba(17,17,17,.18);
  }
  @media(max-width:600px){ .page-banner{height:220px;border-radius:18px;} }

  /* ---------------- ABOUT: MISSION/VISION ---------------- */
  .mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0 40px;}
  .mv-card{border:1px solid var(--border);border-radius:var(--radius);padding:34px;background:#fff;}
  .mv-card .idx{font-family:'Plus Jakarta Sans';font-size:12px;font-weight:700;color:var(--coral-deep);letter-spacing:1px;}
  .mv-card h3{font-size:21px;margin:14px 0 10px;}
  .mv-card p{color:var(--grey);font-size:14.5px;}

  /* ---------------- PORTFOLIO ---------------- */
  .portfolio-note{
    display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;
    color:var(--coral-deep);background:#FFF3F4;border:1px solid var(--coral);
    padding:8px 16px;border-radius:100px;margin-bottom:30px;
  }
  .portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .port-card{
    border-radius:var(--radius);overflow:hidden;position:relative;height:320px;
    display:flex;align-items:flex-end;padding:26px;color:#fff;
    transition:transform .4s var(--ease);background-size:cover;background-position:center;
  }
  .port-card:hover{transform:translateY(-6px);}
  .port-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.55));}
  .port-card .txt{position:relative;z-index:1;}
  .port-card .tag{font-size:10.5px;text-transform:uppercase;letter-spacing:2px;color:#F3C6C9;display:block;margin-bottom:6px;font-weight:600;}
  .port-card h3{font-family:'Plus Jakarta Sans';font-size:19px;color:#fff;}
  .pc1{background:linear-gradient(150deg,#E8A0A4,#a85559);}
  .pc2{background:linear-gradient(150deg,#2b2b2b,#0c0c0c);}
  .pc3{background:linear-gradient(150deg,#c9c9c9,#8f8f8f);}
  .pc4{background:linear-gradient(150deg,#111111,#3a2224);}
  .pc5{background:linear-gradient(150deg,#d7787d,#6b3336);}
  .pc6{background:linear-gradient(150deg,#8f8f8f,#3f3f3f);}

  /* ---------------- CONTACT ---------------- */
  .contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;margin-top:20px;}
  .contact-info-list .c-item{display:flex;gap:16px;padding:22px 0;border-bottom:1px solid var(--border);}
  .contact-info-list .c-item:first-child{padding-top:0;}
  .contact-info-list .c-item svg{color:var(--coral-deep);flex-shrink:0;margin-top:3px;}
  .contact-info-list .c-item h4{font-size:13px;text-transform:uppercase;letter-spacing:1.5px;color:var(--grey);margin-bottom:6px;font-weight:600;}
  .contact-info-list .c-item a, .contact-info-list .c-item p{font-size:16px;color:var(--charcoal);font-weight:500;}
  .form-panel{border:1px solid var(--border);border-radius:var(--radius);padding:40px;background:#fff;}
  .form-panel h3{font-size:20px;margin-bottom:10px;}
  .form-panel p{color:var(--grey);font-size:14px;margin-bottom:24px;}
  .form-placeholder{
    border:1.5px dashed var(--coral);border-radius:14px;padding:34px;text-align:center;
    color:var(--grey);font-size:13.5px;background:#FFF9F9;
  }
  .form-placeholder strong{color:var(--charcoal);display:block;margin-bottom:6px;font-size:14.5px;}

  /* ---------------- FLUENT FORMS — brand overrides ---------------- */
  .form-panel input[type="text"],
  .form-panel input[type="email"],
  .form-panel input[type="tel"],
  .form-panel input[type="number"],
  .form-panel input[type="url"],
  .form-panel textarea,
  .form-panel select{
    width:100%;font-family:'Inter',sans-serif;font-size:14px;color:var(--charcoal);
    background:var(--milk);border:1px solid var(--border)!important;border-radius:12px!important;
    padding:13px 16px!important;transition:border-color .25s;
  }
  .form-panel input:focus,
  .form-panel textarea:focus,
  .form-panel select:focus{
    border-color:var(--coral)!important;outline:none;box-shadow:0 0 0 3px rgba(232,160,164,.18);
  }
  .form-panel label{font-size:13px;font-weight:600;color:var(--charcoal);margin-bottom:6px;display:inline-block;}
  .form-panel .ff-btn-submit,
  .form-panel button[type="submit"],
  .form-panel input[type="submit"]{
    background:var(--charcoal)!important;color:var(--milk)!important;border:none!important;
    border-radius:100px!important;padding:14px 30px!important;font-weight:600!important;
    font-family:'Inter',sans-serif!important;font-size:14.5px!important;cursor:pointer;
    transition:background .3s var(--ease);
  }
  .form-panel .ff-btn-submit:hover,
  .form-panel button[type="submit"]:hover{background:var(--coral-deep)!important;}
  .form-panel .ff_msg,
  .form-panel .ff-message-success{
    border-radius:12px!important;font-size:13.5px!important;
  }
  .quick-actions{display:flex;gap:14px;margin-top:26px;flex-wrap:wrap;}

  @media(max-width:900px){
    .mv-grid,.contact-grid{grid-template-columns:1fr;}
    .portfolio-grid{grid-template-columns:1fr 1fr;}
  }
  @media(max-width:600px){
    .portfolio-grid{grid-template-columns:1fr;}
    .page-hero{padding-top:135px;}
  }

  /* ---------------- BLOG INDEX ---------------- */
  .blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:10px;}
  .blog-card{
    display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);
    overflow:hidden;background:#fff;transition:all .35s var(--ease);
  }
  .blog-card:hover{transform:translateY(-4px);box-shadow:0 24px 50px -24px rgba(17,17,17,.18);border-color:var(--coral);}
  .blog-card-img{
    height:200px;background-size:cover;background-position:center;background-color:#ECECEC;
    display:flex;align-items:center;justify-content:center;
  }
  .blog-card-fallback{font-family:'Plus Jakarta Sans';font-weight:700;color:#B9B9B9;letter-spacing:1px;}
  .blog-card-body{padding:22px;display:flex;flex-direction:column;gap:8px;flex:1;}
  .blog-card-date{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--coral-deep);font-weight:600;}
  .blog-card-body h3{font-size:18px;line-height:1.35;}
  .blog-card-body p{font-size:13.5px;color:var(--grey);line-height:1.6;flex:1;}
  .blog-card-link{font-size:13px;font-weight:600;color:var(--charcoal);display:inline-flex;align-items:center;gap:6px;margin-top:6px;}
  .blog-card-link svg{transition:transform .3s var(--ease);}
  .blog-card:hover .blog-card-link svg{transform:translateX(4px);}

  .blog-pagination{display:flex;justify-content:center;gap:8px;margin-top:50px;flex-wrap:wrap;}
  .blog-pagination .page-numbers{
    display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;
    border:1px solid var(--border);border-radius:10px;font-size:13.5px;font-weight:600;color:var(--charcoal);
    transition:all .25s var(--ease);
  }
  .blog-pagination .page-numbers:hover{border-color:var(--coral);color:var(--coral-deep);}
  .blog-pagination .page-numbers.current{background:var(--charcoal);color:#fff;border-color:var(--charcoal);}
  .blog-empty{padding:60px 0;text-align:center;color:var(--grey);font-size:15px;}

  /* ---------------- SINGLE POST ---------------- */
  .blog-back{display:inline-block;font-size:13px;font-weight:600;color:var(--coral-deep);margin-bottom:18px;}
  .post-prose{max-width:760px;margin:40px auto 0;font-size:16.5px;line-height:1.85;color:#333;}
  .post-prose h2{font-size:28px;margin:44px 0 16px;}
  .post-prose h3{font-size:22px;margin:36px 0 14px;}
  .post-prose p{margin-bottom:22px;}
  .post-prose ul,.post-prose ol{margin:0 0 22px 22px;}
  .post-prose li{margin-bottom:8px;}
  .post-prose a{color:var(--coral-deep);text-decoration:underline;text-underline-offset:3px;}
  .post-prose img{width:100%;border-radius:16px;margin:28px 0;}
  .post-prose blockquote{
    border-left:3px solid var(--coral);padding:6px 24px;margin:28px 0;font-style:italic;color:var(--grey);font-size:18px;
  }
  .post-prose strong{color:var(--charcoal);}

  @media(max-width:900px){
    .blog-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media(max-width:600px){
    .blog-grid{grid-template-columns:1fr;}
    .post-prose{font-size:15.5px;}
    .post-prose h2{font-size:23px;}
    .post-prose h3{font-size:19px;}
  }

  /* ================= SERVICE PAGE VARIANTS ================= */

  /* ---- Branding: brand-kit swatch strip ---- */
  .brand-kit-strip{display:flex;gap:14px;flex-wrap:wrap;margin:30px 0 50px;padding:26px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;}
  .swatch{flex:1;min-width:90px;height:90px;border-radius:14px;display:flex;align-items:flex-end;padding:10px;font-size:11px;font-weight:600;color:#fff;font-family:'Plus Jakarta Sans';}
  .swatch.milk{background:var(--milk);color:var(--charcoal);border:1px solid var(--border);}
  .swatch.coral{background:var(--coral);}
  .swatch.charcoal{background:var(--charcoal);}
  .swatch.grey{background:var(--grey);}
  .type-sample{flex:2;min-width:220px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 24px;border-left:1px solid var(--border);}
  .type-sample .display{font-family:'Plus Jakarta Sans';font-weight:800;font-size:34px;line-height:1;}
  .type-sample .body-font{font-family:'Inter';font-size:14px;color:var(--grey);}

  /* ---- Numbered list (horizontal-line items, no boxes) ---- */
  .numbered-list{margin-top:10px;}
  .numbered-list-item{display:grid;grid-template-columns:60px 1fr 2fr;gap:24px;align-items:baseline;padding:26px 0;border-top:1px solid var(--border);}
  .numbered-list-item:last-child{border-bottom:1px solid var(--border);}
  .numbered-list-item .n{font-family:'Plus Jakarta Sans';font-size:13px;font-weight:700;color:var(--coral-deep);}
  .numbered-list-item h3{font-size:19px;}
  .numbered-list-item p{font-size:14px;color:var(--grey);}

  /* ---- Website Development: browser mockup + checklist ---- */
  .webdev-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;margin-top:20px;}
  .browser-mockup{border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(17,17,17,.18);background:#fff;}
  .browser-chrome{display:flex;gap:6px;padding:12px 16px;background:#F4F4F4;border-bottom:1px solid var(--border);}
  .browser-dot{width:10px;height:10px;border-radius:50%;background:#DDD;}
  .browser-dot:nth-child(1){background:#E8A0A4;}
  .browser-body{padding:26px;display:flex;flex-direction:column;gap:12px;}
  .browser-line{height:12px;border-radius:6px;background:#ECECEC;}
  .browser-line.w60{width:60%;}
  .browser-line.w80{width:80%;}
  .browser-line.w40{width:40%;}
  .browser-block{height:90px;border-radius:10px;background:linear-gradient(135deg,#E8A0A4,#c9a0a3);margin-top:8px;}
  .checklist{display:flex;flex-direction:column;gap:24px;}
  .checklist-item{display:flex;gap:14px;align-items:flex-start;}
  .checklist-item svg{color:var(--coral-deep);flex-shrink:0;margin-top:3px;}
  .checklist-item h3{font-size:17px;margin-bottom:4px;}
  .checklist-item p{font-size:13.5px;color:var(--grey);}

  /* ---- Photography: pull-quote + inline list ---- */
  .pull-quote{font-family:'Plus Jakarta Sans';font-size:28px;font-weight:700;line-height:1.4;color:var(--charcoal);max-width:800px;margin:30px 0 50px;padding-left:26px;border-left:4px solid var(--coral);}
  .inline-list{display:flex;flex-wrap:wrap;border-top:1px solid var(--border);}
  .inline-list-item{flex:1;min-width:220px;padding:24px 20px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);}
  .inline-list-item:last-child{border-right:none;}
  .inline-list-item .n{font-size:12px;color:var(--coral-deep);font-weight:700;}
  .inline-list-item h3{font-size:16px;margin:8px 0 6px;}
  .inline-list-item p{font-size:13px;color:var(--grey);}

  /* ---- Cinematic Films: dark inverted section ---- */
  .dark-section{background:var(--charcoal);border-radius:32px;padding:60px;margin-top:20px;}
  .dark-section .numbered-list-item{border-color:rgba(255,255,255,.12);}
  .dark-section .numbered-list-item h3{color:#fff;}
  .dark-section .numbered-list-item p{color:#B9B9B9;}
  .dark-section .numbered-list-item .n{color:var(--coral);}

  /* ---- Content Production: social-grid tiles ---- */
  .insta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px;}
  .insta-tile{aspect-ratio:1;border-radius:20px;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;color:#fff;position:relative;overflow:hidden;}
  .insta-tile h3{font-family:'Plus Jakarta Sans';font-size:16px;color:#fff;position:relative;z-index:1;}
  .insta-tile p{font-size:11.5px;color:rgba(255,255,255,.85);position:relative;z-index:1;margin-top:4px;}
  .insta-tile::after{content:'';position:absolute;inset:0;background:linear-gradient(160deg,transparent 30%,rgba(0,0,0,.35));}
  .it1{background:linear-gradient(150deg,#E8A0A4,#a85559);}
  .it2{background:linear-gradient(150deg,#2b2b2b,#0c0c0c);}
  .it3{background:linear-gradient(150deg,#d7787d,#6b3336);}
  .it4{background:linear-gradient(150deg,#8f8f8f,#3f3f3f);}

  @media(max-width:900px){
    .webdev-grid{grid-template-columns:1fr;}
    .brand-kit-strip{flex-direction:column;}
    .type-sample{border-left:none;border-top:1px solid var(--border);padding:20px 0 0;}
    .insta-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media(max-width:600px){
    .numbered-list-item{grid-template-columns:36px 1fr;}
    .numbered-list-item p{grid-column:2/3;margin-top:4px;}
    .inline-list-item{flex:1 1 100%;border-right:none;}
    .dark-section{padding:34px 24px;border-radius:20px;}
    .pull-quote{font-size:22px;}
  }

  /* ================= SERVICE PAGE: PROCESS TIMELINE ================= */
  .svc-process-track{display:flex;justify-content:space-between;position:relative;margin-top:20px;}
  .svc-process-track::before{
    content:'';position:absolute;top:23px;left:8%;right:8%;height:2px;background:var(--border);z-index:0;
  }
  .svc-step{flex:1;text-align:center;position:relative;z-index:1;padding:0 12px;}
  .svc-step .circle{
    width:46px;height:46px;border-radius:50%;background:#fff;border:2px solid var(--coral);
    display:flex;align-items:center;justify-content:center;margin:0 auto 18px;
    font-family:'Plus Jakarta Sans';font-weight:700;color:var(--coral-deep);font-size:15px;
  }
  .svc-step h4{font-size:15px;margin-bottom:6px;}
  .svc-step p{font-size:12.5px;color:var(--grey);line-height:1.5;}

  .dark-section .svc-process-track::before{background:rgba(255,255,255,.15);}
  .dark-section .svc-step .circle{background:var(--charcoal);border-color:var(--coral);color:var(--coral);}
  .dark-section .svc-step h4{color:#fff;}
  .dark-section .svc-step p{color:#B9B9B9;}

  /* ================= SERVICE PAGE: FAQ ACCORDION ================= */
  .faq-list{max-width:800px;margin-top:10px;}
  .faq-item{border-bottom:1px solid var(--border);}
  .faq-question{
    display:flex;width:100%;text-align:left;justify-content:space-between;align-items:center;gap:20px;
    padding:22px 0;cursor:pointer;font-family:'Plus Jakarta Sans';font-weight:600;font-size:16px;
    -webkit-tap-highlight-color:transparent;background:transparent;border:0;color:var(--charcoal);
  }
  .faq-question .plus{transition:transform .3s var(--ease);flex-shrink:0;color:var(--coral-deep);}
  .faq-item.open .faq-question .plus{transform:rotate(45deg);}
  .faq-answer{max-height:none;overflow:visible;transition:max-height .35s var(--ease);}
  .js .faq-answer{max-height:0;overflow:hidden;}
  .faq-answer p{padding-bottom:22px;font-size:14px;color:var(--grey);line-height:1.7;max-width:680px;}
  .faq-item.open .faq-answer{max-height:1000px;}

  @media(max-width:768px){
    .svc-process-track{flex-wrap:wrap;row-gap:30px;}
    .svc-process-track::before{display:none;}
    .svc-step{flex:1 1 45%;}
  }
  @media(max-width:600px){
    .faq-question{font-size:14.5px;}
  }

  /* ================= UNIQUE SERVICE-PAGE HEROES ================= */

  /* Shared split-hero base (Branding, Digital Marketing, Website Dev, Event Coverage, Content Production) */
  .svc-hero-split{
    display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
    padding-top:165px;padding-bottom:70px;
  }
  .svc-hero-split .svc-hero-text h1{font-size:clamp(32px,4vw,48px);margin-top:16px;line-height:1.25;}
  .svc-hero-split .svc-hero-text p{color:var(--grey);font-size:15px;margin-top:14px;max-width:480px;}
  .svc-hero-visual{position:relative;}
  .svc-hero-img{width:100%;height:400px;object-fit:cover;border-radius:24px;display:block;
    box-shadow:0 30px 60px -30px rgba(17,17,17,.2);}

  /* Branding: overlay swatch card on hero image */
  .svc-hero-overlay-card{
    position:absolute;bottom:-22px;left:24px;right:24px;background:#fff;border-radius:16px;
    padding:16px 20px;box-shadow:0 20px 45px rgba(0,0,0,.18);display:flex;align-items:center;gap:10px;
  }
  .swatch-mini{width:30px;height:30px;border-radius:9px;flex-shrink:0;}
  .swatch-mini.coral{background:var(--coral);}
  .swatch-mini.charcoal{background:var(--charcoal);}
  .swatch-mini.grey{background:var(--grey);}
  .overlay-card-label{font-family:'Plus Jakarta Sans';font-weight:800;font-size:20px;margin-left:auto;color:var(--charcoal);}

  /* Digital Marketing: floating stat badges */
  .stat-badge{
    position:absolute;background:#fff;border-radius:14px;padding:12px 20px;
    box-shadow:0 18px 36px rgba(0,0,0,.16);text-align:center;
  }
  .stat-badge strong{display:block;font-family:'Plus Jakarta Sans';font-weight:800;font-size:19px;color:var(--charcoal);}
  .stat-badge span{font-size:10px;color:var(--grey);text-transform:uppercase;letter-spacing:1px;font-weight:600;}
  .sb1{top:22px;left:-18px;}
  .sb2{bottom:22px;right:-18px;}

  /* Website Development: browser mockup fills the hero visual slot */
  .svc-hero-visual .browser-mockup{margin:0;}

  /* Event Coverage: floating info badge */
  .event-badge{
    position:absolute;bottom:24px;left:24px;background:var(--charcoal);color:#fff;border-radius:100px;
    padding:12px 22px;font-family:'Plus Jakarta Sans';font-weight:700;font-size:13px;
    box-shadow:0 18px 36px rgba(0,0,0,.25);
  }

  /* Content Production: mini colour grid instead of a photo */
  .mini-insta-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .mini-tile{aspect-ratio:1;border-radius:18px;box-shadow:0 20px 40px -20px rgba(17,17,17,.25);background-size:cover;background-position:center;position:relative;overflow:hidden;}
  .mini-tile::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.6));}

  /* Content Production: real photo + colour tiles grid */
  .content-hero-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;height:400px;}
  .content-hero-main{border-radius:20px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(17,17,17,.2);}
  .content-hero-main img{width:100%;height:100%;object-fit:cover;display:block;}
  .content-hero-side{display:flex;flex-direction:column;gap:14px;}
  .content-hero-side .mini-tile{flex:1;aspect-ratio:auto;display:flex;align-items:flex-end;padding:16px;color:#fff;font-family:'Plus Jakarta Sans';font-weight:700;font-size:13px;}
  .content-hero-side .mini-tile span{position:relative;z-index:1;}

  /* Photography: full-bleed image hero with overlaid text */
  .photo-hero-full{position:relative;height:600px;overflow:hidden;margin-top:0;}
  .photo-hero-bg{width:100%;height:100%;object-fit:cover;display:block;}
  .photo-hero-overlay{
    position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1) 40%,rgba(0,0,0,.72));
    display:flex;align-items:flex-end;padding-bottom:64px;
  }
  .photo-hero-overlay .eyebrow{color:var(--coral);}
  .photo-hero-overlay h1{color:#fff;font-size:clamp(32px,4.5vw,52px);margin-top:16px;max-width:700px;}
  .photo-hero-overlay p{color:#EDEDED;font-size:15px;margin-top:14px;max-width:560px;}

  /* Cinematic Films: full-bleed dark cinematic hero with letterbox bars */
  .film-hero-full{position:relative;height:600px;overflow:hidden;margin-top:0;background:#000;}
  .film-bars{position:absolute;left:0;right:0;height:34px;background:#000;z-index:2;}
  .film-bars.top{top:0;}
  .film-bars.bottom{bottom:0;}
  .film-hero-bg{width:100%;height:100%;object-fit:cover;display:block;opacity:.85;}
  .film-hero-overlay{
    position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 30%,rgba(0,0,0,.8));
    display:flex;align-items:flex-end;padding-bottom:74px;
  }
  .film-hero-overlay .eyebrow{color:var(--coral);}
  .film-hero-overlay h1{color:#fff;font-size:clamp(32px,4.5vw,52px);margin-top:16px;max-width:700px;}
  .film-hero-overlay p{color:#B9B9B9;font-size:15px;margin-top:14px;max-width:560px;}

  @media(max-width:900px){
    .svc-hero-split{grid-template-columns:1fr;padding-top:140px;gap:34px;}
    .svc-hero-overlay-card{position:static;margin-top:16px;}
    .stat-badge{position:static;display:inline-block;margin:8px 8px 0 0;}
    .sb1,.sb2{top:auto;left:auto;bottom:auto;right:auto;}
    .event-badge{position:static;display:inline-block;margin-top:16px;}
    .content-hero-grid{height:auto;grid-template-columns:1fr;}
    .content-hero-main{height:260px;}
    .content-hero-side{flex-direction:row;height:120px;}
  }
  @media(max-width:600px){
    .svc-hero-split{padding-top:125px;}
    .svc-hero-img{height:260px;}
    .photo-hero-full,.film-hero-full{height:440px;}
    .photo-hero-overlay,.film-hero-overlay{padding-bottom:36px;}
  }

  /* ================= REUSABLE IMAGE-TILE GRID ================= */
  .img-tile-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:10px;}
  .img-tile{
    position:relative;border-radius:18px;overflow:hidden;height:280px;
    display:flex;align-items:flex-end;padding:20px;color:#fff;
    background-size:cover;background-position:center;
    box-shadow:0 20px 45px -25px rgba(17,17,17,.3);
    transition:transform .35s var(--ease);
  }
  .img-tile:hover{transform:translateY(-4px);}
  .img-tile::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.68));}
  .img-tile .txt{position:relative;z-index:1;}
  .img-tile .n{font-size:11px;color:var(--coral);font-weight:700;letter-spacing:1px;display:block;margin-bottom:4px;}
  .img-tile h3{font-family:'Plus Jakarta Sans';font-size:16px;color:#fff;}
  .img-tile p{font-size:12px;color:#E6E6E6;margin-top:4px;line-height:1.4;}

  .insta-tile{background-size:cover;background-position:center;}

  @media(max-width:900px){
    .img-tile-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media(max-width:600px){
    .img-tile-grid{grid-template-columns:1fr;}
    .img-tile{height:220px;}
  }

  /* ================= EVENT COVERAGE: icon card grid ================= */
  .event-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
  .event-type-card{
    display:flex;gap:14px;align-items:flex-start;border:1px solid var(--border);border-radius:14px;
    padding:16px;background:#fff;transition:all .3s var(--ease);
  }
  .event-type-card:hover{border-color:var(--coral);transform:translateY(-2px);box-shadow:0 15px 30px -20px rgba(17,17,17,.18);}
  .event-type-icon{
    width:38px;height:38px;border-radius:10px;background:#FFF3F4;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;color:var(--coral-deep);
  }
  .event-type-card h4{font-size:14px;margin-bottom:4px;}
  .event-type-card p{font-size:12px;color:var(--grey);line-height:1.5;}

  @media(max-width:900px){
    .event-type-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media(max-width:600px){
    .event-type-grid{grid-template-columns:1fr;}
  }


/* Accessibility and progressive enhancement */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important;}
  .js .reveal.is-pending{opacity:1!important;transform:none!important;}
  .marquee-track{animation:none!important;}
}
.faq-question[aria-expanded="true"]{color:var(--coral-deep);}
.faq-answer[aria-hidden="true"]{pointer-events:none;}
@media(max-width:980px){.nav-links{overscroll-behavior:contain;}body.menu-open{overflow:hidden;}}

@media(min-width:981px){.nav-item.mobile-open .dropdown-panel{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}}

.form-privacy-note{font-size:12px!important;line-height:1.6;color:var(--grey);margin-top:16px!important;margin-bottom:0!important;}
.form-privacy-note a{color:var(--coral-deep);text-decoration:underline;text-underline-offset:3px;}

@media(min-width:981px) and (max-width:1120px){.nav-links{gap:22px;}.nav-cta{gap:12px;}.nav-cta .phone{display:none;}}
