/* Harwick Search Collective - plum + amber, editorial serif, lens */
:root{
  --bg:#4A2C4A;
  --bg-2:#3a2039;
  --ink:#F1E9EF;
  --accent:#E29A3B;
  --accent-soft:#f0c07a;
  --paper:#faf6f3;
  --paper-ink:#2a1e29;
  --line:rgba(255,255,255,.14);
  --maxw:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Work Sans",system-ui,sans-serif;color:var(--paper-ink);background:var(--paper);line-height:1.68;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:"Newsreader",Georgia,serif;line-height:1.14;margin:0;font-weight:500;letter-spacing:-.01em}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}

.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.in{opacity:1;transform:none}

/* header */
#siteHeader{position:sticky;top:0;z-index:50;background:rgba(74,44,74,.82);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
#siteHeader.scrolled{background:rgba(58,32,57,.96)}
.bar{display:flex;align-items:center;justify-content:space-between;height:70px}
.brand{display:flex;align-items:center;gap:11px;color:var(--ink);font-family:"Newsreader";font-weight:600;font-size:1.15rem}
.brand img{border-radius:8px}
.brand em{font-style:italic;font-weight:400;opacity:.76;font-size:.82rem;display:block;font-family:"Newsreader"}
#primaryNav{display:flex;align-items:center;gap:26px}
#primaryNav a{color:var(--ink);font-size:.95rem;opacity:.9}
.btn-nav{border:1px solid var(--accent);color:var(--accent-soft)!important;padding:8px 18px;border-radius:999px;opacity:1!important;font-family:"Work Sans"}
#navToggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
#navToggle span{width:24px;height:2px;background:var(--ink);border-radius:2px}

/* hero */
.hero{background:var(--bg);color:var(--ink);overflow:hidden;position:relative}
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:center;padding:96px 20px 104px}
.kicker{font-family:"Work Sans";text-transform:uppercase;letter-spacing:.24em;font-size:.74rem;color:var(--accent-soft);font-weight:600;margin:0 0 20px}
.hero h1{font-size:clamp(2.4rem,6vw,4.3rem);font-weight:500;max-width:15ch}
.hero h1 em{font-style:italic;color:var(--accent-soft)}
.lede{margin:24px 0 0;max-width:50ch;font-size:1.14rem;color:rgba(241,233,239,.9)}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.btn{display:inline-block;background:var(--accent);color:#2d1a05;font-family:"Work Sans";font-weight:600;padding:14px 26px;border-radius:999px;font-size:.98rem;transition:transform .25s ease,box-shadow .25s ease}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid rgba(255,255,255,.4)}
.hero-art{display:flex;justify-content:center}
.hero-art svg{width:100%;max-width:320px}
.lens{transform-origin:150px 150px;animation:hunt 9s ease-in-out infinite}
.scan{transform-origin:150px 150px;animation:scan 3s linear infinite}
.match{animation:glow 9s ease-in-out infinite}
@keyframes hunt{
  0%{transform:translate(-46px,-40px)}
  25%{transform:translate(40px,-34px)}
  50%{transform:translate(0,0)}
  75%{transform:translate(-30px,46px)}
  100%{transform:translate(-46px,-40px)}
}
@keyframes scan{to{transform:rotate(360deg)}}
@keyframes glow{0%,45%{opacity:.35}50%,70%{opacity:1}100%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.lens,.scan,.match{animation:none}}

/* about */
.about{padding:94px 0}
.ey{font-family:"Work Sans";text-transform:uppercase;letter-spacing:.2em;font-size:.74rem;color:#9a4f8e;font-weight:600;margin:0 0 20px}
.ey.light{color:var(--accent-soft)}
.about-wrap h2{font-size:clamp(1.9rem,4vw,2.9rem);max-width:20ch;margin-bottom:34px}
.about-cols{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.about-cols p{margin:0;font-size:1.08rem;color:#4a3a48}

/* practices */
.practices{padding:20px 0 94px}
.practices h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin-bottom:12px}
.pr-list{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:0}
.pr-list li{display:flex;gap:28px;align-items:flex-start;padding:30px 8px;border-top:1px solid #e7ddd6;transition:background .25s ease,padding .25s ease}
.pr-list li:last-child{border-bottom:1px solid #e7ddd6}
.pr-n{font-family:"Newsreader";font-style:italic;font-size:1.5rem;color:var(--accent);flex:0 0 auto;min-width:48px}
.pr-list h3{font-size:1.5rem;margin-bottom:6px}
.pr-list p{margin:0;color:#4a3a48;max-width:60ch}

/* approach dark band */
.approach{background:var(--bg);color:var(--ink);padding:96px 0}
.approach h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin-bottom:40px}
.ap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.ap{border-left:2px solid var(--accent);padding:6px 0 6px 22px;transition:transform .25s ease,border-color .25s ease}
.ap span{display:block;font-family:"Newsreader";font-style:italic;font-size:1.6rem;color:var(--accent-soft);margin-bottom:12px}
.ap h3{font-size:1.25rem;margin-bottom:8px}
.ap p{margin:0;color:rgba(241,233,239,.86);font-size:.98rem}

/* quote */
.quote{background:var(--bg-2);color:var(--ink);padding:88px 0}
.quote blockquote{margin:0 auto;max-width:880px;text-align:center;font-family:"Newsreader";font-style:italic;font-weight:400;font-size:clamp(1.5rem,3.4vw,2.3rem);line-height:1.34}
.quote blockquote::before{content:"";display:block;width:52px;height:3px;background:var(--accent);margin:0 auto 26px}

/* faq */
.faq{padding:94px 0}
.faq h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin-bottom:30px}
.faq-list{display:grid;gap:12px;max-width:840px}
.faq-item{border:1px solid #e7ddd6;border-radius:14px;background:#fff;overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:0;padding:22px 24px;font-family:"Newsreader";font-weight:600;font-size:1.18rem;color:var(--paper-ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq-q span{color:var(--accent);font-size:1.5rem;line-height:1;transition:transform .3s ease;flex:0 0 auto;font-family:"Work Sans"}
.faq-item.open .faq-q span{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-item.open .faq-a{max-height:280px}
.faq-a p{margin:0;padding:0 24px 24px;color:#4a3a48}

/* cta */
.cta{background:var(--bg);color:var(--ink);padding:96px 0}
.cta-inner{text-align:center;max-width:720px;margin:0 auto}
.cta h2{font-size:clamp(2rem,4vw,2.9rem);margin-bottom:14px}
.cta p{color:rgba(241,233,239,.9);margin:0 0 28px;font-size:1.1rem}

/* footer */
footer{background:var(--bg-2);color:var(--ink);padding:48px 0;border-top:1px solid var(--line)}
.foot{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.foot-brand{display:flex;align-items:center;gap:12px;font-family:"Newsreader";font-weight:600;font-size:1.05rem}
.foot-brand img{border-radius:8px}
.foot-note{margin:0;font-size:.88rem;color:rgba(241,233,239,.7)}

/* hover */
@media (hover:hover) and (pointer:fine){
  #primaryNav a:hover{opacity:1;color:var(--accent-soft)}
  .btn:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(226,154,59,.32)}
  .btn.ghost:hover{background:rgba(255,255,255,.08)}
  .pr-list li:hover{background:#f3ebe5;padding-left:16px;padding-right:16px}
  .ap:hover{transform:translateX(6px);border-color:var(--accent-soft)}
  .faq-item:hover{box-shadow:0 10px 26px rgba(74,44,74,.1)}
}

/* mobile */
@media (max-width:860px){
  #navToggle{display:flex}
  #primaryNav{position:absolute;top:70px;left:0;right:0;background:var(--bg-2);flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 20px;max-height:0;overflow:hidden;transition:max-height .35s ease;border-bottom:1px solid var(--line)}
  #primaryNav.open{max-height:420px}
  #primaryNav a{padding:14px 0;border-bottom:1px solid var(--line)}
  .btn-nav{margin-top:14px;text-align:center}
  .hero-grid{grid-template-columns:1fr;gap:34px}
  .hero-art{order:-1}.hero-art svg{max-width:230px}
  .about-cols{grid-template-columns:1fr;gap:20px}
  .ap-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .hero-grid{padding:72px 20px 84px}
  .ap-grid{grid-template-columns:1fr}
  .pr-list li{gap:18px}
  .pr-n{min-width:38px;font-size:1.2rem}
}

/* Business location */
.biz-addr{margin:20px 0 0;font-weight:600;color:var(--ink);font-size:1.05rem;line-height:1.55}
.biz-addr .biz-addr-label{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:5px;font-weight:600}
.foot-addr{color:var(--ink);font-weight:600}
