/* ==========================================================================
   FOUNDRY - overrides that must outrank Elementor's global kit
   The kit styles bare elements as `.elementor-kit-NN h1` (0,1,1), which beats
   plain element and single-class selectors. The kit stylesheet is dequeued on
   Foundry pages, but these are prefixed with body.atw-foundry (0,1,2) so the
   design holds even if it ever comes back.
   ========================================================================== */

/* ---------- Headings: colour, family, and a weight that actually exists --- */
body.atw-foundry h1,
body.atw-foundry h2,
body.atw-foundry h3,
body.atw-foundry h4,
body.atw-foundry h5,
body.atw-foundry h6{
  font-family:var(--ff-display);
  font-weight:800;          /* 900 is not among the self-hosted faces */
  color:var(--fg);
}
body.atw-foundry .f-sec--paper h1,
body.atw-foundry .f-sec--paper h2,
body.atw-foundry .f-sec--paper h3,
body.atw-foundry .f-sec--paper h4{color:var(--on-paper)}
body.atw-foundry .f-sec--field h1,
body.atw-foundry .f-sec--field h2,
body.atw-foundry .f-sec--field h3,
body.atw-foundry .f-sec--field h4{color:var(--fg)}

/* Type scale re-asserted: the kit was setting font-size on bare h1/h2 */
body.atw-foundry .f-display{font-size:clamp(2.5rem, 1.1rem + 6.4vw, 6.25rem);line-height:.94;letter-spacing:-.036em}
body.atw-foundry .f-h2{font-size:clamp(1.9rem, 1.05rem + 3.6vw, 3.4rem);line-height:1.02;letter-spacing:-.028em}
body.atw-foundry .f-h3{font-size:clamp(1.05rem, .98rem + .34vw, 1.3rem);line-height:1.24;letter-spacing:-.014em}
body.atw-foundry .f-phero h1{font-size:clamp(2.15rem, 1.1rem + 4.4vw, 4.4rem);line-height:1.0;letter-spacing:-.032em}
body.atw-foundry .f-card--lead h3{font-size:clamp(1.3rem,2vw,1.75rem);letter-spacing:-.022em}
body.atw-foundry .f-post h3{font-size:clamp(1.08rem,1rem + .4vw,1.28rem);line-height:1.25;letter-spacing:-.018em}
body.atw-foundry .f-post--feature h3{font-size:clamp(1.5rem,1.1rem + 1.7vw,2.4rem);line-height:1.06;letter-spacing:-.028em}
body.atw-foundry .f-prose h2{font-size:clamp(1.4rem,1.1rem + 1.1vw,1.95rem);line-height:1.14;letter-spacing:-.022em}
body.atw-foundry .f-prose h3{font-size:clamp(1.05rem,1rem + .3vw,1.22rem);line-height:1.24}

/* ---------- Anything the kit's `a` rule reaches --------------------------- */
body.atw-foundry .f-nav a{color:var(--fg-2)}
body.atw-foundry .f-nav a:hover,
body.atw-foundry .f-nav a[aria-current="page"]{color:var(--fg)}
body.atw-foundry .f-tel{color:var(--fg)}
body.atw-foundry .f-tel:hover{color:var(--brand)}
body.atw-foundry .f-brand span{color:var(--fg)}
body.atw-foundry .f-btn{color:var(--btn-fg)}
body.atw-foundry .f-btn--ghost{color:var(--fg)}
body.atw-foundry .f-btn--ghost:hover{color:var(--ink)}
body.atw-foundry .f-sec--paper .f-btn--ghost{color:var(--on-paper)}
body.atw-foundry .f-sec--paper .f-btn--ghost:hover{color:var(--paper)}
body.atw-foundry .f-link{color:var(--brand)}
body.atw-foundry .f-sec--paper .f-link,
body.atw-foundry .f-sec--paper .f-prose a{color:var(--brand-ink)}
body.atw-foundry .f-more{color:var(--fg)}
body.atw-foundry .f-more:hover{color:var(--accent)}
body.atw-foundry .f-sec--paper .f-more{color:var(--on-paper)}
body.atw-foundry .f-foot a{color:var(--fg-2)}
body.atw-foundry .f-foot a:hover{color:var(--brand)}
body.atw-foundry .f-info__block a{color:var(--fg)}
body.atw-foundry .f-info__block a:hover{color:var(--brand)}
body.atw-foundry .f-index__name{color:var(--fg)}
body.atw-foundry .f-index a:hover .f-index__name{color:var(--brand)}
body.atw-foundry .f-index__n{color:var(--brand-dim)}
body.atw-foundry .f-index__d{color:var(--fg-3)}
body.atw-foundry .f-index__go{color:var(--brand)}
body.atw-foundry .f-post__cat{color:var(--brand)}
body.atw-foundry .f-post p{color:var(--fg-3)}
body.atw-foundry .f-post--feature p{color:var(--fg-2)}
body.atw-foundry .f-post__meta{color:var(--fg-3)}
body.atw-foundry .f-post__go{color:var(--brand)}
body.atw-foundry .f-toc a{color:var(--on-paper-2)}
body.atw-foundry .f-toc a:hover{color:var(--on-paper)}
body.atw-foundry .f-chips--filter a{color:var(--fg-2)}
body.atw-foundry .f-chips--filter a[aria-current="true"]{color:var(--ink)}
body.atw-foundry .f-share a{color:var(--on-paper-2)}
body.atw-foundry .f-label{color:var(--brand)}
body.atw-foundry .f-sec--paper .f-label{color:var(--brand-ink)}
body.atw-foundry .f-num{color:var(--brand-dim)}
body.atw-foundry .f-sec--paper .f-num{color:var(--brand-ink)}
body.atw-foundry .f-rail li > span:last-child{color:var(--fg-3)}
body.atw-foundry .f-rail b,
body.atw-foundry .f-promises b{color:var(--fg)}

