
:root{
  --deepGreen:#004B3F;
  --copper:#B5651D;
  --offWhite:#F8F9FA;
  --ink:#1f2937;
  --muted:#6b7280;
  --shadow:0 14px 40px rgba(0,0,0,.08);
  --shadow2:0 10px 26px rgba(0,0,0,.06);
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  color:var(--ink);
  background: radial-gradient(900px 500px at 15% 10%, rgba(181,101,29,.08), transparent 55%),
              radial-gradient(900px 500px at 85% 20%, rgba(0,75,63,.10), transparent 55%),
              var(--offWhite);
}
a{color:inherit}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}

/* Header */
header{
  position:sticky; top:0; z-index:50;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(17,24,39,.06);
}
.navBar{display:flex;align-items:center;justify-content:space-between;padding:12px 0; gap:16px}
.brand{display:flex;align-items:center;gap:12px; min-width: 280px; text-decoration:none; color:inherit;}
.brand *{text-decoration:none;}
.brand img{width:60px;height:60px;border-radius:50%;object-fit:cover;border:none;box-shadow:0 10px 24px rgba(0,0,0,.10);background:#fff}
.brandTitle{display:flex;flex-direction:column;line-height:1.1}
.brandTitle strong{font-size:21px;letter-spacing:.3px;color:var(--deepGreen)}
.brandTitle small{font-size:13px;color:var(--muted);margin-top:4px}

nav{display:flex;align-items:center;gap:10px; flex-wrap:wrap; justify-content:flex-end}
nav a{text-decoration:none;font-weight:650;color:#374151;padding:10px 14px;border-radius:999px;transition:all .18s ease}
nav a:hover{background:rgba(0,75,63,.06); color:var(--deepGreen)}
nav a.active{background:rgba(181,101,29,.10); color:var(--deepGreen); border:1px solid rgba(181,101,29,.25)}

/* Layout */
main{padding:34px 0 26px}
.heroCard{
  background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,255,255,.78));
  border:1px solid rgba(17,24,39,.06);
  border-radius: calc(var(--radius) + 6px);
  box-shadow: var(--shadow);
  padding: 34px 34px 26px;
}
.heroH1{
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
  font-size:54px;margin:0;line-height:1.05;letter-spacing:-.6px;color:var(--deepGreen)
}
.heroH1 .accent{color:var(--copper)}
.heroP{max-width:860px;margin:14px 0 0;color:#4b5563;font-size:18px;line-height:1.65}

.ctaRow{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;border-radius:12px;font-weight:800;text-decoration:none;border:1px solid transparent;transition:transform .15s ease, box-shadow .15s ease, background .15s ease}
.btn:active{transform:translateY(1px)}
.btnPrimary{background:var(--copper);color:#fff;box-shadow:0 10px 24px rgba(181,101,29,.25)}
.btnPrimary:hover{box-shadow:0 14px 34px rgba(181,101,29,.30)}
.btnGhost{background:rgba(0,75,63,.06);color:var(--deepGreen);border-color:rgba(0,75,63,.14)}
.btnGhost:hover{background:rgba(0,75,63,.08)}

.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px}
.tile{
  background: rgba(255,255,255,.92);
  border:1px solid rgba(17,24,39,.06);
  border-radius:18px;
  padding:18px 18px;
  box-shadow:var(--shadow2);
  transition:transform .18s ease, box-shadow .18s ease;
}
.tile:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.08)}
.tile h3{margin:0;font-size:16px;color:var(--deepGreen)}

