/* Haven & Wilde Trust — site design system (front page) v1.0 */
:root{
  --hw-ink:#14151A;
  --hw-ivory:#F6F4EF;
  --hw-paper:#FFFFFF;
  --hw-stone:#8A8578;
  --hw-brass:#A38A55;
  --hw-body:#3A3B40;
  --hw-serif:'Cormorant Garamond', Georgia, serif;
  --hw-sans:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  /* ---- hero load animation (tune here) ---- */
  --hw-hero-ease:cubic-bezier(0.16, 1, 0.3, 1);  /* ease-out-expo: fast start, soft landing */
  --hw-logo-from-scale:1.22;                     /* logo starts zoomed in, settles to 1.0 */
  --hw-logo-dur:1700ms;
  --hw-logo-delay:0ms;
  --hw-headline-shift:14px;                      /* headline fade-up distance */
  --hw-headline-dur:1200ms;
  --hw-headline-delay:850ms;                     /* begins WHILE logo is still settling */
}

body.hw-brand{background:var(--hw-ivory);font-family:var(--hw-sans);color:var(--hw-body);font-weight:300;line-height:1.75;font-size:16px}
body.hw-brand .site-content, body.hw-brand #content{padding:0}
body.hw-brand h1, body.hw-brand h2, body.hw-brand h3{font-family:var(--hw-serif);font-weight:500;color:var(--hw-ink)}
body.hw-brand a{text-decoration:none}

/* ---------- motion ---------- */
@keyframes hwRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes hwFade{from{opacity:0}to{opacity:1}}
@keyframes hwH1{from{opacity:0;letter-spacing:.06em}to{opacity:1;letter-spacing:.012em}}
@keyframes hwLogoIn{from{opacity:0;transform:scale(var(--hw-logo-from-scale))}to{opacity:1;transform:scale(1)}}
@keyframes hwHeadlineIn{from{opacity:0;transform:translateY(var(--hw-headline-shift))}to{opacity:1;transform:none}}
.hw-reveal{opacity:0;transform:translateY(22px);transition:opacity 1s ease,transform 1s ease;animation:hwRise .9s ease 3s forwards}
.hw-reveal.hw-in{opacity:1;transform:none;animation:none}
.hw-d1{transition-delay:.15s}.hw-d2{transition-delay:.3s}.hw-d3{transition-delay:.45s}

/* ---------- shared ---------- */
.hw-eyebrow{font-size:11px !important;letter-spacing:.34em;text-transform:uppercase;color:var(--hw-brass) !important;font-weight:500;font-family:var(--hw-sans)}
body.hw-brand hr.hw-rule{width:48px !important;max-width:48px;height:1px;background:var(--hw-brass);border:0;margin-left:auto;margin-right:auto}
body.hw-brand hr.hw-rule.has-alpha-channel-opacity{opacity:1}