/* ---------- Header: a little more presence, and clear of the admin bar ---- */
body.atw-foundry .f-head__in{height:100px}
body.atw-foundry .f-head.is-stuck .f-head__in{height:72px}
body.atw-foundry .f-brand img{width:44px}
body.atw-foundry .f-head.is-stuck .f-brand img{width:34px}
body.atw-foundry .f-brand span{font-size:1.06rem;letter-spacing:-.022em}
body.atw-foundry .f-nav{gap:clamp(24px,2.6vw,40px)}
body.atw-foundry .f-nav a{font-size:.9rem}
body.atw-foundry .f-hero{padding-top:clamp(138px,13vw,196px)}
body.atw-foundry .f-phero{padding-top:clamp(138px,12vw,190px)}

body.admin-bar.atw-foundry .f-head{top:32px}
@media screen and (max-width:782px){
  body.admin-bar.atw-foundry .f-head{top:46px}
}
@media (max-width:720px){
  body.atw-foundry .f-head__in{height:76px}
  body.atw-foundry .f-head.is-stuck .f-head__in{height:62px}
  body.atw-foundry .f-brand img{width:38px}
  body.atw-foundry .f-head.is-stuck .f-brand img{width:32px}
}

/* ---------- Grid alignment: title, cards and pages share one line -------- */
body.atw-foundry .archive-header{
  padding-inline:max(var(--gut), calc((100% - var(--wrap)) / 2 + var(--gut))) !important;
}
body.atw-foundry .archive-header > *{
  max-width:var(--wrap) !important;margin-inline:0 !important;
  padding-inline:0 !important;box-sizing:border-box !important;
}
body.atw-foundry .archive-header::before{display:none !important}
body.atw-foundry .archive-header .solace-blog-title::before{
  content:"";display:block;width:26px;height:2px;background:var(--brand);margin:0 0 18px;
}
body.atw-foundry.single .container-single h1{margin-left:0 !important;margin-right:auto !important}

/* ---------- Identical box construction so every left edge agrees ---------- */
body.atw-foundry .container-index,
body.atw-foundry .container-archive{
  max-width:var(--wrap) !important;width:100% !important;
  margin-inline:auto !important;padding-inline:var(--gut) !important;
  box-sizing:border-box !important;
}

/* The single-post header sits in a narrow theme wrapper (.box-info) that
   centres itself; the Foundry header band needs the full width. */
body.atw-foundry.single .box-info{
  max-width:none !important;width:auto !important;margin:0 !important;
  padding-block:0 !important;
  padding-inline:max(var(--gut), calc((100% - var(--wrap)) / 2 + var(--gut))) !important;
  box-sizing:border-box !important;background:transparent !important;border:0 !important;
}
body.atw-foundry.single .box-info .the-categories,
body.atw-foundry.single .box-info h1,
body.atw-foundry.single .box-info .the-time{
  padding-inline:0 !important;margin-inline:0 !important;max-width:none !important;
}
body.atw-foundry.single .box-info h1{max-width:24ch !important}

