/* ============================================================
   ZNS LANDSCAPING — shared styles (used by every page)
   ============================================================ */
html,body{background:#0a0a0a}
body{font-family:'Jost',sans-serif;-webkit-font-smoothing:antialiased;letter-spacing:.005em}
h1,h2,h3,h4,.font-display{font-family:'Cormorant Garamond',Georgia,serif;letter-spacing:-.005em}
::selection{background:#c9a227;color:#0a0a0a}

/* Tailwind's Play CDN has no numeric weight utilities — define them so headings render correctly */
.font-300{font-weight:300}.font-400{font-weight:400}.font-500{font-weight:500}
.font-600{font-weight:600}.font-700{font-weight:700}.font-800{font-weight:700}

/* Luxury serif display refinements: Cormorant has a low x-height, so display sizes
   get a touch larger and tighter for presence; italics carry the elegant accent. */
.font-display{font-feature-settings:"liga" 1,"dlig" 1}
h1.font-display,.hero-title{letter-spacing:-.015em;line-height:1.03}
.display-xl{font-size:clamp(3.4rem,8vw,6.5rem)}
.eyebrow,.tracking-\[0\.2em\],.tracking-\[0\.25em\],.tracking-\[0\.3em\]{font-family:'Jost',sans-serif}

/* Scrollbar */
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:#0a0a0a}
::-webkit-scrollbar-thumb{background:#2e2e2e;border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:#3d3d3d}

/* Hero Ken-Burns + parallax */
.hero-img{transform:scale(1.08);will-change:transform;animation:kenburns 22s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1.08) translateY(0)}to{transform:scale(1.16) translateY(-14px)}}

/* gradient text */
.text-grad{background:linear-gradient(100deg,#e6c75c 0%,#c9a227 45%,#6fbf52 110%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* shimmer divider */
.gold-rule{height:1px;background:linear-gradient(90deg,transparent,#c9a227,transparent)}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.1s}.reveal[data-d="2"]{transition-delay:.2s}
.reveal[data-d="3"]{transition-delay:.3s}.reveal[data-d="4"]{transition-delay:.4s}
.reveal[data-d="5"]{transition-delay:.5s}.reveal[data-d="6"]{transition-delay:.6s}

/* marquee */
.marquee{display:flex;gap:3rem;white-space:nowrap;animation:scrollx 30s linear infinite}
@keyframes scrollx{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* portfolio hover */
.pcard img{transition:transform .7s cubic-bezier(.22,.61,.36,1)}
.pcard:hover img{transform:scale(1.09)}
.pcard .pveil{transition:opacity .5s ease}
.pcard .pmeta{transition:transform .5s cubic-bezier(.22,.61,.36,1),opacity .5s ease}

/* buttons */
.btn-gold{background:#c9a227;color:#0a0a0a;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.btn-gold:hover{background:#e6c75c;transform:translateY(-2px);box-shadow:0 14px 34px -12px rgba(201,162,39,.6)}
.btn-ghost{border:1px solid rgba(255,255,255,.25);transition:all .2s ease}
.btn-ghost:hover{border-color:#c9a227;color:#e6c75c;transform:translateY(-2px)}

/* nav link underline */
.nlink{position:relative}
.nlink::after{content:"";position:absolute;left:0;bottom:-6px;height:1.5px;width:0;background:#c9a227;transition:width .3s ease}
.nlink:hover::after{width:100%}
.nlink.active{color:#fff}
.nlink.active::after{width:100%}

/* ===== CHAT WIDGET ===== */
#chatPanel{transform:translateY(24px) scale(.96);opacity:0;pointer-events:none;
  transition:transform .35s cubic-bezier(.22,.61,.36,1),opacity .3s ease;transform-origin:bottom right}
#chatPanel.open{transform:none;opacity:1;pointer-events:auto}
.chat-scroll{scrollbar-width:thin}
.bubble{max-width:84%;animation:bubblein .35s cubic-bezier(.22,.61,.36,1)}
@keyframes bubblein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.chip{transition:all .18s ease}
.chip:hover{background:#c9a227;color:#0a0a0a;border-color:#c9a227}
.typing span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#9a9a9a;margin:0 2px;animation:typing 1.2s infinite}
.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}
@keyframes typing{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}
.chat-fab{box-shadow:0 12px 40px -8px rgba(201,162,39,.55)}
.chat-pulse::before{content:"";position:absolute;inset:0;border-radius:9999px;background:#c9a227;animation:pulse 2.4s ease-out infinite;z-index:-1}
@keyframes pulse{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.7);opacity:0}}

/* page hero (interior pages) */
.page-hero{position:relative;overflow:hidden}
.page-hero .ph-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32;transform:scale(1.06)}

/* accordion (FAQ) */
.acc-item details{transition:border-color .25s ease}
.acc-item details[open]{border-color:rgba(201,162,39,.45)}
.acc-item summary{list-style:none;cursor:pointer}
.acc-item summary::-webkit-details-marker{display:none}
.acc-item summary .chev{transition:transform .3s ease}
.acc-item details[open] summary .chev{transform:rotate(45deg)}

/* ===== SENIOR-FRIENDLY READABILITY =====
   One notch larger base type (scales every rem-based size ~6%),
   brighter fine print, underlined in-copy links, visible focus,
   calmer marquee, larger chat/form text. */
html{font-size:106.25%}
p a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
a:focus-visible,button:focus-visible,summary:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid #e6c75c;outline-offset:3px;border-radius:4px}
.text-neutral-500{color:#a3a3a3}
#chatPanel .text-sm,#chatPanel input{font-size:.9375rem}
#contactForm label{font-size:.8125rem}
.marquee{animation-duration:48s}
.marquee:hover{animation-play-state:paused}

@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
  .hero-img{transform:scale(1.08)}
}
