/* ===== RESET & VARIABLES ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#E8E4DC;
  --bg2:#DDD9D0;
  --white:#FAFAF7;
  --card:#F5F2EC;
  --border:#D0CAC0;
  --text:#1C1A16;
  --text-mid:#48443C;
  --text-muted:#7A7468;
  --accent:#7fa0c3;
  --accent2:#3D6B9A;
  --dark:#1C1A16;
  --dark2:#2A2720;
}
html{overflow-x:hidden;}
body{font-family:"DM Sans",sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased;animation:pagefade .6s ease forwards;}
@keyframes pagefade{from{opacity:0;}to{opacity:1;}}

/* ===== NAV ===== */
nav{position:fixed;top:0;left:0;right:0;z-index:100;height:56px;padding:0 3rem;display:flex;align-items:center;justify-content:space-between;background:rgba(28,26,22,0.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.06);}
.nav-logo img{height:26px;width:auto;display:block;opacity:.9;}
.nav-links{display:flex;gap:2rem;list-style:none;}
.nav-links a{font-size:.72rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.65);text-decoration:none;transition:color .15s;position:relative;}
.nav-links a::after{content:"";position:absolute;bottom:-2px;left:50%;width:0;height:2px;background:#7fa0c3;transition:width .3s ease,left .3s ease;}
.nav-links a:hover::after{width:100%;left:0;}
.nav-links a:hover{color:rgba(255,255,255,.85);}
.nav-right{display:flex;align-items:center;gap:1rem;}
.nav-li a{color:rgba(255,255,255,.65);text-decoration:none;transition:color .15s;display:flex;align-items:center;}
.nav-li a:hover{color:rgba(255,255,255,.8);}
.nav-cta{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#fff;border:1px solid rgba(255,255,255,.25);padding:.45rem 1.1rem;border-radius:4px;text-decoration:none;transition:all .2s;}
.nav-cta:hover{background:var(--accent);border-color:var(--accent);}

/* ===== MOBILE MENU ===== */
.menu-text-btn{display:none;background:none;border:none;cursor:pointer;font-family:"DM Sans",sans-serif;font-size:.72rem;font-weight:500;letter-spacing:.1em;color:rgba(255,255,255,.5);text-transform:uppercase;transition:color .2s ease;padding:0;}
.menu-text-btn:hover{color:#fff;}
.mobile-menu{position:fixed;inset:0;z-index:99;background:rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:opacity .2s ease;}
.mobile-menu.open{opacity:1;pointer-events:auto;}
.mobile-menu-card{position:absolute;top:calc(56px + 8px);right:16px;background:rgba(43,42,38,.96);border-radius:16px;padding:6px 0;width:170px;transform:scale(.85);transform-origin:top right;opacity:0;transition:transform .2s cubic-bezier(.2,0,.2,1),opacity .15s ease;box-shadow:0 8px 32px rgba(0,0,0,.3);}
.mobile-menu.open .mobile-menu-card{transform:scale(1);opacity:1;}
.mobile-menu-card a{display:block;font-size:.9rem;font-weight:400;color:rgba(255,255,255,.75);text-decoration:none;letter-spacing:.02em;font-family:"DM Sans",sans-serif;padding:10px 20px;transition:background .15s;}
.mobile-menu-card a:hover{background:rgba(255,255,255,.06);}
.mobile-menu-card a:last-child{color:var(--accent);border-top:1px solid rgba(255,255,255,.08);margin-top:4px;padding-top:14px;}

/* ===== BUTTONS ===== */
.btn-dark{display:inline-flex;align-items:center;gap:.4rem;background:var(--dark);color:#fff;font-size:.88rem;font-weight:500;padding:.8rem 1.6rem;border-radius:6px;text-decoration:none;transition:background .2s,gap .2s;white-space:nowrap;}
.btn-dark:hover{background:var(--dark2);gap:.65rem;}
.btn-soft{font-size:.88rem;color:var(--text-muted);text-decoration:none;border-bottom:1px solid var(--border);padding-bottom:2px;transition:color .2s;white-space:nowrap;}
.btn-soft:hover{color:var(--text);}
.btn-accent{display:inline-flex;align-items:center;gap:.4rem;background:var(--accent);color:#fff;font-size:.88rem;font-weight:500;padding:.8rem 1.6rem;border-radius:6px;text-decoration:none;transition:background .2s,gap .2s;}
.btn-accent:hover{background:var(--accent2);gap:.65rem;}
.btn-cta{display:inline-flex;align-items:center;gap:.4rem;background:var(--white);color:var(--dark);font-size:.9rem;font-weight:500;padding:.8rem 1.8rem;border-radius:6px;text-decoration:none;transition:background .2s,gap .2s;}
.btn-cta:hover{background:var(--card);gap:.65rem;}
.btn-cta-ghost{font-size:.9rem;color:rgba(255,255,255,.7);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:2px;transition:color .2s;}
.btn-cta-ghost:hover{color:rgba(255,255,255,.75);}
.btn-submit{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;background:var(--dark);color:#fff;font-size:.92rem;font-weight:500;padding:.9rem 2rem;border-radius:6px;border:none;cursor:pointer;transition:background .2s;font-family:"DM Sans",sans-serif;width:100%;}
.btn-submit:hover{background:var(--dark2);}
.btn-dark:active,.btn-accent:active,.nav-cta:active,.btn-price:active,.btn-cta:active{transform:scale(.96);transition:transform .1s ease;}


/* ===== SHARED TYPOGRAPHY ===== */
.sec-tag{font-size:.75rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.85rem;display:flex;align-items:center;gap:.5rem;}
.sec-tag::before{content:"";width:14px;height:1.5px;background:var(--accent);}
.sec-h2{font-family:"Fraunces",serif;font-size:clamp(1.8rem,2.8vw,2.6rem);font-weight:700;line-height:1.1;letter-spacing:-.025em;color:var(--text);margin-bottom:1.5rem;}
.sec-h2 em{font-style:italic;color:var(--accent);}
.about-h em,
.case-h em,
.cta-h em,
.blog-hero h1 em {
  font-style:italic;
  font-weight:700;
  color:var(--accent);
}
@keyframes gradtext{0%{background-position:0%;}50%{background-position:100%;}100%{background-position:0%;}}

/* ===== LOGO DRAW ===== */
.logo-path{stroke:#E8E4DC;stroke-width:2;fill:none;stroke-dasharray:3000;stroke-dashoffset:3000;animation:draw 6s ease forwards;}
@keyframes draw{to{stroke-dashoffset:0;}}


/* ===== REVEAL SYSTEM ===== */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease;}
.reveal.on{opacity:1;transform:translateY(0);}
.d1{transition-delay:.1s;}.d2{transition-delay:.2s;}.d3{transition-delay:.3s;}
@keyframes up{to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{to{opacity:1;}}
@media(prefers-reduced-motion:reduce){
  .reveal{transition:none;opacity:1;transform:none;}
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}

/* ===== FORM MESSAGES ===== */
.form-message{font-size:.85rem;padding:.65rem 1rem;border-radius:6px;margin-top:.5rem;display:none;}
.form-message.error{display:block;background:rgba(220,53,69,.08);color:#c0392b;border:1px solid rgba(220,53,69,.15);}
.form-message.success{display:block;background:rgba(46,125,50,.08);color:#2e7d32;border:1px solid rgba(46,125,50,.15);}

/* ===== TOAST ===== */
.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(20px);background:var(--dark);color:#fff;font-size:.8rem;padding:.6rem 1.25rem;border-radius:100px;opacity:0;transition:all .3s ease;pointer-events:none;z-index:999;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ===== BACK TO TOP ===== */
.btt{position:fixed;bottom:2rem;right:2rem;width:44px;height:44px;background:var(--dark);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:98;opacity:0;transform:scale(.8);transition:opacity .3s ease,transform .3s ease;box-shadow:0 4px 16px rgba(0,0,0,.2);}
.btt.show{opacity:1;transform:scale(1);}
.btt-ring{position:absolute;inset:0;width:100%;height:100%;}
.btt-arrow{width:16px;height:16px;color:#fff;position:relative;z-index:1;}
.btt:hover{background:var(--dark2);}
.btt:hover .btt-arrow{color:#7fa0c3;}

/* ===== STICKY CTA ===== */
.sticky-cta{display:none;}

/* ===== FOOTER ===== */
footer{background:var(--dark2);border-top:1px solid rgba(255,255,255,.06);padding:2.5rem 4rem;}
.footer-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:2rem;}
.footer-logo img{height:22px;width:auto;opacity:.45;}
.footer-links{display:flex;gap:2rem;list-style:none;}
.footer-links a{font-size:.72rem;color:rgba(255,255,255,.25);text-decoration:none;letter-spacing:.05em;text-transform:uppercase;transition:color .15s;}
.footer-links a:hover{color:rgba(255,255,255,.6);}
.footer-social{display:flex;justify-content:flex-end;gap:1rem;}
.footer-social a{color:rgba(255,255,255,.25);text-decoration:none;font-size:.8rem;transition:color .15s;display:flex;align-items:center;gap:.3rem;}
.footer-social a:hover{color:rgba(255,255,255,.6);}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.04);}
.footer-copy{font-size:.7rem;color:rgba(255,255,255,.18);}
.footer-loc{font-size:.7rem;color:rgba(255,255,255,.18);}

/* ===== GLOBAL RESPONSIVE ===== */
@media(max-width:900px){
  nav{padding:0 1.25rem;}
  .nav-links{display:none;}
  .nav-li{display:none;}
  .nav-cta{display:none;}
  .nav-mobile-blog{display:none !important;}
  .menu-text-btn{display:block;}
  footer{padding:2rem 1.5rem;}
  .footer-top{grid-template-columns:1fr;gap:1.5rem;text-align:center;}
  .footer-links{justify-content:center;flex-wrap:wrap;gap:.5rem;}
  .footer-links a{min-height:44px;display:inline-flex;align-items:center;padding:.5rem .75rem;}
  .footer-social{justify-content:center;gap:.5rem;}
  .footer-social a{min-height:44px;padding:.5rem .75rem;}
}