/* The single-post meta is a theme flex row with a right-hand column; the
   Foundry header wants it stacked under the title on the left. */
body.atw-foundry.single .box-meta{
  display:flex !important;justify-content:flex-start !important;
  align-items:center !important;gap:14px !important;
  width:auto !important;max-width:none !important;padding:0 !important;margin:0 0 6px !important;
  background:transparent !important;border:0 !important;
}
body.atw-foundry.single .box-meta > *{
  width:auto !important;max-width:none !important;flex:0 0 auto !important;
  display:flex !important;align-items:center !important;gap:14px !important;
  margin:0 !important;padding:0 !important;text-align:left !important;
}
body.atw-foundry.single .box-meta > *:empty{display:none !important}

/* ---------- Single post: byline and share row ---------------------------- */
/* The author link points at an archive that redirects home, and it was
   hidden on the old design for the same reason. */
body.atw-foundry.single .author-with-image{display:none !important}

body.atw-foundry.single .solace-social-share{
  position:relative;z-index:1;background:var(--ink) !important;
  display:flex !important;flex-wrap:wrap !important;align-items:center !important;gap:10px !important;
  margin:0 !important;
  padding-block:clamp(40px,4.5vw,64px) !important;
  padding-inline:max(var(--gut), calc((100% - var(--wrap)) / 2 + var(--gut))) !important;
}
body.atw-foundry.single .solace-social-share a{
  display:inline-flex !important;align-items:center !important;gap:8px !important;
  border:1px solid var(--line-2) !important;border-radius:var(--r-sm) !important;
  padding:10px 16px !important;text-decoration:none !important;
  color:var(--fg-2) !important;background:transparent !important;
  transition:color .25s ease, border-color .25s ease, transform .25s ease;
}
body.atw-foundry.single .solace-social-share a:hover{
  color:var(--fg) !important;border-color:var(--line-3) !important;transform:translateY(-2px);
}
body.atw-foundry.single .solace-social-share p{
  margin:0 !important;color:inherit !important;
  font-family:var(--ff-display) !important;font-weight:600 !important;font-size:.82rem !important;
}
body.atw-foundry.single .solace-social-share svg,
body.atw-foundry.single .solace-social-share svg path{fill:currentColor !important}

/* ==========================================================================
   CONTACT FORM - brought onto the same footing as every other band
   The section now sits on the raised ground and carries the column rules,
   and the fields drop to the darkest ground so they read as wells cut into
   the surface rather than panels floating on it.
   ========================================================================== */
body.atw-foundry .f-sec--form{border-top:1px solid var(--line)}
body.atw-foundry .f-sec--form .f-contact{position:relative;z-index:1}

body.atw-foundry .f-sec--form .f-form input,
body.atw-foundry .f-sec--form .f-form select,
body.atw-foundry .f-sec--form .f-form textarea{
  background:var(--ink);
  border:1px solid var(--line-2);
  color:var(--fg);
}
body.atw-foundry .f-sec--form .f-form input::placeholder,
body.atw-foundry .f-sec--form .f-form textarea::placeholder{color:var(--fg-3);opacity:1}
body.atw-foundry .f-sec--form .f-form input:hover,
body.atw-foundry .f-sec--form .f-form select:hover,
body.atw-foundry .f-sec--form .f-form textarea:hover{border-color:var(--line-3)}
body.atw-foundry .f-sec--form .f-form input:focus,
body.atw-foundry .f-sec--form .f-form select:focus,
body.atw-foundry .f-sec--form .f-form textarea:focus{
  outline:none;background:var(--ink);
  border-color:var(--brand);box-shadow:0 0 0 3px rgba(159,218,95,.16);
}

/* Labels earn a little more presence now the fields are darker */
body.atw-foundry .f-sec--form .f-form label{color:var(--fg-2)}

/* The details column is short next to a tall form; sticking it stops the
   bottom right of the section reading as a hole. */
@media (min-width:1081px){
  body.atw-foundry .f-sec--form .f-contact > aside{position:sticky;top:132px}
}
body.atw-foundry .f-sec--form .f-info{border-top-color:var(--line-2)}

/* ==========================================================================
   SOCIAL STRIP - a compressed band, not another full section
   Plain links with inline SVG. Nothing loads from Facebook or Instagram,
   which is what the privacy page promises.
   ========================================================================== */
