/* TM CMS component */
/* SUBSCRIBE-FORM component styles.
   Shell rules (.sub-hero / .sub-hero .wrap) live here so any page can build the
   same two-column layout: a 75% media/content panel + this 25% form panel.
   The column sizing is scoped to .sub-hero so the panel used standalone fills
   its own container instead. The 75% left column belongs to the page.

   NOTE 1 — the renderer wraps shortcode output in <div data-shortcode="...">,
   so the flex child of .wrap is that wrapper, NOT .sub-form-wrap. The sizing
   below targets whichever of the two is the direct child, and the inner
   .sub-form-wrap fills it. Don't collapse these into a single
   `.sub-hero .sub-form-wrap` rule — that sizes the wrong element and squeezes
   the form to a sliver.

   NOTE 2 — the flex gap has to come out of the two columns, or 75% + 25% + gap
   overflows the row (this clipped the form's right edge before the panel was
   made a component). --sub-gap is declared on .wrap and inherited, so the
   page's own left column subtracts its 75% share the same way:
     flex:0 0 calc(75% - var(--sub-gap) * .75)

   NOTE 3 — never write this component's shortcode (dashes and all) anywhere in
   this component or in a page's fields except where the panel is meant to
   render. The live renderer substitutes it even inside comments. */
.sub-hero{background:var(--ink,#080808);padding:clamp(28px,5vw,72px) 0 clamp(48px,7vw,110px);border-bottom:2px solid var(--green,#19e783)}
.sub-hero .wrap{--sub-gap:clamp(20px,3vw,44px);display:flex;flex-direction:row;align-items:center;gap:var(--sub-gap)}
.sub-hero .wrap > [data-shortcode="SUBSCRIBE-FORM"],
.sub-hero .wrap > .sub-form-wrap{flex:0 0 calc(25% - var(--sub-gap) * .25);width:calc(25% - var(--sub-gap) * .25);max-width:calc(25% - var(--sub-gap) * .25)}
.sub-hero .wrap > [data-shortcode="SUBSCRIBE-FORM"] > .sub-form-wrap{flex:none;width:100%;max-width:100%}

.sub-form-wrap{text-align:center}
.sub-eyebrow{color:var(--green,#19e783);text-transform:uppercase;letter-spacing:.16em;font-weight:700;font-size:clamp(11px,1vw,13px);margin-bottom:10px}
.sub-title{color:#fff;font-size:clamp(26px,3.4vw,44px);line-height:1.05;margin:0 0 12px}
.sub-sub{color:#a7a7a7;font-size:clamp(14.5px,1.05vw,16.5px);line-height:1.7;margin:0 0 26px}

.sub-form{display:flex;flex-direction:column;gap:14px;text-align:left}
.sub-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:480px){.sub-row{grid-template-columns:1fr}}
.sub-field{display:flex;flex-direction:column;gap:6px}
.sub-field label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim,#9a9a9a);font-weight:600}
.sub-form input{width:100%;background:#111;border:1px solid #333;border-radius:8px;color:#fff;font-family:'Inter',sans-serif;font-size:15px;padding:13px 15px;outline:none;transition:border-color .15s}
.sub-form input:focus{border-color:var(--green,#19e783)}
.sub-form input.sub-invalid{border-color:#ff6b6b}
.sub-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;opacity:0;pointer-events:none}
.sub-submit{margin-top:8px;width:100%;font-size:14px;letter-spacing:1px;padding:15px}
.sub-submit:disabled{opacity:.7;cursor:default}
.sub-msg{margin-top:6px;font-weight:700;font-size:14px;min-height:20px;text-align:center}
.sub-msg.ok{color:var(--green,#19e783)}
.sub-msg.err{color:#ff6b6b}

/* Stack the two columns on narrow screens. */
@media(max-width:768px){
  .sub-hero .wrap{flex-direction:column;align-items:center}
  .sub-hero .wrap > [data-shortcode="SUBSCRIBE-FORM"],
  .sub-hero .wrap > .sub-form-wrap{flex:none;width:min(520px,100%);max-width:100%}
}