/* ---------- fixed header ---------- */
.hw-hdr{position:fixed;top:0;left:0;right:0;z-index:9999;transition:background .4s ease,box-shadow .4s ease}
.hw-hdr.hw-solid{background:rgba(20,21,26,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 1px 0 rgba(246,244,239,.08)}
.hw-hdr-in{max-width:1160px;margin:0 auto;padding:0 32px;height:76px;display:flex;align-items:center;justify-content:space-between}
.hw-hdr img{height:34px;width:auto;display:block}
.hw-hdr nav{display:flex;gap:40px}
.hw-hdr nav a{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:rgba(246,244,239,.8);font-weight:400;transition:color .25s}
.hw-hdr nav a:hover{color:var(--hw-brass)}
body.hw-brand.admin-bar .hw-hdr{top:32px}

/* ---------- hero ---------- */
.hw-hero{min-height:100vh;background:var(--hw-ink);color:var(--hw-ivory);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px 28px 96px;position:relative;margin:0}
.hw-hero .hw-lockup img{height:128px;width:auto}
.hw-hero .hw-lockup{margin:0 auto 52px;opacity:0;will-change:transform,opacity;animation:hwLogoIn var(--hw-logo-dur) var(--hw-hero-ease) var(--hw-logo-delay) both}
body.hw-brand .hw-hero h1{color:var(--hw-ivory);font-size:clamp(40px,6vw,72px);line-height:1.12;max-width:840px;margin:0;opacity:0;will-change:transform,opacity;animation:hwHeadlineIn var(--hw-headline-dur) var(--hw-hero-ease) var(--hw-headline-delay) both}
.hw-hero hr.hw-rule{margin:42px auto 0;animation:hwFade 1.2s ease 1.2s both}
.hw-hero .hw-sub{color:rgba(246,244,239,.6);font-size:15px;letter-spacing:.04em;max-width:460px;margin:26px auto 0;opacity:0;animation:hwFade 1.4s ease 1.5s forwards}
.hw-scrollcue{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:12px;opacity:0;animation:hwFade 1.4s ease 2s forwards}
.hw-scrollcue span{font-size:9.5px;letter-spacing:.4em;text-transform:uppercase;color:rgba(246,244,239,.4)}
.hw-scrollcue i{display:block;width:1px;height:44px;background:linear-gradient(to bottom,rgba(163,138,85,.9),transparent)}
/* accessibility: no motion -> render hero's final static state immediately */
@media(prefers-reduced-motion:reduce){
  .hw-hero .hw-lockup,body.hw-brand .hw-hero h1,.hw-hero hr.hw-rule,.hw-hero .hw-sub{animation:none;opacity:1;transform:none}
  .hw-scrollcue{animation:none;opacity:1}
}

/* ---------- about ---------- */
.hw-about{padding:140px 28px;text-align:center;margin:0}
.hw-about-in{max-width:620px;margin:0 auto}
.hw-about h2{font-size:clamp(30px,3.6vw,42px);line-height:1.25;margin:20px 0 30px}
.hw-about p{margin-bottom:20px;font-size:16.5px}
.hw-about hr.hw-rule{margin:38px auto 0}

/* ---------- contact ---------- */
.hw-contact{padding:0 28px 150px;text-align:center;margin:0}
.hw-contact-in{max-width:620px;margin:0 auto}
.hw-contact h2{font-size:clamp(28px,3.2vw,38px);margin:20px 0 14px}
.hw-contact .hw-note{font-size:14.5px;color:var(--hw-stone);max-width:480px;margin:0 auto 48px}

/* ---------- WPForms: underline fields, floating labels ---------- */
body.hw-brand .wpforms-container{text-align:left}
body.hw-brand .wpforms-container .wpforms-field{position:relative;padding:22px 0}
body.hw-brand .wpforms-container .wpforms-field-label{position:absolute;left:0;top:32px;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--hw-stone);font-weight:400;pointer-events:none;transition:all .3s ease;margin:0}
body.hw-brand .wpforms-container .wpforms-field.hw-float .wpforms-field-label{top:2px;font-size:9px;color:var(--hw-brass)}
body.hw-brand .wpforms-container input[type=text],
body.hw-brand .wpforms-container input[type=email],
body.hw-brand .wpforms-container textarea{width:100%;max-width:100%;background:transparent;border:0;border-bottom:1px solid rgba(20,21,26,.18);border-radius:0;padding:10px 0 12px;font-family:var(--hw-sans);font-size:16px;font-weight:300;color:var(--hw-ink);outline:none;box-shadow:none;transition:border-color .3s}
body.hw-brand .wpforms-container input:focus,
body.hw-brand .wpforms-container textarea:focus{border-bottom-color:var(--hw-brass);box-shadow:none}
body.hw-brand .wpforms-container textarea{min-height:44px;height:44px;resize:none;overflow:hidden;line-height:1.5}
body.hw-brand .wpforms-container .wpforms-submit-container{text-align:center;padding-top:28px}
body.hw-brand .wpforms-container button[type=submit]{background:transparent !important;color:var(--hw-ink) !important;border:1px solid rgba(20,21,26,.35) !important;border-radius:0 !important;font-family:var(--hw-sans) !important;font-size:11px !important;letter-spacing:.3em;text-transform:uppercase;padding:18px 52px !important;cursor:pointer;transition:all .3s ease;height:auto !important;line-height:1 !important}
body.hw-brand .wpforms-container button[type=submit]:hover{background:var(--hw-ink) !important;color:var(--hw-ivory) !important;border-color:var(--hw-ink) !important}
body.hw-brand .wpforms-container .wpforms-field-description,
body.hw-brand .wpforms-container .wpforms-error{font-size:12px;font-family:var(--hw-sans)}

/* ---------- footer ---------- */
.hw-footer{background:var(--hw-ink);color:rgba(246,244,239,.5);text-align:center;padding:64px 28px 52px;margin:0}
.hw-footer .hw-wordmark{font-family:var(--hw-serif);color:var(--hw-ivory);font-size:17px;letter-spacing:.22em;text-transform:uppercase;margin:0 0 10px}
.hw-footer .hw-fine{font-size:11.5px;letter-spacing:.05em;line-height:2;margin:0}

/* ---------- responsive ---------- */
@media(max-width:760px){
  .hw-hdr nav{gap:24px}
  .hw-hero .hw-lockup img{height:92px}
  .hw-hero .hw-lockup{margin-bottom:36px}
  .hw-about{padding:100px 24px}
  .hw-contact{padding:0 24px 110px}
}