body.atw-foundry .f-social{
  border-block:1px solid var(--line);
  padding-block:clamp(38px,4.2vw,60px) !important;
}
body.atw-foundry .f-social__in{
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:space-between;
  gap:clamp(22px,4vw,56px);flex-wrap:wrap;
}
body.atw-foundry .f-social h2{
  font-size:clamp(1.28rem,1.1rem + .78vw,1.72rem);
  line-height:1.16;letter-spacing:-.022em;margin:12px 0 0;max-width:20ch;
}
body.atw-foundry .f-social__links{display:flex;gap:12px;flex-wrap:wrap}
body.atw-foundry .f-social__link{
  display:inline-flex;align-items:center;gap:14px;
  padding:14px 22px 14px 18px;
  background:var(--ink-2);
  border:1px solid var(--line-2);border-radius:var(--r);
  text-decoration:none;
  transition:transform .34s var(--ease), border-color .34s var(--ease-2), background .34s var(--ease-2);
}
body.atw-foundry .f-social__link:hover{
  transform:translateY(-3px);border-color:var(--line-3);background:var(--ink-3);
}
body.atw-foundry .f-social__link svg{
  width:22px;height:22px;flex:none;color:var(--brand);
  transition:transform .34s var(--ease);
}
body.atw-foundry .f-social__link:hover svg{transform:scale(1.09)}
body.atw-foundry .f-social__link b{
  display:block;font-family:var(--ff-display);font-weight:700;
  font-size:.95rem;letter-spacing:-.012em;color:var(--fg);
}
body.atw-foundry .f-social__link i{
  display:block;font-style:normal;font-size:.82rem;color:var(--fg-3);margin-top:2px;
}
@media (max-width:640px){
  body.atw-foundry .f-social__in{flex-direction:column;align-items:flex-start}
  body.atw-foundry .f-social__links{width:100%}
  body.atw-foundry .f-social__link{flex:1 1 auto;justify-content:flex-start}
}

/* ==========================================================================
   PROBLEM SECTION MOTION
   The three panels are an argument: as it stands, left alone, with us.
   The motion follows that order and gives the resolution the last word.
   ========================================================================== */

body.atw-foundry .f-contrast > *{position:relative}
body.atw-foundry .f-contrast > * > *{position:relative;z-index:1}

/* Hover parity: every other card on the site answers the cursor. */
@media (hover:hover){
  body.atw-foundry .f-contrast > *{
    transition:transform .38s var(--ease), border-color .38s var(--ease-2), background .38s var(--ease-2);
  }
  body.atw-foundry .f-contrast__bad:hover{
    transform:translateY(-4px);border-color:var(--line-3);
    background:rgba(159,218,95,.035);
  }
  body.atw-foundry .f-contrast__good:hover{
    transform:translateY(-6px);border-color:rgba(159,218,95,.55);
    background:linear-gradient(155deg,var(--ink-4),var(--ink-3) 62%);
  }
}

/* The answer panel draws its edge in once it has arrived. */
body.atw-foundry .f-contrast__good{overflow:hidden}
body.atw-foundry .f-contrast__good::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:2;
  background:linear-gradient(90deg,var(--brand-dim),var(--brand) 55%,var(--accent));
  transform:scaleX(1);transform-origin:left;
}
@media (prefers-reduced-motion:no-preference){
  body.atw-foundry .f-contrast__good::before{
    transform:scaleX(0);transition:transform .9s var(--ease) .5s;
  }
  body.atw-foundry .f-contrast__good.is-in::before{transform:scaleX(1)}
}

/* Entry: the two problems rise together, the answer lands last and further. */
@media (prefers-reduced-motion:no-preference){
  body.atw-foundry .f-contrast__good{
    transform:translateY(30px) scale(.985);
    transition:opacity .9s var(--ease), transform .9s var(--ease);
    transition-delay:340ms;
  }
  body.atw-foundry .f-contrast__good.is-in{transform:none}
}

/* Framed photography settles into its crop instead of just fading. */
@media (prefers-reduced-motion:no-preference){
  body.atw-foundry .f-split__media img,
  body.atw-foundry .f-why__media img,
  body.atw-foundry .f-proc__media img{
    transform:scale(1.055);transition:transform 1.25s var(--ease);
  }
  body.atw-foundry .f-split__media.is-in img,
  body.atw-foundry .f-why__media.is-in img,
  body.atw-foundry .f-proc__media.is-in img{transform:none}
}