.panel{margin-top:22px;background:rgba(255,255,255,.92);border:1px solid rgba(17,24,39,.06);border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow2)}
.panelInner{padding:30px}
.h2{font-family:ui-serif,Georgia,Cambria,Times,serif;font-size:36px;margin:0;color:var(--deepGreen)}
.lead{margin:12px 0 0;color:#4b5563;font-size:17px;line-height:1.7;max-width:920px}

.valueRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:20px}
.value{background:#fff;border:1px solid rgba(17,24,39,.06);border-radius:18px;padding:18px;box-shadow:0 10px 26px rgba(0,0,0,.05);min-width:0;overflow-wrap:anywhere}
.pill{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;font-weight:800;font-size:13px;background:rgba(0,75,63,.06);color:var(--deepGreen);border:1px solid rgba(0,75,63,.12)}
.value p{margin:12px 0 0;color:#4b5563;line-height:1.5}

.svcGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}
.svcCard{background:#fff;border:1px solid rgba(17,24,39,.06);border-radius:20px;padding:22px;box-shadow:0 10px 26px rgba(0,0,0,.05)}
.svcCard h3{margin:0;color:var(--deepGreen)}
.svcCard ul{margin:12px 0 0;padding-left:18px;color:#4b5563;line-height:1.7}

.contactWrap{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-top:18px}
form.contactForm{background:#fff;border:1px solid rgba(17,24,39,.06);border-radius:20px;padding:22px;box-shadow:0 10px 26px rgba(0,0,0,.05)}
label{display:block;font-weight:800;font-size:13px;color:#374151;margin:10px 0 8px}
input,select,textarea{
  width:100%;padding:12px 12px;border-radius:12px;border:1px solid rgba(17,24,39,.14);
  background:#fbfbfb;outline:none;font-size:14px
}
input:focus,select:focus,textarea:focus{border-color:rgba(0,75,63,.35);box-shadow:0 0 0 4px rgba(0,75,63,.08)}
textarea{min-height:120px;resize:vertical}
.formRow{display:grid;grid-template-columns:minmax(0,1fr) 1fr;gap:12px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.btnWide{min-width:260px}
.sideCard{background:rgba(255,255,255,.92);border:1px solid rgba(17,24,39,.06);border-radius:20px;padding:20px;box-shadow:var(--shadow2)}
.sideCard h3{margin:0;color:var(--deepGreen)}
.sideCard p{margin:10px 0 0;color:#4b5563;line-height:1.6}
.smallLink{display:inline-flex;margin-top:12px;font-weight:900;color:var(--deepGreen);text-decoration:none}
.smallLink:hover{text-decoration:underline}

footer{padding:26px 0 40px;color:#6b7280;text-align:center}

/* Floating Buttons */
.floating{position:fixed;right:18px;bottom:18px;display:flex;gap:10px;z-index:60}
.floatBtn{display:inline-flex;align-items:center;gap:10px;padding:12px 16px;border-radius:999px;color:#fff;text-decoration:none;font-weight:900;box-shadow:0 18px 40px rgba(0,0,0,.18)}
.floatChat{background:var(--copper)}
.floatBook{background:var(--deepGreen)}
.dot{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.18)}

/* Loader */
#tjLoader{
  position:fixed; inset:0;
  background: radial-gradient(900px 500px at 15% 10%, rgba(181,101,29,.10), transparent 55%),
              radial-gradient(900px 500px at 85% 20%, rgba(0,75,63,.12), transparent 55%),
              #ffffff;
  display:flex; align-items:center; justify-content:center;
  z-index:9999;
  transition: opacity .35s ease, visibility .35s ease;
}
#tjLoader.hide{opacity:0; visibility:hidden}
.loaderCard{
  display:flex; flex-direction:column; align-items:center; gap:14px;
  padding:26px 28px;
  border-radius:24px;
  border:1px solid rgba(17,24,39,.06);
  box-shadow:0 18px 60px rgba(0,0,0,.12);
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(10px);
}

@media (max-width:980px){
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .valueRow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .svcGrid{grid-template-columns:minmax(0,1fr)}
  .contactWrap{grid-template-columns:minmax(0,1fr)}
  .heroH1{font-size:44px}
}
@media (max-width:520px){
  .heroCard{padding:22px}
  .formRow{grid-template-columns:minmax(0,1fr)}
  nav a{padding:9px 12px}
}

/* Loader (Option A: Logo Fill Reveal) */
.loaderCard{
  display:flex; flex-direction:column; align-items:center; gap:14px;
  padding:26px 28px;
  border-radius:24px;
  border:1px solid rgba(17,24,39,.06);
  box-shadow:0 18px 60px rgba(0,0,0,.12);
  background: rgba(255,255,255,.78);
  backdrop-filter: blur(10px);
}
.logoStack{
  position:relative;
  width:92px; height:92px;
  border-radius:50%;
  overflow:hidden;
  box-shadow:0 14px 40px rgba(0,0,0,.18);
  background:#fff;
}
.logoBase, .logoColor{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  border-radius:50%;
}
.logoBase{
  filter: grayscale(1) contrast(1.05) brightness(1.05);
  opacity:.92;
}
.logoColor{
  clip-path: inset(100% 0 0 0);
  animation: fillLR 1.05s ease forwards;
}
@keyframes fillLR{0%{clip-path: inset(0 100% 0 0);}100%{clip-path: inset(0 0 0 0);}}

/* Loader (Logo-only override) */
.loaderCard{
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  backdrop-filter: none !important;
}

.logoStack{
  box-shadow: none !important;
  background: transparent !important;
}

/* Make service pills clickable while keeping the same look */
a.servicePill{
  text-decoration: none;
  color: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
a.servicePill:hover{
  transform: translateY(-1px);
}
a.servicePill:focus-visible{
  outline: 3px solid rgba(181,101,29,.35);
  outline-offset: 4px;
}
/* Keep anchored headings visible below sticky header */
:target{
  scroll-margin-top: 120px;
}

/* WhatsApp (icon-only) - brand aligned */
.whatsapp-float:active{ transform: translateY(0); }

/* --- Mini Service Modal --- */
.tjModal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:9998;padding:22px}
.tjModal.isOpen{display:flex}
.tjModal__overlay{position:absolute;inset:0;background:rgba(0,0,0,.32);backdrop-filter:blur(4px)}
.tjModal__dialog{position:relative;width:min(720px,100%);border-radius:22px;background:rgba(255,255,255,.92);border:1px solid rgba(17,24,39,.08);box-shadow:0 30px 90px rgba(0,0,0,.22);padding:22px 22px 18px;transform:translateY(10px);opacity:0;transition:transform .18s ease,opacity .18s ease}
.tjModal.isOpen .tjModal__dialog{transform:translateY(0);opacity:1}
.tjModal__close{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:12px;border:1px solid rgba(17,24,39,.10);background:rgba(255,255,255,.9);cursor:pointer;font-size:16px;color:#334155}
.tjModal__close:hover{transform:translateY(-1px)}
.tjModal__badge{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:12px;letter-spacing:.22px;color:#004B3F;background:rgba(0,75,63,.06);border:1px solid rgba(0,75,63,.12);padding:7px 10px;border-radius:999px}
.tjModal__title{margin:12px 0 8px;font-size:24px;line-height:1.2;color:#004B3F;font-family:ui-serif,Georgia,Cambria,Times,serif;font-weight:900}
.tjModal__body{margin:0 0 12px;color:rgba(17,24,39,.82);line-height:1.65}
.tjModal__bullets{margin:0 0 16px;padding-left:18px;color:rgba(17,24,39,.78);line-height:1.6}
.tjModal__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.tjModal__note{margin:12px 0 0;font-size:12.5px;color:rgba(17,24,39,.60)}
/* Make home tiles clickable as buttons */
.tileBtn{
  width:100%;
  text-align:left;
  border:none;
  background:transparent;
  padding:0;
  cursor:pointer;
}
.tileBtn:focus-visible{
  outline: 3px solid rgba(181,101,29,.35);
  outline-offset: 6px;
  border-radius: 18px;
}

/* --- Mobile nav polish (hamburger) --- */
.navToggle{
  display:none;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:14px;
  border:1px solid rgba(17,24,39,.10);
  background:rgba(255,255,255,.84);
  box-shadow:0 10px 24px rgba(0,0,0,.10);
  cursor:pointer;
}
.navToggle svg{display:block}
.navToggle:active{transform:translateY(1px)}
@media (max-width:760px){
  .wrap.navBar{padding:16px 16px; gap:12px}
  .brand{gap:10px}
  .brand *{text-decoration:none;}
.brand img{width:46px; height:46px}
  .brandTitle strong{font-size:18px; line-height:1.15}
  .brandTitle small{font-size:12.5px}
  .navToggle{display:inline-flex}

  /* Turn top nav into a compact drawer */
  #primaryNav{
    position:fixed;
    top:72px;
    left:16px;
    right:16px;
    display:none;
    flex-direction:column;
    gap:10px;
    padding:12px;
    border-radius:18px;
    background:rgba(255,255,255,.92);
    border:1px solid rgba(17,24,39,.08);
    box-shadow:0 24px 60px rgba(0,0,0,.16);
    backdrop-filter:blur(10px);
    z-index:60;
  }
  #primaryNav a{padding:12px 14px; font-size:16px}
  #siteHeader.navOpen #primaryNav{display:flex}
}

/* --- Mobile fit fixes --- */
html, body { max-width: 100%; overflow-x: hidden; }
img, svg { max-width: 100%; height: auto; }

@media (max-width: 760px){
  /* Prevent any container from exceeding viewport */
  .wrap, .section, .card, .hero, .panel { max-width: 100%; }
  .wrap { padding-left: 14px !important; padding-right: 14px !important; }

  /* Header: keep brand neat, avoid clipping */
  #siteHeader{position:sticky; top:0; z-index:70}
  .wrap.navBar{align-items:center; justify-content:space-between; gap:10px}
  .brand{min-width:0; flex:1 1 auto}
  .brandTitle{min-width:0}
  .brandTitle strong{
    font-size:17px !important;
    line-height:1.15 !important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width: 240px;
    display:block;
  }
  .brandTitle small{display:block; margin-top:2px}

  /* Hero: scale down headline so it fits */
  .hero h1, .heroTitle{
    font-size: 40px !important;
    line-height: 1.06 !important;
  }
  .hero p, .heroSub{
    font-size: 16px !important;
    line-height: 1.55 !important;
  }

  /* Tiles: single column */
  .tiles{grid-template-columns:minmax(0,1fr) !important; gap:14px !important}
  .tile{padding:16px !important}

  /* Nav drawer: fit viewport */
  #primaryNav{
    left: 14px !important;
    right: 14px !important;
    top: 66px !important;
    max-height: calc(100vh - 90px);
    overflow:auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Floating buttons: keep inside safe area */
  .whatsapp-float{right: 14px !important}
  .fabBook, .fabChat, .fab{right: 14px !important}
}

/* --- Mobile Option A (logo only header) --- */
@media (max-width: 760px){
  /* Use full screen width */
  body{ margin:0; }
  main.wrap{ width:100% !important; max-width:none !important; margin:0 !important; }
  .wrap{ width:100% !important; max-width:none !important; margin:0 !important; }

  /* Header: logo only (hide text) */
  .brandTitle{ display:none !important; }
  .brand *{text-decoration:none;}
.brand img{ width:52px !important; height:52px !important; }

  /* Ensure primary nav is hidden until opened */
  #primaryNav{ display:none; }
  #siteHeader.navOpen #primaryNav{ display:flex; }

  /* Floating buttons: avoid covering content */
  body{ padding-bottom:140px; }
  .floating, .floatingActions, .floatingWrap{ bottom:18px !important; right:14px !important; }
  .whatsapp-float{ width:48px !important; height:48px !important; right:14px !important; bottom:18px !important; }
  .fabBook, .fabChat, .fab{ transform:scale(.92); transform-origin: bottom right; }
}


/* --- Mobile alignment + FAB stacking overrides (v11) --- */
@media (max-width: 760px){
  /* Consistent page alignment across About/Services/Contact */
  body{background:#f4f6f7;}
  main.wrap{max-width:100% !important; width:100% !important; margin:0 !important; padding:0 14px 96px !important;}
  .section, .panel, .hero, .card, .contactWrap, .aboutWrap, .servicesWrap{max-width:100% !important; width:100% !important;}
  .panel{border-radius:22px !important;}

  /* Prevent any accidental horizontal scroll */
  html, body {overflow-x:hidden;}
  * {max-width:100vw;}

  /* ---- Floating buttons: stack & avoid overlap ---- */
  /* Hide the long TJ Tax Assistant pill on mobile; replace with compact icon button */
  .fabChat, .fabBook, .whatsapp-float{right:14px !important;}
  .floating{right:14px !important; bottom:14px !important;}
  .floating, .fabStack{position:fixed !important; z-index:80 !important;}

  /* If the site uses a container div.floating, make it a vertical stack */
  .floating{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-end !important;
    gap:10px !important;
  }

  /* WhatsApp icon: place at bottom of stack */
  .whatsapp-float{
    position:static !important;
    width:52px !important;
    height:52px !important;
    border-radius:999px !important;
    display:grid !important;
    place-items:center !important;
  }

  /* Book button: standard circle */
  .fabBook{
    position:static !important;
    width:56px !important;
    height:56px !important;
    border-radius:999px !important;
    display:grid !important;
    place-items:center !important;
    margin:0 !important;
  }

  /* Chat assistant: compact icon (not pill) */
  .fabChat{
    position:static !important;
    width:56px !important;
    height:56px !important;
    border-radius:999px !important;
    padding:0 !important;
    display:grid !important;
    place-items:center !important;
    font-size:0 !important; /* hide any text */
  }
  .fabChat::before{
    content:"🤖";
    font-size:22px;
    line-height:1;
  }

  /* If there is any assistant pill element, hide it */
  .assistantPill, .tjAssistantPill, .chatPill, .tj-pill, .tjTaxAssistant{display:none !important;}

  /* Give bottom area breathing room (forms) */
  .contactWrap, form, .contactForm{scroll-margin-bottom:120px;}
}


/* --- Mobile FAB overlap fix (v12) --- */
@media (max-width: 760px){
  /* Place WhatsApp at bottom-right */
  .whatsapp-float{position:fixed !important; right:14px !important; bottom:14px !important; z-index:90 !important;}
  /* Stack the other buttons above WhatsApp */
  .floating{position:fixed !important; right:14px !important; bottom:78px !important; z-index:85 !important;
    display:flex !important; flex-direction:column !important; align-items:flex-end !important; gap:10px !important;}
  .floatBtn{border-radius:999px !important; width:56px !important; height:56px !important; padding:0 !important;
    display:grid !important; place-items:center !important; box-shadow:0 14px 28px rgba(0,0,0,.12) !important;}
  /* Book stays as compact circle with text */
  .floatBook{font-size:14px !important; letter-spacing:.2px !important;}
  /* Assistant becomes icon-only */
  .floatChat{font-size:0 !important;}
  .floatChat::before{content:"🤖"; font-size:22px; line-height:1;}
  .floatChat .dot{display:none !important;}
}

.floatIcon{
  width:54px;height:54px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.06);
  text-decoration:none;
  box-shadow:0 18px 40px rgba(0,0,0,.18);
}
.floatWhats{
  background:rgba(185,127,74,.18); /* copper tint */
  color:var(--deepGreen);
}
.floatWhats:hover{transform:translateY(-1px)}

/* Mobile layout fixes */
@media (max-width:860px){
  .valueRow{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .valueRow{grid-template-columns:minmax(0,1fr)}
  .svcGrid{grid-template-columns:minmax(0,1fr)}
  .contactWrap{grid-template-columns:minmax(0,1fr)}
  .floating{flex-direction:column;align-items:flex-end;gap:10px;right:14px;bottom:14px}
  .floatBtn{padding:12px 14px}
  main.wrap{padding-bottom:150px}
}
