/* Settings */

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

:root {

    /* HubSpot DND layout grid */
    --impulse--column__gap: 2.13%;
    --impulse--column__widthMultiplier: 8.333;

    /* Sections */
    --impulse--contentWrapper--narrow__maxWidth:  768px ;
    --impulse--contentWrapper--medium__maxWidth:  1120px ;
    --impulse--contentWrapper--wide__maxWidth:  1296px ;

    --impulse--section--extraSmall__verticalPadding:  48px ;
    --impulse--section--small__verticalPadding:  64px ;
    --impulse--section--medium__verticalPadding:  96px ;
    --impulse--section--large__verticalPadding:  128px ;
    --impulse--section--extraLarge__verticalPadding:  192px ;

    /* Default section left/right padding */
    --impulse--section--horizontalPadding:  32px ;

    /* Gap - default gaps that could be easily leveraged in module styles via class names */
    --impulse--gap--extraSmall:  16px ;
    --impulse--gap--small:  24px ;
    --impulse--gap--medium:  32px ;
    --impulse--gap--large:  64px ;
    --impulse--gap--extraLarge:  96px ;

    /* Spacing - default spacing values  */
    --impulse--spacing--4:  4px ;
    --impulse--spacing--8:  8px ;
    --impulse--spacing--12:  12px ;
    --impulse--spacing--16:  16px ;
    --impulse--spacing--20:  20px ;
    --impulse--spacing--24:  24px ;
    --impulse--spacing--32:  32px ;
    --impulse--spacing--40:  40px ;
    --impulse--spacing--48:  48px ;
    --impulse--spacing--56:  56px ;
    --impulse--spacing--64:  64px ;
    --impulse--spacing--72:  72px ;
    --impulse--spacing--80:  80px ;
    --impulse--spacing--88:  88px ;
    --impulse--spacing--96:  96px ;
    --impulse--spacing--104:  104px ;
    --impulse--spacing--112:  112px ;
    --impulse--spacing--120:  120px ;
    --impulse--spacing--128:  128px ;
    --impulse--spacing--136:  136px ;
    --impulse--spacing--144:  144px ;
    --impulse--spacing--152:  152px ;
    --impulse--spacing--160:  160px ;
    --impulse--spacing--168:  168px ;
    --impulse--spacing--176:  176px ;
    --impulse--spacing--184:  184px ;
    --impulse--spacing--192:  192px ;

    /* Grids */
    --default-section-padding: var(--impulse--section--medium__verticalPadding) var(--impulse--section--horizontalPadding);
    --default-section-margin: 0;
    --default-section-max-width: var(--impulse--contentWrapper--wide__maxWidth);
    --default-container-padding: 0;
    --default-container-margin: 0;
    --default-container-gap: var(--impulse--gap--medium);
    --default-container-row-gap: var(--impulse--gap--medium);
    --default-container-column-gap: var(--impulse--gap--medium);
    --default-table-padding: 0;
    --default-table-margin: 0;
    --default-table-row-gap: var(--impulse--gap--medium);
    --default-table-column-gap: var(--impulse--gap--medium);
}

  

  

  

  

  

  

  

  

  

  

  

:root {

  /* Text spacing */

  --impulse--text--extraSmall__margin: 0 0.75rem; /* 12px */
  --impulse--text--small__margin: 0 1.25rem; /* 20px */
  --impulse--text__margin: 0 2rem; /* 32px */
  --impulse--text--large__margin: 0 2.5rem; /* 40px */
  --impulse--text--extraLarge__margin: 0 4rem; /* 64px */

  /* Body */

  --impulse--baseText__fontSize:  16px ;
  --impulse--body__font:  Montserrat ;
  --impulse--body--small__fontSize:  0.889rem ;
  --impulse--body__fontSize:  1.0rem ;
  --impulse--body--large__fontSize:  1.333rem ;
  --impulse--body--extraLarge__fontSize:  1.777rem ;
  --impulse--body__fontWeight:  normal ;
  --impulse--body__fontStyle:  normal ;
  --impulse--body__lineHeight: 1.55;

  /* Primary links */

  --impulse--link--primary__fontColor:  #FFB347 ;

    
    --impulse--link--primary__textDecoration: none;
    --impulse--link--primary__textDecorationColor: transparent;
    

  /* Hover state */

  --impulse--link--primary__hover--fontColor:  #FFB347 ;

    
    --impulse--link--primary__hover--textDecoration: underline;
    --impulse--link--primary__hover--textDecorationColor:  #FFB347 ;
    

  /* Secondary links */

  --impulse--link--secondary__fontColor:  #EB004F ;

    
    --impulse--link--secondary__textDecoration: none;
    --impulse--link--secondary__textDecorationColor: transparent;
    

  /* Hover state */

  --impulse--link--secondary__hover--fontColor:  #EB004F ;

    
    --impulse--link--secondary__hover--textDecoration: underline;
    --impulse--link--secondary__hover--textDecorationColor:  #EB004F ;
    

  /* Headings */

  /* Percentage change for the heading font sizes on mobile */
  --impulse--heading__tablet-modifier: 0.8;

  --impulse--heading__lineHeight: 1.2;

  --impulse--display1__font: Libre Baskerville,  serif ;
  --impulse--display1__fontSize: clamp(48px, 7.2vw, 104px);
  --impulse--display1__fontWeight: 400;
  --impulse--display1__lineHeight: 0.92;
  --impulse--display1__letterSpacing: -0.035em;

  --impulse--display2__font: Libre Baskerville,  serif ;
  --impulse--display2__fontSize: clamp(36px, 5vw, 64px);
  --impulse--display2__fontWeight: 400;
  --impulse--display2__lineHeight: 1.02;
  --impulse--display2__letterSpacing: -0.03em;

  --impulse--display3__font: Libre Baskerville,  serif ;
  --impulse--display3__fontSize: clamp(32px, 4.4vw, 58px);
  --impulse--display3__fontWeight: 400;
  --impulse--display3__lineHeight: 1.04;
  --impulse--display3__letterSpacing: -0.028em;

  --impulse--displayItalic__font: Libre Baskerville,  serif ;
  --impulse--displayItalic__fontSize: clamp(22px, 3vw, 44px);
  --impulse--displayItalic__fontStyle: italic;
  --impulse--displayItalic__fontWeight: 400;
  --impulse--displayItalic__lineHeight: 1.18;
  --impulse--displayItalic__letterSpacing: -0.025em;

  --impulse--lede__font: Montserrat,  sans-serif ;
  --impulse--lede__fontSize: clamp(17px, 1.4vw, 20px);
  --impulse--lede__fontWeight: 400;
  --impulse--lede__lineHeight: 1.55;

  --impulse--h1__font:  Libre Baskerville ;
  --impulse--h1__fontSize:  5.0rem ;
  --impulse--h1__fontWeight:  400 ;
  --impulse--h1__fontStyle:  normal ;

  --impulse--h2__font:  Libre Baskerville ;
  --impulse--h2__fontSize:  3.5rem ;
  --impulse--h2__fontWeight:  400 ;
  --impulse--h2__fontStyle:  normal ;

  --impulse--h3__font:  Libre Baskerville ;
  --impulse--h3__fontSize:  2.375rem ;
  --impulse--h3__fontWeight:  400 ;
  --impulse--h3__fontStyle:  normal ;

  --impulse--h4__font:  Montserrat ;
  --impulse--h4__fontSize:  1.375rem ;
  --impulse--h4__fontWeight:  600 ;
  --impulse--h4__fontStyle:  normal ;

  --impulse--h5__font:  Montserrat ;
  --impulse--h5__fontSize:  1.125rem ;
  --impulse--h5__fontWeight:  600 ;
  --impulse--h5__fontStyle:  normal ;

  --impulse--h6__font:  Montserrat ;
  --impulse--h6__fontSize:  0.875rem ;
  --impulse--h6__fontWeight:  600 ;
  --impulse--h6__fontStyle:  normal ;


  /* Quotes */

  --impulse--quotes__font:  Montserrat ;
  --impulse--quotes__fontColor:   ;
  --impulse--quotes__fontSize:  1.0rem ;
  --impulse--quotes__fontWeight:  400 ;
  --impulse--quotes__fontStyle:  normal ;

    /* Captions */

  --impulse--captions__font:  JetBrains Mono ;
  --impulse--captions__fontSize:  0.6875rem ;
  --impulse--captions__fontWeight:  400 ;
  --impulse--captions__fontStyle:  normal ;
  --impulse--captions__case:  uppercase ;

  /* Mono / kicker / mono-meta / mono-tag — JetBrains Mono technical voice */

  --impulse--mono__font: JetBrains Mono,  ui-monospace, monospace ;

  --impulse--kicker__font: JetBrains Mono,  ui-monospace, monospace ;
  --impulse--kicker__fontSize: 11px;
  --impulse--kicker__fontWeight: 400;
  --impulse--kicker__letterSpacing: 0.16em;
  --impulse--kicker__textTransform: uppercase;

  --impulse--monoMeta__font: JetBrains Mono,  ui-monospace, monospace ;
  --impulse--monoMeta__fontSize: 12px;
  --impulse--monoMeta__fontWeight: 400;
  --impulse--monoMeta__letterSpacing: 0.04em;

  --impulse--monoTag__font: JetBrains Mono,  ui-monospace, monospace ;
  --impulse--monoTag__fontSize: 10px;
  --impulse--monoTag__fontWeight: 500;
  --impulse--monoTag__letterSpacing: 0.12em;
  --impulse--monoTag__textTransform: uppercase;

  /* UI label — used on buttons, pills, nav */
  --impulse--uiMd__font: Montserrat,  sans-serif ;
  --impulse--uiMd__fontSize: 14px;
  --impulse--uiMd__fontWeight: 500;
  --impulse--uiMd__letterSpacing: -0.01em;

  /* Layout — used by editorial primitives + sections */
  --impulse--layout--max: 1360px;
  --impulse--layout--pad: clamp(20px, 4vw, 48px);
  --impulse--layout--radius: 12px;
  --impulse--layout--radius--xs: 3px;
  --impulse--layout--radius--sm: 6px;
  --impulse--layout--radius--md: 8px;
  --impulse--layout--radius--lg: 12px;
  --impulse--layout--radius--xl: 14px;
  --impulse--layout--radius--pill: 999px;
  --impulse--layout--section--vertical: clamp(64px, 9vw, 120px);
  --impulse--layout--section--vertical--tight: clamp(48px, 6vw, 80px);

  /* Images */

  --impulse--rteImages__margin: 2rem; /* 32px */
}

  

  

:root {
  /* Base colors */
  --impulse--color--base--1:  #FAFAF7 ;
  --impulse--color--base--2:  #F2F1EC ;
  --impulse--color--base--3:  #0A0A0F ;

  /* Accent colors */
  --impulse--color--accent--1:  #F59700 ;
  --impulse--color--accent--2:  #EB004F ;
  --impulse--color--accent--3:  #FFB347 ;

  /* Brand gradient — orange → magenta. Used on primary buttons, italic
     emphasis spans inside display headings, kernel corona glow. */
  --impulse--color--accent--gradient: linear-gradient(
    135deg,
    #F59700 0%,
    #EB004F 100%
  );
  --impulse--color--accent--gradient--soft: linear-gradient(
    135deg,
    rgba(245, 151, 0, 0.18) 0%,
    rgba(235, 0, 79, 0.18) 100%
  );

  /* Accent washes — used for live pills, dot pulses, accent-emphasis
     backgrounds inside running text. Never a section background. */
  --impulse--color--accent--soft: rgba(245, 151, 0, 0.14);

  /* Diagram palette — orbital satellite groups */
  --impulse--color--diagram--kernel-core: #7CE7E2;
  --impulse--color--diagram--kernel-mid: #3D7BFF;
  --impulse--color--diagram--kernel-deep: #1B2A8C;
  --impulse--color--diagram--kernel-glow: #5BA8FF;
  --impulse--color--diagram--group-sources: #F59700;
  --impulse--color--diagram--group-tools: #EB004F;
  --impulse--color--diagram--group-people: #FFB347;
  --impulse--color--diagram--group-agents: #FF6B9D;
}

  

  

  

  

:root {
  /* Primary button variables  */
  --impulse--button--primary__buttonFill:  filled ;

  /* Primary button font */
  --impulse--button--primary__font:  Montserrat ;
  /*
    TODO: Look into why primary_button.text.size ~ primary_button.text.size_unit
    is not evaluating to the correct size_unit, but can still take in px
  */
  --impulse--button--primary__fontSize:  1.0rem ;
  --impulse--button--primary__fontWeight:  500 ;
  --impulse--button--primary__fontStyle:  normal ;

  /* Primary button text color */
  --impulse--button--primary__textColor:  #F2F1EC ;
  --impulse--button--primary__hover--textColor:  #F2F1EC ;

  /* Primary button shape */
    
      
    

    
    --impulse--button--primary__borderRadius: 50px;
    

  /* Primary button background color */
    
    --impulse--button--primary__backgroundColor:  #FFB347 ;
    --impulse--button--primary__hover--backgroundColor:  #6854E8 ;
      
    --impulse--button--primary__active--backgroundColor:  #4a36ca ;

    

  /* Primary button border */
  --impulse--button--primary__borderThickness:  0px ;
  --impulse--button--primary__hover--borderThickness:  0px ;

    
  --impulse--button--primary__borderColor: transparent;
  --impulse--button--primary__hover--borderColor: transparent;
    

  /* Secondary button variables  */
  --impulse--button--secondary__buttonFill:  no_fill ;

  /* Secondary button font */
  --impulse--button--secondary__font:  Montserrat ;
  --impulse--button--secondary__fontSize:  1.0rem ;
  --impulse--button--secondary__fontWeight:  500 ;
  --impulse--button--secondary__fontStyle:  normal ;

  /* Secondary button text color */
  --impulse--button--secondary__textColor:  #FFB347 ;
  --impulse--button--secondary__hover--textColor:  #6854E8 ;

  /* Secondary button shape */
    
      
    

    
    --impulse--button--secondary__borderRadius: 50px;
    

  /* Secondary button background color */
    
    --impulse--button--secondary__backgroundColor: transparent;
    --impulse--button--secondary__hover--backgroundColor: transparent;
      
    

  /* Secondary button border */
  --impulse--button--secondary__borderThickness:  2px ;
  --impulse--button--secondary__hover--borderThickness:  2px ;

    
    --impulse--button--secondary__borderColor:  #FFB347 ;
    --impulse--button--secondary__hover--borderColor:  #6854E8 ;
      
    

  /* Tertiary button variables  */
  --impulse--button--tertiary__buttonFill:  filled ;

  /* Tertiary button font */
  --impulse--button--tertiary__font:  Montserrat ;
  --impulse--button--tertiary__fontSize:  1.0rem ;
  --impulse--button--tertiary__fontWeight:  500 ;
  --impulse--button--tertiary__fontStyle:  normal ;

  /* Tertiary button text color */
  --impulse--button--tertiary__textColor:  #0A0A0F ;
  --impulse--button--tertiary__hover--textColor:  #0A0A0F ;

  /* Tertiary button shape */
    
      
    

    
    --impulse--button--tertiary__borderRadius: 50px;
    

  /* Tertiary button background color */
    
    --impulse--button--tertiary__backgroundColor:  #EB004F ;
    --impulse--button--tertiary__hover--backgroundColor:  #E9E5FF ;
      

    

  /* Tertiary button border */
  --impulse--button--tertiary__borderThickness:  0px ;
  --impulse--button--tertiary__hover--borderThickness:  0px ;

    
    --impulse--button--tertiary__borderColor: transparent;
    --impulse--button--tertiary__hover--borderColor: transparent;
    

  /* Accent button variables  */
  --impulse--button--accent__buttonFill:  no_fill ;

  /* Accent button font */
  --impulse--button--accent__font:  Montserrat ;
  --impulse--button--accent__fontSize:  1.0rem ;
  --impulse--button--accent__fontWeight:  500 ;
  --impulse--button--accent__fontStyle:  normal ;

  /* Accent button text color */
  --impulse--button--accent__textColor:  #EB004F ;
  --impulse--button--accent__hover--textColor:  #E9E5FF ;

  /* Accent button shape */
    
      
    

    
    --impulse--button--accent__borderRadius: 50px;
    

  /* Accent button background color */
    
    --impulse--button--accent__backgroundColor: transparent;
    --impulse--button--accent__hover--backgroundColor: transparent;
      
    

  /* Accent button border */
  --impulse--button--accent__borderThickness:  2px ;
  --impulse--button--accent__hover--borderThickness:  2px ;

    
    --impulse--button--accent__borderColor:  #EB004F ;
    --impulse--button--accent__hover--borderColor:  #E9E5FF ;
      
    

}

  

  

:root {
  /* Form field background color */
    
    --impulse--formField__backgroundColor:  #F2F1EC ;
    

  /* Form field shape */
    
      
    

    
    --impulse--formField__borderRadius: 50px;
    

  /* Form field border -- multiple fields to properly handle field visibility for both fill and no fill */
    
      
    

  /* Proper usage of variables to achieve "All" or "Bottom" will be within CSS */
    
    --impulse--formField__borderThickness:  1px ;
    

    
    --impulse--formField__borderTop:  1px solid #D3DAE4 ;
    --impulse--formField__borderRight:  1px solid #D3DAE4 ;
    --impulse--formField__borderLeft:  1px solid #D3DAE4 ;
    

    
    --impulse--formField__borderBottom:  1px solid #D3DAE4 ;
    --impulse--formField__borderColor:  #D3DAE4 ;
    

    

    

  /* Form field text color */
  --impulse--formFieldInput__textColor:  #0A0A0F ;

  /* Form field spacing */
  --impulse--formField__marginBottom: var(--impulse--spacing--32);

  /* Form textarea border radius */
  --impulse--formFieldTextArea__borderRadius: calc(var(--impulse--formField__borderRadius) * 0.5);

  /* Form field checkbox/radio */
  --impulse--formFieldCheckboxRadio__size: 24px;
  --impulse--formFieldCheckboxRadio__fillColor: #000000;

  /* Form field placeholder */
  --impulse--formFieldPlaceholder__textColor:  #7d8ca5 ;

  /* Form required field color */
  --impulse--formRequired__color: #de2828;

  /* Form field datepicker icon */
  --impulse--formField__datepickerIcon: url("data:image/svg+xml,%3Csvg width='24' height='29' viewBox='0 0 24 29' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_3812_12272)'%3E%3Cpath d='M8.14286 2.07136C8.14286 1.35886 7.56964 0.785645 6.85714 0.785645C6.14464 0.785645 5.57143 1.35886 5.57143 2.07136V4.21422H3.42857C1.5375 4.21422 0 5.75172 0 7.64279V8.49993V11.0714V24.7856C0 26.6767 1.5375 28.2142 3.42857 28.2142H20.5714C22.4625 28.2142 24 26.6767 24 24.7856V11.0714V8.49993V7.64279C24 5.75172 22.4625 4.21422 20.5714 4.21422H18.4286V2.07136C18.4286 1.35886 17.8554 0.785645 17.1429 0.785645C16.4304 0.785645 15.8571 1.35886 15.8571 2.07136V4.21422H8.14286V2.07136ZM2.57143 11.0714H21.4286V24.7856C21.4286 25.2571 21.0429 25.6428 20.5714 25.6428H3.42857C2.95714 25.6428 2.57143 25.2571 2.57143 24.7856V11.0714Z' fill='%2309152B'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_3812_12272'%3E%3Crect width='24' height='27.4286' fill='white' transform='translate(0 0.785645)'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");

  /* Form field select icon */
  --impulse--formField__selectIcon: url("data:image/svg+xml,%3Csvg width='24' height='25' viewBox='0 0 24 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.9407 19.5595C11.5267 20.1454 12.4782 20.1454 13.0642 19.5595L22.0642 10.5595C22.6501 9.97354 22.6501 9.02197 22.0642 8.43604C21.4782 7.8501 20.5267 7.8501 19.9407 8.43604L12.0001 16.3767L4.05947 8.44072C3.47354 7.85478 2.52197 7.85478 1.93604 8.44072C1.3501 9.02666 1.3501 9.97822 1.93604 10.5642L10.936 19.5642L10.9407 19.5595Z' fill='%2309152B'/%3E%3C/svg%3E%0A");

  /* Textarea drag icon */
  --impulse--formField__dragIcon: url("data:image/svg+xml,%3Csvg width='11' height='12' viewBox='0 0 22 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cline y1='-1' x2='29.5206' y2='-1' transform='matrix(-0.666795 0.745241 -0.806754 -0.590888 19.6843 0)' stroke='%23303F59' stroke-width='2'/%3E%3Cpath d='M21.0005 9.99756L10.5005 21.9976' stroke='%23303F59' stroke-width='2'/%3E%3C/svg%3E%0A");

  /* Label text */
  --impulse--formLabel__textColor:  #0A0A0F ;
  --impulse--formLabel__font:  Montserrat ;
  --impulse--formLabel__fontSize:  1.125rem ;
  --impulse--formLabel__fontWeight:  500 ;
  --impulse--formLabel__marginBottom: var(--impulse--spacing--8);

  /* Help text */
  --impulse--formHelpText__textColor: #647390;

  /* Form background color */
    
    --impulse--form__backgroundColor:  #FAFAF7 ;
    

  /* Form shape */
    
      
    

    
    --impulse--form__borderRadius: 24px;
    

  /* Form border */
    
    --impulse--form__borderThickness:  1px ;
    --impulse--form__borderColor:  #D3DAE4 ;
    

  /* Form spacing */
  --impulse--form__padding: var(--impulse--spacing--48);

  /* CSS variables for new forms */

  /* Global vars */
  --hsf-global__font-family: var(--impulse--formLabel__font);
  --hsf-global__font-size: var(--impulse--formLabel__fontSize);
  --hsf-global__color: var(--impulse--formLabel__textColor);
  --hsf-global-error__color: var(--impulse--formRequired__color);

  /* Form */
  --hsf-background__background-color: var(--impulse--form__backgroundColor);
  --hsf-background__padding: var(--impulse--form__padding);
  --hsf-background__border-style: solid;
  --hsf-background__border-color: var(--impulse--form__borderColor);
  --hsf-background__border-radius: var(--impulse--form__borderRadius);
  --hsf-background__border-width: var(--impulse--form__borderThickness);

  /* Content */
  --hsf-heading__font-family: var(--hsf-global__font-family);
  --hsf-heading__color: var(--hsf-global__color);
  --hsf-heading__text-shadow: none;
  --hsf-richtext__font-family: var(--hsf-global__font-family);
  --hsf-richtext__font-size: var(--hsf-global__font-size);
  --hsf-richtext__color: var(--hsf-global__color);

  /* Labels */
  --hsf-field-label__font-family: var(--hsf-global__font-family);
  --hsf-field-label__font-size: var(--hsf-global__font-size);
  --hsf-field-label__color: var(--hsf-global__color);
  --hsf-field-label-requiredindicator__color: var(--hsf-global-error__color);
  --hsf-module__vertical-spacing: var(--impulse--formLabel__marginBottom);

  /* Help text */
  --hsf-field-description__font-family: var(--hsf-global__color);
  --hsf-field-description__color: var(--impulse--formHelpText__textColor);

  /* Errors */
  --hsf-erroralert__font-family: var(--impulse--formLabel__font);
  --hsf-erroralert__color: var(--hsf-global-error__color);

  /* Field footer */
  --hsf-field-footer__font-family: var(--hsf-field-description__font-family);
  --hsf-field-footer__color: var(--hsf-field-description__color);

  /* Field */
  --hsf-field-input__font-family: var(--hsf-global__font-family);
  --hsf-field-input__background-color: var(--impulse--formField__backgroundColor);
  --hsf-field-input__placeholder-color: var(--impulse--formFieldPlaceholder__textColor);
  --hsf-field-input__border-color: var(--impulse--formField__borderColor);
    
    --hsf-field-input__border-width: var(--impulse--formField__borderThickness);
    ;
  --hsf-field-input__border-style: solid;
  --hsf-field-input__border-radius: var(--impulse--formField__borderRadius);
  --hsf-field-input__padding: var(--impulse--spacing--20) var(--impulse--spacing--32);
  --hsf-field-input__color: var(--impulse--formFieldInput__textColor);
  --hsf-row__vertical-spacing: var(--impulse--formField__marginBottom);
  --hsf-row__horizontal-spacing: var(--impulse--spacing--32);

  /* Textarea */
  --hsf-field-textarea__font-family: var(--hsf-field-input__font-family);
  --hsf-field-textarea__color: var(--hsf-field-input__color);
  --hsf-field-textarea__background-color: var(--hsf-field-input__background-color);
  --hsf-field-textarea__border-color: var(--hsf-field-input__border-color);
  --hsf-field-textarea__border-style: var(--hsf-field-input__border-style);
  --hsf-field-textarea__border-radius: var(--impulse--formFieldTextArea__borderRadius);
  --hsf-field-textarea__padding: var(--hsf-field-input__padding);

  /* Checkbox */
  --hsf-field-checkbox__padding: calc(var(--impulse--formFieldCheckboxRadio__size) / 2);
  --hsf-field-checkbox__background-color: #fff;
  --hsf-field-checkbox__color: var(--impulse--formFieldCheckboxRadio__fillColor);
  --hsf-field-checkbox__border-color: var(--hsf-field-input__border-color);
  --hsf-field-checkbox__border-width: 1px 1px 1px 1px;
  --hsf-field-checkbox__border-style: var(--hsf-field-input__border-style);

  /* Radio */
  --hsf-field-radio__padding: calc(var(--impulse--formFieldCheckboxRadio__size) / 2);
  --hsf-field-radio__background-color: #fff;
  --hsf-field-radio__color: var(--impulse--formFieldCheckboxRadio__fillColor);
  --hsf-field-radio__border-color: var(--hsf-field-input__border-color);
  --hsf-field-radio__border-width: 1px 1px 1px 1px;
  --hsf-field-radio__border-style: var(--hsf-field-input__border-style);

  /* Progress bar CSS vars:
    - --hsf-progressbar__font-family
    - --hsf-progressbar__font-family
    - --hsf-progressbar__font-size
    - --hsf-progressbar__color
    - --hsf-progressbar__background-color
    - --hsf-progressbar__background
    - --hsf-progressbar__border-color
    - --hsf-progressbar__border-style
    - --hsf-progressbar__border-width
  */

  /* Button */
  --hsf-button__width: 100%;
  --hsf-button__font-family: var(--impulse--button--primary__font);
  --hsf-button__font-size: var(--impulse--button--primary__fontSize);
  --hsf-button__font-weight: var(--impulse--button--primary__fontWeight);
  --hsf-button__color: var(--impulse--button--primary__textColor);
  --hsf-button__background-color: var(--impulse--button--primary__backgroundColor);
  --hsf-button__background-image: none;
  --hsf-button__border-radius: var(--impulse--button--primary__borderRadius);
  --hsf-button__border-width: var(--impulse--button--primary__borderThickness);
  --hsf-button__border-style: solid;
  --hsf-button__border-color: var(--impulse--button--primary__borderColor);
  --hsf-button__padding: var(--impulse--spacing--20) var(--impulse--spacing--24);
  --hsf-button__box-shadow: none;
  --hsf-button--hover__color: var(--impulse--button--primary__hover--textColor);
  --hsf-button--hover__background-color: var(--impulse--button--primary__hover--backgroundColor);
  --hsf-button--hover__border-color: var(--impulse--button--primary__hover--borderColor);
  --hsf-button--focus__color: var(--impulse--button--primary__hover--textColor);
  --hsf-button--focus__background-color: var(--impulse--button--primary__hover--backgroundColor);
  --hsf-button--focus__border-color: var(--impulse--button--primary__hover--borderColor);
}

@media (max-width: 600px) {
  :root {
    --impulse--form__padding: var(--impulse--spacing--24);
  }

  .hsfc-PhoneInput__FlagAndCaret {
    --hsf-field-input__padding: var(--impulse--spacing--20) var(--impulse--spacing--16);
  }
}

  

  

  

  

  

  

  

  

:root {
  /* Card variant 1 */

  /* Shape */
    
      
    

    
    --impulse--card--variant1__borderRadius: 16px;
    --impulse--card--variant1__iconBorderRadius: 12px;
    

  /* Border thickness */
  --impulse--card--variant1__borderThickness:  1px ;

  /* Colors */
    
    --impulse--card--variant1__backgroundColor:  #FAFAF7 ;
    

    
    --impulse--card--variant1__borderColor:  #D3DAE4 ;
    

  --impulse--card--variant1__textColor:  #0A0A0F ;

  /* Links */
    
      
    

  --impulse--card--variant1--link__fontColor:  #FFB347 ;

    
    --impulse--card--variant1--link__textDecoration: none;
    --impulse--card--variant1--link__textDecorationColor: transparent;
    

  /* Hover state */

  --impulse--card--variant1--link__hover--fontColor:  #FFB347 ;
    
    --impulse--card--variant1--link__hover--textDecoration: underline;
    --impulse--card--variant1--link__hover--textDecorationColor:  #FFB347 ;
    

  /* Icon colors */

  --impulse--card--variant1__iconColor:  #FFB347 ;
  --impulse--card--variant1__iconBackgroundColor:  #EB004F ;

  /* Card variant 2 */

  /* Shape */
    
      
    

    
    --impulse--card--variant2__borderRadius: 16px;
    --impulse--card--variant2__iconBorderRadius: 12px;
    

  /* Border thickness */
  --impulse--card--variant2__borderThickness:  1px ;

  /* Colors */
    
    --impulse--card--variant2__backgroundColor:  #F2F1EC ;
    

    
    --impulse--card--variant2__borderColor:  #D3DAE4 ;
    

  --impulse--card--variant2__textColor:  #0A0A0F ;

  /* Links */
    
      
    

  --impulse--card--variant2--link__fontColor:  #FFB347 ;

    
    --impulse--card--variant2--link__textDecoration: none;
    --impulse--card--variant2--link__textDecorationColor: transparent;
    

  /* Hover state */

  --impulse--card--variant2--link__hover--fontColor:  #FFB347 ;
    
    --impulse--card--variant2--link__hover--textDecoration: underline;
    --impulse--card--variant2--link__hover--textDecorationColor:  #FFB347 ;
    

  /* Icon colors */

  --impulse--card--variant2__iconColor:  #FFB347 ;
  --impulse--card--variant2__iconBackgroundColor:  #D3DAE4 ;


  /* Card variant 3 */

  /* Shape */
    
      
    

    
    --impulse--card--variant3__borderRadius: 16px;
    --impulse--card--variant3__iconBorderRadius: 12px;
    

  /* Border thickness */
  --impulse--card--variant3__borderThickness:  1px ;

  /* Colors */
    
    --impulse--card--variant3__backgroundColor:  #0A0A0F ;
    

    
    --impulse--card--variant3__borderColor:  #303F59 ;
    

  --impulse--card--variant3__textColor:  #F2F1EC ;

  /* Links */
    
      
    

  --impulse--card--variant3--link__fontColor:  #EB004F ;

    
    --impulse--card--variant3--link__textDecoration: none;
    --impulse--card--variant3--link__textDecorationColor: transparent;
    

  /* Hover state */

  --impulse--card--variant3--link__hover--fontColor:  #EB004F ;
    
    --impulse--card--variant3--link__hover--textDecoration: underline;
    --impulse--card--variant3--link__hover--textDecorationColor:  #EB004F ;
    

  /* Icon colors */

  --impulse--card--variant3__iconColor:  #EB004F ;
  --impulse--card--variant3__iconBackgroundColor:  #303F59 ;


  /* Card variant 4 */

  /* Shape */
    
      
    

    
    --impulse--card--variant4__borderRadius: 16px;
    --impulse--card--variant4__iconBorderRadius: 12px;
    

  /* Border thickness */
  --impulse--card--variant4__borderThickness:  1px ;

  /* Colors */
    
    --impulse--card--variant4__backgroundColor:  #18233B ;
    

    
    --impulse--card--variant4__borderColor:  #303F59 ;
    

  --impulse--card--variant4__textColor:  #F2F1EC ;

  /* Links */
    
      
    

  --impulse--card--variant4--link__fontColor:  #EB004F ;

    
    --impulse--card--variant4--link__textDecoration: none;
    --impulse--card--variant4--link__textDecorationColor: transparent;
    

  /* Hover state */

  --impulse--card--variant4--link__hover--fontColor:  #EB004F ;
    
    --impulse--card--variant4--link__hover--textDecoration: underline;
    --impulse--card--variant4--link__hover--textDecorationColor:  #EB004F ;
    

  /* Icon colors */
  --impulse--card--variant4__iconColor:  #EB004F ;
  --impulse--card--variant4__iconBackgroundColor:  #303F59 ;
}

  

  

  

  

  

  

  

  

  

  

  

  

  

:root {

  /* Light section 1 */
  --impulse--section--lightSection--1__backgroundColor:  #FAFAF7 ;
  --impulse--section--lightSection--1__textColor:  #0A0A0F ;
  --impulse--section--lightSection--1__accentColor:  #FFB347 ;
  --impulse--section--lightSection--1__captionColor:  #5C5C66 ;
  --impulse--section--lightSection--1--blockquote__textColor:  #0A0A0F ;
  --impulse--section--lightSection--1--blockquote__backgroundColor:  #F2F1EC ;
  --impulse--section--lightSection--1--blockquote__accentColor:  #FFB347 ;

    
      
    

  --impulse--section--lightSection--1--link__fontColor:  #FFB347 ;

    
    --impulse--section--lightSection--1--link__textDecoration: none;
    --impulse--section--lightSection--1--link__textDecorationColor: transparent;
    

  /* Hover state */

  --impulse--section--lightSection--1--link__hover--fontColor:  #FFB347 ;
    
    --impulse--section--lightSection--1--link__hover--textDecoration: underline;
    --impulse--section--lightSection--1--link__hover--textDecorationColor:  #FFB347 ;
    

  /* Light section 2 */
  --impulse--section--lightSection--2__backgroundColor:  #F2F1EC ;
  --impulse--section--lightSection--2__textColor:  #0A0A0F ;
  --impulse--section--lightSection--2__accentColor:  #FFB347 ;
  --impulse--section--lightSection--2__captionColor:  #5C5C66 ;
  --impulse--section--lightSection--2--blockquote__textColor:  #0A0A0F ;
  --impulse--section--lightSection--2--blockquote__backgroundColor:  #F2F1EC ;
  --impulse--section--lightSection--2--blockquote__accentColor:  #FFB347 ;

    
      
    

  --impulse--section--lightSection--2--link__fontColor:  #FFB347 ;

    
    --impulse--section--lightSection--2--link__textDecoration: none;
    --impulse--section--lightSection--2--link__textDecorationColor: transparent;
    

  /* Hover state */

  --impulse--section--lightSection--2--link__hover--fontColor:  #FFB347 ;
    
    --impulse--section--lightSection--2--link__hover--textDecoration: underline;
    --impulse--section--lightSection--2--link__hover--textDecorationColor:  #FFB347 ;
    

  /* Light section 3 */
  --impulse--section--lightSection--3__backgroundColor:  #F59700 ;
  --impulse--section--lightSection--3__textColor:  #0A0A0F ;
  --impulse--section--lightSection--3__accentColor:  #FFB347 ;
  --impulse--section--lightSection--3__captionColor:  #4D6080 ;
  --impulse--section--lightSection--3--blockquote__textColor:  #0A0A0F ;
  --impulse--section--lightSection--3--blockquote__backgroundColor:  #F59700 ;
  --impulse--section--lightSection--3--blockquote__accentColor:  #FFB347 ;

    
      
    

  --impulse--section--lightSection--3--link__fontColor:  #FFB347 ;

    
    --impulse--section--lightSection--3--link__textDecoration: none;
    --impulse--section--lightSection--3--link__textDecorationColor: transparent;
    

  /* Hover state */

  --impulse--section--lightSection--3--link__hover--fontColor:  #FFB347 ;
    
    --impulse--section--lightSection--3--link__hover--textDecoration: underline;
    --impulse--section--lightSection--3--link__hover--textDecorationColor:  #FFB347 ;
    


  /* Dark section 1 */
  --impulse--section--darkSection--1__backgroundColor:  #0A0A0F ;
  --impulse--section--darkSection--1__textColor:  #FFFFFF ;
  --impulse--section--darkSection--1__accentColor:  #F59700 ;
  --impulse--section--darkSection--1__captionColor:  #9A9AA1 ;
  --impulse--section--darkSection--1--blockquote__textColor:  #FFFFFF ;
  --impulse--section--darkSection--1--blockquote__backgroundColor:  #1C1C26 ;
  --impulse--section--darkSection--1--blockquote__accentColor:  #F59700 ;

    
      
    

  --impulse--section--darkSection--1--link__fontColor:  #EB004F ;

    
    --impulse--section--darkSection--1--link__textDecoration: none;
    --impulse--section--darkSection--1--link__textDecorationColor: transparent;
    

  /* Hover state */

  --impulse--section--darkSection--1--link__hover--fontColor:  #EB004F ;
    
    --impulse--section--darkSection--1--link__hover--textDecoration: underline;
    --impulse--section--darkSection--1--link__hover--textDecorationColor:  #EB004F ;
    


  /* Dark section 2 */
  --impulse--section--darkSection--2__backgroundColor:  #12121A ;
  --impulse--section--darkSection--2__textColor:  #FFFFFF ;
  --impulse--section--darkSection--2__accentColor:  #F59700 ;
  --impulse--section--darkSection--2__captionColor:  #9A9AA1 ;
  --impulse--section--darkSection--2--blockquote__textColor:  #FFFFFF ;
  --impulse--section--darkSection--2--blockquote__backgroundColor:  #1C1C26 ;
  --impulse--section--darkSection--2--blockquote__accentColor:  #F59700 ;

    
      
    

  --impulse--section--darkSection--2--link__fontColor:  #EB004F ;

    
    --impulse--section--darkSection--2--link__textDecoration: none;
    --impulse--section--darkSection--2--link__textDecorationColor: transparent;
    

  --impulse--section--darkSection--2--link__hover--fontColor:  #EB004F ;
    
    --impulse--section--darkSection--2--link__hover--textDecoration: underline;
    --impulse--section--darkSection--2--link__hover--textDecorationColor:  #EB004F ;
    


  /* Editorial muted/dim/line tokens — derived per section family.
     These let modules render hairline cards, dim mono-meta, and muted
     supporting copy without redefining colors per module. */

  /* Warm sections — rgba over dark text gives editorial muting */
  --impulse--section--warm__mutedColor: rgba(14, 14, 29, 0.66);
  --impulse--section--warm__dimColor: rgba(14, 14, 29, 0.38);
  --impulse--section--warm__lineColor: rgba(14, 14, 29, 0.10);
  --impulse--section--warm__line2Color: rgba(14, 14, 29, 0.20);
  --impulse--section--warm__panelColor: rgba(14, 14, 29, 0.03);

  /* Kernel (dark) sections — rgba over white text */
  --impulse--section--kernel__mutedColor: rgba(255, 255, 255, 0.70);
  --impulse--section--kernel__dimColor: rgba(255, 255, 255, 0.42);
  --impulse--section--kernel__lineColor: rgba(255, 255, 255, 0.10);
  --impulse--section--kernel__line2Color: rgba(255, 255, 255, 0.20);
  --impulse--section--kernel__panelColor: rgba(255, 255, 255, 0.04);
}

  

:root {
  /* Font */
  --impulse--tag__font:  Montserrat ;
  --impulse--tag__fontColor:   ;
  --impulse--tag__fontSize:  0.875rem ;
  --impulse--tag__fontWeight:  500 ;
  --impulse--tag__fontStyle:  normal ;

  /* Text colors */
  --impulse--tag__textColor:  #063E95 ;

  /* Background colors */
    
    --impulse--tag__backgroundColor:  #E5F0FF ;
    

  /* Shape */
    
      
    

    
    --impulse--tag__borderRadius: 50px;
    

  /* Border thickness */
  --impulse--tag__borderThickness:  1px ;
  --impulse--tag__borderColor:  #E5F0FF ;

  /* Case */
  --impulse--tag__case:  none ;
}

:root {
    /* Border radius based on shape */
    --impulse-sharp: 0;
    --impulse-rounded--extra-small: 4px;
    --impulse-rounded--small: 8px;
    --impulse-rounded: 16px;
    --impulse-rounded--large: 24px;
    --impulse-rounded--extra-large: 32px;
    --impulse-circle: 50%;
}

:root {
    --impulse--icon--small__size: 16px;
    --impulse--icon--medium__size: 24px;
    --impulse--icon--large__size: 32px;
}

/* Generic */

*,
*:before,
*:after {
  box-sizing: border-box;
}

/* Smooth-scroll any in-page anchor click (skip-to-content, on-page jumps,
   etc.). Disabled for users who prefer reduced motion. The `:where()`
   wrapper keeps specificity at zero so a more targeted rule can override. */

@media (prefers-reduced-motion: no-preference) {
  :where(html) {
    scroll-behavior: smooth;
  }
}

/* Anchor targets land below the fixed mega-menu pill (~80px tall). Apply to
   the IDs the service-detail template + skip-to-content link jump to. Using
   :where() keeps specificity low; per-element `scroll-margin-top` overrides
   still win. */

:where(#main-content, #svc-what, #svc-process, #svc-outcomes, #by-layer) {
  scroll-margin-top: 96px;
}

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
  overflow-x: hidden;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * Add the correct box sizing in Firefox.
 */

hr {
  box-sizing: content-box;
  height: 0;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Remove the inheritance of text transform in Edge and Firefox.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select {
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type='button']:-moz-focusring,
[type='reset']:-moz-focusring,
[type='submit']:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers.
 */

legend {
  padding: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Objects */

.dnd-section {
  padding: var(--impulse--section--medium__verticalPadding)
    var(--impulse--section--horizontalPadding);
}

.dnd-section > .row-fluid,
.impulse-content-wrapper {
  margin: 0 auto;
  max-width: var(--impulse--contentWrapper--wide__maxWidth);
}

.impulse-content-wrapper {
  padding: 0 var(--impulse--section--horizontalPadding);
}

/* Helper Classes */

.impulse-content-wrapper--sm {
  max-width: var(--impulse--contentWrapper--narrow__maxWidth);
  padding: 0;
}

.impulse-content-wrapper--md {
  max-width: var(--impulse--contentWrapper--medium__maxWidth);
  padding: 0;
}

/* Padding for non DND sections */

.impulse-content-padding {
  padding-block: var(--impulse--section--medium__verticalPadding);
}

.impulse-content-padding--extra-small {
  padding-block: var(  --impulse--section--extraSmall__verticalPadding);
}

.impulse-content-padding--small {
  padding-block: var(--impulse--section--small__verticalPadding);
}

.impulse-content-padding--large {
  padding-block: var(--impulse--section--large__verticalPadding);
}

.impulse-content-padding--extra-large {
  padding-block: var(--impulse--section--extraLarge__verticalPadding);
}

.row-fluid {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}

.row-fluid .span1,
.row-fluid .span2,
.row-fluid .span3,
.row-fluid .span4,
.row-fluid .span5,
.row-fluid .span6,
.row-fluid .span7,
.row-fluid .span8,
.row-fluid .span9,
.row-fluid .span10,
.row-fluid .span11,
.row-fluid .span12 {
  min-height: 1px;
  width: 100%;
}

@media (min-width: 768px) {
  .row-fluid {
    flex-wrap: nowrap;
    justify-content: space-between;
  }

  .row-fluid .span1 {
    width: calc(
      var(--impulse--column__widthMultiplier) * 1% * 1 -
        var(--impulse--column__gap) *
        var(--impulse--column__widthMultiplier) * 11 / 100
    );
  }

  .row-fluid .span2 {
    width: calc(
      var(--impulse--column__widthMultiplier) * 1% * 2 -
        var(--impulse--column__gap) *
        var(--impulse--column__widthMultiplier) * 10 / 100
    );
  }

  .row-fluid .span3 {
    width: calc(
      var(--impulse--column__widthMultiplier) * 1% * 3 -
        var(--impulse--column__gap) *
        var(--impulse--column__widthMultiplier) * 9 / 100
    );
  }

  .row-fluid .span4 {
    width: calc(
      var(--impulse--column__widthMultiplier) * 1% * 4 -
        var(--impulse--column__gap) *
        var(--impulse--column__widthMultiplier) * 8 / 100
    );
  }

  .row-fluid .span5 {
    width: calc(
      var(--impulse--column__widthMultiplier) * 1% * 5 -
        var(--impulse--column__gap) *
        var(--impulse--column__widthMultiplier) * 7 / 100
    );
  }

  .row-fluid .span6 {
    width: calc(
      var(--impulse--column__widthMultiplier) * 1% * 6 -
        var(--impulse--column__gap) *
        var(--impulse--column__widthMultiplier) * 6 / 100
    );
  }

  .row-fluid .span7 {
    width: calc(
      var(--impulse--column__widthMultiplier) * 1% * 7 -
        var(--impulse--column__gap) *
        var(--impulse--column__widthMultiplier) * 5 / 100
    );
  }

  .row-fluid .span8 {
    width: calc(
      var(--impulse--column__widthMultiplier) * 1% * 8 -
        var(--impulse--column__gap) *
        var(--impulse--column__widthMultiplier) * 4 / 100
    );
  }

  .row-fluid .span9 {
    width: calc(
      var(--impulse--column__widthMultiplier) * 1% * 9 -
        var(--impulse--column__gap) *
        var(--impulse--column__widthMultiplier) * 3 / 100
    );
  }

  .row-fluid .span10 {
    width: calc(
      var(--impulse--column__widthMultiplier) * 1% * 10 -
        var(--impulse--column__gap) *
        var(--impulse--column__widthMultiplier) * 2 / 100
    );
  }

  .row-fluid .span11 {
    width: calc(
      var(--impulse--column__widthMultiplier) * 1% * 11 -
        var(--impulse--column__gap) *
        var(--impulse--column__widthMultiplier) * 1 / 100
    );
  }
}

/* Elements */

html {
  font-size: var(--impulse--baseText__fontSize);
}

body {
  background-color: var(--impulse--section--lightSection--1__backgroundColor);
  color: var(--impulse--section--lightSection--1__textColor);
  font-family: var(--impulse--body__font);
  font-size: var(--impulse--body__fontSize);
  font-style: var(--impulse--body__fontStyle);
  font-weight: var(--impulse--body__fontWeight);
  line-height: var(--impulse--body__lineHeight);
  overflow-wrap: break-word;
}

html[lang^='ja'] body,
html[lang^='zh'] body,
html[lang^='ko'] body {
  line-break: strict;
  overflow-wrap: normal;
  word-break: break-all;
}

/* Paragraphs */

p {
  margin-block: var(--impulse--text__margin);
}

a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link),
a.impulse-link--primary,
.impulse-link--primary a {
  color: var(--impulse--link--primary__fontColor);
  cursor: pointer;
  -webkit-text-decoration: var(--impulse--link--primary__textDecoration);
  text-decoration: var(--impulse--link--primary__textDecoration);
  text-decoration-color: var(--impulse--link--primary__textDecorationColor);
}

a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link):hover,
a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link):focus,
a.impulse-link--primary:hover,
.impulse-link--primary a:hover,
a.impulse-link--primary:focus,
.impulse-link--primary a:focus {
  color: var(--impulse--link--primary__hover--fontColor);
  -webkit-text-decoration: var(--impulse--link--primary__hover--textDecoration);
  text-decoration: var(--impulse--link--primary__hover--textDecoration);
  text-decoration-color: var(--impulse--link--primary__hover--textDecorationColor);
}

a.impulse-link--secondary,
.impulse-link--secondary a {
  color: var(--impulse--link--secondary__fontColor);
  cursor: pointer;
  -webkit-text-decoration: var(--impulse--link--secondary__textDecoration);
  text-decoration: var(--impulse--link--secondary__textDecoration);
  text-decoration-color: var(--impulse--link--secondary__textDecorationColor);
}

a.impulse-link--secondary:hover,
.impulse-link--secondary a:hover a.impulse-link--secondary:focus,
.impulse-link--secondary a:focus {
  color: var(--impulse--link--secondary__hover--fontColor);
  -webkit-text-decoration: var(--impulse--link--secondary__hover--textDecoration);
  text-decoration: var(--impulse--link--secondary__hover--textDecoration);
  text-decoration-color: var(--impulse--link--secondary__hover--textDecorationColor);
}

/* Headings */

h1,
h2,
h3,
h4,
h5,
h6,
.impulse-display-1,
.impulse-display-2 {
  line-height: var(--impulse--heading__lineHeight);
  margin-block: var(--impulse--text__margin);
}

.impulse-display-1 {
  font-family: var(--impulse--display1__font);
  font-size: calc(var(--impulse--display1__fontSize) * var(--impulse--heading__tablet-modifier));
  font-style: normal;
  font-weight: 400;
}

.impulse-display-2 {
  font-family: var(--impulse--display2__font);
  font-size: calc(var(--impulse--display2__fontSize) * var(--impulse--heading__tablet-modifier));
  font-style: normal;
  font-weight: 400;
}

h1,
.impulse-h1 {
  font-family: var(--impulse--h1__font);
  font-size: calc(var(--impulse--h1__fontSize) * var(--impulse--heading__tablet-modifier));
  font-style: var(--impulse--h1__fontStyle);
  font-weight: var(--impulse--h1__fontWeight);
}

h2,
.impulse-h2 {
  font-family: var(--impulse--h2__font);
  font-size: calc(var(--impulse--h2__fontSize) * var(--impulse--heading__tablet-modifier));
  font-style: var(--impulse--h2__fontStyle);
  font-weight: var(--impulse--h2__fontWeight);
}

h3,
.impulse-h3 {
  font-family: var(--impulse--h3__font);
  font-size: calc(var(--impulse--h3__fontSize) * var(--impulse--heading__tablet-modifier));
  font-style: var(--impulse--h3__fontStyle);
  font-weight: var(--impulse--h3__fontWeight);
}

h4,
.impulse-h4 {
  font-family: var(--impulse--h4__font);
  font-size: calc(var(--impulse--h4__fontSize) * var(--impulse--heading__tablet-modifier));
  font-style: var(--impulse--h4__fontStyle);
  font-weight: var(--impulse--h4__fontWeight);
}

h5,
.impulse-h5 {
  font-family: var(--impulse--h5__font);
  font-size: calc(var(--impulse--h5__fontSize) * var(--impulse--heading__tablet-modifier));
  font-style: var(--impulse--h5__fontStyle);
  font-weight: var(--impulse--h5__fontWeight);
}

h6,
.impulse-h6 {
  font-family: var(--impulse--h6__font);
  font-size: calc(var(--impulse--h6__fontSize) * var(--impulse--heading__tablet-modifier));
  font-style: var(--impulse--h6__fontStyle);
  font-weight: var(--impulse--h6__fontWeight);
}

@media (min-width: 767px) {
  .impulse-display-1 {
    font-size: var(--impulse--display1__fontSize);
  }

  .impulse-display-2 {
    font-size: var(--impulse--display2__fontSize);
  }

  h1,
  .impulse-h1 {
    font-size: var(--impulse--h1__fontSize);
  }

  h2,
  .impulse-h2 {
    font-size: var(--impulse--h2__fontSize);
  }

  h3,
  .impulse-h3 {
    font-size: var(--impulse--h3__fontSize);
  }

  h4,
  .impulse-h4 {
    font-size: var(--impulse--h4__fontSize);
  }

  h5,
  .impulse-h5 {
    font-size: var(--impulse--h5__fontSize);
  }

  h6,
  .impulse-h6 {
    font-size: var(--impulse--h6__fontSize);
  }
}

/* Lists */

ul,
ol {
  margin-block: var(--impulse--text__margin);
}

/* Blockquotes */

blockquote {
  padding: var(--impulse--spacing--24, 24px);
  border-radius: var(--impulse-rounded--extra-small);
  border-left: 3px solid var(--impulse--blockquote__accentColor, var(--impulse--section--lightSection--1--blockquote__accentColor));
  background-color: var(--impulse--blockquote__backgroundColor, var(--impulse--section--lightSection--1--blockquote__backgroundColor));
  color: var(--impulse--blockquote__fontColor, var(--impulse--section--lightSection--1--blockquote__textColor));
  font-family: var(--impulse--quotes__font);
  font-size: var(--impulse--quotes__fontSize);
  font-style: var(--impulse--quotes__fontStyle);
  font-weight: var(--impulse--quotes__fontWeight);
  margin-block: var(--impulse--text__margin);
}

:is(.hs_cos_wrapper_type_rich_text, .hs_cos_wrapper_type_inline_richtext_field) blockquote {
  padding: var(--impulse--spacing--24, 24px);
  border-radius: var(--impulse-rounded--extra-small);
  border-left: 3px solid var(--impulse--blockquote__accentColor, var(--impulse--section--lightSection--1--blockquote__accentColor));
  background-color: var(--impulse--blockquote__backgroundColor, var(--impulse--section--lightSection--1--blockquote__backgroundColor));
  color: var(--impulse--blockquote__fontColor, var(--impulse--section--lightSection--1--blockquote__textColor));
  font-family: var(--impulse--quotes__font);
  font-size: var(--impulse--quotes__fontSize);
  font-style: var(--impulse--quotes__fontStyle);
  font-weight: var(--impulse--quotes__fontWeight);
  margin-block: var(--impulse--text__margin);
}

@media (max-width: 767.98px) {
  :is(.hs_cos_wrapper_type_rich_text, .hs_cos_wrapper_type_inline_richtext_field) blockquote {
    font-size: calc(var(--impulse--body__fontSize) + 4px);
    margin-inline: 0;
  }
}

/* Captions */

.impulse-caption {
  color: var(--impulse--captions__fontColor, var(--impulse--section--lightSection--1--captionColor));
  font-family: var(--impulse--captions__font);
  font-size: var(--impulse--captions__fontSize);
  font-style: var(--impulse--captions__fontStyle);
  font-weight: var(--impulse--captions__fontWeight);
  text-transform: var(--impulse--captions__case);
}

/* Tags */

.impulse-tag {
  padding: 2px 8px;
  border-color: var(--impulse--tag__borderColor);
  border-radius: var(--impulse--tag__borderRadius);
  border-style: solid;
  border-width: var(--impulse--tag__borderThickness);
  background-color: var(--impulse--tag__backgroundColor);
  color: var(--impulse--tag__textColor);
  font-family: var(--impulse--tag__font);
  font-size: var(--impulse--tag__fontSize);
  font-style: var(--impulse--tag__fontStyle);
  font-weight: var(--impulse--tag__fontWeight);
  text-transform: var(--impulse--tag__case);
}

/* Images in rich text */

:is(.hs_cos_wrapper_type_rich_text, .hs_cos_wrapper_type_inline_richtext_field) img {
  max-width: 100%;
  margin-block-end: var(--impulse--rteImages__margin);
}

.impulse-button:focus {
  outline: 2px solid #53ACFF;
  outline-offset: 2px;
}

.impulse-button--primary {
  font-family: var(--impulse--button--primary__font);
  font-size: var(--impulse--button--primary__fontSize);
  font-weight: var(--impulse--button--primary__fontWeight);
  font-style: var(--impulse--button--primary__fontStyle);
  color: var(--impulse--button--primary__textColor);
  border-width: var(--impulse--button--primary__borderThickness);
  background-color: var(--impulse--button--primary__backgroundColor);
  border-style: solid;
  border-color: var(--impulse--button--primary__borderColor);
  border-radius: var(--impulse--button--primary__borderRadius);
  text-decoration: none;
}

.impulse-button--primary:hover {
  color: var(--impulse--button--primary__hover--textColor);
  background-color: var(--impulse--button--primary__hover--backgroundColor);
  border-color: var(--impulse--button--primary__hover--borderColor);
  border-width: var(--impulse--button--primary__hover--borderThickness);
  text-decoration: none;
}

.impulse-button--primary:active {
  color: var(--impulse--button--primary__hover--textColor);
  background-color:  #4a36ca ;
  border-color:   ;
  border-width: var(--impulse--button--primary__hover--borderThickness);
  text-decoration: none;
}

.impulse-button--secondary {
  font-family: var(--impulse--button--secondary__font);
  font-size: var(--impulse--button--secondary__fontSize);
  font-weight: var(--impulse--button--secondary__fontWeight);
  font-style: var(--impulse--button--secondary__fontStyle);
  color: var(--impulse--button--secondary__textColor);
  border-width: var(--impulse--button--secondary__borderThickness);
  background-color: var(--impulse--button--secondary__backgroundColor);
  border-style: solid;
  border-color: var(--impulse--button--secondary__borderColor);
  border-radius: var(--impulse--button--secondary__borderRadius);
  text-decoration: none;
}

.impulse-button--secondary:hover {
  color: var(--impulse--button--secondary__hover--textColor);
  background-color: var(--impulse--button--secondary__hover--backgroundColor);
  border-color: var(--impulse--button--secondary__hover--borderColor);
  border-width: var(--impulse--button--secondary__hover--borderThickness);
  text-decoration: none;
}

.impulse-button--secondary:active {
  color: var(--impulse--button--secondary__hover--textColor);
  background-color:  transparent ;
  border-color:  #4a36ca ;
  border-width: var(--impulse--button--secondary__hover--borderThickness);
  text-decoration: none;
}

.impulse-button--tertiary {
  font-family: var(--impulse--button--tertiary__font);
  font-size: var(--impulse--button--tertiary__fontSize);
  font-weight: var(--impulse--button--tertiary__fontWeight);
  font-style: var(--impulse--button--tertiary__fontStyle);
  color: var(--impulse--button--tertiary__textColor);
  border-width: var(--impulse--button--tertiary__borderThickness);
  background-color: var(--impulse--button--tertiary__backgroundColor);
  border-style: solid;
  border-color: var(--impulse--button--tertiary__borderColor);
  border-radius: var(--impulse--button--tertiary__borderRadius);
  text-decoration: none;
}

.impulse-button--tertiary:hover {
  color: var(--impulse--button--tertiary__hover--textColor);
  background-color: var(--impulse--button--tertiary__hover--backgroundColor);
  border-color: var(--impulse--button--tertiary__hover--borderColor);
  border-width: var(--impulse--button--tertiary__hover--borderThickness);
  text-decoration: none;
}

.impulse-button--tertiary:active {
  color: var(--impulse--button--tertiary__hover--textColor);
  background-color:  #cbc7e1 ;
  border-color:   ;
  border-width: var(--impulse--button--tertiary__hover--borderThickness);
  text-decoration: none;
}

.impulse-button--accent {
  font-family: var(--impulse--button--accent__font);
  font-size: var(--impulse--button--accent__fontSize);
  font-weight: var(--impulse--button--accent__fontWeight);
  font-style: var(--impulse--button--accent__fontStyle);
  color: var(--impulse--button--accent__textColor);
  border-width: var(--impulse--button--accent__borderThickness);
  background-color: var(--impulse--button--accent__backgroundColor);
  border-style: solid;
  border-color: var(--impulse--button--accent__borderColor);
  border-radius: var(--impulse--button--accent__borderRadius);
  text-decoration: none;
}

.impulse-button--accent:hover {
  color: var(--impulse--button--accent__hover--textColor);
  background-color: var(--impulse--button--accent__hover--backgroundColor);
  border-color: var(--impulse--button--accent__hover--borderColor);
  border-width: var(--impulse--button--accent__hover--borderThickness);
  text-decoration: none;
}

.impulse-button--accent:active {
  color: var(--impulse--button--accent__hover--textColor);
  background-color:   ;
  border-color:  #cbc7e1 ;
  border-width: var(--impulse--button--accent__hover--borderThickness);
  text-decoration: none;
}

.impulse-card--variant-1 {
  border-color: var(--impulse--card--variant1__borderColor);
  border-radius: var(--impulse--card--variant1__borderRadius);
  border-style: solid;
  border-width: var(--impulse--card--variant1__borderThickness);
  background-color: var(--impulse--card--variant1__backgroundColor);
  color: var(--impulse--card--variant1__textColor);
}

.impulse-card--variant-1 a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link) {
    color: var(--impulse--card--variant1--link__fontColor);
    -webkit-text-decoration: var(--impulse--card--variant1--link__textDecoration);
    text-decoration: var(--impulse--card--variant1--link__textDecoration);
    text-decoration-color: var(--impulse--card--variant1--link__textDecorationColor);
  }

.impulse-card--variant-1 a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link):hover, .impulse-card--variant-1 a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link):focus {
    color: var(--impulse--card--variant1--link__hover--fontColor);
    -webkit-text-decoration: var(--impulse--card--variant1--link__hover--textDecoration);
    text-decoration: var(--impulse--card--variant1--link__hover--textDecoration);
    text-decoration-color: var(--impulse--card--variant1--link__hover--textDecorationColor);
  }

.impulse-card--variant-2 {
  border-color: var(--impulse--card--variant2__borderColor);
  border-radius: var(--impulse--card--variant2__borderRadius);
  border-style: solid;
  border-width: var(--impulse--card--variant2__borderThickness);
  background-color: var(--impulse--card--variant2__backgroundColor);
  color: var(--impulse--card--variant2__textColor);
}

.impulse-card--variant-2 a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link) {
    color: var(--impulse--card--variant2--link__fontColor);
    -webkit-text-decoration: var(--impulse--card--variant2--link__textDecoration);
    text-decoration: var(--impulse--card--variant2--link__textDecoration);
    text-decoration-color: var(--impulse--card--variant2--link__textDecorationColor);
  }

.impulse-card--variant-2 a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link):hover, .impulse-card--variant-2 a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link):focus {
    color: var(--impulse--card--variant2--link__hover--fontColor);
    -webkit-text-decoration: var(--impulse--card--variant2--link__hover--textDecoration);
    text-decoration: var(--impulse--card--variant2--link__hover--textDecoration);
    text-decoration-color: var(--impulse--card--variant2--link__hover--textDecorationColor);
  }

.impulse-card--variant-3 {
  border-color: var(--impulse--card--variant3__borderColor);
  border-radius: var(--impulse--card--variant3__borderRadius);
  border-style: solid;
  border-width: var(--impulse--card--variant3__borderThickness);
  background-color: var(--impulse--card--variant3__backgroundColor);
  color: var(--impulse--card--variant3__textColor);
}

.impulse-card--variant-3 a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link) {
    color: var(--impulse--card--variant3--link__fontColor);
    -webkit-text-decoration: var(--impulse--card--variant3--link__textDecoration);
    text-decoration: var(--impulse--card--variant3--link__textDecoration);
    text-decoration-color: var(--impulse--card--variant3--link__textDecorationColor);
  }

.impulse-card--variant-3 a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link):hover, .impulse-card--variant-3 a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link):focus {
    color: var(--impulse--card--variant3--link__hover--fontColor);
    -webkit-text-decoration: var(--impulse--card--variant3--link__hover--textDecoration);
    text-decoration: var(--impulse--card--variant3--link__hover--textDecoration);
    text-decoration-color: var(--impulse--card--variant3--link__hover--textDecorationColor);
  }

.impulse-card--variant-4 {
  border-color: var(--impulse--card--variant4__borderColor);
  border-radius: var(--impulse--card--variant4__borderRadius);
  border-style: solid;
  border-width: var(--impulse--card--variant4__borderThickness);
  background-color: var(--impulse--card--variant4__backgroundColor);
  color: var(--impulse--card--variant4__textColor);
}

.impulse-card--variant-4 a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link) {
    color: var(--impulse--card--variant4--link__fontColor);
    -webkit-text-decoration: var(--impulse--card--variant4--link__textDecoration);
    text-decoration: var(--impulse--card--variant4--link__textDecoration);
    text-decoration-color: var(--impulse--card--variant4--link__textDecorationColor);
  }

.impulse-card--variant-4 a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link):hover, .impulse-card--variant-4 a:not(.impulse-button, .impulse-blog-listing__pagination-link, .impulse-card--blog__link):focus {
    color: var(--impulse--card--variant4--link__hover--fontColor);
    -webkit-text-decoration: var(--impulse--card--variant4--link__hover--textDecoration);
    text-decoration: var(--impulse--card--variant4--link__hover--textDecoration);
    text-decoration-color: var(--impulse--card--variant4--link__hover--textDecorationColor);
  }

/* Form */

.hs-form,
.impulse-system-form form,
.impulse-system-form--subscription-preferences form .email-prefs {
  padding: var(--impulse--form__padding);
  border-color: var(--impulse--form__borderColor);
  border-radius: var(--impulse--form__borderRadius);
  border-style: solid;
  border-width: var(--impulse--form__borderThickness);
  background: var(--impulse--form__backgroundColor);
}

/* Form labels */

:is(.hs-form, .impulse-system-form) label,
.impulse-system-form--subscription-preferences .fakelabel {
  display: block;
  color: var(--impulse--formLabel__textColor);
  font-family: var(--impulse--formLabel__font);
  font-size: var(--impulse--formLabel__fontSize);
  font-weight: var(--impulse--formLabel__fontWeight);
  margin-block-end: var(--impulse--formLabel__marginBottom);
}

/* Form fields */

.hs-form .hs-form-field {
  margin-block-end: var(--impulse--formField__marginBottom);
}

:is(.hs-form, .impulse-system-form) input[type='text'],
:is(.hs-form, .impulse-system-form) input[type='email'],
:is(.hs-form, .impulse-system-form) input[type='password'],
:is(.hs-form, .impulse-system-form) input[type='tel'],
:is(.hs-form, .impulse-system-form) input[type='number'],
:is(.hs-form, .impulse-system-form) input[type='search'],
:is(.hs-form, .impulse-system-form) select,
:is(.hs-form, .impulse-system-form) textarea {
  width: 100% !important;
  border-radius: var(--impulse--formField__borderRadius);
  border-top: var(--impulse--formField__borderTop);
  border-right: var(--impulse--formField__borderRight);
  border-bottom: var(--impulse--formField__borderBottom);
  border-left: var(--impulse--formField__borderLeft);
  background-color: var(--impulse--formField__backgroundColor);
  color: var(--impulse--formFieldInput__textColor);
  padding-block: var(--impulse--spacing--20);
  padding-inline: var(--impulse--spacing--32);
}

.hs-input.hs-fieldtype-intl-phone {
  display: flex;
  width: 100% !important;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 8px; /* matches column margins from form injection */
}

.hs-input.hs-fieldtype-intl-phone > input {
  flex: 1 0 calc(70% - 8px) !important;
}

.hs-input.hs-fieldtype-intl-phone > select {
  flex: 1 0 30% !important;
}

@media (max-width: 600px) {
  .hs-input.hs-fieldtype-intl-phone {
    display: flex;
    width: 100%;
    flex-direction: column;
    gap: 8px;
  }

  .hs-input.hs-fieldtype-intl-phone > select,
  .hs-input.hs-fieldtype-intl-phone > input {
    min-width: 100%;
    flex: 1 1 100%;
  }

  .hs-input.hs-fieldtype-intl-phone > select {
    padding-inline: var(--impulse--spacing--16);
  }
}

.hs-form-field.hs-fieldtype-file .hs-input,
.hs-form fieldset {
  max-width: 100% !important;
}

/* Form fields - textarea */

.hs-form textarea {
  position: relative;
  height: 160px;
  border-radius: var(--impulse--formFieldTextArea__borderRadius);
}

.hs-form textarea::-webkit-resizer {
  display: none;
}

.hs-form .hs_multi_line_field .input {
  position: relative;
}

.hs-form .hs_multi_line_field .input:after {
  position: absolute;
  right: var(--impulse--spacing--8);
  bottom: var(--impulse--spacing--8);
  content: var(--impulse--formField__dragIcon);
  pointer-events: none;
}

/* Form fields - select */

.hs-form .hs-fieldtype-select .input {
  position: relative;
}

.hs-form select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.hs-form .hs-fieldtype-select .input:after {
  position: absolute;
  top: 50%;
  right: var(--impulse--spacing--32);
  content: var(--impulse--formField__selectIcon);
  pointer-events: none;
  transform: translateY(-50%);
}

/* Form fields - datepicker */

.hs-form .hs-dateinput {
  position: relative;
}

.hs-form .hs-dateinput:before {
  position: absolute;
  top: 50%;
  right: var(--impulse--spacing--32);
  content: var(--impulse--formField__datepickerIcon);
  pointer-events: none;
  transform: translateY(-50%);
}

/* Form fields - placeholders */

::-moz-placeholder {
  color: var(--impulse--formFieldPlaceholder__textColor);
}

::placeholder {
  color: var(--impulse--formFieldPlaceholder__textColor);
}

/* Form fields - checkbox/radio */

.hs-form .inputs-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.hs-form .inputs-list li {
  display: block;
  margin-block-end: var(--impulse--spacing--16);
}

.hs-form .inputs-list li:last-of-type {
  margin-block-end: 0;
}

.hs-form .inputs-list :is(input, span) {
  vertical-align: middle;
}

:is(.hs-form, .impulse-system-form) input[type='checkbox'],
:is(.hs-form, .impulse-system-form) input[type='radio'] {
  height: var(--impulse--formFieldCheckboxRadio__size);
  width: var(--impulse--formFieldCheckboxRadio__size) !important;
  accent-color: var(--impulse--formFieldCheckboxRadio__fillColor);
  cursor: pointer;
  margin-inline-end: var(--impulse--spacing--12);
}

/* Form help text */

.hs-form legend {
  /* To do: figure out where we should pull this from */
  color: var(--impulse--formHelpText__textColor);
  margin-block-end: var(--impulse--spacing--8);
}

/* Form rich text */

.hs-form .hs-richtext {
  color: var(--impulse--formLabel__textColor);
}

.hs-form .hs-richtext img {
  height: auto;
  max-width: 100% !important;
}

/* Form error messages */

.hs-form .hs-input.error {
  border-color: var(--impulse--formRequired__color);
}

.hs-form .hs-error-msg,
.hs-form .hs-error-msgs {
  color: var(--impulse--formRequired__color);
  margin-block-start: var(--impulse--spacing--4);
}

/* Form button */

:is(.hs-form, .impulse-system-form) .hs-button,
:is(.hs-form, .impulse-system-form) input[type='submit'] {
  display: inline-block;
  width: 100%;
  border-color: var(--impulse--button--primary__borderColor);
  border-radius: var(--impulse--button--primary__borderRadius);
  border-style: solid;
  border-width: var(--impulse--button--primary__borderThickness);
  background-color: var(--impulse--button--primary__backgroundColor);
  color: var(--impulse--button--primary__textColor);
  cursor: pointer;
  font-family: var(--impulse--button--primary__font);
  font-size: var(--impulse--button--primary__fontSize);
  font-style: var(--impulse--button--primary__fontStyle);
  font-weight: var(--impulse--button--primary__fontWeight);
  padding-block: var(--impulse--spacing--20);
  padding-inline: var(--impulse--spacing--24);
  text-align: center;
  text-decoration: none;
  transition: all 0.15s linear;
  white-space: normal !important;
}

:is(.hs-form, .impulse-system-form) .hs-button:hover,
:is(.hs-form, .impulse-system-form) .hs-button:focus,
:is(.hs-form, .impulse-system-form) input[type='submit']:hover,
:is(.hs-form, .impulse-system-form) input[type='submit']:focus {
  border-color: var(--impulse--button--primary__hover--borderColor);
  border-width: var(--impulse--button--primary__hover--borderThickness);
  background-color: var(--impulse--button--primary__hover--backgroundColor);
  color: var(--impulse--button--primary__hover--textColor);
  text-decoration: none;
}

/* Captcha */

.grecaptcha-badge {
  margin-block: 0;
  margin-inline: auto;
}

/* Components */

/* Navigation skipper */

.impulse-header__skip {
  position: absolute;
  top: -1000px;
  left: -1000px;
  overflow: hidden;
  height: 1px;
  width: 1px;
  text-align: left;
}

.impulse-header__skip:hover,
.impulse-header__skip:focus,
.impulse-header__skip:active {
  z-index: 2;
  top: 0;
  left: 0;
  overflow: visible;
  height: auto;
  width: auto;
}

/*
  TODO: Move this code to the MenuComponent styled-component code -- keeping it here to prevent conflicts with open Menu PRs
  TODO: Remove this file and its references from main.hubl.css
*/

@media (max-width: 767px) {
  .impulse-footer .impulse-menu {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

/*
  Spacing variables are:
  --impulse--menuItem__padding
  --impulse--menuItem__margin
  --impulse--menu--topLevel__gap
  --impulse--flyoutSubMenu__top
  --impulse--flyoutSubMenu__left
  --impulse--flyoutSubMenu__right
  --impulse--flyoutSubMenu__bottom
  --impulse--firstFlyoutMenu__top
  --impulse--firstFlyoutMenu__left
  --impulse--firstFlyoutMenu__right
  --impulse--firstFlyoutMenu__bottom
 */

.impulse-menu {
  display: flex;
}

.impulse-menu,
.impulse-menu ul {
  list-style: none;
}

.impulse-menu li {
  position: relative;
}

.impulse-menu--horizontal {
  flex-direction: row;
  flex-wrap: wrap;
}

.impulse-menu--vertical {
  flex-direction: column;
}

.impulse-menu {
  gap: var(--impulse--menu--topLevel__gap, 0);
}

.impulse-menu--desktop {
  margin: 0;
}

.impulse-menu__flyout-submenu {
  min-width: -moz-max-content;
  min-width: max-content;
  max-width: 250px;
  white-space: nowrap;
  overflow-wrap: break-word;
  padding: 20px;
  border: 1px solid #f7f7f7;
  border-radius: 8px;
  background-color: white;
}

/* Editorial primitives — used by every "Reimagined" section module.
   Class names are emitted by KickerComponent, EyebrowComponent,
   EditorialHeadingComponent, PillComponent, MonoTagComponent.
   No hardcoded brand colors — everything keys off --impulse--*. */

/* --- Kicker ----------------------------------------------------------- */

.impulse-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font: var(--impulse--kicker__fontWeight) var(--impulse--kicker__fontSize) /
    1 var(--impulse--kicker__font);
  letter-spacing: var(--impulse--kicker__letterSpacing);
  text-transform: var(--impulse--kicker__textTransform);
  color: currentColor;
}

.impulse-kicker__dot {
  display: inline-block;
  width: 18px;
  height: 1px;
  background: var(--impulse--color--accent--1);
}

.impulse-kicker__text {
  display: inline-block;
}

/* --- Eyebrow (kicker + dot pulse for "live" labels) ------------------ */

.impulse-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: var(--impulse--layout--radius--pill);
  background: var(--impulse--color--accent--soft);
  color: var(--impulse--color--accent--1);
  font: var(--impulse--monoMeta__fontWeight) var(--impulse--monoMeta__fontSize) /
    1 var(--impulse--monoMeta__font);
  letter-spacing: var(--impulse--monoMeta__letterSpacing);
  text-transform: uppercase;
}

.impulse-eyebrow__dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--impulse--color--accent--1);
}

.impulse-eyebrow__dot--pulse {
  position: relative;
  box-shadow: 0 0 0 0 rgba(245, 151, 0, 0.6);
  animation: impulse-pulse 1.8s ease-out infinite;
}

@keyframes impulse-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(245, 151, 0, 0.55);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(245, 151, 0, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(245, 151, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .impulse-eyebrow__dot--pulse {
    animation: none;
  }
}

/* --- Editorial display headings -------------------------------------- */

.impulse-display-xxl,
.impulse-display-xl,
.impulse-display-lg,
.impulse-display-italic {
  margin: 0;
  font-family: var(--impulse--display1__font);
  font-weight: 400;
  color: inherit;
}

.impulse-display-xxl {
  font-size: var(--impulse--display1__fontSize);
  line-height: var(--impulse--display1__lineHeight);
  letter-spacing: var(--impulse--display1__letterSpacing);
}

.impulse-display-xl {
  font-size: var(--impulse--display2__fontSize);
  line-height: var(--impulse--display2__lineHeight);
  letter-spacing: var(--impulse--display2__letterSpacing);
}

.impulse-display-lg {
  font-size: var(--impulse--display3__fontSize);
  line-height: var(--impulse--display3__lineHeight);
  letter-spacing: var(--impulse--display3__letterSpacing);
}

.impulse-display-italic {
  font-size: var(--impulse--displayItalic__fontSize);
  line-height: var(--impulse--displayItalic__lineHeight);
  letter-spacing: var(--impulse--displayItalic__letterSpacing);
  font-style: italic;
}

/* The signature gesture: <em> spans inside an editorial display heading
   render with the orange→magenta gradient. Italic comes from the host
   tag for display-italic; for the others, italic is added on the em. */

.impulse-display-xxl em,
.impulse-display-xl em,
.impulse-display-lg em,
.impulse-display-italic em {
  font-style: italic;
  background: var(--impulse--color--accent--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

/* --- Lede ------------------------------------------------------------ */

.impulse-lede {
  margin: 0;
  font: var(--impulse--lede__fontWeight) var(--impulse--lede__fontSize) /
    var(--impulse--lede__lineHeight) var(--impulse--lede__font);
  color: currentColor;
  max-width: 60ch;
}

/* --- Pills ----------------------------------------------------------- */

.impulse-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: var(--impulse--layout--radius--pill);
  font: var(--impulse--monoTag__fontWeight) var(--impulse--monoTag__fontSize) /
    1 var(--impulse--monoTag__font);
  letter-spacing: var(--impulse--monoTag__letterSpacing);
  text-transform: var(--impulse--monoTag__textTransform);
}

.impulse-pill--solid {
  background: var(--impulse--color--accent--soft);
  color: var(--impulse--color--accent--1);
  border: 1px solid rgba(245, 151, 0, 0.28);
}

.impulse-pill--soft {
  background: rgba(255, 255, 255, 0.06);
  color: currentColor;
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.impulse-pill--muted {
  background: transparent;
  color: currentColor;
  opacity: 0.7;
  border: 1px solid rgba(255, 255, 255, 0.14);
}

[data-section-theme='warm'] .impulse-pill--soft {
  background: rgba(14, 14, 29, 0.04);
  border-color: rgba(14, 14, 29, 0.10);
}

[data-section-theme='warm'] .impulse-pill--muted {
  border-color: rgba(14, 14, 29, 0.14);
}

.impulse-pill__dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--impulse--color--accent--1);
}

/* --- Mono tag (SCENE 01 / 05, FIG. 02 etc.) -------------------------- */

.impulse-mono-tag {
  display: inline-block;
  padding: 3px 8px;
  border-radius: var(--impulse--layout--radius--xs);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
  font: var(--impulse--monoTag__fontWeight) var(--impulse--monoTag__fontSize) /
    1 var(--impulse--monoTag__font);
  letter-spacing: var(--impulse--monoTag__letterSpacing);
  text-transform: var(--impulse--monoTag__textTransform);
  color: currentColor;
  opacity: 0.75;
}

[data-section-theme='warm'] .impulse-mono-tag {
  background: rgba(14, 14, 29, 0.04);
  border-color: rgba(14, 14, 29, 0.08);
}

/* --- Section rhythm utilities (used by sections) --------------------- */

.impulse-section {
  position: relative;
  padding: var(--impulse--layout--section--vertical) var(--impulse--layout--pad);
  background: transparent;
  color: currentColor;
}

.impulse-section--tight {
  padding-top: var(--impulse--layout--section--vertical--tight);
  padding-bottom: var(--impulse--layout--section--vertical--tight);
}

.impulse-section[data-section-theme='dark'] {
  background: var(--impulse--section--darkSection--1__backgroundColor);
  color: var(--impulse--section--darkSection--1__textColor);
}

.impulse-section[data-section-theme='dark-2'] {
  background: var(--impulse--section--darkSection--2__backgroundColor);
  color: var(--impulse--section--darkSection--2__textColor);
}

.impulse-section[data-section-theme='warm'] {
  background: var(--impulse--section--lightSection--1__backgroundColor);
  color: var(--impulse--section--lightSection--1__textColor);
}

.impulse-section[data-section-theme='warm-2'] {
  background: var(--impulse--section--lightSection--2__backgroundColor);
  color: var(--impulse--section--lightSection--2__textColor);
}

.impulse-section__inner {
  max-width: var(--impulse--layout--max);
  margin: 0 auto;
}

/* --- Section header (kicker / display / lede triplet) ---------------- */

.impulse-section-header {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: clamp(40px, 5vw, 64px);
  max-width: 800px;
}

/* --- Editorial FAQ accordion (FAQItem island uses literal classes) --- */

.impulse-editorial-faq__item {
  border-bottom: 1px solid var(--impulse--section--warm__lineColor);
}

[data-section-theme='dark'] .impulse-editorial-faq__item,
[data-section-theme='dark-2'] .impulse-editorial-faq__item {
  border-bottom-color: var(--impulse--section--kernel__lineColor);
}

.impulse-editorial-faq__question {
  display: grid;
  grid-template-columns: 1fr auto 32px;
  grid-gap: 24px;
  gap: 24px;
  align-items: baseline;
  width: 100%;
  background: transparent;
  border: 0;
  padding: 28px 0;
  text-align: left;
  cursor: pointer;
  color: inherit;
  font-family: inherit;
}

.impulse-editorial-faq__question-text {
  font: 400 italic clamp(20px, 2.4vw, 30px) / 1.2 var(--impulse--display1__font, serif);
  letter-spacing: -0.02em;
}

.impulse-editorial-faq__meta {
  font: var(--impulse--monoMeta__fontWeight) var(--impulse--monoMeta__fontSize) / 1
    var(--impulse--mono__font);
  letter-spacing: var(--impulse--monoMeta__letterSpacing);
  color: var(--impulse--section--warm__dimColor);
  white-space: nowrap;
}

[data-section-theme='dark'] .impulse-editorial-faq__meta,
[data-section-theme='dark-2'] .impulse-editorial-faq__meta {
  color: var(--impulse--section--kernel__dimColor);
}

.impulse-editorial-faq__icon {
  position: relative;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: transparent;
  border: 1px solid var(--impulse--section--warm__line2Color);
  transition: transform 0.25s ease, background 0.2s ease, border-color 0.2s ease;
}

[data-section-theme='dark'] .impulse-editorial-faq__icon,
[data-section-theme='dark-2'] .impulse-editorial-faq__icon {
  border-color: var(--impulse--section--kernel__line2Color);
}

.impulse-editorial-faq__icon::before,
.impulse-editorial-faq__icon::after {
  content: '';
  position: absolute;
  background: currentColor;
  top: 50%;
  left: 50%;
}

.impulse-editorial-faq__icon::before {
  width: 12px;
  height: 1.5px;
  margin: -0.75px 0 0 -6px;
}

.impulse-editorial-faq__icon::after {
  width: 1.5px;
  height: 12px;
  margin: -6px 0 0 -0.75px;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.impulse-editorial-faq__item.is-open .impulse-editorial-faq__icon {
  transform: rotate(45deg);
  background: var(--impulse--color--accent--soft);
  border-color: var(--impulse--color--accent--1);
  color: var(--impulse--color--accent--1);
}

.impulse-editorial-faq__panel {
  padding: 0 0 28px 0;
}

.impulse-editorial-faq__answer {
  max-width: 70ch;
  font: 400 16px / 1.6 var(--impulse--body__font, sans-serif);
  color: var(--impulse--section--warm__mutedColor);
}

[data-section-theme='dark'] .impulse-editorial-faq__answer,
[data-section-theme='dark-2'] .impulse-editorial-faq__answer {
  color: var(--impulse--section--kernel__mutedColor);
}

.impulse-editorial-faq__answer p {
  margin: 0 0 12px;
}

.impulse-editorial-faq__answer p:last-child {
  margin-bottom: 0;
}

/* --- OrbitalDiagram animations -------------------------------------- */

@keyframes impulse-orbit-cw {
  to { transform: rotate(360deg); }
}

@keyframes impulse-orbit-ccw {
  to { transform: rotate(-360deg); }
}

@keyframes impulse-orbital-pulse {
  0%, 100% { opacity: 1; transform: scale(1); transform-box: fill-box; transform-origin: center; }
  50% { opacity: 0.55; transform: scale(0.78); transform-box: fill-box; transform-origin: center; }
}

@keyframes impulse-orbital-halo {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}

@keyframes impulse-orbital-edge-flow {
  to { stroke-dashoffset: -36; }
}

@keyframes impulse-orbital-kernel-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.04); }
}

.impulse-orbital-diagram__halo {
  animation: impulse-orbital-halo 3.6s ease-in-out infinite;
}

.impulse-orbital-diagram__satellite {
  animation: impulse-orbital-pulse 2.6s ease-in-out infinite;
  transform-box: fill-box;
  transform-origin: center;
}

.impulse-orbital-diagram__edge {
  animation: impulse-orbital-edge-flow 2.4s linear infinite;
}

.impulse-orbital-diagram__kernel {
  animation: impulse-orbital-kernel-pulse 4s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
  .impulse-orbital-diagram__halo,
  .impulse-orbital-diagram__satellite,
  .impulse-orbital-diagram__edge,
  .impulse-orbital-diagram__kernel {
    animation: none;
  }
  /* Outer / inner orbit ring rotations on the inline-styled <g> elements */
  .impulse-orbital-diagram__svg g[style*='animation'] {
    animation: none !important;
  }
}

/* --- Maturity tier even 5-column override -------------------------- */

/* HubSpot's bootstrap 12-col grid can't divide evenly by 5. When a row
   contains MaturityTier siblings, override to flex with equal distribution. */

.row-fluid:has(.impulse-maturity-tier) {
  display: flex !important;
  gap: 0 !important;
}

.row-fluid:has(.impulse-maturity-tier) > * {
  flex: 1 1 0 !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

@media (max-width: 880px) {
  .row-fluid:has(.impulse-maturity-tier) {
    flex-direction: column;
  }
}

/* Mega menu — Omega-style topbar with scroll morph + hover-grace panel */

.impulse-mega-menu-host {
  position: relative;
  z-index: 60;
}

.impulse-mega-menu-host__skip {
  position: absolute;
  top: -100px;
  left: 16px;
  background: var(--impulse--color--base--3);
  color: var(--impulse--color--base--1);
  padding: 8px 16px;
  border-radius: var(--impulse--layout--radius--pill);
  text-decoration: none;
  font: 500 14px var(--impulse--body__font);
}

.impulse-mega-menu-host__skip:focus {
  top: 16px;
}

.impulse-mega-menu {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 60;
  pointer-events: none;
  padding: 16px var(--impulse--layout--pad);
  transition: padding 0.3s ease, transform 0.3s ease;
}

.impulse-mega-menu.is-scrolled {
  padding: 10px var(--impulse--layout--pad);
}

.impulse-mega-menu.is-hidden {
  transform: translateY(-110%);
}

.impulse-mega-menu__inner {
  pointer-events: auto;
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  grid-gap: 28px;
  gap: 28px;
  padding: 10px 14px 10px 18px;
  border-radius: var(--impulse--layout--radius--pill);
  background: rgba(10, 10, 15, 0.55);
  backdrop-filter: blur(18px) saturate(1.4);
  -webkit-backdrop-filter: blur(18px) saturate(1.4);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow:
    0 12px 40px -16px rgba(0, 0, 0, 0.6),
    0 1px 0 rgba(255, 255, 255, 0.05) inset;
  transition:
    background 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease,
    color 0.3s ease;
  color: #ffffff;
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__inner {
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(14, 14, 29, 0.08);
  box-shadow: 0 16px 40px -20px rgba(14, 14, 29, 0.18);
  color: var(--impulse--color--base--3);
}

/* Brand */

.impulse-mega-menu__brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 4px 8px 4px 4px;
  border-radius: var(--impulse--layout--radius--pill);
  text-decoration: none;
  color: inherit;
  transition: background 0.2s ease;
}

.impulse-mega-menu__brand:hover {
  background: rgba(255, 255, 255, 0.05);
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__brand:hover {
  background: rgba(14, 14, 29, 0.04);
}

.impulse-mega-menu__brand-mark {
  height: 28px;
  width: auto;
  display: block;
  transition: opacity 0.25s ease;
}

.impulse-mega-menu__brand-mark--dark {
  display: none;
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__brand-mark--light {
  display: none;
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__brand-mark--dark {
  display: block;
}

/* Nav */

.impulse-mega-menu__nav {
  display: flex;
  gap: 4px;
  justify-content: center;
  align-items: center;
}

@media (max-width: 1023px) {
  .impulse-mega-menu__nav {
    display: none;
  }
}

.impulse-mega-menu__nav-item {
  position: static;
}

.impulse-mega-menu__trigger {
  position: relative;
  display: inline-flex;
  align-items: center;
  font:
    500 14px var(--impulse--body__font, sans-serif);
  letter-spacing: -0.005em;
  color: rgba(255, 255, 255, 0.72);
  white-space: nowrap;
  padding: 8px 14px;
  border-radius: var(--impulse--layout--radius--pill);
  text-decoration: none;
  transition: color 0.18s ease, background 0.18s ease;
}

a.impulse-mega-menu__trigger,
a.impulse-mega-menu__trigger:hover,
a.impulse-mega-menu__trigger:focus,
a.impulse-mega-menu__trigger:focus-visible,
button.impulse-mega-menu__trigger,
button.impulse-mega-menu__trigger:hover,
button.impulse-mega-menu__trigger:focus,
button.impulse-mega-menu__trigger:focus-visible {
  text-decoration: none;
}

a.impulse-mega-menu__trigger,
button.impulse-mega-menu__trigger {
  color: rgba(255, 255, 255, 0.72);
}

a.impulse-mega-menu__trigger:hover,
a.impulse-mega-menu__trigger:focus-visible,
button.impulse-mega-menu__trigger:hover,
button.impulse-mega-menu__trigger:focus-visible {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.07);
}

.impulse-mega-menu.is-scrolled a.impulse-mega-menu__trigger,
.impulse-mega-menu.is-scrolled button.impulse-mega-menu__trigger {
  color: rgba(14, 14, 29, 0.65);
}

.impulse-mega-menu.is-scrolled a.impulse-mega-menu__trigger:hover,
.impulse-mega-menu.is-scrolled a.impulse-mega-menu__trigger:focus-visible,
.impulse-mega-menu.is-scrolled button.impulse-mega-menu__trigger:hover,
.impulse-mega-menu.is-scrolled button.impulse-mega-menu__trigger:focus-visible {
  color: var(--impulse--color--base--3);
  background: rgba(14, 14, 29, 0.06);
}

.impulse-mega-menu__trigger.is-active {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.10);
  padding-left: 22px;
}

.impulse-mega-menu__trigger.is-active::before {
  content: '';
  position: absolute;
  left: 8px;
  top: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--impulse--color--accent--1);
  transform: translateY(-50%);
  box-shadow: 0 0 12px rgba(245, 151, 0, 0.6);
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__trigger {
  color: rgba(14, 14, 29, 0.65);
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__trigger:hover,
.impulse-mega-menu.is-scrolled .impulse-mega-menu__trigger:focus-visible {
  color: var(--impulse--color--base--3);
  background: rgba(14, 14, 29, 0.06);
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__trigger.is-active {
  color: var(--impulse--color--base--3);
  background: rgba(14, 14, 29, 0.08);
}

/* CTA-styled trigger (Omega __CTA--<color>) */

.impulse-mega-menu__trigger--cta {
  background: var(--impulse--color--accent--gradient);
  color: #ffffff !important;
  padding: 10px 16px;
  font-weight: 500;
  box-shadow: 0 14px 36px -14px rgba(235, 0, 79, 0.45);
}

.impulse-mega-menu__trigger--cta:hover,
.impulse-mega-menu__trigger--cta:focus-visible {
  background: var(--impulse--color--accent--gradient);
  filter: brightness(1.08);
  transform: translateY(-1px);
}

/* Right (CTA + burger) */

.impulse-mega-menu__right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.impulse-mega-menu__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--impulse--color--accent--gradient);
  color: #ffffff;
  text-decoration: none;
  padding: 10px 16px;
  border-radius: var(--impulse--layout--radius--pill);
  font:
    500 14px var(--impulse--body__font, sans-serif);
  letter-spacing: -0.005em;
  box-shadow: 0 14px 36px -14px rgba(235, 0, 79, 0.45);
  transition: transform 0.18s ease, filter 0.18s ease;
  white-space: nowrap;
}

.impulse-mega-menu__cta:hover,
.impulse-mega-menu__cta:focus-visible {
  transform: translateY(-1px);
  filter: brightness(1.08);
}

/* Override global a:hover (underline + accent color) — gradient CTA stays
   white-on-gradient at every interaction state. */

a.impulse-mega-menu__cta,
a.impulse-mega-menu__cta:hover,
a.impulse-mega-menu__cta:focus,
a.impulse-mega-menu__cta:focus-visible {
  color: #ffffff;
  text-decoration: none;
}

.impulse-mega-menu__burger {
  display: none;
  width: 40px;
  height: 40px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--impulse--layout--radius--pill);
  padding: 0;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
}

.impulse-mega-menu__burger span {
  display: block;
  width: 16px;
  height: 1.5px;
  background: currentColor;
  border-radius: 2px;
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__burger {
  border-color: rgba(14, 14, 29, 0.14);
}

@media (max-width: 1023px) {
  .impulse-mega-menu__burger {
    display: inline-flex;
  }
  .impulse-mega-menu__cta {
    display: none;
  }
}

/* Caret beside each top-level link */

.impulse-mega-menu__caret {
  margin-left: 6px;
  opacity: 0.55;
  vertical-align: middle;
  transition: transform 0.25s ease, opacity 0.2s ease;
}

.impulse-mega-menu__trigger:hover .impulse-mega-menu__caret,
.impulse-mega-menu__trigger.is-open .impulse-mega-menu__caret {
  opacity: 1;
}

.impulse-mega-menu__trigger.is-open .impulse-mega-menu__caret {
  transform: rotate(180deg);
}

/* Open-state pill on the trigger (separate from `.is-active`, which marks
   the current page). */

a.impulse-mega-menu__trigger.is-open,
button.impulse-mega-menu__trigger.is-open {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
}

.impulse-mega-menu.is-scrolled a.impulse-mega-menu__trigger.is-open,
.impulse-mega-menu.is-scrolled button.impulse-mega-menu__trigger.is-open {
  background: rgba(14, 14, 29, 0.08);
  color: var(--impulse--color--base--3);
}

/* Mega panel — centered under the topbar pill. Defaults to dark-on-dark
   to match the menu chrome at the top of the page; flips to a translucent
   light card once the menu enters its `is-scrolled` state so the panel
   always emulates the chrome. */

.impulse-mega-menu__panel {
  position: fixed;
  top: 76px;
  left: 50%;
  transform: translateX(-50%);
  width: min(1180px, calc(100vw - 32px));
  background: rgba(10, 10, 15, 0.96);
  backdrop-filter: blur(24px) saturate(1.4);
  -webkit-backdrop-filter: blur(24px) saturate(1.4);
  color: #ffffff;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow:
    0 32px 80px -32px rgba(0, 0, 0, 0.7),
    0 8px 24px -12px rgba(0, 0, 0, 0.5),
    0 1px 0 rgba(255, 255, 255, 0.06) inset;
  z-index: 70;
  pointer-events: auto;
  animation: impulse-mega-fade 0.22s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

@keyframes impulse-mega-fade {
  from { opacity: 0; transform: translate(-50%, -6px); }
  to   { opacity: 1; transform: translate(-50%, 0); }
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__panel {
  background: rgba(255, 255, 255, 0.98);
  color: var(--impulse--color--base--3);
  border-color: rgba(14, 14, 29, 0.08);
  box-shadow:
    0 32px 80px -32px rgba(14, 14, 29, 0.25),
    0 8px 24px -12px rgba(14, 14, 29, 0.12);
}

.impulse-mega-menu__panel-inner {
  padding: 28px 28px 24px;
}

/* Panel head strip: eyebrow + tagline (left) and section overview (right) */

.impulse-mega-menu__panel-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  padding: 0 6px 18px;
  margin-bottom: 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__panel-head {
  border-bottom-color: rgba(14, 14, 29, 0.08);
}

.impulse-mega-menu__panel-eyebrow {
  font: var(--impulse--kicker__fontWeight) var(--impulse--kicker__fontSize) /
    1 var(--impulse--kicker__font);
  letter-spacing: var(--impulse--kicker__letterSpacing);
  text-transform: var(--impulse--kicker__textTransform);
  color: var(--impulse--color--accent--1);
  margin-bottom: 6px;
}

.impulse-mega-menu__panel-tagline {
  font: 400 24px / 1.15 var(--impulse--display1__font, serif);
  letter-spacing: -0.02em;
  color: #ffffff;
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__panel-tagline {
  color: var(--impulse--color--base--3);
}

.impulse-mega-menu__panel-overview {
  font: 500 12px var(--impulse--body__font, sans-serif);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 8px 14px;
  border-radius: var(--impulse--layout--radius--pill);
  border: 1px solid rgba(255, 255, 255, 0.14);
  white-space: nowrap;
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

/* Element-prefixed (specificity 0,1,1) so it beats the global accent-orange
   `a:not(.impulse-button, ...)` from _typography.hubl.css. */

a.impulse-mega-menu__panel-overview,
a.impulse-mega-menu__panel-overview:hover,
a.impulse-mega-menu__panel-overview:focus,
a.impulse-mega-menu__panel-overview:focus-visible {
  text-decoration: none;
}

a.impulse-mega-menu__panel-overview {
  color: rgba(255, 255, 255, 0.7);
}

a.impulse-mega-menu__panel-overview:hover,
a.impulse-mega-menu__panel-overview:focus-visible {
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.4);
  background: rgba(255, 255, 255, 0.06);
}

.impulse-mega-menu.is-scrolled a.impulse-mega-menu__panel-overview {
  color: rgba(14, 14, 29, 0.7);
  border-color: rgba(14, 14, 29, 0.12);
}

.impulse-mega-menu.is-scrolled a.impulse-mega-menu__panel-overview:hover,
.impulse-mega-menu.is-scrolled a.impulse-mega-menu__panel-overview:focus-visible {
  color: var(--impulse--color--base--3);
  border-color: rgba(14, 14, 29, 0.32);
  background: rgba(14, 14, 29, 0.04);
}

/* Grid of columns + optional feature card as the last cell */

.impulse-mega-menu__panel-grid {
  display: grid;
  grid-gap: 20px;
  gap: 20px;
}

.impulse-mega-menu__panel-grid--cols-1 { grid-template-columns: 1fr 1.1fr; }

.impulse-mega-menu__panel-grid--cols-2 { grid-template-columns: 1fr 1fr 1.1fr; }

.impulse-mega-menu__panel-grid--cols-3 { grid-template-columns: 1fr 1fr 1fr 1.1fr; }

.impulse-mega-menu__panel-grid--cols-4 { grid-template-columns: 1fr 1fr 1fr 1fr 1.2fr; }

.impulse-mega-menu__panel-grid--cols-5 { grid-template-columns: repeat(5, 1fr); }

/* Drop the trailing fr unit when there's no feature card */

.impulse-mega-menu__panel-grid--cols-1:not(.has-feature) { grid-template-columns: 1fr; }

.impulse-mega-menu__panel-grid--cols-2:not(.has-feature) { grid-template-columns: 1fr 1fr; }

.impulse-mega-menu__panel-grid--cols-3:not(.has-feature) { grid-template-columns: 1fr 1fr 1fr; }

.impulse-mega-menu__panel-grid--cols-4:not(.has-feature) { grid-template-columns: 1fr 1fr 1fr 1fr; }

.impulse-mega-menu__col-heading {
  font: 500 11px var(--impulse--body__font, sans-serif);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  padding: 4px 10px;
  margin-bottom: 4px;
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__col-heading {
  color: rgba(14, 14, 29, 0.55);
}

/* Element-prefixed (specificity 0,1,1) so it beats the global
   `a:not(.impulse-button, ...)` rule from _typography.hubl.css that would
   otherwise paint every panel link in the accent orange. */

a.impulse-mega-menu__col-heading-link,
a.impulse-mega-menu__col-heading-link:hover,
a.impulse-mega-menu__col-heading-link:focus,
a.impulse-mega-menu__col-heading-link:focus-visible {
  color: inherit;
  text-decoration: none;
}

.impulse-mega-menu__col-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.impulse-mega-menu__leaf {
  display: block;
  font: 500 14.5px var(--impulse--body__font, sans-serif);
  line-height: 1.4;
  letter-spacing: -0.005em;
  border-radius: 10px;
  padding: 8px 10px;
  transition: background 0.15s ease, transform 0.15s ease, color 0.15s ease;
}

/* Element-prefixed selectors so they beat the global accent-orange `a:not(.x)`
   rule from _typography.hubl.css (specificity 0,1,1). */

a.impulse-mega-menu__leaf,
a.impulse-mega-menu__leaf:hover,
a.impulse-mega-menu__leaf:focus,
a.impulse-mega-menu__leaf:focus-visible {
  text-decoration: none;
}

a.impulse-mega-menu__leaf {
  color: rgba(255, 255, 255, 0.92);
}

a.impulse-mega-menu__leaf:hover,
a.impulse-mega-menu__leaf:focus-visible {
  background: rgba(255, 255, 255, 0.06);
  transform: translateX(2px);
  color: #ffffff;
}

.impulse-mega-menu.is-scrolled a.impulse-mega-menu__leaf {
  color: var(--impulse--color--base--3);
}

.impulse-mega-menu.is-scrolled a.impulse-mega-menu__leaf:hover,
.impulse-mega-menu.is-scrolled a.impulse-mega-menu__leaf:focus-visible {
  background: rgba(14, 14, 29, 0.05);
  color: var(--impulse--color--base--3);
}

.impulse-mega-menu__leaf-label {
  display: block;
}

.impulse-mega-menu__leaf-desc {
  display: block;
  font: 400 11px var(--impulse--body__font, sans-serif);
  letter-spacing: -0.005em;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 2px;
  line-height: 1.4;
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__leaf-desc {
  color: rgba(14, 14, 29, 0.5);
}

/* Featured callout — last grid cell, gradient accent card */

.impulse-mega-menu__feature {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 20px;
  border-radius: 16px;
  text-decoration: none;
  color: inherit;
  background:
    linear-gradient(140deg,
      rgba(245, 151, 0, 0.16) 0%,
      rgba(235, 0, 79, 0.12) 60%,
      rgba(173, 126, 255, 0.10) 100%);
  border: 1px solid rgba(245, 151, 0, 0.28);
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

a.impulse-mega-menu__feature,
a.impulse-mega-menu__feature:hover,
a.impulse-mega-menu__feature:focus,
a.impulse-mega-menu__feature:focus-visible {
  text-decoration: none;
  color: inherit;
}

.impulse-mega-menu__feature:hover,
.impulse-mega-menu__feature:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(245, 151, 0, 0.55);
  box-shadow: 0 12px 32px -16px rgba(245, 151, 0, 0.4);
}

.impulse-mega-menu__feature-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  font: 500 11px var(--impulse--body__font, sans-serif);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--impulse--color--accent--1);
}

.impulse-mega-menu__feature-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--impulse--color--accent--1);
  box-shadow: 0 0 12px var(--impulse--color--accent--1);
}

.impulse-mega-menu__feature-title {
  font: 400 20px / 1.15 var(--impulse--display1__font, serif);
  letter-spacing: -0.02em;
  color: #ffffff;
  margin-top: 4px;
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__feature-title {
  color: var(--impulse--color--base--3);
}

.impulse-mega-menu__feature-body {
  font: 400 13.5px / 1.5 var(--impulse--body__font, sans-serif);
  letter-spacing: -0.005em;
  color: rgba(255, 255, 255, 0.78);
}

.impulse-mega-menu__feature-body p {
  margin: 0;
}

.impulse-mega-menu.is-scrolled .impulse-mega-menu__feature-body {
  color: rgba(14, 14, 29, 0.7);
}

.impulse-mega-menu__feature-cta {
  margin-top: auto;
  padding-top: 6px;
  font: 500 12px var(--impulse--body__font, sans-serif);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--impulse--color--accent--1);
}

/* Hide mega panel on mobile (drawer takes over) */

@media (max-width: 880px) {
  .impulse-mega-menu__panel {
    display: none;
  }
  .impulse-mega-menu__panel-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Mobile drawer */

.impulse-mega-menu__drawer {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(10, 10, 15, 0.96);
  backdrop-filter: blur(20px);
  z-index: 65;
  padding: 88px 24px 24px;
  overflow-y: auto;
  transform: translateY(-100%);
  transition: transform 0.32s ease;
  display: flex;
  flex-direction: column;
}

.impulse-mega-menu.is-drawer-open .impulse-mega-menu__drawer {
  transform: translateY(0);
}

.impulse-mega-menu__drawer nav {
  display: flex;
  flex-direction: column;
}

.impulse-mega-menu__drawer-link {
  display: block;
  text-decoration: none;
  padding: 12px 0;
  color: rgba(255, 255, 255, 0.86);
}

.impulse-mega-menu__drawer-link--head {
  font:
    400 24px / 1.2 var(--impulse--display1__font, serif);
  letter-spacing: -0.02em;
  color: #ffffff;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  margin-top: 12px;
}

.impulse-mega-menu__drawer-link--head.is-active {
  color: var(--impulse--color--accent--1);
}

.impulse-mega-menu__drawer-link--sub {
  font: 500 14px var(--impulse--body__font, sans-serif);
  padding: 8px 0 8px 12px;
  color: rgba(255, 255, 255, 0.66);
}

.impulse-mega-menu__drawer-cta {
  margin-top: 24px;
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  gap: 8px;
  background: var(--impulse--color--accent--gradient);
  color: #ffffff;
  text-decoration: none;
  padding: 14px 22px;
  border-radius: var(--impulse--layout--radius--pill);
  font: 500 15px var(--impulse--body__font, sans-serif);
}

.impulse-hero-video-player__frame {
  border-radius: var(--impulse--layout--radius--xl);
  overflow: hidden;
  background: var(--impulse--section--darkSection--2__backgroundColor, #12121A);
  border: 1px solid rgba(255, 255, 255, 0.04);
  box-shadow:
    0 24px 60px -32px rgba(0, 0, 0, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.04);
  max-width: 1040px;
  margin: 0 auto;
}

[data-section-theme='warm'] .impulse-hero-video-player__frame,
[data-section-theme='warm-2'] .impulse-hero-video-player__frame {
  background: var(--impulse--color--base--3);
}

.impulse-hero-video-player__chrome {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  grid-gap: 16px;
  gap: 16px;
  padding: 12px 16px;
  background: rgba(0, 0, 0, 0.35);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.impulse-hero-video-player__lights {
  display: inline-flex;
  gap: 6px;
}

.impulse-hero-video-player__lights span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
}

.impulse-hero-video-player__lights span:first-child { background: #ff5f57; }

.impulse-hero-video-player__lights span:nth-child(2) { background: #febc2e; }

.impulse-hero-video-player__lights span:last-child { background: #28c840; }

.impulse-hero-video-player__title {
  font: var(--impulse--monoMeta__fontWeight) var(--impulse--monoMeta__fontSize) / 1
    var(--impulse--mono__font);
  letter-spacing: var(--impulse--monoMeta__letterSpacing);
  color: rgba(255, 255, 255, 0.7);
  text-align: center;
}

.impulse-hero-video-player__duration {
  font: var(--impulse--monoMeta__fontWeight) var(--impulse--monoMeta__fontSize) / 1
    var(--impulse--mono__font);
  letter-spacing: var(--impulse--monoMeta__letterSpacing);
  color: rgba(255, 255, 255, 0.5);
}

.impulse-hero-video-player__stage {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #0A0B10;
  background-image:
    radial-gradient(540px circle at 30% 30%, rgba(245, 151, 0, 0.18), transparent 60%),
    radial-gradient(620px circle at 70% 75%, rgba(235, 0, 79, 0.16), transparent 60%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.impulse-hero-video-player__ticker {
  position: absolute;
  top: 16px;
  left: 16px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: var(--impulse--layout--radius--xs);
  background: rgba(0, 0, 0, 0.5);
  font: var(--impulse--monoTag__fontWeight) var(--impulse--monoTag__fontSize) / 1
    var(--impulse--mono__font);
  letter-spacing: var(--impulse--monoTag__letterSpacing);
  text-transform: uppercase;
  color: var(--impulse--color--accent--1);
}

.impulse-hero-video-player__ticker-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--impulse--color--accent--1);
}

.impulse-hero-video-player__captions {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  padding: 12px 16px;
  background: rgba(0, 0, 0, 0.55);
  border-radius: var(--impulse--layout--radius--sm);
  font: 400 14px / 1.45 var(--impulse--body__font, sans-serif);
  color: rgba(255, 255, 255, 0.86);
  display: flex;
  gap: 12px;
  align-items: baseline;
}

.impulse-hero-video-player__captions span {
  font: var(--impulse--monoTag__fontWeight) var(--impulse--monoTag__fontSize) / 1
    var(--impulse--mono__font);
  letter-spacing: var(--impulse--monoTag__letterSpacing);
  color: rgba(255, 255, 255, 0.5);
}

.impulse-hero-video-player__play {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: var(--impulse--layout--radius--pill);
  background: rgba(10, 11, 16, 0.65);
  backdrop-filter: blur(10px) saturate(1.2);
  color: #FFFFFF;
  font: 500 15px var(--impulse--body__font, sans-serif);
  letter-spacing: -0.005em;
  cursor: pointer;
  transition: transform 0.18s ease, background 0.18s ease;
}

.impulse-hero-video-player__play:hover,
.impulse-hero-video-player__play:focus-visible {
  transform: translateY(-1px);
  background: rgba(245, 151, 0, 0.18);
}

.impulse-hero-video-player__transport {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  grid-gap: 16px;
  gap: 16px;
  padding: 14px 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.25);
}

.impulse-hero-video-player__t-icon {
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
}

.impulse-hero-video-player__t-scrub {
  position: relative;
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.08);
}

.impulse-hero-video-player__t-scrub-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 28%;
  background: var(--impulse--color--accent--gradient);
  border-radius: 3px;
}

.impulse-hero-video-player__t-scrub-knob {
  position: absolute;
  left: 28%;
  top: 50%;
  width: 12px;
  height: 12px;
  background: #FFFFFF;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 4px rgba(245, 151, 0, 0.18);
}

.impulse-hero-video-player__t-cc {
  font: var(--impulse--monoTag__fontWeight) var(--impulse--monoTag__fontSize) / 1
    var(--impulse--mono__font);
  letter-spacing: var(--impulse--monoTag__letterSpacing);
  color: rgba(255, 255, 255, 0.5);
}

.impulse-hero-video-player__chapters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  grid-gap: 0;
  gap: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.25);
}

.impulse-hero-video-player__chapter {
  text-align: left;
  padding: 14px 16px;
  background: transparent;
  border: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.04);
  cursor: pointer;
  transition: background 0.18s ease;
  color: inherit;
}

.impulse-hero-video-player__chapter:last-child {
  border-right: 0;
}

.impulse-hero-video-player__chapter:hover {
  background: rgba(255, 255, 255, 0.04);
}

.impulse-hero-video-player__chapter--current {
  background: var(--impulse--color--accent--soft);
}

.impulse-hero-video-player__chapter-time {
  display: block;
  font: var(--impulse--monoMeta__fontWeight) var(--impulse--monoMeta__fontSize) / 1
    var(--impulse--mono__font);
  letter-spacing: var(--impulse--monoMeta__letterSpacing);
  color: var(--impulse--color--accent--1);
  margin-bottom: 4px;
}

.impulse-hero-video-player__chapter-label {
  display: block;
  font: 500 14px var(--impulse--body__font, sans-serif);
  color: rgba(255, 255, 255, 0.86);
}

.logo-company-name {
  margin-block: 0;
}

/* Offsets margin on ul element inside default image grid */

.hs-image__grid__list {
  margin-block: 0;
}

/* Logo responsive styling */

.widget-type-logo img {
  height: auto;
  max-width: 100%;
}

/* ───────── Service detail page (dynamic Custom Object pages) ─────────
   Hand-authored, not module-scoped. Selectors target raw HubL output.
   Mirrors the design tokens already defined elsewhere via --impulse--* vars.
   ──────────────────────────────────────────────────────────────────── */

:root {
  --ic-pad: clamp(20px, 4vw, 64px);
  --ic-max: 1280px;
  --ic-radius: var(--impulse--layout--radius--lg, 14px);
  --ic-accent: var(--impulse--color--accent--1);
  --ic-accent-grad: var(--impulse--color--accent--gradient);
  --ic-font-display: var(--impulse--display1__font, Georgia, serif);
  --ic-font-mono: var(--impulse--mono__font, ui-monospace, monospace);
  --ic-font-sans: var(--impulse--body__font, system-ui, sans-serif);
}

[data-section-theme='dark'],
[data-section-theme='dark-2'] {
  --ic-bg:        var(--impulse--section--darkSection--1__backgroundColor);
  --ic-bg-2:      var(--impulse--section--darkSection--2__backgroundColor);
  --ic-bg-3:      rgba(255, 255, 255, 0.06);
  --ic-fg:        var(--impulse--section--darkSection--1__textColor);
  --ic-fg-muted:  rgba(255, 255, 255, 0.72);
  --ic-fg-dim:    rgba(255, 255, 255, 0.45);
  --ic-line:      rgba(255, 255, 255, 0.10);
  --ic-line-2:    rgba(255, 255, 255, 0.20);
}

[data-section-theme='warm'],
[data-section-theme='warm-2'] {
  --ic-bg:        var(--impulse--section--lightSection--1__backgroundColor);
  --ic-bg-2:      var(--impulse--section--lightSection--2__backgroundColor);
  --ic-bg-3:      rgba(14, 14, 29, 0.04);
  --ic-fg:        var(--impulse--section--lightSection--1__textColor);
  --ic-fg-muted:  rgba(14, 14, 29, 0.72);
  --ic-fg-dim:    rgba(14, 14, 29, 0.45);
  --ic-line:      rgba(14, 14, 29, 0.10);
  --ic-line-2:    rgba(14, 14, 29, 0.20);
}

/* ── Shared utilities used in the service template ── */

.kicker {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
  display: inline-flex;
  gap: 10px;
  align-items: center;
}

.kicker::before {
  content: "";
  width: 24px;
  height: 1px;
  background: var(--ic-accent);
}

.h-display {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.02;
  letter-spacing: -0.03em;
  margin: 0;
  text-wrap: pretty;
}

.h-display em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding-right: 0.12em;
  padding-bottom: 0.18em;
  margin-right: -0.06em;
}

.lede {
  font-size: clamp(17px, 1.4vw, 20px);
  line-height: 1.55;
  color: var(--ic-fg-muted);
  max-width: 62ch;
  margin: 18px 0 0;
}

.ic-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ic-accent);
}

.ic-eyebrow__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ic-accent);
}

.ic-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: 100px;
  font: 500 14px var(--ic-font-sans);
  letter-spacing: -0.005em;
  cursor: pointer;
  border: 1px solid transparent;
  text-decoration: none;
  transition: transform .18s, background .2s, border-color .2s;
}

.ic-btn--primary { background: var(--ic-accent); color: #fff; }

.ic-btn--primary:hover { transform: translateY(-1px); }

.ic-btn--ghost { color: var(--ic-fg); border-color: var(--ic-line-2); }

.ic-btn--ghost:hover { border-color: var(--ic-accent); }

.ic-btn--lg { padding: 16px 26px; font-size: 15px; }

/* Override the global a:hover (underline + accent color) — buttons keep their
   own color/no-underline state at every interaction. */

a.ic-btn,
a.ic-btn:hover,
a.ic-btn:focus,
a.ic-btn:focus-visible {
  text-decoration: none;
}

a.ic-btn--primary,
a.ic-btn--primary:hover,
a.ic-btn--primary:focus,
a.ic-btn--primary:focus-visible {
  color: #fff;
}

a.ic-btn--ghost,
a.ic-btn--ghost:hover,
a.ic-btn--ghost:focus,
a.ic-btn--ghost:focus-visible {
  color: var(--ic-fg);
}

[data-section-theme='dark'] a.ic-btn--ghost,
[data-section-theme='dark-2'] a.ic-btn--ghost,
[data-section-theme='dark'] a.ic-btn--ghost:hover,
[data-section-theme='dark-2'] a.ic-btn--ghost:hover,
[data-section-theme='dark'] a.ic-btn--ghost:focus-visible,
[data-section-theme='dark-2'] a.ic-btn--ghost:focus-visible {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.30);
}

[data-section-theme='dark'] a.ic-btn--ghost:hover,
[data-section-theme='dark-2'] a.ic-btn--ghost:hover {
  border-color: #fff;
}

/* ── Hero ── */

.svc-breadcrumb {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ic-fg-dim);
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.svc-breadcrumb a { color: var(--ic-fg-dim); cursor: pointer; text-decoration: none; }

.svc-breadcrumb a:hover { color: var(--ic-accent); }

.svc-breadcrumb .sep { color: var(--ic-line-2); }

.svc-breadcrumb .here { color: var(--ic-fg); }

.svc-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--ic-bg);
  padding: clamp(96px, 12vw, 168px) var(--ic-pad) clamp(56px, 7vw, 96px);
  border-bottom: 1px solid var(--ic-line);
}

.svc-hero__inner {
  position: relative;
  z-index: 2;
  max-width: var(--ic-max);
  margin: 0 auto;
  display: grid;
  grid-gap: clamp(40px, 5vw, 72px);
  gap: clamp(40px, 5vw, 72px);
}

.svc-hero__stage { display: grid; grid-gap: 24px; gap: 24px; }

.svc-hero__h1 {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(48px, 6.5vw, 96px);
  line-height: 1.0;
  letter-spacing: -0.035em;
  margin: 0;
  color: var(--ic-fg);
  text-wrap: pretty;
  max-width: 14ch;
}

.svc-hero__display {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(22px, 2.4vw, 32px);
  line-height: 1.2;
  letter-spacing: -0.01em;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin: 0;
  max-width: 24ch;
  padding-bottom: 0.18em;
}

.svc-hero__display em { font-style: italic; }

.svc-hero__foot {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: clamp(24px, 4vw, 48px);
  flex-wrap: wrap;
  padding-top: clamp(24px, 3vw, 36px);
  border-top: 1px solid var(--ic-line);
}

.svc-hero__meta {
  display: flex;
  gap: clamp(24px, 4vw, 56px);
  flex-wrap: wrap;
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
}

.svc-hero__meta strong {
  display: block;
  color: var(--ic-fg);
  font-family: var(--ic-font-display);
  font-style: italic;
  font-size: clamp(28px, 3vw, 40px);
  letter-spacing: -0.01em;
  font-weight: 400;
  margin-bottom: 4px;
  text-transform: none;
}

.svc-hero__meta > div { min-width: 100px; }

@media (max-width: 720px) {
  .svc-hero__foot { flex-direction: column; align-items: stretch; }
  .svc-hero__cta .ic-btn { width: 100%; }
}

/* ── Overview ── */

.svc-overview {
  background: var(--ic-bg);
  color: var(--ic-fg);
  border-bottom: 1px solid var(--ic-line);
}

.svc-overview > * + * { margin-top: 0; }

.svc-overview {
  display: grid;
  grid-template-columns: 80px 1fr;
  grid-gap: clamp(20px, 3vw, 48px);
  gap: clamp(20px, 3vw, 48px);
  /* Vertical padding stays the same. Horizontal padding scales up on wide
     viewports so the inner content lines up with the --ic-max ruler used
     by `.svc-hero__inner`, `.svc-faq > *`, and `.svc-related > *`. The
     background still fills the viewport because we never cap the section's
     own width. */
  padding-block: clamp(56px, 7vw, 96px);
  padding-inline: max(var(--ic-pad), calc((100% - var(--ic-max)) / 2));
}

@media (max-width: 880px) {
  .svc-overview { grid-template-columns: 1fr; gap: 24px; }
}

.svc-overview__rail {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  align-self: start;
  justify-self: end;
  white-space: nowrap;
}

@media (max-width: 880px) {
  .svc-overview__rail { writing-mode: horizontal-tb; transform: none; justify-self: start; }
}

.svc-overview__body { max-width: 720px; }

.svc-overview__lede {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.35;
  letter-spacing: -0.015em;
  color: var(--ic-fg);
  margin: 18px 0 32px;
  text-wrap: pretty;
}

.svc-overview__cta {
  display: flex;
  gap: 24px;
  align-items: center;
  flex-wrap: wrap;
}

.svc-overview__jump {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
  text-decoration: none;
  border-bottom: 1px solid var(--ic-line);
  padding-bottom: 4px;
  cursor: pointer;
  transition: color .2s, border-color .2s;
}

.svc-overview__jump:hover { color: var(--ic-fg); border-color: var(--ic-fg); }

/* ── Layer placement ── */

.svc-place {
  background: var(--ic-bg);
  color: var(--ic-fg);
  display: grid;
  grid-template-columns: 80px 1fr;
  grid-gap: clamp(20px, 3vw, 48px);
  gap: clamp(20px, 3vw, 48px);
  padding-block: clamp(48px, 7vw, 96px);
  padding-inline: max(var(--ic-pad), calc((100% - var(--ic-max)) / 2));
}

@media (max-width: 880px) {
  .svc-place { grid-template-columns: 1fr; gap: 24px; }
}

.svc-place__rail {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  align-self: start;
  justify-self: end;
}

@media (max-width: 880px) {
  .svc-place__rail { writing-mode: horizontal-tb; transform: none; justify-self: start; }
}

.svc-place__head {
  display: grid;
  grid-gap: 14px;
  gap: 14px;
  margin-bottom: clamp(28px, 4vw, 48px);
  max-width: 720px;
}

.svc-place__stack {
  display: grid;
  grid-gap: 0;
  gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  overflow: hidden;
}

.svc-layer-row {
  display: grid;
  grid-template-columns: 96px 1fr 220px 24px;
  grid-gap: clamp(16px, 2.5vw, 32px);
  gap: clamp(16px, 2.5vw, 32px);
  padding: clamp(20px, 3vw, 36px);
  background: var(--ic-bg-2);
  border-top: 1px solid var(--ic-line);
  align-items: center;
  position: relative;
  transition: background .25s;
}

.svc-layer-row:first-child { border-top: 0; }

@media (max-width: 880px) {
  .svc-layer-row { grid-template-columns: 1fr; gap: 8px; padding: 20px; }
}

.svc-layer-row.is-here { background: var(--ic-bg-3); }

.svc-layer-row.is-here::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--ic-accent-grad);
}

.svc-layer-row__num {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ic-fg-dim);
}

.svc-layer-row.is-here .svc-layer-row__num { color: var(--ic-accent); }

.svc-layer-row__name {
  font-family: var(--ic-font-display);
  font-size: clamp(22px, 2.4vw, 32px);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.svc-layer-row__name em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.svc-layer-row__sub {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--ic-fg-dim);
  margin-top: 4px;
}

.svc-layer-row__role {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  color: var(--ic-fg-muted);
  line-height: 1.5;
  text-align: right;
}

@media (max-width: 880px) { .svc-layer-row__role { text-align: left; } }

.svc-layer-row.is-here .svc-layer-row__role { color: var(--ic-fg); }

.svc-layer-row__here-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--ic-font-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--ic-accent);
  border: 1px solid var(--ic-accent);
  padding: 3px 7px;
  border-radius: 3px;
  margin-bottom: 6px;
}

.svc-layer-row__here-tag::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ic-accent);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--ic-accent) 25%, transparent);
}

.svc-layer-row__arrow {
  font-family: var(--ic-font-mono);
  color: var(--ic-fg-dim);
  justify-self: end;
}

.svc-layer-row.is-here .svc-layer-row__arrow { color: var(--ic-accent); }

/* ── Body ── */

.svc-body {
  background: var(--ic-bg);
  color: var(--ic-fg);
  display: grid;
  grid-template-columns: 280px 1fr;
  grid-gap: clamp(28px, 4vw, 80px);
  gap: clamp(28px, 4vw, 80px);
  padding-block: clamp(48px, 7vw, 96px);
  padding-inline: max(var(--ic-pad), calc((100% - var(--ic-max)) / 2));
}

@media (max-width: 980px) { .svc-body { grid-template-columns: 1fr; } }

.svc-body__nav {
  position: sticky;
  top: 96px;
  align-self: start;
  border-left: 1px solid var(--ic-line);
  padding: 8px 0 8px 18px;
  display: grid;
  grid-gap: 4px;
  gap: 4px;
}

.svc-body__nav a {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ic-fg-dim);
  cursor: pointer;
  padding: 6px 0;
  text-decoration: none;
}

.svc-body__nav a:hover { color: var(--ic-fg); }

.svc-body__nav a.is-active { color: var(--ic-accent); }

.svc-body__nav-tag {
  font-family: var(--ic-font-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  color: var(--ic-fg-dim);
  margin-bottom: 8px;
}

.svc-block {
  padding: clamp(40px, 6vw, 80px) 0;
  border-top: 1px solid var(--ic-line);
}

.svc-block:first-child { border-top: 0; padding-top: 0; }

.svc-block__h {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(28px, 3.4vw, 44px);
  letter-spacing: -0.025em;
  line-height: 1.05;
  margin: 0 0 24px;
  max-width: 22ch;
  text-wrap: pretty;
}

.svc-block__h em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.svc-block__body p {
  font-size: 17px;
  line-height: 1.6;
  color: var(--ic-fg-muted);
  max-width: 64ch;
  margin: 0 0 18px;
}

.svc-block__body strong { color: var(--ic-fg); font-weight: 600; }

.svc-block__body em { color: var(--ic-fg); font-style: italic; }

/* ── Process ── */

.process { position: relative; }

.process__step {
  display: grid;
  grid-template-columns: 80px 1fr;
  grid-gap: 24px;
  gap: 24px;
  padding: 28px 0;
  border-bottom: 1px solid var(--ic-line);
}

.process__step:last-child { border-bottom: 0; }

.process__n {
  font-family: var(--ic-font-mono);
  font-size: 13px;
  color: var(--ic-accent);
}

.process__n strong {
  display: block;
  font-family: var(--ic-font-display);
  font-size: 32px;
  color: var(--ic-fg);
  letter-spacing: -0.02em;
  font-weight: 400;
  margin-top: 4px;
}

.process__t {
  font-family: var(--ic-font-display);
  font-size: clamp(22px, 2.5vw, 30px);
  letter-spacing: -0.02em;
  margin: 0 0 8px;
}

.process__d {
  color: var(--ic-fg-muted);
  font-size: 15px;
  line-height: 1.55;
  max-width: 64ch;
}

/* ── Outcomes ── */

.svc-outcomes {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 14px;
  gap: 14px;
  margin-top: 28px;
}

@media (max-width: 720px) { .svc-outcomes { grid-template-columns: 1fr; } }

.svc-outcome {
  padding: 20px;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: var(--ic-bg-2);
}

.svc-outcome__n {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ic-accent);
  margin-bottom: 8px;
}

.svc-outcome__t {
  font-family: var(--ic-font-display);
  font-size: 19px;
  letter-spacing: -0.01em;
  margin-bottom: 6px;
}

.svc-outcome__d {
  color: var(--ic-fg-muted);
  font-size: 14px;
  line-height: 1.5;
}

/* ── Video player ── */

.svc-video {
  margin: 28px 0 36px;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: linear-gradient(180deg, var(--ic-bg), var(--ic-bg-2));
  overflow: hidden;
  position: relative;
  isolation: isolate;
}

.svc-video__chrome {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--ic-line);
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--ic-fg-muted);
}

.svc-video__lights { display: flex; gap: 6px; }

.svc-video__lights i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--ic-line-2);
  display: block;
}

.svc-video__chrome-title { flex: 1; }

.svc-video__chrome-meta { color: var(--ic-fg-dim); }

.svc-video__stage {
  position: relative;
  aspect-ratio: 16 / 9;
  background:
    radial-gradient(70% 60% at 50% 50%, color-mix(in srgb, var(--ic-accent) 12%, transparent), transparent 70%),
    var(--ic-bg);
  display: grid;
  place-items: center;
  cursor: pointer;
  overflow: hidden;
}

.svc-video__play {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 14px 22px 14px 18px;
  background: rgba(10, 10, 15, 0.8);
  border: 1px solid color-mix(in srgb, var(--ic-accent) 50%, transparent);
  border-radius: 100px;
  color: #fff;
  cursor: pointer;
  font: 500 14px var(--ic-font-sans);
  backdrop-filter: blur(8px);
  transition: transform .2s, border-color .2s;
}

.svc-video__play:hover { transform: scale(1.03); border-color: var(--ic-accent); }

.svc-video__play-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--ic-accent-grad);
  display: grid;
  place-items: center;
  color: #fff;
}

.svc-video__play-icon svg { transform: translateX(1px); }

.svc-video__play-meta {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  color: var(--ic-fg-dim);
  margin-top: 3px;
  letter-spacing: 0.04em;
  display: block;
}

.svc-video__caption {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--ic-fg-muted);
  padding: 10px 16px;
  border-top: 1px solid var(--ic-line);
  background: var(--ic-bg-2);
  display: flex;
  gap: 10px;
  align-items: center;
}

.svc-video__caption-tag {
  font-family: var(--ic-font-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--ic-accent);
  border: 1px solid var(--ic-accent);
  padding: 2px 6px;
  border-radius: 3px;
}

/* ── FAQ (native <details>) ── */

.svc-faq {
  background: var(--ic-bg);
  color: var(--ic-fg);
  padding: clamp(48px, 7vw, 96px) var(--ic-pad);
  border-top: 1px solid var(--ic-line);
}

.svc-faq > * { max-width: var(--ic-max); margin-left: auto; margin-right: auto; }

.svc-faq__head {
  margin-bottom: clamp(28px, 4vw, 48px);
  display: grid;
  grid-template-columns: 1fr auto;
  grid-gap: 24px;
  gap: 24px;
  align-items: end;
}

@media (max-width: 720px) { .svc-faq__head { grid-template-columns: 1fr; } }

.faq__item {
  border-bottom: 1px solid var(--ic-line);
  padding: 20px 0;
}

.faq__q {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--ic-font-display);
  font-size: clamp(18px, 1.7vw, 22px);
  letter-spacing: -0.015em;
  cursor: pointer;
  gap: 24px;
  list-style: none;
}

.faq__q::-webkit-details-marker { display: none; }

.faq__q::after {
  content: "+";
  color: var(--ic-accent);
  font-family: var(--ic-font-mono);
  font-size: 22px;
  transition: transform .25s;
}

.faq__item[open] .faq__q::after { transform: rotate(45deg); }

.faq__a {
  padding-top: 12px;
  color: var(--ic-fg-muted);
  font-size: 15px;
  line-height: 1.6;
  max-width: 70ch;
}

/* Testimonials section. Cream cards in a vertical stack, up to three per
   service. Driven server-side by the site_services_to_testimonial
   association — the whole block is wrapped in a server-side conditional in
   service-detail.hubl.html, so empty-state collapse comes for free. */

.svc-testimonials {
  background: var(--ic-bg);
  color: var(--ic-fg);
  padding: clamp(48px, 7vw, 96px) var(--ic-pad);
  position: relative;
}

.svc-testimonials__rail {
  position: absolute;
  top: clamp(32px, 5vw, 64px);
  left: clamp(16px, 2.5vw, 32px);
  font-family: var(--ic-font-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  color: var(--ic-fg-dim);
}

.svc-testimonials__inner {
  max-width: var(--ic-max);
  margin: 0 auto;
}

.svc-testimonials__head {
  margin-bottom: clamp(32px, 4vw, 56px);
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 8px;
  gap: 8px;
  max-width: 720px;
}

.svc-testimonials__stack {
  display: grid;
  grid-template-columns: 1fr;
}

/* All testimonials render in source for SEO/AEO bots, but only one shows
   per page load. The inline rotator script in service-detail.hubl.html
   adds .is-visible to a random card after DOMContentLoaded. The
   :first-child fallback covers users with JS disabled. */

.svc-testimonials__stack > .svc-testimonial {
  display: none;
}

.svc-testimonials__stack > .svc-testimonial:first-child,
.svc-testimonials__stack > .svc-testimonial.is-visible {
  display: block;
}

.svc-testimonials__stack[data-rotator-ready] > .svc-testimonial {
  display: none;
}

.svc-testimonials__stack[data-rotator-ready] > .svc-testimonial.is-visible {
  display: block;
}

.svc-testimonial {
  background: color-mix(in srgb, var(--ic-fg) 4%, var(--ic-bg));
  border: 1px solid var(--ic-line);
  border-radius: 18px;
  padding: clamp(28px, 4vw, 48px);
}

.svc-testimonial__q {
  margin: 0;
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(20px, 2vw, 28px);
  line-height: 1.3;
  letter-spacing: -0.015em;
  color: var(--ic-fg);
  text-wrap: pretty;
}

/* Italics inside the quote get the gradient accent treatment, matching the
   ProofQuote module so a quote with an em-tagged phrase pops without needing
   any additional markup. */

.svc-testimonial__q em,
.svc-testimonial__q i {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  padding-right: 0.12em;
  margin-right: -0.06em;
}

/* The HubSpot testimonial bodies frequently lead with a short <h4> review
   title (e.g. "Top Notch LMS"). We render it as a small accent eyebrow above
   the quote rather than a full heading so it reads like a kicker. */

.svc-testimonial__q h4 {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ic-accent);
  margin: 0 0 16px;
  line-height: 1.4;
}

.svc-testimonial__q h4 span { font-weight: inherit; }

.svc-testimonial__q p {
  margin: 0 0 12px;
}

.svc-testimonial__q p:last-child {
  margin-bottom: 0;
}

.svc-testimonial__q span { font-weight: inherit; }

.svc-testimonial__q div {
  /* HubSpot wraps testimonials in <div> blocks per paragraph — flatten so
     we get our own margin rhythm rather than div-collapsed spacing. */
  display: block;
}

.svc-testimonial__attr {
  margin-top: 24px;
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ic-fg-muted);
  line-height: 1.6;
}

/* ── Related services ── */

.svc-related {
  background: var(--ic-bg);
  color: var(--ic-fg);
  padding: clamp(48px, 7vw, 96px) var(--ic-pad);
}

.svc-related > * { max-width: var(--ic-max); margin-left: auto; margin-right: auto; }

.sec--bordered { border-top: 1px solid var(--ic-line); }

.svc-related__head {
  margin-bottom: clamp(28px, 4vw, 48px);
  display: grid;
  grid-template-columns: 1fr auto;
  grid-gap: 24px;
  gap: 24px;
  align-items: end;
}

@media (max-width: 720px) { .svc-related__head { grid-template-columns: 1fr; } }

.svc-related__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 12px;
  gap: 12px;
}

@media (max-width: 980px) { .svc-related__grid { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 600px) { .svc-related__grid { grid-template-columns: 1fr; } }

.svc-related-card {
  display: grid;
  grid-template-rows: auto 1fr auto auto;
  grid-gap: 10px;
  gap: 10px;
  padding: 24px;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: var(--ic-bg-2);
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  transition: border-color .2s, background .2s, transform .2s;
}

.svc-related-card:hover,
.svc-related-card:focus,
.svc-related-card:focus-visible {
  border-color: var(--ic-accent);
  transform: translateY(-2px);
}

/* Override the global a:hover rule (underline + accent color) — we want only
   the card chrome to change on hover, not the text inside. */

a.svc-related-card,
a.svc-related-card:hover,
a.svc-related-card:focus,
a.svc-related-card:focus-visible {
  color: inherit;
  text-decoration: none;
}

.svc-related-card:hover .svc-related-card__name,
.svc-related-card:hover .svc-related-card__desc,
.svc-related-card:hover .svc-related-card__tag {
  color: inherit;
}

.svc-related-card:hover .svc-related-card__more { color: var(--ic-accent); }

.svc-related-card__tag {
  font-family: var(--ic-font-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--ic-fg-dim);
}

.svc-related-card__name {
  font-family: var(--ic-font-display);
  font-size: 22px;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--ic-fg);
}

.svc-related-card__desc {
  font-size: 13px;
  line-height: 1.55;
  color: var(--ic-fg-muted);
}

.svc-related-card__more {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--ic-accent);
  padding-top: 10px;
  border-top: 1px solid var(--ic-line);
}

/* ── Closing CTA ── */

.svc-cta {
  background: var(--ic-bg);
  color: var(--ic-fg);
  position: relative;
  padding: clamp(64px, 9vw, 120px) var(--ic-pad);
  border-top: 1px solid var(--ic-line);
  overflow: hidden;
}

.svc-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(50% 70% at 50% 50%, color-mix(in srgb, var(--ic-accent) 12%, transparent), transparent 70%);
  pointer-events: none;
  z-index: 0;
}

.svc-cta__inner {
  position: relative;
  z-index: 1;
  max-width: 920px;
  margin: 0 auto;
  text-align: center;
}

.svc-cta__tag {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--ic-accent);
  margin-bottom: 20px;
}

.svc-cta__h {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.04;
  letter-spacing: -0.03em;
  margin: 0 0 18px;
  text-wrap: pretty;
}

.svc-cta__h em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding-right: 0.12em;
  padding-bottom: 0.06em;
  margin-right: -0.06em;
}

.svc-cta__sub {
  font-size: 17px;
  line-height: 1.55;
  color: var(--ic-fg-muted);
  max-width: 60ch;
  margin: 0 auto 32px;
}

.svc-cta__actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.svc-cta__guarantee {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ic-font-mono);
  font-size: 12px;
  color: var(--ic-fg-muted);
}

.svc-cta__guarantee::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ic-accent);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--ic-accent) 25%, transparent);
}

/* ============================================================
   Services index page — /services
   Hero (with embedded AI concierge) · By-layer directory · CTA
   ============================================================ */

.svc-dir-hero,
.svc-dir-byl,
.svc-dir-cta {
  max-width: none;
  width: 100%;
}

.svc-dir-hero__inner,
.svc-dir-byl__inner,
.svc-dir-cta__inner {
  max-width: var(--ic-max);
  margin: 0 auto;
  padding-left: var(--ic-pad);
  padding-right: var(--ic-pad);
}

/* ===== Hero ===== */

.svc-dir-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--ic-bg);
  color: var(--ic-fg);
  border-bottom: 1px solid var(--ic-line);
}

.svc-dir-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 0;
  pointer-events: none;
}

/* Soft veil over the canvas — gives the topbar / hero copy enough contrast
   to remain legible against the particle animation. Two radial accents at
   top corners + a vertical fade so the menu area at the top is darker. */

.svc-dir-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(900px circle at 15% 8%, rgba(245, 151, 0, 0.08), transparent 60%),
    radial-gradient(800px circle at 85% 15%, rgba(235, 0, 79, 0.06), transparent 60%),
    linear-gradient(180deg, rgba(10, 10, 15, 0.55) 0%, rgba(10, 10, 15, 0.10) 30%, rgba(10, 10, 15, 0.10) 70%, rgba(10, 10, 15, 0.55) 100%);
}

.svc-dir-hero__inner {
  position: relative;
  z-index: 2;
  padding-top: clamp(72px, 8vw, 112px);
  padding-bottom: clamp(48px, 5vw, 72px);
  display: grid;
  grid-gap: clamp(28px, 3vw, 40px);
  gap: clamp(28px, 3vw, 40px);
}

.svc-dir-hero .svc-breadcrumb { margin: 0; }

.svc-dir-hero__cols {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, 1fr);
  grid-gap: clamp(32px, 4vw, 64px);
  gap: clamp(32px, 4vw, 64px);
  align-items: start;
}

@media (max-width: 1080px) {
  .svc-dir-hero__cols { grid-template-columns: 1fr; gap: 36px; }
}

.svc-dir-hero__stage { display: grid; grid-gap: 18px; gap: 18px; }

.svc-dir-hero__h1 {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(48px, 6vw, 88px);
  line-height: 0.98;
  letter-spacing: -0.035em;
  margin: 0;
  color: var(--ic-fg);
  max-width: 14ch;
}

.svc-dir-hero__h1 em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding-right: 0.12em;
  padding-bottom: 0.18em;
  margin-right: -0.06em;
}

.svc-dir-hero__sub {
  font-size: clamp(17px, 1.4vw, 20px);
  line-height: 1.55;
  color: var(--ic-fg-muted);
  margin: 0;
  max-width: 56ch;
}

.svc-dir-hero__meta {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
  display: grid;
  border-top: 1px solid var(--ic-line);
  max-width: 32ch;
}

.svc-dir-hero__meta li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 10px 0;
  border-bottom: 1px solid var(--ic-line);
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
}

.svc-dir-hero__meta .k {
  color: var(--ic-fg-dim);
  text-transform: uppercase;
}

.svc-dir-hero__meta .v { color: var(--ic-fg); }

.svc-dir-hero__concierge {
  display: grid;
  grid-gap: 12px;
  gap: 12px;
  align-content: start;
  position: relative;
}

.svc-dir-hero__concierge-rail {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
}

.svc-dir-hero__foot {
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  padding-top: clamp(16px, 2vw, 24px);
  border-top: 1px solid var(--ic-line);
}

.svc-dir-hero__foot-meta {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ic-fg-dim);
}

.svc-dir-hero__jump {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
  cursor: pointer;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  padding-bottom: 4px;
  transition: color .2s, border-color .2s;
}

.svc-dir-hero__jump:hover {
  color: var(--ic-fg);
  border-color: var(--ic-fg);
}

/* ===== AI Concierge panel ===== */

.svc-dir-ai__wrap { display: grid; grid-gap: 0; gap: 0; }

.svc-dir-ai__wrap.is-compact .svc-dir-ai__panel {
  padding: clamp(20px, 2vw, 28px);
}

.svc-dir-ai__wrap.is-compact .svc-dir-ai__results {
  margin-top: 20px;
}

.svc-dir-ai__panel {
  /* Dark glass blur — readable against the particle backdrop AND on warm
     pages alike. The high-opacity dark base + heavy backdrop blur is what
     makes the panel legible regardless of what's behind it. */
  background: rgba(8, 8, 14, 0.72);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--ic-radius);
  padding: clamp(20px, 2.5vw, 32px);
  position: relative;
  overflow: hidden;
  box-shadow: 0 24px 60px -20px rgba(0, 0, 0, 0.6);
}

.svc-dir-ai__panel::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--ic-accent-grad);
  opacity: 0.6;
}

.svc-dir-ai__panel-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 16px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--ic-line);
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
}

.svc-dir-ai__panel-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ic-fg);
}

.svc-dir-ai__panel-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ic-accent);
  box-shadow: 0 0 8px var(--ic-accent);
  animation: svcAIDot 2s ease-in-out infinite;
}

@keyframes svcAIDot {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}

.svc-dir-ai__panel-meta { color: var(--ic-fg-dim); }

.svc-dir-ai__label {
  display: block;
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
  margin-bottom: 10px;
}

.svc-dir-ai__prompt-row {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  padding: 14px 16px;
  transition: border-color .2s;
}

.svc-dir-ai__prompt-row:focus-within {
  border-color: var(--ic-accent);
}

.svc-dir-ai__caret {
  font-family: var(--ic-font-mono);
  font-size: 16px;
  color: var(--ic-accent);
  padding-top: 4px;
}

.svc-dir-ai__input {
  flex: 1;
  background: transparent;
  border: 0;
  outline: 0;
  color: var(--ic-fg);
  font-family: var(--ic-font-mono);
  font-size: clamp(14px, 1.05vw, 16px);
  line-height: 1.55;
  resize: vertical;
  min-height: 80px;
  width: 100%;
}

.svc-dir-ai__input::-moz-placeholder { color: var(--ic-fg-dim); }

.svc-dir-ai__input::placeholder { color: var(--ic-fg-dim); }

.svc-dir-ai__presets { margin-top: 18px; }

.svc-dir-ai__presets-label {
  display: block;
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
  margin-bottom: 10px;
}

.svc-dir-ai__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.svc-dir-ai__chip {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  line-height: 1.4;
  color: var(--ic-fg-muted);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--ic-line);
  border-radius: 999px;
  padding: 8px 14px;
  cursor: pointer;
  transition: background .2s, border-color .2s, color .2s;
  text-align: left;
}

.svc-dir-ai__chip:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--ic-fg-dim);
  color: var(--ic-fg);
}

.svc-dir-ai__controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--ic-line);
  gap: 16px;
  flex-wrap: wrap;
}

.svc-dir-ai__hint {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--ic-fg-dim);
}

.svc-dir-ai__status {
  margin-top: 24px;
  font-family: var(--ic-font-mono);
  font-size: 13px;
  color: var(--ic-fg-muted);
  display: flex;
  align-items: center;
  gap: 12px;
}

.svc-dir-ai__status[hidden] { display: none; }

.svc-dir-ai__status--err { color: var(--ic-accent); }

.svc-dir-ai__loader {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--ic-accent-grad);
  animation: svcAILoader 1.2s ease-in-out infinite;
}

@keyframes svcAILoader {
  0%, 100% { transform: scale(0.6); opacity: 0.4; }
  50% { transform: scale(1); opacity: 1; }
}

.svc-dir-ai__results { margin-top: 36px; }

.svc-dir-ai__results[hidden] { display: none; }

.svc-dir-ai__results-head {
  display: flex;
  gap: 12px;
  align-items: baseline;
  flex-wrap: wrap;
  margin-bottom: 20px;
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
}

.svc-dir-ai__results-tag { color: var(--ic-accent); }

.svc-dir-ai__results-why {
  text-transform: none;
  letter-spacing: 0;
  color: var(--ic-fg-muted);
}

.svc-dir-ai__results-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 14px;
  gap: 14px;
}

@media (max-width: 880px) {
  .svc-dir-ai__results-grid { grid-template-columns: 1fr; }
}

.svc-dir-ai__card {
  display: grid;
  grid-gap: 8px;
  gap: 8px;
  cursor: pointer;
  text-decoration: none;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  padding: 24px;
  position: relative;
  transition: background .25s, border-color .25s, transform .25s;
  color: inherit;
}

.svc-dir-ai__card:hover,
.svc-dir-ai__card:focus,
.svc-dir-ai__card:focus-visible {
  background: rgba(255, 255, 255, 0.06);
  border-color: var(--ic-fg-dim);
  transform: translateY(-2px);
}

/* Override global a:hover (underline + accent color) — only card chrome changes. */

a.svc-dir-ai__card,
a.svc-dir-ai__card:hover,
a.svc-dir-ai__card:focus,
a.svc-dir-ai__card:focus-visible {
  color: inherit;
  text-decoration: none;
}

.svc-dir-ai__card-rank {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 28px;
  line-height: 1;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding-bottom: 0.12em;
  margin-bottom: 4px;
}

.svc-dir-ai__card-tag {
  font-family: var(--ic-font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--ic-fg-dim);
}

.svc-dir-ai__card-name {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(20px, 1.6vw, 24px);
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ic-fg);
}

.svc-dir-ai__card-desc {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ic-fg-muted);
}

.svc-dir-ai__card-cta {
  margin-top: 8px;
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ic-accent);
}

/* ===== By-layer directory ===== */

.svc-dir-byl {
  position: relative;
  display: grid;
  grid-template-columns: 80px 1fr;
  max-width: var(--ic-max);
  margin: 0 auto;
  padding: clamp(72px, 9vw, 128px) var(--ic-pad);
  background: var(--ic-bg);
  color: var(--ic-fg);
}

@media (max-width: 880px) {
  .svc-dir-byl { grid-template-columns: 1fr; gap: 24px; }
}

.svc-dir-byl__rail {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  align-self: start;
  justify-self: end;
  white-space: nowrap;
}

@media (max-width: 880px) {
  .svc-dir-byl__rail {
    writing-mode: horizontal-tb;
    transform: none;
    justify-self: start;
  }
}

.svc-dir-byl__head {
  max-width: 720px;
  margin-bottom: clamp(40px, 5vw, 72px);
}

.svc-dir-byl__layers {
  display: grid;
  grid-gap: 0;
  gap: 0;
  border-top: 1px solid var(--ic-line);
}

.svc-dir-layer {
  display: grid;
  grid-template-columns: 320px 1fr;
  grid-gap: clamp(28px, 4vw, 64px);
  gap: clamp(28px, 4vw, 64px);
  padding: clamp(36px, 5vw, 64px) 0;
  border-bottom: 1px solid var(--ic-line);
}

/* Hide layer sections whose service list has no <li> children
   (HubL emits whitespace inside the <ul> even when no services match,
   so :empty isn't enough — use :not(:has(li)) instead). */

.svc-dir-layer:has(.svc-dir-layer__list:not(:has(li))) { display: none; }

@media (max-width: 980px) {
  .svc-dir-layer { grid-template-columns: 1fr; gap: 24px; }
}

.svc-dir-layer__head {
  display: grid;
  grid-gap: 8px;
  gap: 8px;
  align-content: start;
  /* Sticky: stays in view while user scrolls through this layer's services,
     then scrolls away with the section. The 96px offset clears any
     sticky topbar above. */
  position: sticky;
  top: 96px;
  align-self: start;
}

@media (max-width: 980px) {
  /* On stacked layouts, sticky doesn't help — header is on top of cards naturally. */
  .svc-dir-layer__head { position: static; top: auto; }
}

.svc-dir-layer__num {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--ic-accent);
}

.svc-dir-layer__name {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(32px, 3.5vw, 48px);
  line-height: 1.0;
  letter-spacing: -0.025em;
  margin: 0;
  color: var(--ic-fg);
}

.svc-dir-layer__name em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding-right: 0.1em;
  padding-bottom: 0.16em;
  margin-right: -0.05em;
}

.svc-dir-layer__sub {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ic-fg-dim);
  margin-top: 4px;
}

.svc-dir-layer__role {
  font-size: 14px;
  line-height: 1.55;
  color: var(--ic-fg-muted);
  margin: 12px 0 0;
  max-width: 36ch;
}

.svc-dir-layer__more {
  margin-top: 16px;
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ic-accent);
  cursor: pointer;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
  align-self: start;
  justify-self: start;
}

.svc-dir-layer__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  /* Single column — cards stack vertically. */
  grid-template-columns: 1fr;
  /* All rows the same height so cards line up regardless of description length. */
  grid-auto-rows: 1fr;
  grid-gap: 12px;
  gap: 12px;
}

.svc-dir-layer__list > li { display: flex; }

.svc-dir-card {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-gap: 10px 14px;
  gap: 10px 14px;
  padding: 22px 24px;
  background: var(--ic-bg-2);
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  transition: background .25s, border-color .25s, transform .25s;
  align-items: start;
  /* Fill the row's available height so all cards in a layer match. */
  width: 100%;
  height: 100%;
}

.svc-dir-card:hover,
.svc-dir-card:focus,
.svc-dir-card:focus-visible {
  background: var(--ic-bg-3);
  border-color: var(--ic-fg-dim);
  transform: translateY(-2px);
}

/* Override the global a:hover rule that adds underline + accent color.
   We want only the card chrome to change on hover, not its text. */

a.svc-dir-card,
a.svc-dir-card:hover,
a.svc-dir-card:focus,
a.svc-dir-card:focus-visible {
  color: inherit;
  text-decoration: none;
}

.svc-dir-card:hover .svc-dir-card__name,
.svc-dir-card:hover .svc-dir-card__desc {
  color: inherit;
}

.svc-dir-card:hover .svc-dir-card__arrow {
  color: var(--ic-accent);
}

.svc-dir-card__name {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ic-fg);
  grid-column: 1;
}

.svc-dir-card__desc {
  font-size: 13px;
  line-height: 1.5;
  color: var(--ic-fg-muted);
  grid-column: 1 / -1;
}

.svc-dir-card__arrow {
  font-family: var(--ic-font-mono);
  font-size: 16px;
  color: var(--ic-accent);
  grid-column: 2;
  grid-row: 1;
  transition: transform .25s;
}

.svc-dir-card:hover .svc-dir-card__arrow { transform: translateX(4px); }

/* ===== Closing CTA ===== */

.svc-dir-cta {
  background: var(--ic-bg);
  color: var(--ic-fg);
  border-top: 1px solid var(--ic-line);
}

.svc-dir-cta__inner {
  padding-top: clamp(64px, 8vw, 120px);
  padding-bottom: clamp(64px, 8vw, 120px);
  display: grid;
  grid-gap: 16px;
  gap: 16px;
  text-align: left;
}

.svc-dir-cta__sub {
  font-size: clamp(16px, 1.2vw, 19px);
  line-height: 1.55;
  color: var(--ic-fg-muted);
  margin: 0;
  max-width: 56ch;
}

.svc-dir-cta__row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 16px;
}

/* ===========================================================
   Pillar page — long-form content hub. Two-col + sticky rails.
   Reuses --ic-* design tokens declared in _service-detail.hubl.css
   (they live on :root so they're available globally even though
   service-detail is the only template that originally declared them).
   =========================================================== */

.impulse-pillar {
  background: var(--ic-bg, #FAFAF7);
  color: var(--ic-fg, #0E0E1D);
  position: relative;
}

.impulse-pillar__progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 100%;
  background: linear-gradient(90deg, #F59700, #EB004F);
  transform: scaleX(0);
  transform-origin: 0 50%;
  z-index: 50;
  pointer-events: none;
}

/* ── Hero (dark) ─────────────────────────────────────────── */

.impulse-pillar__hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--ic-bg);
  color: var(--ic-fg);
  border-bottom: 1px solid var(--ic-line);
}

/* Stage holds the particle canvas + a soft accent veil — same finisher
   treatment as HeroCanvas / svc-dir-hero. Sits behind .impulse-pillar__hero-inner
   via z-index layering (inner gets a positive z-index below). */

.impulse-pillar__hero-stage {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.impulse-pillar__hero-stage canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

.impulse-pillar__hero-veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(800px circle at 15% 10%, rgba(245, 151, 0, 0.10), transparent 60%),
    radial-gradient(700px circle at 85% 20%, rgba(235, 0, 79, 0.08), transparent 60%),
    radial-gradient(900px circle at 50% 110%, rgba(245, 151, 0, 0.06), transparent 60%);
}

.impulse-pillar__hero-inner {
  position: relative;
  z-index: 1;
  max-width: 1500px;
  margin: 0 auto;
  padding: clamp(96px, 12vw, 168px) var(--ic-pad) clamp(48px, 6vw, 80px);
  display: grid;
  grid-gap: 22px;
  gap: 22px;
}

.impulse-pillar__kicker {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ic-accent);
}

.impulse-pillar__h1 {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(48px, 7vw, 104px);
  line-height: 0.94;
  letter-spacing: -0.035em;
  margin: 0;
  max-width: 16ch;
  text-wrap: balance;
}

.impulse-pillar__h1 em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding-right: 0.12em;
  padding-bottom: 0.18em;
  margin-right: -0.06em;
}

.impulse-pillar__dek {
  font-size: clamp(17px, 1.4vw, 21px);
  line-height: 1.55;
  color: var(--ic-fg-muted);
  margin: 8px 0 0;
  max-width: 60ch;
}

.impulse-pillar__hero-cols {
  margin-top: clamp(24px, 3vw, 40px);
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  grid-gap: clamp(28px, 3vw, 56px);
  gap: clamp(28px, 3vw, 56px);
  align-items: end;
}

@media (max-width: 880px) {
  .impulse-pillar__hero-cols { grid-template-columns: 1fr; }
}

.impulse-pillar__hero-meta {
  display: grid;
  border-top: 1px solid var(--ic-line);
}

/* The inner rich_text widget wraps the row divs, so we have to reach
   deeper. Style every row div regardless of nesting depth. */

.impulse-pillar__hero-meta div {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid var(--ic-line);
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
}

.impulse-pillar__hero-meta .k { color: var(--ic-fg-dim); text-transform: uppercase; }

.impulse-pillar__hero-meta .v { color: var(--ic-fg); }

.impulse-pillar__hero-actions { display: grid; grid-gap: 12px; gap: 12px; }

.impulse-pillar__hero-primary { display: grid; grid-gap: 8px; gap: 8px; }

.impulse-pillar__hero-note {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--ic-fg-dim);
  max-width: 380px;
}

.impulse-pillar__hero-note-strong { color: var(--ic-fg); width: 100%; }

.impulse-pillar__hero-svc-link {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--ic-fg-dim);
  text-decoration: none;
}

a.impulse-pillar__hero-svc-link:hover { color: var(--ic-accent); text-decoration: none; }

/* ── Body grid: TOC | prose | meta rail ──────────────────── */

.impulse-pillar__body {
  background: var(--ic-bg);
  color: var(--ic-fg);
}

.impulse-pillar__body-inner {
  max-width: 1500px;
  margin-inline: auto;
  padding-block: clamp(56px, 7vw, 96px);
  padding-inline: var(--ic-pad);
  display: grid;
  grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
  grid-gap: clamp(32px, 4vw, 56px);
  gap: clamp(32px, 4vw, 56px);
  align-items: start;
}

@media (max-width: 880px) {
  .impulse-pillar__body-inner { grid-template-columns: 1fr; }
  .impulse-pillar__rail--toc { display: none; }
}

.impulse-pillar__rail {
  position: sticky;
  top: 96px;
  display: grid;
  grid-gap: 28px;
  gap: 28px;
  align-content: start;
}

.impulse-pillar__rail-rail {
  font-family: var(--ic-font-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ic-line);
}

/* ── Sticky TOC ──────────────────────────────────────────── */

.impulse-pillar__toc { display: grid; grid-gap: 16px; gap: 16px; }

.impulse-pillar__toc-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-gap: 2px;
  gap: 2px;
}

a.impulse-pillar__toc-list a,
.impulse-pillar__toc-list a {
  display: grid;
  grid-template-columns: 28px 1fr;
  grid-gap: 10px;
  gap: 10px;
  padding: 9px 0 9px 14px;
  color: var(--ic-fg-muted);
  font-size: 13.5px;
  line-height: 1.35;
  border-left: 2px solid transparent;
  margin-left: -16px;
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
  text-wrap: balance;
}

.impulse-pillar__toc-list li a {
  display: grid;
  grid-template-columns: 28px 1fr;
  grid-gap: 10px;
  gap: 10px;
  padding: 9px 0 9px 14px;
  color: var(--ic-fg-muted);
  font-size: 13.5px;
  line-height: 1.35;
  border-left: 2px solid transparent;
  margin-left: -16px;
  transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
  text-wrap: balance;
}

/* Element-prefixed to beat the global accent-orange `a:not(.x)` rule from
   _typography.hubl.css (same pattern as the mega menu / service pages). */

a.impulse-pillar__toc-list a,
a.impulse-pillar__toc-list a:hover,
a.impulse-pillar__toc-list a:focus,
a.impulse-pillar__toc-list a:focus-visible {
  text-decoration: none;
}

.impulse-pillar__toc-list a:hover { color: var(--ic-fg); }

.impulse-pillar__toc-list .is-active a {
  color: var(--ic-fg);
  border-left-color: var(--ic-accent);
  background: linear-gradient(90deg, rgba(245, 151, 0, 0.06), transparent);
}

.impulse-pillar__toc-n {
  font-family: var(--ic-font-mono);
  font-size: 10px;
  color: var(--ic-fg-dim);
  letter-spacing: 0.08em;
  padding-top: 2px;
}

.impulse-pillar__toc-list .is-active .impulse-pillar__toc-n { color: var(--ic-accent); }

.impulse-pillar__toc-t { text-wrap: balance; }

/* ── Prose column ────────────────────────────────────────── */

.impulse-pillar__prose {
  display: grid;
  grid-gap: clamp(40px, 5vw, 72px);
  gap: clamp(40px, 5vw, 72px);
  max-width: 760px;
}

.impulse-pillar__section {
  display: grid;
  grid-gap: 16px;
  gap: 16px;
  scroll-margin-top: 96px;
  margin-top: clamp(32px, 4vw, 56px);
}

.impulse-pillar__section:first-child { margin-top: 0; }

.impulse-pillar__section-head {
  display: flex;
  align-items: center;
  gap: 14px;
}

.impulse-pillar__section-n {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--ic-accent);
  text-transform: uppercase;
}

.impulse-pillar__section-kicker {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--ic-fg-dim);
  text-transform: uppercase;
  padding-left: 14px;
  border-left: 1px solid var(--ic-line);
}

.impulse-pillar__section-h {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(28px, 3vw, 44px);
  line-height: 1.06;
  letter-spacing: -0.028em;
  margin: 0;
  color: var(--ic-fg);
  text-wrap: balance;
}

.impulse-pillar__section-body { display: grid; grid-gap: 20px; gap: 20px; }

.impulse-pillar__p {
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--ic-fg);
  margin: 0;
  text-wrap: pretty;
}

.impulse-pillar__h3 {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.25;
  letter-spacing: -0.02em;
  margin: 8px 0 -4px;
  color: var(--ic-fg);
}

.impulse-pillar__pull {
  margin: 12px 0;
  padding: 22px 26px;
  border-left: 3px solid var(--ic-accent);
  background: var(--ic-bg-2, #fff);
  border-radius: 0 12px 12px 0;
}

.impulse-pillar__pull p {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(19px, 1.9vw, 24px);
  line-height: 1.35;
  letter-spacing: -0.015em;
  color: var(--ic-fg);
  margin: 0;
  text-wrap: balance;
}

/* Numbered list block — cream card with mono bullets */

.impulse-pillar__list {
  background: var(--ic-bg-2, #fff);
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  padding: 22px 26px;
  display: grid;
  grid-gap: 12px;
  gap: 12px;
}

.impulse-pillar__list-label {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ic-line);
}

.impulse-pillar__list ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-gap: 10px;
  gap: 10px;
}

.impulse-pillar__list li {
  display: grid;
  grid-template-columns: 30px 1fr;
  grid-gap: 12px;
  gap: 12px;
  align-items: baseline;
  font-size: 15px;
  line-height: 1.55;
  color: var(--ic-fg);
}

.impulse-pillar__list-bul {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--ic-accent);
}

/* BANT vs CLEAR table */

.impulse-pillar__table {
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--ic-bg-2, #fff);
}

.impulse-pillar__table-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--ic-bg-3, #F2F1EC);
  border-bottom: 1px solid var(--ic-line);
}

.impulse-pillar__table-head > div {
  padding: 12px 18px;
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ic-fg-muted);
}

.impulse-pillar__table-head > div + div { border-left: 1px solid var(--ic-line); }

.impulse-pillar__table-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid var(--ic-line);
}

.impulse-pillar__table-row:last-child { border-bottom: 0; }

.impulse-pillar__table-cell {
  padding: 14px 18px;
  display: grid;
  grid-template-columns: 20px 1fr;
  grid-gap: 10px;
  gap: 10px;
  align-items: baseline;
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--ic-fg-muted);
}

.impulse-pillar__table-cell + .impulse-pillar__table-cell { border-left: 1px solid var(--ic-line); }

.impulse-pillar__table-cell--new { color: var(--ic-fg); font-weight: 500; }

.impulse-pillar__table-caret {
  font-family: var(--ic-font-mono);
  font-size: 13px;
  color: var(--ic-fg-dim);
}

.impulse-pillar__table-cell--new .impulse-pillar__table-caret { color: var(--ic-accent); }

@media (max-width: 720px) {
  .impulse-pillar__table-head,
  .impulse-pillar__table-row { grid-template-columns: 1fr; }
  .impulse-pillar__table-head > div + div,
  .impulse-pillar__table-cell + .impulse-pillar__table-cell {
    border-left: 0;
    border-top: 1px solid var(--ic-line);
  }
}

/* Two-col: For humans / For agents */

.impulse-pillar__twocol {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 14px;
  gap: 14px;
}

@media (max-width: 720px) { .impulse-pillar__twocol { grid-template-columns: 1fr; } }

.impulse-pillar__twocol-col {
  background: var(--ic-bg-2, #fff);
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  padding: 20px 22px;
  display: grid;
  grid-gap: 12px;
  gap: 12px;
}

/* The right-hand column flips to dark to visually separate "for agents". */

.impulse-pillar__twocol-col:nth-child(2) {
  background: #0A0A0F;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.10);
}

.impulse-pillar__twocol-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ic-line);
}

.impulse-pillar__twocol-col:nth-child(2) .impulse-pillar__twocol-label {
  color: rgba(255, 255, 255, 0.55);
  border-color: rgba(255, 255, 255, 0.10);
}

.impulse-pillar__twocol-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--ic-accent);
}

.impulse-pillar__twocol-col:nth-child(2) .impulse-pillar__twocol-dot { background: #3D7BFF; }

.impulse-pillar__twocol-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-gap: 8px;
  gap: 8px;
}

.impulse-pillar__twocol-col li {
  font-size: 14px;
  line-height: 1.55;
  color: var(--ic-fg);
  position: relative;
  padding-left: 16px;
}

.impulse-pillar__twocol-col:nth-child(2) li { color: #F4F4F2; }

.impulse-pillar__twocol-col li::before {
  content: "→";
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--ic-font-mono);
  font-size: 12px;
  color: var(--ic-accent);
}

.impulse-pillar__twocol-col:nth-child(2) li::before { color: #5BA8FF; }

/* CLEAR letters block */

.impulse-pillar__letters {
  background: #0A0A0F;
  color: #fff;
  border-radius: 12px;
  padding: 24px;
  display: grid;
}

.impulse-pillar__letters-row {
  display: grid;
  grid-template-columns: 88px 1fr;
  grid-gap: 24px;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}

.impulse-pillar__letters-row:first-child { padding-top: 4px; }

.impulse-pillar__letters-row:last-child { border-bottom: 0; padding-bottom: 4px; }

.impulse-pillar__letters-l {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 88px;
  line-height: 1;
  letter-spacing: -0.04em;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.impulse-pillar__letters-body {
  display: grid;
  grid-gap: 6px;
  gap: 6px;
  align-content: center;
}

.impulse-pillar__letters-name {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #fff;
}

.impulse-pillar__letters-desc {
  font-size: 14.5px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.72);
  max-width: 60ch;
}

@media (max-width: 600px) {
  .impulse-pillar__letters-row { grid-template-columns: 1fr; gap: 8px; }
  .impulse-pillar__letters-l { font-size: 64px; }
}

/* Buyer-journey stages table */

.impulse-pillar__stages {
  background: var(--ic-bg-2, #fff);
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  overflow: hidden;
}

.impulse-pillar__stages-head,
.impulse-pillar__stages-row {
  display: grid;
  grid-template-columns: 140px 90px 1.4fr 1.6fr;
  grid-gap: 16px;
  gap: 16px;
  align-items: start;
  padding: 14px 18px;
  border-bottom: 1px solid var(--ic-line);
}

.impulse-pillar__stages-head {
  background: var(--ic-bg-3, #F2F1EC);
  font-family: var(--ic-font-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ic-fg-muted);
}

.impulse-pillar__stages-row:last-child { border-bottom: 0; }

.impulse-pillar__stages-stage { display: flex; align-items: baseline; gap: 8px; }

.impulse-pillar__stages-n {
  font-family: var(--ic-font-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--ic-accent);
}

.impulse-pillar__stages-name {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 18px;
  letter-spacing: -0.015em;
  color: var(--ic-fg);
}

.impulse-pillar__stages-lens {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--ic-fg-muted);
  padding-top: 6px;
}

.impulse-pillar__stages-clear {
  font-family: var(--ic-font-mono);
  font-size: 11.5px;
  letter-spacing: 0.04em;
  color: var(--ic-fg);
  line-height: 1.5;
  padding-top: 4px;
}

.impulse-pillar__stages-note {
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--ic-fg-muted);
}

@media (max-width: 1024px) {
  .impulse-pillar__stages-head,
  .impulse-pillar__stages-row {
    grid-template-columns: 110px 1fr 1fr;
    gap: 12px;
  }
  /* Hide the CLEAR-focus column on medium screens — its data is already
     implied by the stage name and shown on hover/note. */
  .impulse-pillar__stages-head > *:nth-child(2),
  .impulse-pillar__stages-row > *:nth-child(2) { display: none; }
}

@media (max-width: 780px) {
  .impulse-pillar__stages-head { display: none; }
  .impulse-pillar__stages-row { grid-template-columns: 1fr; gap: 8px; }
  .impulse-pillar__stages-head > *:nth-child(2),
  .impulse-pillar__stages-row > *:nth-child(2) { display: block; }
}

/* Audit steps */

.impulse-pillar__steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  background: var(--ic-bg-2, #fff);
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  overflow: hidden;
}

.impulse-pillar__steps-row {
  display: grid;
  grid-template-columns: 80px 1fr;
  grid-gap: 18px;
  gap: 18px;
  align-items: start;
  padding: 18px 22px;
  border-bottom: 1px solid var(--ic-line);
}

.impulse-pillar__steps-row:last-child { border-bottom: 0; }

.impulse-pillar__steps-n {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--ic-fg-dim);
  padding-top: 6px;
  border-right: 1px solid var(--ic-line);
}

.impulse-pillar__steps-body { display: grid; grid-gap: 4px; gap: 4px; }

.impulse-pillar__steps-t {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: 19px;
  letter-spacing: -0.015em;
  color: var(--ic-fg);
}

.impulse-pillar__steps-d {
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--ic-fg-muted);
}

/* Inline callouts (service / field-work). Three accents: orange (default),
   magenta, gradient. */

.impulse-pillar__callout {
  position: relative;
  background: var(--ic-bg-2, #fff);
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  padding: 22px 26px;
  display: grid;
  grid-gap: 10px;
  gap: 10px;
  margin: 8px 0;
  overflow: hidden;
}

.impulse-pillar__callout::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--ic-accent);
}

.impulse-pillar__callout--magenta::before { background: #EB004F; }

.impulse-pillar__callout--gradient::before {
  background: var(--ic-accent-grad);
  width: 4px;
}

.impulse-pillar__callout-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ic-fg);
}

.impulse-pillar__callout-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--ic-accent);
  animation: impulse-pillar-pulse 1.6s ease-in-out infinite;
}

.impulse-pillar__callout--magenta .impulse-pillar__callout-dot { background: #EB004F; }

@keyframes impulse-pillar-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

.impulse-pillar__callout-h {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: var(--ic-fg);
  text-wrap: balance;
}

.impulse-pillar__callout-body {
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ic-fg-muted);
  margin: 0;
}

a.impulse-pillar__callout-cta,
a.impulse-pillar__callout-cta:hover,
a.impulse-pillar__callout-cta:focus,
a.impulse-pillar__callout-cta:focus-visible {
  margin-top: 6px;
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ic-accent);
  text-decoration: none;
  align-self: start;
}

/* ── Meta rail (services + audit CTA) ────────────────────── */

.impulse-pillar__rail-svc { display: grid; grid-gap: 12px; gap: 12px; }

.impulse-pillar__rail-svc-list { display: grid; grid-gap: 10px; gap: 10px; }

.impulse-pillar__svc-card {
  display: grid;
  grid-gap: 8px;
  gap: 8px;
  padding: 16px;
  background: var(--ic-bg-2, #fff);
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  transition: transform 0.25s ease, border-color 0.25s ease;
}

a.impulse-pillar__svc-card,
a.impulse-pillar__svc-card:hover,
a.impulse-pillar__svc-card:focus,
a.impulse-pillar__svc-card:focus-visible {
  color: inherit;
  text-decoration: none;
}

.impulse-pillar__svc-card:hover {
  transform: translateY(-2px);
  border-color: var(--ic-accent);
}

.impulse-pillar__svc-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--ic-font-mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.impulse-pillar__svc-card-layer { color: var(--ic-accent); }

.impulse-pillar__svc-card-layer-name { color: var(--ic-fg-dim); }

.impulse-pillar__svc-card-name {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: 19px;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ic-fg);
}

.impulse-pillar__svc-card-desc {
  font-size: 13px;
  line-height: 1.5;
  color: var(--ic-fg-muted);
}

.impulse-pillar__svc-card-cta {
  font-family: var(--ic-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ic-accent);
  padding-top: 6px;
  border-top: 1px solid var(--ic-line);
  margin-top: 4px;
}

.impulse-pillar__rail-audit {
  background: #0A0A0F;
  color: #fff;
  border-radius: 12px;
  padding: 20px;
  display: grid;
  grid-gap: 12px;
  gap: 12px;
  position: relative;
  overflow: hidden;
}

.impulse-pillar__rail-audit::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 80% at 0% 0%, rgba(245, 151, 0, 0.25), transparent 60%),
    radial-gradient(60% 80% at 100% 100%, rgba(235, 0, 79, 0.20), transparent 60%);
  pointer-events: none;
}

.impulse-pillar__rail-audit > * { position: relative; z-index: 1; }

.impulse-pillar__rail-audit .impulse-pillar__rail-rail {
  color: rgba(255, 255, 255, 0.55);
  border-color: rgba(255, 255, 255, 0.10);
}

.impulse-pillar__rail-audit-h {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-style: italic;
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.impulse-pillar__rail-audit-d {
  font-size: 13.5px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
  margin: 0;
}

.impulse-pillar__rail-note {
  font-family: var(--ic-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.72);
  margin-top: -4px;
}

.impulse-pillar__rail-note strong {
  color: #fff;
  font-weight: 500;
  display: block;
  margin-top: 2px;
}

/* ── Final CTA (dark) ────────────────────────────────────── */

.impulse-pillar__cta {
  background: var(--ic-bg, #07070C);
  color: #fff;
  position: relative;
  overflow: hidden;
}

.impulse-pillar__cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(40% 60% at 15% 20%, rgba(245, 151, 0, 0.18), transparent 60%),
    radial-gradient(40% 60% at 85% 80%, rgba(235, 0, 79, 0.16), transparent 60%);
  pointer-events: none;
}

.impulse-pillar__cta-inner {
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
  padding: clamp(72px, 9vw, 132px) var(--ic-pad);
  display: grid;
  grid-gap: 18px;
  gap: 18px;
}

.impulse-pillar__cta-rail {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ic-accent);
}

.impulse-pillar__cta-h {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.04;
  letter-spacing: -0.03em;
  margin: 0;
  max-width: 22ch;
  text-wrap: balance;
}

.impulse-pillar__cta-h em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.impulse-pillar__cta-dek {
  font-size: clamp(16px, 1.3vw, 19px);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.72);
  margin: 0;
  max-width: 60ch;
}

/* Pricing tiers */

.impulse-pillar__tiers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 16px;
  gap: 16px;
  margin-top: 28px;
}

@media (max-width: 820px) { .impulse-pillar__tiers { grid-template-columns: 1fr; } }

.impulse-pillar__tier {
  position: relative;
  background: #0F0F18;
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 14px;
  padding: 28px;
  display: grid;
  grid-gap: 14px;
  gap: 14px;
  transition: border-color 0.25s ease, transform 0.25s ease;
}

.impulse-pillar__tier:hover {
  border-color: rgba(245, 151, 0, 0.4);
  transform: translateY(-2px);
}

.impulse-pillar__tier--feature {
  background: linear-gradient(160deg, #0F0F18 0%, #1A0E15 100%);
  border-color: rgba(235, 0, 79, 0.35);
}

.impulse-pillar__tier-badge {
  position: absolute;
  top: -10px;
  right: 18px;
  font-family: var(--ic-font-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #fff;
  background: var(--ic-accent-grad);
  padding: 5px 10px;
  border-radius: 999px;
}

.impulse-pillar__tier-head { display: grid; grid-gap: 6px; gap: 6px; }

.impulse-pillar__tier-tag {
  font-family: var(--ic-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}

.impulse-pillar__tier-name {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(24px, 2.6vw, 32px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: #fff;
}

.impulse-pillar__tier-price {
  display: flex;
  align-items: baseline;
  gap: 4px;
  padding: 14px 0 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}

.impulse-pillar__tier-price-cur {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 24px;
  color: rgba(255, 255, 255, 0.72);
}

.impulse-pillar__tier-price-amt {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(48px, 5vw, 64px);
  line-height: 1;
  letter-spacing: -0.035em;
  color: #fff;
}

.impulse-pillar__tier--feature .impulse-pillar__tier-price-amt {
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.impulse-pillar__tier-price-unit {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.55);
  margin-left: 8px;
  text-transform: uppercase;
}

.impulse-pillar__tier-sub {
  font-size: 14.5px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
}

.impulse-pillar__tier-sub strong {
  color: #fff;
  font-weight: 500;
}

/* The tier-list wrapper is a <div> populated by a rich_text widget that
   emits a plain <ul><li>...</li></ul>. Style the nested <ul>/<li> with no
   markup assumptions — checkmarks render via ::before so editors can edit
   the list directly in the rich-text editor. */

.impulse-pillar__tier-list ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.impulse-pillar__tier-list li {
  position: relative;
  padding-left: 22px;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.92);
}

.impulse-pillar__tier-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  font-family: var(--ic-font-mono);
  font-size: 12px;
  color: var(--ic-accent);
  line-height: 1.5;
}

.impulse-pillar__tier--feature .impulse-pillar__tier-list li::before { color: #EB004F; }

.impulse-pillar__tier-list strong {
  color: #fff;
  font-weight: 500;
}

.impulse-pillar__tier-cta {
  margin-top: 4px;
  width: 100%;
  justify-content: center;
}

/* Free 10-page sample strip */

.impulse-pillar__free {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  grid-gap: 18px;
  gap: 18px;
  align-items: center;
  margin-top: 20px;
  padding: 20px 24px;
  background: rgba(245, 151, 0, 0.06);
  border: 1px dashed rgba(245, 151, 0, 0.4);
  border-radius: 12px;
}

@media (max-width: 720px) {
  .impulse-pillar__free { grid-template-columns: 1fr; }
}

.impulse-pillar__free-pulse {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: var(--ic-accent);
  box-shadow: 0 0 0 6px rgba(245, 151, 0, 0.18);
  animation: impulse-pillar-pulse 1.6s ease-in-out infinite;
}

.impulse-pillar__free-body { display: grid; grid-gap: 4px; gap: 4px; }

.impulse-pillar__free-h {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: #fff;
}

.impulse-pillar__free-d {
  font-size: 13.5px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
}

.impulse-pillar__cta-secondary {
  display: grid;
  grid-gap: 10px;
  gap: 10px;
  justify-items: start;
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.10);
}

a.impulse-pillar__cta-link,
a.impulse-pillar__cta-link:hover,
a.impulse-pillar__cta-link:focus,
a.impulse-pillar__cta-link:focus-visible {
  font-family: var(--ic-font-mono);
  font-size: 13px;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.72);
  text-decoration: none;
}

.impulse-pillar__cta-link:hover { color: var(--ic-accent); }

/* ============================================================
   Platform layer pages — Surface · Voice · Kernel · Agents
   Consumed by templates/platform-{surface,voice,kernel,agents}.hubl.html.
   Reuses tokens + .kicker / .h-display / .lede / .ic-eyebrow / .ic-btn /
   .faq__item / .sec--bordered from _service-detail.hubl.css.
   ============================================================ */

/* ── Section wrappers (platform-page specific) ──
   Tighter spacing than the original design spec. Full-bleed backgrounds via
   pseudo-element so .sec--bg / .sec--bordered span the viewport edges even
   when the section's box is constrained to max-width. */

.impulse-platform .sec {
  max-width: var(--ic-max);
  margin: 0 auto;
  padding: clamp(40px, 5vw, 72px) var(--ic-pad);
  position: relative;
  isolation: isolate;
  color: var(--ic-fg);
}

/* Full-bleed BASE bg matching the section's data-section-theme.
   Every .sec carries its own bg so dark sections actually render dark even
   when sitting on a warm body. Use ::before so the bg extends past the
   max-width gutter; the section's own box stays constrained to --ic-max. */

.impulse-platform .sec::before {
  content: "";
  position: absolute;
  inset: 0;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--ic-bg);
  z-index: -1;
}

.impulse-platform .sec--tight {
  padding: clamp(32px, 4vw, 56px) var(--ic-pad);
}

/* Elevated tone for visual rhythm. Overrides the base bg of .sec::before. */

.impulse-platform .sec--bg::before {
  background: var(--ic-bg-2);
  border-top: 1px solid var(--ic-line);
  border-bottom: 1px solid var(--ic-line);
}

.impulse-platform .sec--bordered::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--ic-line);
  z-index: -1;
}

/* ── Page hero (2-col with note) ── */

.impulse-platform .page-hero {
  max-width: var(--ic-max);
  margin: 0 auto;
  padding: clamp(80px, 10vw, 140px) var(--ic-pad) clamp(40px, 5vw, 72px);
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  grid-gap: clamp(32px, 5vw, 64px);
  gap: clamp(32px, 5vw, 64px);
  align-items: end;
}

@media (max-width: 980px) {
  .impulse-platform .page-hero { grid-template-columns: 1fr; }
}

.impulse-platform .page-hero__title {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(44px, 6.5vw, 88px);
  line-height: 0.96;
  letter-spacing: -0.035em;
  margin: 0;
}

.impulse-platform .page-hero__title em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.impulse-platform .page-hero__sub {
  font-size: clamp(17px, 1.3vw, 19px);
  line-height: 1.55;
  color: var(--ic-fg-muted);
  max-width: 56ch;
  margin: 0;
}

.impulse-platform .page-hero__ctas {
  margin-top: 28px;
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.impulse-platform .agents-hero-note {
  margin-top: 16px;
  font-family: var(--ic-font-mono);
  font-size: 11.5px;
  letter-spacing: 0.06em;
  color: var(--ic-fg-dim);
}

/* ── KPI strip ── */

.impulse-platform .kpi-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 0;
  gap: 0;
  border-top: 1px solid var(--ic-line);
  border-bottom: 1px solid var(--ic-line);
  background: var(--ic-bg-2);
}

@media (max-width: 880px) {
  .impulse-platform .kpi-strip { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 540px) {
  .impulse-platform .kpi-strip { grid-template-columns: 1fr; }
}

.impulse-platform .kpi {
  padding: 32px clamp(20px, 3vw, 36px);
  border-left: 1px solid var(--ic-line);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.impulse-platform .kpi:first-child { border-left: 0; }

@media (max-width: 880px) {
  .impulse-platform .kpi:nth-child(odd) { border-left: 0; }
}

.impulse-platform .kpi__n {
  font-family: var(--ic-font-display);
  font-size: clamp(32px, 4vw, 44px);
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--ic-fg);
}

.impulse-platform .kpi__n em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.impulse-platform .kpi__l {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ic-fg-dim);
  line-height: 1.5;
}

/* ── Three audiences (Surface) ── */

.impulse-platform .surface-audiences {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 16px;
  gap: 16px;
}

@media (max-width: 880px) {
  .impulse-platform .surface-audiences { grid-template-columns: 1fr; }
}

.impulse-platform .surface-audience {
  padding: 28px;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: var(--ic-bg);
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: border-color 0.16s ease, transform 0.16s ease;
}

.impulse-platform .surface-audience:hover {
  border-color: var(--ic-accent);
  transform: translateY(-2px);
}

.impulse-platform .surface-audience__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.impulse-platform .surface-audience__n {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ic-fg-dim);
}

.impulse-platform .surface-audience__when {
  font-family: var(--ic-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.12em;
  color: var(--ic-accent);
}

.impulse-platform .surface-audience__who {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-size: clamp(28px, 3vw, 36px);
  letter-spacing: -0.02em;
  color: var(--ic-fg);
  margin-top: 8px;
}

.impulse-platform .surface-audience__d {
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--ic-fg-muted);
}

.impulse-platform .surface-audience__mode {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--ic-line);
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.02em;
  color: var(--ic-fg);
  line-height: 1.5;
}

/* ── Surface types — numbered list ── */

.impulse-platform .surface-types {
  list-style: none;
  padding: 0;
  margin: 0;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: var(--ic-bg-2);
  overflow: hidden;
}

.impulse-platform .surface-type {
  display: grid;
  grid-template-columns: 90px 1fr;
  grid-gap: 24px;
  gap: 24px;
  padding: 24px 28px;
  border-top: 1px solid var(--ic-line);
  align-items: baseline;
  transition: background 0.16s ease;
}

.impulse-platform .surface-type:first-child { border-top: 0; }

.impulse-platform .surface-type:hover { background: var(--ic-bg-3); }

.impulse-platform .surface-type__n {
  font-family: var(--ic-font-mono);
  font-size: 13px;
  color: var(--ic-accent);
  letter-spacing: 0.06em;
}

.impulse-platform .surface-type__h {
  font-family: var(--ic-font-display);
  font-size: clamp(20px, 2.2vw, 26px);
  letter-spacing: -0.01em;
  color: var(--ic-fg);
  margin-bottom: 6px;
}

.impulse-platform .surface-type__d {
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--ic-fg-muted);
  max-width: 64ch;
}

@media (max-width: 640px) {
  .impulse-platform .surface-type {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 18px 20px;
  }
}

/* ── Surface brochure + 8% rule ── */

.impulse-platform .surface-brochure {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  grid-gap: 60px;
  gap: 60px;
  align-items: center;
}

@media (max-width: 980px) {
  .impulse-platform .surface-brochure {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

.impulse-platform .surface-eightpct {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-gap: 28px;
  gap: 28px;
  padding: 36px;
  border: 1px solid var(--ic-accent);
  border-radius: var(--ic-radius);
  background: linear-gradient(135deg, var(--ic-bg) 0%, var(--ic-accent-soft) 100%);
  align-items: center;
}

.impulse-platform .surface-eightpct__n {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-size: clamp(72px, 10vw, 110px);
  letter-spacing: -0.04em;
  line-height: 1;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.impulse-platform .surface-eightpct__h {
  font-family: var(--ic-font-display);
  font-size: clamp(18px, 1.9vw, 22px);
  letter-spacing: -0.01em;
  color: var(--ic-fg);
  margin-bottom: 10px;
  line-height: 1.3;
}

.impulse-platform .surface-eightpct__d {
  font-size: 14px;
  line-height: 1.55;
  color: var(--ic-fg-muted);
}

.impulse-platform .surface-eightpct__link {
  display: inline-block;
  margin-top: 14px;
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ic-accent);
}

.impulse-platform .surface-eightpct__link:hover { color: var(--ic-fg); }

@media (max-width: 540px) {
  .impulse-platform .surface-eightpct {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 26px;
  }
}

/* ── Surface "what good looks like" outcome rows ── */

.impulse-platform .surface-good {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 14px;
  gap: 14px;
}

@media (max-width: 720px) {
  .impulse-platform .surface-good { grid-template-columns: 1fr; }
}

.impulse-platform .surface-good__row {
  display: grid;
  grid-template-columns: 36px 1fr;
  grid-gap: 18px;
  gap: 18px;
  padding: 22px;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: var(--ic-bg);
  align-items: start;
}

.impulse-platform .surface-good__mark {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--ic-accent-soft);
  color: var(--ic-accent);
  font-weight: 600;
  font-size: 14px;
}

.impulse-platform .surface-good__h {
  font-family: var(--ic-font-display);
  font-size: clamp(17px, 1.7vw, 20px);
  letter-spacing: -0.01em;
  color: var(--ic-fg);
  margin-bottom: 4px;
  line-height: 1.3;
}

.impulse-platform .surface-good__d {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ic-fg-muted);
}

/* ── Surface maturity pill ── */

.impulse-platform .surface-maturity {
  display: grid;
  grid-template-columns: 220px 1fr;
  grid-gap: 48px;
  gap: 48px;
  align-items: center;
  padding: 40px;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: var(--ic-bg-2);
}

@media (max-width: 880px) {
  .impulse-platform .surface-maturity {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 28px;
  }
}

.impulse-platform .surface-maturity__pill {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: center;
}

.impulse-platform .surface-maturity__lvl {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border: 1px solid var(--ic-line);
  border-radius: 999px;
  background: var(--ic-bg);
  font-family: var(--ic-font-display);
  font-size: 28px;
  font-style: italic;
  color: var(--ic-fg-muted);
  letter-spacing: -0.02em;
}

.impulse-platform .surface-maturity__lvl.is-target {
  border-color: var(--ic-accent);
  color: var(--ic-accent);
  background: var(--ic-accent-soft);
}

.impulse-platform .surface-maturity__arrow {
  font-family: var(--ic-font-mono);
  font-size: 24px;
  color: var(--ic-fg-dim);
}

/* ── Pattern card grid (Voice problems, Kernel L2 patterns) ── */

.impulse-platform .kernel-patterns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 16px;
  gap: 16px;
}

.impulse-platform .kernel-patterns--five { grid-template-columns: repeat(3, 1fr); }

@media (max-width: 980px) {
  .impulse-platform .kernel-patterns { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .impulse-platform .kernel-patterns { grid-template-columns: 1fr; }
}

.impulse-platform .kernel-pattern {
  padding: 28px;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: var(--ic-bg);
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
  transition: border-color 0.16s ease, transform 0.16s ease;
}

.impulse-platform .kernel-pattern:hover {
  border-color: var(--ic-accent);
  transform: translateY(-2px);
}

.impulse-platform .kernel-pattern__n {
  font-family: var(--ic-font-mono);
  font-size: 14px;
  letter-spacing: 0.08em;
  color: var(--ic-accent);
  font-weight: 500;
}

.impulse-platform .kernel-pattern__h {
  font-family: var(--ic-font-display);
  font-size: clamp(20px, 1.9vw, 24px);
  letter-spacing: -0.01em;
  color: var(--ic-fg);
  line-height: 1.25;
}

.impulse-platform .kernel-pattern__d {
  font-size: 14px;
  line-height: 1.55;
  color: var(--ic-fg-muted);
  margin-top: auto;
}

/* ── Kernel/Voice explainer with optional stat callout ── */

.impulse-platform .kernel-explainer {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  grid-gap: 60px;
  gap: 60px;
  align-items: start;
}

@media (max-width: 880px) {
  .impulse-platform .kernel-explainer {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

.impulse-platform .kernel-explainer__body {
  display: grid;
  grid-gap: 18px;
  gap: 18px;
  font-size: 16px;
  line-height: 1.65;
  color: var(--ic-fg-muted);
  max-width: 60ch;
}

.impulse-platform .kernel-explainer__body p { margin: 0; }

.impulse-platform .kernel-explainer__body strong {
  color: var(--ic-fg);
  font-weight: 500;
}

.impulse-platform .kernel-explainer__stat {
  display: grid;
  grid-template-columns: 110px 1fr;
  grid-gap: 18px;
  gap: 18px;
  align-items: center;
  padding: 22px;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: var(--ic-bg-2);
  margin-top: 8px;
}

.impulse-platform .kernel-explainer__statn {
  font-family: var(--ic-font-display);
  font-size: clamp(34px, 4vw, 44px);
  font-style: italic;
  letter-spacing: -0.03em;
  line-height: 1;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.impulse-platform .kernel-explainer__statl {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: var(--ic-fg-muted);
}

/* ── Kernel disclaimer cards ── */

.impulse-platform .kernel-disclaimer {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 16px;
  gap: 16px;
}

@media (max-width: 880px) {
  .impulse-platform .kernel-disclaimer { grid-template-columns: 1fr; }
}

.impulse-platform .kernel-disclaim {
  padding: 28px;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: var(--ic-bg);
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
}

.impulse-platform .kernel-disclaim::before {
  content: "×";
  position: absolute;
  top: 22px;
  right: 26px;
  font-family: var(--ic-font-display);
  font-size: 36px;
  line-height: 1;
  color: var(--ic-fg-dim);
  opacity: 0.5;
}

.impulse-platform .kernel-disclaim__tag {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--ic-fg-dim);
}

.impulse-platform .kernel-disclaim__h {
  font-family: var(--ic-font-display);
  font-size: clamp(20px, 2vw, 24px);
  letter-spacing: -0.01em;
  color: var(--ic-fg);
  line-height: 1.25;
  max-width: 26ch;
}

.impulse-platform .kernel-disclaim__d {
  font-size: 14px;
  line-height: 1.55;
  color: var(--ic-fg-muted);
}

/* ── Metric tiles (Voice + Kernel) ── */

.impulse-platform .kernel-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 12px;
  gap: 12px;
}

@media (max-width: 880px) {
  .impulse-platform .kernel-metrics { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 540px) {
  .impulse-platform .kernel-metrics { grid-template-columns: 1fr; }
}

.impulse-platform .agents-metric {
  padding: 20px;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
}

.impulse-platform .agents-metric__h {
  font-family: var(--ic-font-display);
  font-size: 19px;
  letter-spacing: -0.01em;
  margin-bottom: 6px;
  color: var(--ic-fg);
}

.impulse-platform .agents-metric__d {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--ic-fg-muted);
}

.impulse-platform .agents-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 12px;
  gap: 12px;
}

@media (max-width: 880px) {
  .impulse-platform .agents-metrics { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 540px) {
  .impulse-platform .agents-metrics { grid-template-columns: 1fr; }
}

/* ── Deliverable card grid (4-up, used by all 4 layer pages) ── */

.impulse-platform .agents-deliv {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 18px;
  gap: 18px;
}

@media (max-width: 880px) {
  .impulse-platform .agents-deliv { grid-template-columns: 1fr; }
}

.impulse-platform .agents-deliv__card {
  padding: 32px;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: var(--ic-bg);
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
}

.impulse-platform .agents-deliv__card.is-flagship {
  border-color: var(--ic-accent);
  background: linear-gradient(180deg, var(--ic-bg) 0%, rgba(245, 151, 0, 0.04) 100%);
}

.impulse-platform .agents-deliv__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.impulse-platform .agents-deliv__n {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ic-fg-dim);
}

.impulse-platform .agents-deliv__tag {
  font-family: var(--ic-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  color: var(--ic-accent);
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--ic-accent-soft);
  border: 1px solid var(--ic-accent);
}

.impulse-platform .agents-deliv__h {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(26px, 2.6vw, 34px);
  letter-spacing: -0.02em;
  margin: 0;
}

.impulse-platform .kernel-deliv__sub {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ic-fg-dim);
  margin-top: 4px;
}

.impulse-platform .agents-deliv__lede {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--ic-fg-muted);
  max-width: 56ch;
}

.impulse-platform .agents-deliv__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-gap: 10px;
  gap: 10px;
  font-size: 14px;
}

.impulse-platform .agents-deliv__list li {
  display: grid;
  grid-template-columns: 180px 1fr;
  grid-gap: 16px;
  gap: 16px;
  padding: 10px 0;
  border-top: 1px solid var(--ic-line);
  line-height: 1.5;
}

.impulse-platform .agents-deliv__list li:first-child {
  border-top: 0;
  padding-top: 0;
}

.impulse-platform .agents-deliv__k {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.02em;
  color: var(--ic-fg);
  font-weight: 500;
}

.impulse-platform .agents-deliv__v { color: var(--ic-fg-muted); }

@media (max-width: 720px) {
  .impulse-platform .agents-deliv__list li {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

.impulse-platform .agents-deliv__foot {
  margin-top: auto;
  font-style: italic;
  font-family: var(--ic-font-display);
  font-size: 15px;
  line-height: 1.5;
  color: var(--ic-fg);
  padding-top: 8px;
}

.impulse-platform .agents-deliv__cta {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ic-accent);
  text-decoration: none;
  padding-top: 10px;
  border-top: 1px solid var(--ic-line);
  transition: color 0.16s ease;
  display: inline-block;
}

.impulse-platform .agents-deliv__cta:hover { color: var(--ic-fg); }

/* ── Cross-layer connect rows (all 4 pages) ── */

.impulse-platform .agents-connect {
  display: grid;
  grid-gap: 0;
  gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  overflow: hidden;
  background: var(--ic-bg);
}

.impulse-platform .agents-connect__row {
  display: grid;
  grid-template-columns: 100px 200px 1fr 40px;
  align-items: center;
  grid-gap: 24px;
  gap: 24px;
  padding: 22px 28px;
  border-top: 1px solid var(--ic-line);
  transition: background 0.16s ease;
  text-decoration: none;
  color: inherit;
}

.impulse-platform .agents-connect__row:first-child { border-top: 0; }

.impulse-platform .agents-connect__row:hover { background: var(--ic-bg-3); }

.impulse-platform .agents-connect__row:hover .agents-connect__arrow { color: var(--ic-accent); }

.impulse-platform .agents-connect__n {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--ic-fg-dim);
}

.impulse-platform .agents-connect__name {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(22px, 2vw, 28px);
  letter-spacing: -0.02em;
  color: var(--ic-fg);
}

.impulse-platform .agents-connect__name em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.impulse-platform .agents-connect__d {
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--ic-fg-muted);
}

.impulse-platform .agents-connect__arrow {
  font-family: var(--ic-font-mono);
  font-size: 20px;
  color: var(--ic-fg-dim);
  text-align: right;
  transition: color 0.16s ease, transform 0.16s ease;
}

.impulse-platform .agents-connect__row:hover .agents-connect__arrow {
  transform: translateX(4px);
}

.impulse-platform .agents-connect__row.is-strong {
  background: linear-gradient(90deg, var(--ic-bg) 0%, var(--ic-accent-soft) 100%);
}

.impulse-platform .agents-connect__row.is-strong .agents-connect__name em {
  background: linear-gradient(135deg, var(--ic-accent) 0%, #EB004F 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

@media (max-width: 880px) {
  .impulse-platform .agents-connect__row {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 18px 20px;
  }
  .impulse-platform .agents-connect__arrow { display: none; }
}

/* ── Diagnostic preload (all 4 pages) ── */

.impulse-platform .agents-diag {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  grid-gap: 60px;
  gap: 60px;
  align-items: start;
}

@media (max-width: 880px) {
  .impulse-platform .agents-diag {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

.impulse-platform .agents-diag__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-gap: 0;
  gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: var(--ic-bg-2);
}

.impulse-platform .agents-diag__list li {
  display: grid;
  grid-template-columns: 28px 1fr;
  grid-gap: 14px;
  gap: 14px;
  align-items: center;
  padding: 18px 22px;
  border-top: 1px solid var(--ic-line);
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--ic-fg);
}

.impulse-platform .agents-diag__list li:first-child { border-top: 0; }

.impulse-platform .agents-diag__list li::before {
  content: "✓";
  color: var(--ic-accent);
  font-size: 16px;
  font-weight: 600;
}

/* ── Agents failure pattern timeline ── */

.impulse-platform .agents-fail {
  list-style: none;
  padding: 0;
  margin: 0;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  overflow: hidden;
  background: var(--ic-bg-2);
}

.impulse-platform .agents-fail__step {
  display: grid;
  grid-template-columns: 80px 1fr 200px;
  grid-gap: 24px;
  gap: 24px;
  padding: 20px 28px;
  align-items: center;
  border-top: 1px solid var(--ic-line);
  position: relative;
  transition: background 0.16s ease;
}

.impulse-platform .agents-fail__step:first-child { border-top: 0; }

.impulse-platform .agents-fail__step:hover { background: var(--ic-bg-3); }

.impulse-platform .agents-fail__n {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--ic-fg-dim);
  font-weight: 500;
}

.impulse-platform .agents-fail__t {
  font-family: var(--ic-font-display);
  font-size: clamp(18px, 1.6vw, 22px);
  letter-spacing: -0.01em;
  color: var(--ic-fg);
  margin-bottom: 4px;
}

.impulse-platform .agents-fail__d {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ic-fg-muted);
}

.impulse-platform .agents-fail__bar {
  height: 4px;
  background: var(--ic-bg);
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}

.impulse-platform .agents-fail__bar span {
  display: block;
  height: 100%;
  background: linear-gradient(to right, var(--ic-fg-dim) 0%, var(--ic-accent) 65%, #EB004F 100%);
}

.impulse-platform .agents-fail__step.is-bad .agents-fail__n { color: var(--ic-accent); }

.impulse-platform .agents-fail__step.is-bad .agents-fail__t { color: var(--ic-fg); }

.impulse-platform .agents-fail__step.is-incident { background: rgba(235, 0, 79, 0.06); }

.impulse-platform .agents-fail__step.is-incident:hover { background: rgba(235, 0, 79, 0.10); }

.impulse-platform .agents-fail__step.is-incident .agents-fail__n {
  color: #EB004F;
  font-weight: 600;
}

.impulse-platform .agents-fail__step.is-incident .agents-fail__t {
  color: #EB004F;
  font-style: italic;
}

@media (max-width: 880px) {
  .impulse-platform .agents-fail__step {
    grid-template-columns: 50px 1fr;
    gap: 16px;
    padding: 16px 18px;
  }
  .impulse-platform .agents-fail__bar { display: none; }
}

@media (max-width: 480px) {
  .impulse-platform .agents-fail__step {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 14px 16px;
  }
  .impulse-platform .agents-fail__n { font-size: 11px; }
}

/* ── Agents flavors (reuses .layers from site.css patterns, scoped here) ── */

.impulse-platform .layers {
  display: grid;
  grid-gap: 1px;
  gap: 1px;
  background: var(--ic-line);
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  overflow: hidden;
}

.impulse-platform .layer {
  background: var(--ic-bg-2);
  padding: clamp(28px, 3.5vw, 56px);
  display: grid;
  grid-template-columns: 96px 1.4fr 1fr;
  grid-gap: clamp(20px, 3vw, 56px);
  gap: clamp(20px, 3vw, 56px);
  align-items: start;
  position: relative;
  transition: background 0.3s;
}

.impulse-platform .layer:hover { background: var(--ic-bg-3); }

@media (max-width: 880px) {
  .impulse-platform .layer { grid-template-columns: 1fr; gap: 18px; }
}

.impulse-platform .layer__num {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  color: var(--ic-accent);
  letter-spacing: 0.1em;
}

.impulse-platform .layer__title {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(28px, 3.5vw, 44px);
  letter-spacing: -0.025em;
  line-height: 1.05;
  margin: 0 0 10px;
}

.impulse-platform .layer__title em { font-style: italic; color: var(--ic-accent); }

.impulse-platform .layer__sub {
  font-family: var(--ic-font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ic-fg-dim);
  margin-bottom: 14px;
}

.impulse-platform .layer__desc {
  color: var(--ic-fg-muted);
  font-size: 15px;
  line-height: 1.55;
  max-width: 50ch;
}

.impulse-platform .layer__list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-family: var(--ic-font-mono);
  font-size: 13px;
  display: grid;
  grid-gap: 10px;
  gap: 10px;
}

.impulse-platform .layer__list li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  color: var(--ic-fg);
}

.impulse-platform .layer__list li::before {
  content: "→";
  color: var(--ic-accent);
  font-weight: 600;
}

/* ── Compare table (Agents 5×fix) ── */

.impulse-platform .compare {
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  overflow: hidden;
}

.impulse-platform .compare__row {
  display: grid;
  grid-template-columns: 220px 1fr 1fr;
  border-top: 1px solid var(--ic-line);
  background: var(--ic-bg-2);
}

.impulse-platform .compare__row:first-child {
  border-top: 0;
  background: var(--ic-bg-3);
}

@media (max-width: 760px) {
  .impulse-platform .compare__row { grid-template-columns: 1fr; }
}

.impulse-platform .compare__cell {
  padding: 20px 24px;
  font-size: 14px;
  line-height: 1.5;
  border-left: 1px solid var(--ic-line);
}

.impulse-platform .compare__cell:first-child { border-left: 0; }

.impulse-platform .compare__cell--label {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ic-fg-dim);
  background: var(--ic-bg-3);
}

.impulse-platform .compare__cell--old { color: var(--ic-fg-muted); }

.impulse-platform .compare__cell--old::before {
  content: "× ";
  color: var(--ic-fg-dim);
}

.impulse-platform .compare__cell--new {
  color: var(--ic-fg);
  font-weight: 500;
}

.impulse-platform .compare__cell--new::before {
  content: "→ ";
  color: var(--ic-accent);
}

.impulse-platform .compare__head {
  font-family: var(--ic-font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 16px 24px;
  color: var(--ic-fg-dim);
  border-left: 1px solid var(--ic-line);
}

.impulse-platform .compare__head:first-child { border-left: 0; }

.impulse-platform .compare__head--new { color: var(--ic-accent); }

/* ── Agents venue chips ── */

.impulse-platform .agents-venues {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 16px;
  gap: 16px;
}

@media (max-width: 880px) {
  .impulse-platform .agents-venues { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 540px) {
  .impulse-platform .agents-venues { grid-template-columns: 1fr; }
}

.impulse-platform .agents-venue {
  padding: 22px;
  border: 1px solid var(--ic-line);
  border-radius: var(--ic-radius);
  background: var(--ic-bg-2);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.impulse-platform .agents-venue__tag {
  font-family: var(--ic-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.1em;
  color: var(--ic-accent);
}

.impulse-platform .agents-venue__h {
  font-family: var(--ic-font-display);
  font-size: 22px;
  letter-spacing: -0.01em;
  color: var(--ic-fg);
}

.impulse-platform .agents-venue__d {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--ic-fg-muted);
}

.impulse-platform .agents-venues__foot {
  margin-top: 24px;
  text-align: right;
}

.impulse-platform .agents-venues__link {
  font-family: var(--ic-font-mono);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--ic-accent);
  text-decoration: none;
}

.impulse-platform .agents-venues__link:hover { color: var(--ic-fg); }

/* ── Section header helper (kicker + h-display + lede) ── */

.impulse-platform .sec__head {
  margin-bottom: 32px;
  max-width: 760px;
}

/* ── Local kicker margin so it doesn't bake into shared --ic kicker ── */

.impulse-platform .kicker {
  margin-bottom: 18px;
}

/* ============================================================
   Platform thesis pages — /platform/protocol + /platform/maturity
   Consumed by templates/platform-protocol.hubl.html and
   templates/platform-maturity.hubl.html. All classes are scoped under
   .impulse-platform so they don't bleed into other templates.
   Reuses tokens + .kicker / .h-display / .lede / .ic-btn from
   _service-detail.hubl.css and _platform-pages.hubl.css.
   ============================================================ */

/* ── PROTOCOL HERO · colorized full-bleed gradient ── */

.impulse-platform .protocol-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  /* Bleed under the floating topbar via negative top margin, but reserve
     enough top padding to keep the chrome strip (breadcrumbs + fig label)
     visibly clear of the topbar pill. The actual topbar height is ~80-90px
     in its non-scrolled state, so a 78px bleed + 110px padding = 32px
     clearance was insufficient. Bump to 160px so the chrome sits ~82px
     below the viewport top. */
  margin-top: -78px;
  padding: 160px var(--ic-pad) clamp(56px, 7vw, 96px);
  background:
    radial-gradient(1200px 600px at 12% 0%, rgba(252, 229, 191, 0.45), transparent 60%),
    radial-gradient(900px 600px at 100% 100%, rgba(20, 0, 30, 0.35), transparent 65%),
    linear-gradient(125deg, #F59700 0%, #F47629 35%, #EB004F 100%);
  color: #FFFFFF;
}

.impulse-platform .protocol-hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(1000px 600px at 50% 40%, #000 50%, transparent 100%);
  -webkit-mask-image: radial-gradient(1000px 600px at 50% 40%, #000 50%, transparent 100%);
  z-index: 0;
}

.impulse-platform .protocol-hero__chrome {
  position: relative; z-index: 1;
  max-width: var(--ic-max);
  margin: 0 auto 56px;
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--ic-font-mono);
  font-size: 11px; letter-spacing: 0.16em;
  color: rgba(255,255,255,0.7);
}

.impulse-platform .protocol-hero__crumb { display: flex; gap: 10px; align-items: center; }

.impulse-platform .protocol-hero__crumb .is-current { color: #FFFFFF; }

.impulse-platform .protocol-hero__sep { color: rgba(255,255,255,0.35); }

.impulse-platform .protocol-hero__fig { color: rgba(255,255,255,0.7); }

.impulse-platform .protocol-hero__grid {
  position: relative; z-index: 1;
  max-width: var(--ic-max); margin: 0 auto;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  grid-gap: clamp(40px, 6vw, 80px);
  gap: clamp(40px, 6vw, 80px);
  align-items: end;
}

@media (max-width: 980px) {
  .impulse-platform .protocol-hero__grid { grid-template-columns: 1fr; }
}

.impulse-platform .protocol-hero__eyebrow {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  display: inline-flex; align-items: center; gap: 10px;
  margin-bottom: 28px;
}

.impulse-platform .protocol-hero__dot {
  width: 8px; height: 8px; border-radius: 999px;
  background: #FFFFFF; box-shadow: 0 0 0 4px rgba(255,255,255,0.18);
}

.impulse-platform .protocol-hero__title {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(48px, 6.5vw, 88px);
  line-height: 0.96; letter-spacing: -0.035em;
  margin: 0; color: #FFFFFF;
}

.impulse-platform .protocol-hero__title em { font-style: italic; }

.impulse-platform .protocol-hero__rule {
  width: 64px; height: 2px;
  background: #FFFFFF;
  margin: 28px 0 22px;
}

.impulse-platform .protocol-hero__sub {
  font-family: var(--ic-font-sans);
  font-size: clamp(16px, 1.2vw, 18px);
  line-height: 1.55; letter-spacing: -0.005em;
  max-width: 48ch;
  color: rgba(255,255,255,0.92);
  margin: 0;
}

.impulse-platform .protocol-hero__sub em {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-size: 1.08em;
  color: #FFFFFF;
}

.impulse-platform .protocol-hero__side {
  display: flex; flex-direction: column; gap: 22px;
}

.impulse-platform .protocol-hero__video {
  position: relative;
  border: 1px solid rgba(255,255,255,0.28);
  border-radius: 14px;
  background: rgba(10,10,20,0.32);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  overflow: hidden;
  box-shadow: 0 24px 60px -32px rgba(0,0,0,0.6);
}

.impulse-platform .protocol-hero__videoChrome {
  display: flex; align-items: center; gap: 7px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.14);
  background: rgba(10,10,20,0.5);
}

.impulse-platform .protocol-hero__videoDot {
  width: 10px; height: 10px; border-radius: 999px;
  background: rgba(255,255,255,0.24);
}

.impulse-platform .protocol-hero__videoTitle {
  margin-left: auto;
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.7);
}

.impulse-platform .protocol-hero__videoStage {
  position: relative;
  aspect-ratio: 16 / 10;
  display: grid; place-items: center;
  background:
    repeating-linear-gradient(135deg, rgba(255,255,255,0.04) 0 1px, transparent 1px 14px),
    linear-gradient(160deg, rgba(255,255,255,0.06), rgba(0,0,0,0.25));
}

.impulse-platform .protocol-hero__videoStage iframe {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  border: 0;
}

.impulse-platform .protocol-hero__videoPlay {
  width: 64px; height: 64px;
  border-radius: 999px;
  display: grid; place-items: center;
  background: rgba(10,10,20,0.7);
  color: #FFFFFF;
  border: 1px solid rgba(255,255,255,0.35);
  box-shadow: 0 0 0 8px rgba(255,255,255,0.06);
}

.impulse-platform .protocol-hero__videoPlay svg { transform: translateX(2px); }

.impulse-platform .protocol-hero__videoMeta {
  position: absolute; left: 14px; bottom: 12px;
  font-family: var(--ic-font-mono); font-size: 10px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}

.impulse-platform .protocol-hero__videoCaption {
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 16px;
  border-top: 1px solid rgba(255,255,255,0.14);
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.7);
  background: rgba(10,10,20,0.5);
}

.impulse-platform .protocol-hero__cta {
  display: flex; gap: 10px; flex-wrap: wrap;
}

.impulse-platform .protocol-hero__btn {
  font-family: var(--ic-font-sans); font-weight: 500;
  font-size: 14px; letter-spacing: -0.005em;
  padding: 13px 20px;
  border-radius: 999px;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex; align-items: center; gap: 8px;
  transition: transform .16s ease, background .16s ease;
}

.impulse-platform .protocol-hero__btn--solid {
  background: #FFFFFF; color: #0A0A0F;
  border: 1px solid #FFFFFF;
}

.impulse-platform .protocol-hero__btn--solid:hover { transform: translateY(-1px); }

.impulse-platform .protocol-hero__btn--ghost {
  background: rgba(255,255,255,0.06); color: #FFFFFF;
  border: 1px solid rgba(255,255,255,0.4);
}

.impulse-platform .protocol-hero__btn--ghost:hover { background: rgba(255,255,255,0.12); }

.impulse-platform .protocol-hero__note {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.06em;
  color: rgba(255,255,255,0.75);
}

/* ── PROTOCOL THESIS · 2-col warm with pull-quote ── */

.impulse-platform .protocol-thesis {
  display: grid; grid-template-columns: 1fr 1.15fr;
  grid-gap: clamp(36px, 5vw, 80px);
  gap: clamp(36px, 5vw, 80px);
  align-items: start;
}

@media (max-width: 880px) {
  .impulse-platform .protocol-thesis { grid-template-columns: 1fr; }
}

.impulse-platform .protocol-thesis__body p {
  font-size: 15.5px; line-height: 1.6;
  color: var(--ic-fg-muted);
  margin: 0 0 18px;
}

.impulse-platform .protocol-thesis__body strong { color: var(--ic-fg); font-weight: 600; }

.impulse-platform .protocol-thesis__lede {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-size: clamp(20px, 1.9vw, 26px) !important;
  line-height: 1.35 !important;
  color: var(--ic-fg) !important;
  margin: 28px 0 18px !important;
  padding: 22px 24px;
  background: var(--ic-bg-2);
  border-left: 3px solid var(--ic-accent);
  border-radius: 0 8px 8px 0;
}

.impulse-platform .protocol-thesis__lede strong { font-style: normal; }

.impulse-platform .protocol-thesis__kicker {
  font-family: var(--ic-font-display);
  font-size: clamp(18px, 1.6vw, 22px) !important;
  line-height: 1.35 !important;
  color: var(--ic-fg) !important;
  margin: 0 !important;
}

.impulse-platform .protocol-thesis__kicker em {
  font-style: italic;
  background: linear-gradient(120deg, #F59700, #EB004F);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ── PROTOCOL WHAT · 2-col dark with pill list ── */

.impulse-platform .protocol-what {
  display: grid; grid-template-columns: 1.1fr 1fr;
  grid-gap: clamp(36px, 5vw, 80px);
  gap: clamp(36px, 5vw, 80px);
  align-items: start;
}

@media (max-width: 880px) {
  .impulse-platform .protocol-what { grid-template-columns: 1fr; }
}

.impulse-platform .protocol-what__body p {
  font-size: 15.5px; line-height: 1.6;
  color: var(--ic-fg-muted);
  margin: 0 0 18px;
}

.impulse-platform .protocol-what__body strong { color: var(--ic-fg); }

.impulse-platform .protocol-what__pills {
  list-style: none; padding: 0; margin: 24px 0;
  display: flex; flex-direction: column; gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  overflow: hidden;
}

.impulse-platform .protocol-what__pills li {
  padding: 16px 22px;
  font-family: var(--ic-font-display);
  font-style: italic;
  font-size: 22px;
  color: var(--ic-fg);
  border-top: 1px solid var(--ic-line);
  background: rgba(255,255,255,0.02);
}

.impulse-platform .protocol-what__pills li:first-child { border-top: 0; }

.impulse-platform .protocol-what__pills li::before {
  content: "×  ";
  font-style: normal;
  font-family: var(--ic-font-mono);
  color: var(--ic-accent);
  letter-spacing: 0.06em;
  font-size: 14px;
  margin-right: 6px;
}

.impulse-platform .protocol-what__foot {
  font-size: 14px; line-height: 1.55;
  color: var(--ic-fg-muted);
  border-top: 1px solid var(--ic-line);
  padding-top: 18px;
}

/* ── PROTOCOL ENDPOINTS · 5-card grid (first card spans 2) ── */

.impulse-platform .protocol-endpoints {
  display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 18px; gap: 18px;
}

@media (max-width: 880px) {
  .impulse-platform .protocol-endpoints { grid-template-columns: 1fr; }
}

.impulse-platform .protocol-endpoint {
  padding: 28px;
  background: var(--ic-bg-2);
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  display: flex; flex-direction: column; gap: 14px;
}

.impulse-platform .protocol-endpoint--wide { grid-column: 1 / -1; }

@media (max-width: 880px) {
  .impulse-platform .protocol-endpoint--wide { grid-column: auto; }
}

.impulse-platform .protocol-endpoint__head {
  display: flex; justify-content: space-between; align-items: center;
}

.impulse-platform .protocol-endpoint__n {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.1em; color: var(--ic-fg-dim);
}

.impulse-platform .protocol-endpoint__tag {
  font-family: var(--ic-font-mono); font-size: 10.5px;
  letter-spacing: 0.12em; color: var(--ic-accent);
  padding: 4px 10px; border-radius: 999px;
  background: var(--ic-accent-soft);
  border: 1px solid var(--ic-accent);
}

.impulse-platform .protocol-endpoint__h {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(24px, 2.4vw, 32px);
  line-height: 1.05; letter-spacing: -0.02em;
  margin: 0; color: var(--ic-fg);
}

.impulse-platform .protocol-endpoint__lede {
  margin: 0; font-size: 14px; line-height: 1.55;
  color: var(--ic-fg-muted);
}

.impulse-platform .protocol-endpoint__list {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-gap: 0; gap: 0;
}

.impulse-platform .protocol-endpoint__list li {
  display: grid; grid-template-columns: 200px 1fr; grid-gap: 16px; gap: 16px;
  padding: 12px 0;
  border-top: 1px solid var(--ic-line);
  font-size: 13.5px; line-height: 1.5;
}

.impulse-platform .protocol-endpoint__list li:first-child { border-top: 0; padding-top: 8px; }

.impulse-platform .protocol-endpoint__k {
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.02em; color: var(--ic-fg);
  font-weight: 500;
}

.impulse-platform .protocol-endpoint__v { color: var(--ic-fg-muted); }

@media (max-width: 720px) {
  .impulse-platform .protocol-endpoint__list li { grid-template-columns: 1fr; gap: 4px; }
}

/* ── PROTOCOL EXAMPLE · code panel split ── */

.impulse-platform .protocol-example {
  display: grid; grid-template-columns: 1fr 1fr; grid-gap: 18px; gap: 18px;
}

@media (max-width: 980px) {
  .impulse-platform .protocol-example { grid-template-columns: 1fr; }
}

.impulse-platform .protocol-example__col {
  display: flex; flex-direction: column; gap: 16px;
}

.impulse-platform .protocol-example__title {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.08em; color: var(--ic-fg-muted);
}

.impulse-platform .protocol-example__chip {
  padding: 4px 10px; border-radius: 4px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.16);
  color: var(--ic-fg);
  font-weight: 500;
}

.impulse-platform .protocol-example__chip.is-good {
  background: rgba(245,151,0,0.14);
  border-color: rgba(245,151,0,0.5);
  color: #F59700;
}

.impulse-platform .protocol-code {
  margin: 0;
  padding: 22px 24px;
  background: #0A0A0F;
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  overflow-x: auto;
}

.impulse-platform .protocol-code code {
  font-family: var(--ic-font-mono); font-size: 13px;
  line-height: 1.6;
  color: #E0E0E8;
  white-space: pre;
}

.impulse-platform .protocol-example__steps {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-gap: 0; gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  overflow: hidden;
}

.impulse-platform .protocol-example__steps li {
  display: grid; grid-template-columns: 50px 1fr;
  align-items: center;
  padding: 12px 16px;
  border-top: 1px solid var(--ic-line);
  font-size: 13.5px; color: var(--ic-fg-muted);
}

.impulse-platform .protocol-example__steps li:first-child { border-top: 0; }

.impulse-platform .protocol-example__steps li span {
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em; color: var(--ic-accent);
}

.impulse-platform .protocol-example__outcomes {
  display: grid; grid-gap: 8px; gap: 8px;
  padding: 18px 20px;
  background: var(--ic-bg-2);
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  font-size: 14px; line-height: 1.5;
  color: var(--ic-fg-muted);
}

.impulse-platform .protocol-example__outcomes strong {
  font-family: var(--ic-font-mono);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ic-fg);
  margin-right: 8px;
}

.impulse-platform .protocol-example__nots {
  display: flex; flex-direction: column; gap: 4px;
  font-family: var(--ic-font-display);
  font-style: italic;
  font-size: 16px;
  color: var(--ic-fg-dim);
}

/* ── PROTOCOL GOVERNANCE · tagged rows ── */

.impulse-platform .protocol-gov {
  display: grid; grid-gap: 0; gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--ic-bg-2);
}

.impulse-platform .protocol-gov__row {
  display: grid; grid-template-columns: 140px 1fr;
  align-items: start; grid-gap: 24px; gap: 24px;
  padding: 24px 28px;
  border-top: 1px solid var(--ic-line);
}

.impulse-platform .protocol-gov__row:first-child { border-top: 0; }

.impulse-platform .protocol-gov__tag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
  padding-top: 2px;
}

.impulse-platform .protocol-gov__h {
  font-family: var(--ic-font-display);
  font-size: clamp(20px, 1.9vw, 26px);
  letter-spacing: -0.015em;
  color: var(--ic-fg);
  margin-bottom: 6px;
}

.impulse-platform .protocol-gov__d {
  font-size: 14.5px; line-height: 1.55;
  color: var(--ic-fg-muted);
}

@media (max-width: 720px) {
  .impulse-platform .protocol-gov__row { grid-template-columns: 1fr; gap: 8px; }
}

.impulse-platform .protocol-gov__link {
  display: inline-block;
  margin-top: 18px;
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em; color: var(--ic-accent);
  text-decoration: none;
}

.impulse-platform .protocol-gov__link:hover { color: var(--ic-fg); }

/* ── PROTOCOL CALLERS · 4-up grid ── */

.impulse-platform .protocol-callers {
  display: grid; grid-template-columns: repeat(4, 1fr); grid-gap: 12px; gap: 12px;
}

@media (max-width: 1100px) {
  .impulse-platform .protocol-callers { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
  .impulse-platform .protocol-callers { grid-template-columns: 1fr; }
}

.impulse-platform .protocol-caller {
  padding: 20px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  display: flex; flex-direction: column; gap: 10px;
  min-height: 180px;
}

.impulse-platform .protocol-caller__top {
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--ic-fg-dim);
}

.impulse-platform .protocol-caller__scope {
  padding: 3px 8px;
  border-radius: 3px;
  background: rgba(245,151,0,0.14);
  color: #F59700;
  font-size: 10px;
  letter-spacing: 0.12em;
}

.impulse-platform .protocol-caller__who {
  font-family: var(--ic-font-display);
  font-size: 20px;
  letter-spacing: -0.015em;
  color: var(--ic-fg);
}

.impulse-platform .protocol-caller__d {
  font-size: 13.5px; line-height: 1.5;
  color: var(--ic-fg-muted);
}

/* ── PROTOCOL ISN'T/IS · 4 contrast pairs ── */

.impulse-platform .protocol-isnot { display: grid; grid-gap: 12px; gap: 12px; }

.impulse-platform .protocol-isnot__row {
  display: grid; grid-template-columns: 1fr 1fr; grid-gap: 0; gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--ic-bg-2);
}

.impulse-platform .protocol-isnot__cell {
  padding: 24px 26px;
  display: flex; flex-direction: column; gap: 10px;
  min-height: 140px;
}

.impulse-platform .protocol-isnot__cell--not {
  background: rgba(0,0,0,0.04);
  border-right: 1px solid var(--ic-line);
}

.impulse-platform .protocol-isnot__cell--is {
  background: linear-gradient(135deg, rgba(245,151,0,0.10), rgba(235,0,79,0.05));
}

.impulse-platform .protocol-isnot__label {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--ic-fg-dim);
}

.impulse-platform .protocol-isnot__cell--is .protocol-isnot__label { color: var(--ic-accent); }

.impulse-platform .protocol-isnot__mark {
  display: inline-grid; place-items: center;
  width: 22px; height: 22px;
  border-radius: 5px;
  background: rgba(0,0,0,0.08);
  color: var(--ic-fg-dim);
  font-family: var(--ic-font-mono); font-size: 13px;
  font-weight: 500;
}

.impulse-platform .protocol-isnot__mark--is {
  background: var(--ic-accent);
  color: #0A0A0F;
}

.impulse-platform .protocol-isnot__text {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(19px, 1.8vw, 23px);
  line-height: 1.25;
  letter-spacing: -0.015em;
  color: var(--ic-fg);
  text-decoration: line-through;
  text-decoration-color: rgba(0,0,0,0.35);
  text-decoration-thickness: 1px;
}

.impulse-platform .protocol-isnot__cell--is .protocol-isnot__text {
  text-decoration: none;
  font-style: italic;
  color: var(--ic-fg);
}

@media (max-width: 720px) {
  .impulse-platform .protocol-isnot__row { grid-template-columns: 1fr; }
  .impulse-platform .protocol-isnot__cell--not {
    border-right: 0; border-bottom: 1px solid var(--ic-line);
  }
}

/* ── PROTOCOL WHEN · 2-col yes/no split ── */

.impulse-platform .protocol-when {
  display: grid; grid-template-columns: 1fr 1fr; grid-gap: 18px; gap: 18px;
}

@media (max-width: 880px) {
  .impulse-platform .protocol-when { grid-template-columns: 1fr; }
}

.impulse-platform .protocol-when__col {
  padding: 28px;
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  background: rgba(255,255,255,0.02);
  display: flex; flex-direction: column; gap: 14px;
}

.impulse-platform .protocol-when__col.is-yes {
  background: linear-gradient(160deg, rgba(245,151,0,0.10), rgba(235,0,79,0.04) 100%);
  border-color: rgba(245,151,0,0.4);
}

.impulse-platform .protocol-when__head {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-fg-muted);
}

.impulse-platform .protocol-when__col.is-yes .protocol-when__head { color: #F59700; }

.impulse-platform .protocol-when__mark {
  display: inline-grid; place-items: center;
  width: 28px; height: 28px;
  border-radius: 6px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.16);
  color: var(--ic-fg);
  font-family: var(--ic-font-mono);
  font-size: 14px;
}

.impulse-platform .protocol-when__col.is-yes .protocol-when__mark {
  background: var(--ic-accent);
  border-color: var(--ic-accent);
  color: #0A0A0F;
}

.impulse-platform .protocol-when__col ul {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-gap: 0; gap: 0;
}

.impulse-platform .protocol-when__col li {
  font-size: 14.5px; line-height: 1.55;
  color: var(--ic-fg);
  padding: 14px 0;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.impulse-platform .protocol-when__col li:first-child { border-top: 0; }

.impulse-platform .protocol-when__col.is-no li { color: var(--ic-fg-muted); }

/* ── PROTOCOL ENGAGEMENT · 4-phase numbered rows ── */

.impulse-platform .protocol-engage {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-gap: 0; gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  overflow: hidden;
  background: var(--ic-bg-2);
}

.impulse-platform .protocol-engage__row {
  display: grid; grid-template-columns: 110px 1.1fr 110px 1.6fr;
  grid-gap: 24px;
  gap: 24px;
  padding: 26px 28px;
  border-top: 1px solid var(--ic-line);
  align-items: center;
}

.impulse-platform .protocol-engage__row:first-child { border-top: 0; }

.impulse-platform .protocol-engage__n {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-fg-dim);
}

.impulse-platform .protocol-engage__name {
  font-family: var(--ic-font-display);
  font-size: clamp(22px, 2vw, 30px);
  letter-spacing: -0.02em;
  color: var(--ic-fg);
}

.impulse-platform .protocol-engage__w {
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--ic-accent);
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--ic-accent-soft);
  border: 1px solid var(--ic-accent);
  text-align: center;
  justify-self: start;
}

.impulse-platform .protocol-engage__d {
  font-size: 14.5px; line-height: 1.55;
  color: var(--ic-fg-muted);
}

@media (max-width: 880px) {
  .impulse-platform .protocol-engage__row { grid-template-columns: 1fr; gap: 6px; }
  .impulse-platform .protocol-engage__w { justify-self: start; }
}

/* ============================================================
   MATURITY page styles
   ============================================================ */

/* ── MATURITY HERO · subtle radial accents on a dark base ──
   data-section-theme="dark" only sets IC text tokens; the section itself
   has no implicit bg in HubSpot's section wrappers, so we force a dark
   base here. Otherwise the hero renders white text on the body's warm bg. */

.impulse-platform .mat-hero {
  position: relative;
  margin-top: -78px;
  padding: 160px var(--ic-pad) clamp(56px, 7vw, 96px);
  overflow: hidden;
  background: var(--ic-bg, #0A0A0F);
  color: var(--ic-fg, #FFFFFF);
}

.impulse-platform .mat-hero::before {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(900px 500px at 90% 10%, rgba(245,151,0,0.18), transparent 60%),
    radial-gradient(800px 500px at 10% 100%, rgba(235,0,79,0.14), transparent 65%);
  pointer-events: none; z-index: 0;
}

.impulse-platform .mat-hero__chrome {
  position: relative; z-index: 1;
  max-width: var(--ic-max);
  margin: 0 auto 48px;
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--ic-font-mono); font-size: 11px; letter-spacing: 0.16em;
  color: var(--ic-fg-dim);
}

.impulse-platform .mat-hero__crumb { display: flex; gap: 10px; align-items: center; }

.impulse-platform .mat-hero__crumb .is-current { color: var(--ic-fg); }

.impulse-platform .mat-hero__sep { color: var(--ic-fg-dim); }

.impulse-platform .mat-hero__grid {
  position: relative; z-index: 1;
  max-width: var(--ic-max); margin: 0 auto;
  display: grid; grid-template-columns: 1.2fr 0.85fr;
  grid-gap: clamp(40px, 6vw, 80px);
  gap: clamp(40px, 6vw, 80px); align-items: end;
}

@media (max-width: 980px) {
  .impulse-platform .mat-hero__grid { grid-template-columns: 1fr; }
}

.impulse-platform .mat-hero__eyebrow {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ic-fg-muted);
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 28px;
}

.impulse-platform .mat-hero__dot {
  width: 8px; height: 8px; border-radius: 999px;
  background: var(--ic-accent); box-shadow: 0 0 0 4px rgba(245,151,0,0.2);
}

.impulse-platform .mat-hero__title {
  font-family: var(--ic-font-display); font-weight: 400;
  font-size: clamp(40px, 5.4vw, 76px);
  line-height: 1.02; letter-spacing: -0.03em;
  margin: 0; color: var(--ic-fg);
}

.impulse-platform .mat-hero__title em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

.impulse-platform .mat-hero__rule {
  width: 64px; height: 2px; background: var(--ic-accent); margin: 28px 0 22px;
}

.impulse-platform .mat-hero__sub {
  font-size: clamp(15px, 1.15vw, 17px); line-height: 1.6;
  color: var(--ic-fg-muted); max-width: 56ch; margin: 0 0 14px;
}

.impulse-platform .mat-hero__sub em { font-family: var(--ic-font-display); font-style: italic; color: var(--ic-fg); }

.impulse-platform .mat-hero__sub strong { color: var(--ic-fg); font-weight: 600; }

.impulse-platform .mat-hero__promise {
  padding: 32px;
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  background: linear-gradient(160deg, rgba(245,151,0,0.10), rgba(235,0,79,0.04) 100%);
  display: flex; flex-direction: column; gap: 10px;
}

.impulse-platform .mat-hero__promiseTag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.16em; color: var(--ic-accent);
}

.impulse-platform .mat-hero__promiseBig {
  font-family: var(--ic-font-display);
  font-size: clamp(48px, 6vw, 80px);
  line-height: 1; letter-spacing: -0.03em;
  color: var(--ic-fg);
  display: flex; align-items: center; gap: 14px;
}

.impulse-platform .mat-hero__promiseBig span {
  font-family: var(--ic-font-mono); font-size: 0.5em;
  color: var(--ic-accent);
}

.impulse-platform .mat-hero__promiseSub {
  font-family: var(--ic-font-display);
  font-style: italic; font-size: clamp(20px, 1.8vw, 26px);
  color: var(--ic-fg);
  margin-bottom: 10px;
}

.impulse-platform .mat-hero__promiseFoot {
  font-size: 14px; line-height: 1.55; color: var(--ic-fg-muted);
  border-top: 1px solid var(--ic-line); padding-top: 14px;
}

.impulse-platform .mat-hero__promiseFoot em { font-style: italic; color: var(--ic-fg); }

.impulse-platform .mat-hero__cta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }

.impulse-platform .mat-hero__btn {
  font-family: var(--ic-font-sans); font-weight: 500; font-size: 14px;
  padding: 12px 18px; border-radius: 999px;
  cursor: pointer; text-decoration: none;
  display: inline-flex; align-items: center; gap: 8px;
  transition: transform .16s ease;
}

.impulse-platform .mat-hero__btn--solid {
  background: linear-gradient(135deg, #F59700 0%, #EB004F 100%);
  color: #FFFFFF;
  border: 1px solid transparent;
  box-shadow: 0 14px 36px -14px rgba(235, 0, 79, 0.45);
}

.impulse-platform .mat-hero__btn--solid:hover { transform: translateY(-1px); }

.impulse-platform .mat-hero__btn--ghost {
  background: transparent; color: var(--ic-fg); border: 1px solid var(--ic-line-2);
}

.impulse-platform .mat-hero__note {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.06em; color: var(--ic-fg-dim);
}

/* ── MATURITY SCALE · 5-cell selector + animated rail ── */

.impulse-platform .mat-scale { margin-bottom: 36px; position: relative; }

.impulse-platform .mat-scale__rail {
  position: relative; height: 4px;
  background: var(--ic-line); border-radius: 999px;
  margin-bottom: 14px;
}

.impulse-platform .mat-scale__railFill {
  position: absolute; top: 0; left: 0; height: 100%;
  background: var(--ic-accent-grad);
  border-radius: 999px;
  transition: width .35s ease;
}

.impulse-platform .mat-scale__row {
  display: grid; grid-template-columns: repeat(5, 1fr); grid-gap: 8px; gap: 8px;
}

@media (max-width: 900px) {
  .impulse-platform .mat-scale__row { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
  .impulse-platform .mat-scale__row { grid-template-columns: 1fr; }
}

.impulse-platform .mat-scale__cell {
  text-align: left;
  padding: 18px 18px 20px;
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  background: var(--ic-bg-2);
  cursor: pointer;
  display: flex; flex-direction: column; gap: 6px;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
  font-family: inherit; color: inherit;
}

.impulse-platform .mat-scale__cell:hover {
  border-color: var(--ic-line-2); transform: translateY(-1px);
}

.impulse-platform .mat-scale__cell.is-active {
  border-color: var(--ic-accent);
  background: linear-gradient(160deg, rgba(245,151,0,0.12), rgba(235,0,79,0.04));
}

.impulse-platform .mat-scale__cellN {
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.1em; color: var(--ic-accent);
}

.impulse-platform .mat-scale__cellName {
  font-family: var(--ic-font-display);
  font-size: clamp(20px, 2vw, 26px);
  letter-spacing: -0.02em; color: var(--ic-fg);
}

.impulse-platform .mat-scale__cellShort {
  font-size: 13px; line-height: 1.45; color: var(--ic-fg-muted);
}

/* ── MATURITY DETAIL · level panel content ── */

.impulse-platform .mat-detail {
  padding: 32px;
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  background: var(--ic-bg-2);
  display: flex; flex-direction: column; gap: 28px;
}

.impulse-platform .mat-detail__head {
  display: grid; grid-template-columns: 1.2fr 1fr; grid-gap: 24px; gap: 24px;
  align-items: start;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--ic-line);
}

@media (max-width: 880px) {
  .impulse-platform .mat-detail__head { grid-template-columns: 1fr; }
}

.impulse-platform .mat-detail__tag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent); margin-bottom: 8px;
}

.impulse-platform .mat-detail__h {
  font-family: var(--ic-font-display);
  font-size: clamp(26px, 3vw, 40px);
  letter-spacing: -0.025em; line-height: 1.1;
  color: var(--ic-fg); margin: 0;
}

.impulse-platform .mat-detail__note {
  padding: 16px 18px;
  border-left: 3px solid var(--ic-accent);
  background: rgba(245,151,0,0.08);
  font-family: var(--ic-font-display);
  font-size: 16px; line-height: 1.5;
  color: var(--ic-fg);
}

.impulse-platform .mat-detail__note em { font-style: italic; }

.impulse-platform .mat-detail__grid {
  display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 28px; gap: 28px;
}

@media (max-width: 980px) {
  .impulse-platform .mat-detail__grid { grid-template-columns: 1fr; }
}

.impulse-platform .mat-detail__colH {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ic-fg-dim); margin-bottom: 14px;
}

.impulse-platform .mat-detail__col ul {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 0;
}

.impulse-platform .mat-detail__col li {
  padding: 10px 0;
  border-top: 1px solid var(--ic-line);
  font-size: 14px; line-height: 1.55;
  color: var(--ic-fg);
  display: flex; gap: 10px;
}

.impulse-platform .mat-detail__col li:first-child { border-top: 0; padding-top: 0; }

.impulse-platform .mat-detail__col li::before {
  content: "→"; color: var(--ic-accent); flex: 0 0 auto;
}

/* ── MATURITY MOVE block ── */

.impulse-platform .mat-move {
  padding: 28px 30px;
  border-radius: 12px;
  background: var(--ic-bg);
  border: 1px solid var(--ic-line);
  display: flex; flex-direction: column; gap: 14px;
}

.impulse-platform .mat-move__tag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
}

.impulse-platform .mat-move__h {
  font-family: var(--ic-font-display);
  font-size: clamp(22px, 2.4vw, 32px);
  letter-spacing: -0.02em; color: var(--ic-fg);
}

.impulse-platform .mat-move__b {
  font-size: 15px; line-height: 1.6;
  color: var(--ic-fg-muted); margin: 0;
}

.impulse-platform .mat-move__steps {
  list-style: none; padding: 0; margin: 8px 0 0;
  display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 0; gap: 0;
  border: 1px solid var(--ic-line); border-radius: 10px;
  overflow: hidden;
}

@media (max-width: 880px) {
  .impulse-platform .mat-move__steps { grid-template-columns: 1fr; }
}

.impulse-platform .mat-move__steps li {
  display: grid; grid-template-columns: 40px 1fr; grid-gap: 12px; gap: 12px;
  padding: 14px 16px;
  border-top: 1px solid var(--ic-line);
  font-size: 13.5px; line-height: 1.5;
  color: var(--ic-fg);
}

@media (min-width: 881px) {
  .impulse-platform .mat-move__steps li:nth-child(1),
  .impulse-platform .mat-move__steps li:nth-child(2) { border-top: 0; }
  .impulse-platform .mat-move__steps li:nth-child(odd) {
    border-right: 1px solid var(--ic-line);
  }
}

@media (max-width: 880px) {
  .impulse-platform .mat-move__steps li:first-child { border-top: 0; }
}

.impulse-platform .mat-move__steps li span {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.06em; color: var(--ic-accent);
}

.impulse-platform .mat-move__links {
  display: flex; gap: 18px; flex-wrap: wrap;
  margin-top: 4px;
}

.impulse-platform .mat-move__links a {
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em; color: var(--ic-accent);
  text-decoration: none;
}

.impulse-platform .mat-move__links a:hover { color: var(--ic-fg); }

.impulse-platform .mat-move__honest {
  margin-top: 8px;
  padding: 18px 20px;
  border-radius: 10px;
  background: rgba(245,151,0,0.08);
  border: 1px solid rgba(245,151,0,0.3);
}

.impulse-platform .mat-move__honestTag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent); margin-bottom: 8px;
}

.impulse-platform .mat-move__honest p {
  margin: 0; font-size: 14.5px; line-height: 1.6;
  color: var(--ic-fg);
}

/* ── MATURITY RULES · 3-card grid (dark) ── */

.impulse-platform .mat-rules {
  display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 16px; gap: 16px;
}

@media (max-width: 880px) {
  .impulse-platform .mat-rules { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 540px) {
  .impulse-platform .mat-rules { grid-template-columns: 1fr; }
}

.impulse-platform .mat-rule {
  padding: 28px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  display: flex; flex-direction: column; gap: 12px;
}

.impulse-platform .mat-rule__n {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
}

.impulse-platform .mat-rule__h {
  font-family: var(--ic-font-display);
  font-size: clamp(22px, 2.2vw, 28px);
  letter-spacing: -0.02em; color: var(--ic-fg);
  line-height: 1.15;
}

.impulse-platform .mat-rule__d {
  font-size: 14.5px; line-height: 1.6; color: var(--ic-fg-muted);
}

/* ── MATURITY NEXT · 2-card grid (warm) ── */

.impulse-platform .mat-next {
  display: grid; grid-template-columns: 1fr 1fr; grid-gap: 16px; gap: 16px;
}

@media (max-width: 880px) {
  .impulse-platform .mat-next { grid-template-columns: 1fr; }
}

.impulse-platform .mat-next__card {
  padding: 32px;
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  background: var(--ic-bg-2);
  display: flex; flex-direction: column; gap: 14px;
  text-decoration: none; color: inherit;
  transition: transform .2s ease, border-color .2s ease;
}

.impulse-platform .mat-next__card:hover {
  transform: translateY(-2px); border-color: var(--ic-line-2);
}

.impulse-platform .mat-next__card--primary {
  background: linear-gradient(160deg, rgba(245,151,0,0.12), rgba(235,0,79,0.04));
  border-color: rgba(245,151,0,0.4);
}

.impulse-platform .mat-next__tag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
}

.impulse-platform .mat-next__h {
  font-family: var(--ic-font-display);
  font-size: clamp(24px, 2.5vw, 32px);
  letter-spacing: -0.02em; color: var(--ic-fg);
}

.impulse-platform .mat-next__d {
  font-size: 14.5px; line-height: 1.6; color: var(--ic-fg-muted); margin: 0;
}

.impulse-platform .mat-next__cta {
  margin-top: auto;
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em; color: var(--ic-accent);
}

/* ============================================================
   /platform/vs-agencies + /platform/maturity/assessment
   All classes scoped under .impulse-platform so they don't bleed.
   Reuses tokens + .kicker / .h-display / .lede / .ic-btn from
   _service-detail.hubl.css and the .sec / page-hero patterns from
   _platform-pages.hubl.css.
   ============================================================ */

/* ───────── VS HERO · warm editorial ───────── */

.impulse-platform .vs-hero {
  position: relative;
  margin-top: -78px;
  padding: 160px var(--ic-pad) clamp(56px, 7vw, 96px);
  overflow: hidden;
  background: var(--ic-bg, #FAFAF7);
  color: var(--ic-fg, #0E0E1D);
}

.impulse-platform .vs-hero::before {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(900px 500px at 10% 0%, rgba(245,151,0,0.10), transparent 60%),
    radial-gradient(800px 500px at 100% 100%, rgba(235,0,79,0.06), transparent 65%);
  pointer-events: none; z-index: 0;
}

.impulse-platform .vs-hero__chrome {
  position: relative; z-index: 1;
  max-width: var(--ic-max);
  margin: 0 auto 48px;
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--ic-font-mono); font-size: 11px; letter-spacing: 0.16em;
  color: var(--ic-fg-dim);
}

.impulse-platform .vs-hero__crumb { display: flex; gap: 10px; align-items: center; }

.impulse-platform .vs-hero__crumb .is-current { color: var(--ic-fg); }

.impulse-platform .vs-hero__sep { color: var(--ic-fg-dim); }

.impulse-platform .vs-hero__grid {
  position: relative; z-index: 1;
  max-width: var(--ic-max); margin: 0 auto;
  display: grid; grid-template-columns: 1.25fr 0.8fr;
  grid-gap: clamp(40px, 6vw, 80px);
  gap: clamp(40px, 6vw, 80px); align-items: end;
}

@media (max-width: 980px) { .impulse-platform .vs-hero__grid { grid-template-columns: 1fr; } }

.impulse-platform .vs-hero__eyebrow {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ic-fg-muted);
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 28px;
}

.impulse-platform .vs-hero__dot {
  width: 8px; height: 8px; border-radius: 999px;
  background: var(--ic-accent); box-shadow: 0 0 0 4px rgba(245,151,0,0.2);
}

.impulse-platform .vs-hero__title {
  font-family: var(--ic-font-display); font-weight: 400;
  font-size: clamp(40px, 5.4vw, 76px);
  line-height: 1.02; letter-spacing: -0.03em;
  margin: 0; color: var(--ic-fg);
}

.impulse-platform .vs-hero__title em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

.impulse-platform .vs-hero__rule {
  width: 64px; height: 2px; background: var(--ic-accent); margin: 28px 0 22px;
}

.impulse-platform .vs-hero__sub {
  font-size: clamp(15px, 1.15vw, 17px); line-height: 1.6;
  color: var(--ic-fg-muted); max-width: 56ch; margin: 0 0 14px;
}

.impulse-platform .vs-hero__sub strong { color: var(--ic-fg); font-weight: 600; }

.impulse-platform .vs-hero__sub em {
  font-family: var(--ic-font-display); font-style: italic; color: var(--ic-fg);
}

.impulse-platform .vs-hero__cta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }

.impulse-platform .vs-hero__btn {
  font-family: var(--ic-font-sans); font-weight: 500; font-size: 14px;
  padding: 13px 20px; border-radius: 999px;
  cursor: pointer; text-decoration: none;
  display: inline-flex; align-items: center; gap: 8px;
  transition: transform .16s ease;
}

.impulse-platform .vs-hero__btn--solid {
  background: linear-gradient(135deg, #F59700 0%, #EB004F 100%);
  color: #FFFFFF;
  border: 1px solid transparent;
  box-shadow: 0 14px 36px -14px rgba(235, 0, 79, 0.45);
}

.impulse-platform .vs-hero__btn--solid:hover { transform: translateY(-1px); }

.impulse-platform .vs-hero__btn--ghost {
  background: transparent; color: var(--ic-fg); border: 1px solid var(--ic-line-2);
}

.impulse-platform .vs-hero__note {
  margin-top: 12px;
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.06em; color: var(--ic-fg-dim);
}

.impulse-platform .vs-hero__stamp {
  padding: 36px 32px;
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  background: var(--ic-bg-2);
  display: flex; flex-direction: column; gap: 14px;
  position: relative; overflow: hidden;
}

.impulse-platform .vs-hero__stamp::after {
  content: "";
  position: absolute; right: -40px; top: -40px;
  width: 180px; height: 180px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(245,151,0,0.18), transparent 60%);
  pointer-events: none;
}

.impulse-platform .vs-hero__stampTag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.18em; color: var(--ic-accent);
  position: relative; z-index: 1;
}

.impulse-platform .vs-hero__stampBig {
  font-family: var(--ic-font-display);
  font-size: clamp(40px, 4.6vw, 60px);
  line-height: 0.96; letter-spacing: -0.03em;
  color: var(--ic-fg);
  position: relative; z-index: 1;
}

.impulse-platform .vs-hero__stampBig em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

.impulse-platform .vs-hero__stampFoot {
  font-size: 14px; line-height: 1.55; color: var(--ic-fg-muted);
  border-top: 1px solid var(--ic-line); padding-top: 16px;
  position: relative; z-index: 1;
}

/* ───────── VS CONTRAST TABLE · dark ───────── */

.impulse-platform .vs-table {
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 12px;
  overflow: hidden;
  background: rgba(255,255,255,0.02);
}

.impulse-platform .vs-table__head,
.impulse-platform .vs-table__row {
  display: grid;
  grid-template-columns: 220px 1fr 1.05fr;
  align-items: stretch;
}

.impulse-platform .vs-table__head {
  background: rgba(255,255,255,0.04);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.impulse-platform .vs-table__hk { padding: 14px 24px; }

.impulse-platform .vs-table__ha,
.impulse-platform .vs-table__hb {
  padding: 14px 24px;
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em;
  border-left: 1px solid rgba(255,255,255,0.08);
}

.impulse-platform .vs-table__ha { color: var(--ic-fg-dim); }

.impulse-platform .vs-table__hb { color: var(--ic-accent); }

.impulse-platform .vs-table__row { border-top: 1px solid rgba(255,255,255,0.06); }

.impulse-platform .vs-table__row:first-of-type { border-top: 0; }

.impulse-platform .vs-table__rk {
  display: flex; align-items: center; gap: 14px;
  padding: 22px 24px;
  font-family: var(--ic-font-display);
  font-size: clamp(20px, 1.9vw, 26px);
  letter-spacing: -0.02em;
  color: var(--ic-fg);
  background: rgba(255,255,255,0.02);
}

.impulse-platform .vs-table__rn {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-fg-dim);
}

.impulse-platform .vs-table__ra,
.impulse-platform .vs-table__rb {
  display: flex; align-items: center; gap: 14px;
  padding: 22px 24px;
  font-size: 15px; line-height: 1.45;
  border-left: 1px solid rgba(255,255,255,0.06);
}

.impulse-platform .vs-table__ra { color: var(--ic-fg-muted); }

.impulse-platform .vs-table__rb {
  color: var(--ic-fg);
  background: linear-gradient(90deg, rgba(245,151,0,0.04), transparent 100%);
}

.impulse-platform .vs-table__mark {
  display: inline-grid; place-items: center;
  width: 22px; height: 22px;
  border-radius: 5px;
  font-family: var(--ic-font-mono); font-size: 13px;
  color: var(--ic-fg-dim);
  background: rgba(255,255,255,0.04);
  flex: 0 0 auto;
}

.impulse-platform .vs-table__mark--good {
  background: var(--ic-accent);
  color: #0A0A0F;
}

@media (max-width: 880px) {
  .impulse-platform .vs-table__head { display: none; }
  .impulse-platform .vs-table__row { grid-template-columns: 1fr; }
  .impulse-platform .vs-table__rk { border-bottom: 1px solid rgba(255,255,255,0.06); }
  .impulse-platform .vs-table__ra,
  .impulse-platform .vs-table__rb {
    border-left: 0;
    border-top: 1px solid rgba(255,255,255,0.06);
  }
  .impulse-platform .vs-table__ra::before { content: "TYPICAL · "; font-family: var(--ic-font-mono); font-size: 10px; letter-spacing: 0.16em; margin-right: 4px; color: var(--ic-fg-dim); }
  .impulse-platform .vs-table__rb::before { content: "IMPULSE · "; font-family: var(--ic-font-mono); font-size: 10px; letter-spacing: 0.16em; margin-right: 4px; color: var(--ic-accent); }
}

/* ───────── VS CATEGORY TABS + PANEL · warm ───────── */

.impulse-platform .vs-tabs {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-bottom: 24px;
}

.impulse-platform .vs-tab {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 18px;
  border: 1px solid var(--ic-line);
  border-radius: 999px;
  background: var(--ic-bg-2);
  cursor: pointer;
  font-family: var(--ic-font-sans); font-weight: 500; font-size: 13px;
  color: var(--ic-fg);
  transition: border-color .15s ease, background .15s ease, transform .15s ease;
}

.impulse-platform .vs-tab:hover { border-color: var(--ic-line-2); transform: translateY(-1px); }

.impulse-platform .vs-tab.is-active {
  background: var(--ic-fg);
  color: var(--ic-bg);
  border-color: var(--ic-fg);
}

.impulse-platform .vs-tab__n {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.1em; color: var(--ic-fg-dim);
}

.impulse-platform .vs-tab.is-active .vs-tab__n { color: rgba(255,255,255,0.6); }

.impulse-platform .vs-cat {
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  background: var(--ic-bg-2);
  padding: clamp(28px, 3.5vw, 44px);
  display: flex; flex-direction: column; gap: 28px;
}

.impulse-platform .vs-cat__head {
  padding-bottom: 22px;
  border-bottom: 1px solid var(--ic-line);
  display: flex; flex-direction: column; gap: 8px;
}

.impulse-platform .vs-cat__tag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
}

.impulse-platform .vs-cat__h {
  font-family: var(--ic-font-display);
  font-size: clamp(28px, 3.2vw, 42px);
  line-height: 1.08; letter-spacing: -0.025em;
  color: var(--ic-fg); margin: 0;
}

.impulse-platform .vs-cat__grid {
  display: grid; grid-template-columns: 1fr 1.2fr;
  grid-gap: 0;
  gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  overflow: hidden;
}

@media (max-width: 880px) { .impulse-platform .vs-cat__grid { grid-template-columns: 1fr; } }

.impulse-platform .vs-cat__col {
  padding: 26px 28px;
  display: flex; flex-direction: column; gap: 12px;
}

.impulse-platform .vs-cat__col--well {
  background: rgba(0,0,0,0.03);
  border-right: 1px solid var(--ic-line);
}

@media (max-width: 880px) {
  .impulse-platform .vs-cat__col--well {
    border-right: 0;
    border-bottom: 1px solid var(--ic-line);
  }
}

.impulse-platform .vs-cat__col--gap { background: var(--ic-bg); }

.impulse-platform .vs-cat__colTag {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-fg-dim);
}

.impulse-platform .vs-cat__col--gap .vs-cat__colTag { color: var(--ic-accent); }

.impulse-platform .vs-cat__colDot {
  display: inline-grid; place-items: center;
  width: 22px; height: 22px;
  border-radius: 5px;
  font-family: var(--ic-font-mono); font-size: 13px;
}

.impulse-platform .vs-cat__colDot--good { background: rgba(0,0,0,0.08); color: var(--ic-fg); }

.impulse-platform .vs-cat__colDot--bad  { background: var(--ic-accent); color: #0A0A0F; }

.impulse-platform .vs-cat__col p {
  font-size: 15px; line-height: 1.6;
  color: var(--ic-fg);
  margin: 0;
}

.impulse-platform .vs-cat__extra {
  padding: 22px 24px;
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  background: var(--ic-bg);
  display: flex; flex-direction: column; gap: 10px;
}

.impulse-platform .vs-cat__extraTag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-fg-dim);
}

.impulse-platform .vs-cat__extra p {
  margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--ic-fg-muted);
}

.impulse-platform .vs-cat__verdict {
  padding: 22px 24px;
  border-radius: 10px;
  border: 1px solid rgba(245,151,0,0.4);
  background: linear-gradient(135deg, rgba(245,151,0,0.12), rgba(235,0,79,0.04));
  display: flex; flex-direction: column; gap: 8px;
}

.impulse-platform .vs-cat__verdictTag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.16em; color: var(--ic-accent);
}

.impulse-platform .vs-cat__verdict p {
  margin: 0;
  font-family: var(--ic-font-display);
  font-size: clamp(18px, 1.8vw, 23px);
  line-height: 1.35; letter-spacing: -0.015em;
  color: var(--ic-fg);
}

/* ───────── VS NOT FIT · dark refusal list ───────── */

.impulse-platform .vs-notfit {
  display: grid; grid-gap: 0; gap: 0;
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 12px; overflow: hidden;
  background: rgba(255,255,255,0.02);
}

.impulse-platform .vs-notfit__row {
  display: grid; grid-template-columns: 90px 1fr;
  grid-gap: 24px;
  gap: 24px; align-items: start;
  padding: 24px 28px;
  border-top: 1px solid rgba(255,255,255,0.06);
}

.impulse-platform .vs-notfit__row:first-child { border-top: 0; }

@media (max-width: 720px) {
  .impulse-platform .vs-notfit__row { grid-template-columns: 1fr; gap: 6px; }
}

.impulse-platform .vs-notfit__n {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
}

.impulse-platform .vs-notfit__h {
  font-family: var(--ic-font-display);
  font-size: clamp(20px, 2vw, 26px);
  letter-spacing: -0.02em; color: var(--ic-fg);
  margin-bottom: 6px;
}

.impulse-platform .vs-notfit__d {
  font-size: 14.5px; line-height: 1.6; color: var(--ic-fg-muted);
}

.impulse-platform .vs-notfit__foot {
  margin-top: 18px;
  font-family: var(--ic-font-display); font-style: italic;
  font-size: 17px; color: var(--ic-fg-muted);
}

/* ───────── VS RIGHT FIT · warm beliefs ───────── */

.impulse-platform .vs-rightfit {
  display: grid; grid-template-columns: 1fr 1.2fr;
  grid-gap: clamp(36px, 5vw, 80px);
  gap: clamp(36px, 5vw, 80px);
  align-items: start;
}

@media (max-width: 880px) { .impulse-platform .vs-rightfit { grid-template-columns: 1fr; } }

.impulse-platform .vs-rightfit__list {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-gap: 0; gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: 12px; overflow: hidden;
  background: var(--ic-bg-2);
}

.impulse-platform .vs-rightfit__list li {
  display: grid; grid-template-columns: 60px 1fr;
  align-items: center; grid-gap: 16px; gap: 16px;
  padding: 20px 24px;
  border-top: 1px solid var(--ic-line);
  font-family: var(--ic-font-display);
  font-size: clamp(18px, 1.8vw, 23px);
  line-height: 1.35; letter-spacing: -0.015em;
  color: var(--ic-fg);
}

.impulse-platform .vs-rightfit__list li:first-child { border-top: 0; }

.impulse-platform .vs-rightfit__n {
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.1em; color: var(--ic-accent);
}

/* ───────── VS TEST IT YOURSELF · dark ───────── */

.impulse-platform .vs-test {
  display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 16px; gap: 16px;
}

@media (max-width: 880px) { .impulse-platform .vs-test { grid-template-columns: 1fr; } }

.impulse-platform .vs-test__card {
  padding: 28px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  display: flex; flex-direction: column; gap: 12px;
}

.impulse-platform .vs-test__n {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
}

.impulse-platform .vs-test__h {
  font-family: var(--ic-font-display);
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.15; letter-spacing: -0.02em;
  color: var(--ic-fg);
}

.impulse-platform .vs-test__d {
  font-size: 14px; line-height: 1.6; color: var(--ic-fg-muted);
}

.impulse-platform .vs-test__link {
  margin-top: auto;
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em; color: var(--ic-accent);
  text-decoration: none;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.impulse-platform .vs-test__link:hover { color: var(--ic-fg); }

/* ============================================================
   ASSESSMENT PAGE
   ============================================================ */

/* ───────── AS HERO · dark with meta panel ───────── */

.impulse-platform .as-hero {
  position: relative;
  margin-top: -78px;
  padding: 160px var(--ic-pad) clamp(56px, 7vw, 96px);
  overflow: hidden;
  background: var(--ic-bg, #0A0A0F);
  color: var(--ic-fg, #FFFFFF);
}

.impulse-platform .as-hero::before {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(900px 500px at 100% 0%, rgba(245,151,0,0.18), transparent 65%),
    radial-gradient(700px 500px at 0% 100%, rgba(235,0,79,0.12), transparent 65%);
  pointer-events: none; z-index: 0;
}

.impulse-platform .as-hero__chrome {
  position: relative; z-index: 1;
  max-width: var(--ic-max);
  margin: 0 auto 48px;
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--ic-font-mono); font-size: 11px; letter-spacing: 0.16em;
  color: var(--ic-fg-dim);
}

.impulse-platform .as-hero__crumb { display: flex; gap: 10px; align-items: center; }

.impulse-platform .as-hero__crumb .is-current { color: var(--ic-fg); }

.impulse-platform .as-hero__sep { color: var(--ic-fg-dim); }

.impulse-platform .as-hero__grid {
  position: relative; z-index: 1;
  max-width: var(--ic-max); margin: 0 auto;
  display: grid; grid-template-columns: 1.15fr 0.9fr;
  grid-gap: clamp(40px, 6vw, 80px);
  gap: clamp(40px, 6vw, 80px); align-items: end;
}

@media (max-width: 980px) { .impulse-platform .as-hero__grid { grid-template-columns: 1fr; } }

.impulse-platform .as-hero__eyebrow {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ic-fg-muted);
  display: inline-flex; align-items: center; gap: 10px; margin-bottom: 28px;
}

.impulse-platform .as-hero__dot {
  width: 8px; height: 8px; border-radius: 999px;
  background: var(--ic-accent); box-shadow: 0 0 0 4px rgba(245,151,0,0.2);
}

.impulse-platform .as-hero__title {
  font-family: var(--ic-font-display); font-weight: 400;
  font-size: clamp(40px, 5.4vw, 76px);
  line-height: 1.02; letter-spacing: -0.03em;
  margin: 0; color: var(--ic-fg);
}

.impulse-platform .as-hero__title em {
  font-style: italic;
  background: var(--ic-accent-grad);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

.impulse-platform .as-hero__rule {
  width: 64px; height: 2px; background: var(--ic-accent); margin: 28px 0 22px;
}

.impulse-platform .as-hero__sub {
  font-size: clamp(15px, 1.15vw, 17px); line-height: 1.6;
  color: var(--ic-fg-muted); max-width: 56ch; margin: 0;
}

.impulse-platform .as-hero__sub em {
  font-family: var(--ic-font-display); font-style: italic; color: var(--ic-fg);
}

.impulse-platform .as-hero__meta {
  padding: 28px;
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  background: var(--ic-bg-2);
  display: flex; flex-direction: column;
}

.impulse-platform .as-hero__metaRow {
  display: flex; justify-content: space-between; gap: 16px; align-items: center;
  padding: 14px 0;
  border-top: 1px solid var(--ic-line);
  font-size: 14px; color: var(--ic-fg);
}

.impulse-platform .as-hero__metaRow:first-child { border-top: 0; padding-top: 0; }

.impulse-platform .as-hero__metaRow span {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-fg-dim);
}

.impulse-platform .as-hero__metaRow strong {
  font-family: var(--ic-font-display);
  font-weight: 400; font-size: 17px;
  letter-spacing: -0.01em; color: var(--ic-fg);
}

.impulse-platform .as-hero__cta {
  display: inline-flex; align-items: center; justify-content: center;
  margin-top: 18px;
  padding: 14px 18px;
  background: linear-gradient(135deg, #F59700 0%, #EB004F 100%);
  color: #FFFFFF;
  font-family: var(--ic-font-sans); font-weight: 500; font-size: 14px;
  border-radius: 999px;
  text-decoration: none;
  border: 0;
  box-shadow: 0 14px 36px -14px rgba(235, 0, 79, 0.45);
}

/* ───────── AS RETURNS · warm 6-card grid ───────── */

.impulse-platform .as-returns {
  display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 12px; gap: 12px;
}

@media (max-width: 980px) { .impulse-platform .as-returns { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 600px) { .impulse-platform .as-returns { grid-template-columns: 1fr; } }

.impulse-platform .as-return {
  padding: 22px 24px;
  border: 1px solid var(--ic-line);
  border-radius: 12px;
  background: var(--ic-bg-2);
  display: flex; flex-direction: column; gap: 8px;
}

.impulse-platform .as-return__n {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
}

.impulse-platform .as-return__h {
  font-family: var(--ic-font-display);
  font-size: 19px; letter-spacing: -0.015em; color: var(--ic-fg);
}

.impulse-platform .as-return__d {
  font-size: 14px; line-height: 1.55; color: var(--ic-fg-muted);
}

/* ───────── AS TOOL · quiz + result ───────── */

.impulse-platform .as-tool {
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  background: var(--ic-bg-2);
  overflow: hidden;
}

.impulse-platform .as-tool__bar {
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 22px;
  background: var(--ic-bg-3);
  border-bottom: 1px solid var(--ic-line);
}

.impulse-platform .as-tool__barTag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-fg-muted);
}

.impulse-platform .as-tool__barProgress { display: flex; align-items: center; gap: 12px; }

.impulse-platform .as-tool__barProgress > span {
  font-family: var(--ic-font-mono); font-size: 12px; color: var(--ic-fg);
}

.impulse-platform .as-tool__progress {
  width: 180px; height: 6px;
  background: var(--ic-line); border-radius: 999px; overflow: hidden;
}

@media (max-width: 480px) {
  .impulse-platform .as-tool__bar {
    flex-direction: column; align-items: flex-start; gap: 10px;
    padding: 12px 16px;
  }
  .impulse-platform .as-tool__progress { width: 100%; }
  .impulse-platform .as-tool__barProgress { width: 100%; }
}

.impulse-platform .as-tool__progressFill {
  height: 100%;
  background: var(--ic-accent-grad);
  transition: width .25s ease;
}

.impulse-platform .as-tool__body {
  padding: clamp(32px, 4vw, 56px);
}

.impulse-platform .as-q__axis {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent); margin-bottom: 12px;
}

.impulse-platform .as-q__h {
  font-family: var(--ic-font-display);
  font-size: clamp(24px, 2.6vw, 36px);
  line-height: 1.2; letter-spacing: -0.02em;
  margin: 0 0 28px; color: var(--ic-fg);
}

.impulse-platform .as-q__answers { display: grid; grid-gap: 10px; gap: 10px; }

.impulse-platform .as-q__answer {
  display: grid; grid-template-columns: 40px 1fr; grid-gap: 16px; gap: 16px;
  align-items: start;
  padding: 18px 22px;
  border: 1px solid var(--ic-line);
  border-radius: 10px;
  background: var(--ic-bg);
  cursor: pointer; text-align: left;
  font-family: inherit; color: inherit;
  transition: border-color .15s ease, background .15s ease, transform .15s ease;
}

.impulse-platform .as-q__answer:hover {
  border-color: var(--ic-accent);
  background: rgba(245,151,0,0.06);
  transform: translateX(4px);
}

.impulse-platform .as-q__answerN {
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em; color: var(--ic-accent);
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border: 1px solid var(--ic-accent);
  border-radius: 6px;
  background: var(--ic-accent-soft, rgba(245,151,0,0.14));
}

.impulse-platform .as-q__answerT {
  font-size: 15.5px; line-height: 1.5; color: var(--ic-fg);
  padding-top: 4px;
}

.impulse-platform .as-q__foot {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 24px;
  font-family: var(--ic-font-mono); font-size: 12px;
  color: var(--ic-fg-dim);
}

.impulse-platform .as-q__back {
  background: transparent; border: 0; cursor: pointer;
  font-family: var(--ic-font-mono); font-size: 12px;
  color: var(--ic-accent); padding: 0;
}

/* ───────── AS RESULT card ───────── */

.impulse-platform .as-result__head {
  display: grid; grid-template-columns: 1.4fr auto; grid-gap: 24px; gap: 24px;
  align-items: center;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--ic-line);
  margin-bottom: 28px;
}

@media (max-width: 720px) { .impulse-platform .as-result__head { grid-template-columns: 1fr; } }

.impulse-platform .as-result__tag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent); margin-bottom: 10px;
}

.impulse-platform .as-result__level {
  font-family: var(--ic-font-display);
  font-size: clamp(30px, 4vw, 52px);
  letter-spacing: -0.025em; line-height: 1.05;
  color: var(--ic-fg);
}

.impulse-platform .as-result__sub {
  margin-top: 10px;
  font-size: 13.5px; line-height: 1.55;
  color: var(--ic-fg-muted);
}

.impulse-platform .as-result__score {
  display: flex; flex-direction: column; align-items: flex-end;
  padding: 18px 22px;
  border: 1px solid var(--ic-accent);
  border-radius: 12px;
  background: rgba(245,151,0,0.14);
}

.impulse-platform .as-result__score span {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
}

.impulse-platform .as-result__score strong {
  font-family: var(--ic-font-display);
  font-size: 36px; letter-spacing: -0.02em; color: var(--ic-fg);
}

.impulse-platform .as-result__score small {
  font-family: var(--ic-font-mono); font-size: 14px;
  color: var(--ic-fg-dim); margin-left: 4px;
}

.impulse-platform .as-result__grid {
  display: grid; grid-template-columns: 1fr 1fr; grid-gap: 36px; gap: 36px;
}

@media (max-width: 880px) { .impulse-platform .as-result__grid { grid-template-columns: 1fr; } }

.impulse-platform .as-result__colH {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-fg-dim); margin-bottom: 14px;
}

.impulse-platform .as-result__bars { display: flex; flex-direction: column; gap: 12px; }

.impulse-platform .as-bar {
  display: grid; grid-template-columns: 90px 1fr 40px; grid-gap: 12px; gap: 12px;
  align-items: center;
}

.impulse-platform .as-bar__k {
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em; color: var(--ic-fg);
}

.impulse-platform .as-bar__track {
  height: 8px;
  background: var(--ic-line); border-radius: 999px; overflow: hidden;
}

.impulse-platform .as-bar__fill {
  height: 100%;
  background: var(--ic-accent-grad);
  border-radius: 999px;
}

.impulse-platform .as-bar__v {
  font-family: var(--ic-font-mono); font-size: 12px;
  color: var(--ic-fg); text-align: right;
}

.impulse-platform .as-result__wins {
  list-style: none; padding: 0; margin: 0;
  border: 1px solid var(--ic-line); border-radius: 10px; overflow: hidden;
}

.impulse-platform .as-result__wins li {
  padding: 14px 16px;
  border-top: 1px solid var(--ic-line);
  font-size: 14px; line-height: 1.5; color: var(--ic-fg);
  display: flex; gap: 10px;
}

.impulse-platform .as-result__wins li::before { content: "→"; color: var(--ic-accent); }

.impulse-platform .as-result__wins li:first-child { border-top: 0; }

.impulse-platform .as-result__rec {
  margin-top: 18px;
  padding: 16px 18px;
  border: 1px solid var(--ic-line); border-radius: 10px;
  background: var(--ic-bg);
}

.impulse-platform .as-result__recTag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-fg-dim); margin-bottom: 6px;
}

.impulse-platform .as-result__recV {
  font-family: var(--ic-font-display);
  font-size: 24px; letter-spacing: -0.02em; color: var(--ic-fg);
}

.impulse-platform .as-result__actions {
  display: flex; gap: 14px; align-items: center; flex-wrap: wrap;
  margin-top: 32px;
  padding-top: 28px;
  border-top: 1px solid var(--ic-line);
}

.impulse-platform .as-result__primary { display: inline-flex; }

.impulse-platform .as-result__reset {
  background: transparent; border: 1px solid var(--ic-line-2);
  color: var(--ic-fg);
  font-family: var(--ic-font-sans); font-weight: 500; font-size: 14px;
  padding: 13px 18px; border-radius: 999px;
  cursor: pointer;
}

.impulse-platform .as-result__note {
  margin-top: 14px;
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.06em; color: var(--ic-fg-dim);
}

/* ───────── AS EMAIL GATE · simple form ───────── */

.impulse-platform .as-gate {
  margin-top: 24px;
  padding: 20px 22px;
  border: 1px solid rgba(245,151,0,0.4);
  border-radius: 12px;
  background: linear-gradient(160deg, rgba(245,151,0,0.10), rgba(235,0,79,0.04));
}

.impulse-platform .as-gate__tag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.16em; color: var(--ic-accent); margin-bottom: 8px;
}

.impulse-platform .as-gate__h {
  font-family: var(--ic-font-display);
  font-size: clamp(20px, 2vw, 26px);
  letter-spacing: -0.02em; color: var(--ic-fg); margin-bottom: 14px;
}

.impulse-platform .as-gate__form {
  display: flex; gap: 10px; flex-wrap: wrap;
  margin-top: 8px;
}

.impulse-platform .as-gate__form input[type="email"] {
  flex: 1 1 240px;
  padding: 12px 14px;
  border: 1px solid var(--ic-line);
  border-radius: 999px;
  background: var(--ic-bg);
  color: var(--ic-fg);
  font: 500 14px var(--ic-font-sans);
  outline: none;
  transition: border-color .15s ease;
}

.impulse-platform .as-gate__form input[type="email"]:focus {
  border-color: var(--ic-accent);
}

.impulse-platform .as-gate__submit {
  padding: 12px 22px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg, #F59700 0%, #EB004F 100%);
  color: #FFFFFF;
  font: 500 14px var(--ic-font-sans);
  cursor: pointer;
  box-shadow: 0 14px 36px -14px rgba(235, 0, 79, 0.45);
}

.impulse-platform .as-gate__note {
  margin-top: 10px;
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.06em; color: var(--ic-fg-dim);
}

.impulse-platform .as-gate__success {
  margin-top: 14px;
  padding: 14px 16px;
  border: 1px solid var(--ic-accent);
  border-radius: 10px;
  background: rgba(245,151,0,0.08);
  font-size: 14px; color: var(--ic-fg);
}

/* ───────── AS AXES · dark 4-up grid ───────── */

.impulse-platform .as-axes {
  display: grid; grid-template-columns: repeat(4, 1fr); grid-gap: 12px; gap: 12px;
}

@media (max-width: 1100px) { .impulse-platform .as-axes { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 540px)  { .impulse-platform .as-axes { grid-template-columns: 1fr; } }

.impulse-platform .as-axis {
  padding: 22px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  display: flex; flex-direction: column; gap: 8px;
  min-height: 180px;
}

.impulse-platform .as-axis__n {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
}

.impulse-platform .as-axis__t {
  font-family: var(--ic-font-display);
  font-size: 22px; letter-spacing: -0.02em; color: var(--ic-fg);
}

.impulse-platform .as-axis__d {
  font-size: 13.5px; line-height: 1.55; color: var(--ic-fg-muted);
}

/* ───────── AS ACCURACY · 2-col warm with pull-quote ───────── */

.impulse-platform .as-accuracy {
  display: grid; grid-template-columns: 1fr 1.4fr; grid-gap: clamp(36px, 5vw, 80px); gap: clamp(36px, 5vw, 80px);
  align-items: start;
}

@media (max-width: 880px) { .impulse-platform .as-accuracy { grid-template-columns: 1fr; } }

.impulse-platform .as-accuracy__body p {
  font-size: 15.5px; line-height: 1.6; color: var(--ic-fg-muted);
  margin: 0 0 14px;
}

.impulse-platform .as-accuracy__body strong { color: var(--ic-fg); font-weight: 600; }

.impulse-platform .as-accuracy__kicker {
  font-family: var(--ic-font-display);
  font-size: clamp(18px, 1.6vw, 22px) !important;
  line-height: 1.4 !important;
  color: var(--ic-fg) !important;
  margin-top: 18px !important;
  padding: 18px 20px;
  background: var(--ic-bg-2);
  border-left: 3px solid var(--ic-accent);
  border-radius: 0 8px 8px 0;
}

.impulse-platform .as-accuracy__kicker em { font-style: italic; }

/* ───────── AS PRIVACY · dark ───────── */

.impulse-platform .as-priv {
  display: grid; grid-gap: 0; gap: 0;
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 12px; overflow: hidden;
  background: rgba(255,255,255,0.02);
}

.impulse-platform .as-priv__row {
  display: grid; grid-template-columns: 140px 1fr;
  grid-gap: 24px;
  gap: 24px; align-items: start;
  padding: 22px 26px;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.impulse-platform .as-priv__row:first-child { border-top: 0; }

@media (max-width: 720px) {
  .impulse-platform .as-priv__row { grid-template-columns: 1fr; gap: 6px; }
}

.impulse-platform .as-priv__k {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
}

.impulse-platform .as-priv__v {
  font-size: 14.5px; line-height: 1.6; color: var(--ic-fg);
}

/* ============================================================
   HubLMS product page — /products/hublms
   Consumed by templates/product-hublms.hubl.html and the
   HubLMS* React modules. Scoped under .impulse-platform so styles
   don't bleed into other templates.
   Reuses tokens + .kicker / .h-display / .lede from
   _service-detail.hubl.css and _platform-pages.hubl.css.
   Brand reference: hubLMS reverse logo + orange→magenta gradient.
   ============================================================ */

/* ── HUBLMS HERO · colorized full-bleed gradient + product logo ──
   Palette mirrors the FinisherHeader config on hublms.com staging:
     background  #2d0241 (deep purple — dominant base)
     particles   #f6861f (orange) · #eb004f (magenta) · #2d0241
   Purple is the floor; orange + magenta float over it as warm radials. */

.impulse-platform .hublms-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin-top: -78px;
  padding: 160px var(--ic-pad) clamp(64px, 7vw, 104px);
  background:
    radial-gradient(900px 520px at 12% 8%, rgba(246, 134, 31, 0.45), transparent 62%),
    radial-gradient(900px 600px at 88% 92%, rgba(235, 0, 79, 0.42), transparent 65%),
    radial-gradient(1200px 700px at 50% 50%, rgba(45, 2, 65, 0.0) 0%, rgba(45, 2, 65, 0.55) 80%),
    linear-gradient(140deg, #2d0241 0%, #4a0a5d 45%, #2d0241 100%);
  color: #FFFFFF;
}

.impulse-platform .hublms-hero::before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(1000px 600px at 50% 40%, #000 50%, transparent 100%);
  -webkit-mask-image: radial-gradient(1000px 600px at 50% 40%, #000 50%, transparent 100%);
  z-index: 0;
}

.impulse-platform .hublms-hero__chrome {
  position: relative; z-index: 1;
  max-width: var(--ic-max);
  margin: 0 auto 48px;
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--ic-font-mono);
  font-size: 11px; letter-spacing: 0.16em;
  color: rgba(255,255,255,0.72);
}

.impulse-platform .hublms-hero__crumb { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

.impulse-platform .hublms-hero__crumb .is-current { color: #FFFFFF; }

.impulse-platform .hublms-hero__sep { color: rgba(255,255,255,0.32); }

.impulse-platform .hublms-hero__fig { color: rgba(255,255,255,0.7); }

.impulse-platform .hublms-hero__grid {
  position: relative; z-index: 1;
  max-width: var(--ic-max); margin: 0 auto;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  grid-gap: clamp(40px, 6vw, 80px);
  gap: clamp(40px, 6vw, 80px);
  align-items: end;
}

@media (max-width: 980px) {
  .impulse-platform .hublms-hero__grid { grid-template-columns: 1fr; }
}

.impulse-platform .hublms-hero__logo {
  display: block;
  height: auto;
  max-width: 260px;
  margin: 0 0 28px;
  filter: drop-shadow(0 6px 16px rgba(0,0,0,0.18));
}

.impulse-platform .hublms-hero__eyebrow {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: rgba(255,255,255,0.88);
  display: inline-flex; align-items: center; gap: 10px;
  margin-bottom: 22px;
}

.impulse-platform .hublms-hero__dot {
  width: 8px; height: 8px; border-radius: 999px;
  background: #FFFFFF; box-shadow: 0 0 0 4px rgba(255,255,255,0.18);
}

.impulse-platform .hublms-hero__title {
  font-family: var(--ic-font-display);
  font-weight: 400;
  font-size: clamp(40px, 5.5vw, 76px);
  line-height: 1.0; letter-spacing: -0.03em;
  margin: 0; color: #FFFFFF;
}

.impulse-platform .hublms-hero__title em { font-style: italic; }

.impulse-platform .hublms-hero__rule {
  width: 64px; height: 2px;
  background: #FFFFFF;
  margin: 26px 0 22px;
}

.impulse-platform .hublms-hero__sub {
  font-family: var(--ic-font-sans);
  font-size: clamp(16px, 1.2vw, 18px);
  line-height: 1.55; letter-spacing: -0.005em;
  max-width: 56ch;
  color: rgba(255,255,255,0.92);
  margin: 0;
}

.impulse-platform .hublms-hero__sub em {
  font-family: var(--ic-font-display);
  font-style: italic;
  font-size: 1.06em;
  color: #FFFFFF;
}

.impulse-platform .hublms-hero__cta {
  display: flex; gap: 12px; flex-wrap: wrap;
  margin-top: 32px;
}

.impulse-platform .hublms-hero__btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 22px;
  border-radius: 999px;
  font-family: var(--ic-font-mono);
  font-size: 12.5px; letter-spacing: 0.06em;
  text-decoration: none;
  transition: transform 120ms ease, background 120ms ease, color 120ms ease;
}

.impulse-platform .hublms-hero__btn--solid {
  background: #FFFFFF; color: #0e0e1d;
  border: 1px solid #FFFFFF;
}

.impulse-platform .hublms-hero__btn--solid:hover { transform: translateY(-1px); background: #fff; }

.impulse-platform .hublms-hero__btn--ghost {
  background: transparent; color: #FFFFFF;
  border: 1px solid rgba(255,255,255,0.55);
}

.impulse-platform .hublms-hero__btn--ghost:hover {
  background: rgba(255,255,255,0.1);
}

.impulse-platform .hublms-hero__note {
  margin-top: 16px;
  font-family: var(--ic-font-mono); font-size: 11.5px;
  letter-spacing: 0.06em;
  color: rgba(255,255,255,0.7);
}

/* Side panel — kernel-property fake-UI illustration */

.impulse-platform .hublms-hero__panel {
  position: relative;
  border: 1px solid rgba(255,255,255,0.28);
  border-radius: 14px;
  background: rgba(10,10,20,0.32);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  overflow: hidden;
  box-shadow: 0 24px 60px -32px rgba(0,0,0,0.6);
}

.impulse-platform .hublms-hero__panelChrome {
  display: flex; align-items: center; gap: 7px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.14);
  background: rgba(10,10,20,0.5);
}

.impulse-platform .hublms-hero__panelDot {
  width: 8px; height: 8px; border-radius: 999px;
  background: rgba(255,255,255,0.45);
}

.impulse-platform .hublms-hero__panelDot:first-child { background: #ff5f57; }

.impulse-platform .hublms-hero__panelDot:nth-child(2) { background: #febc2e; }

.impulse-platform .hublms-hero__panelDot:nth-child(3) { background: #28c840; }

.impulse-platform .hublms-hero__panelTitle {
  margin-left: 10px;
  font-family: var(--ic-font-mono); font-size: 11px;
  color: rgba(255,255,255,0.7); letter-spacing: 0.04em;
}

.impulse-platform .hublms-hero__panelStage {
  padding: 18px 18px 6px;
}

.impulse-platform .hublms-hero__panelList {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
  font-family: var(--ic-font-mono); font-size: 12.5px;
  color: rgba(255,255,255,0.85);
}

.impulse-platform .hublms-hero__panelList li {
  display: flex; justify-content: space-between; gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px dashed rgba(255,255,255,0.14);
}

.impulse-platform .hublms-hero__panelList li:last-child { border-bottom: 0; }

.impulse-platform .hublms-hero__panelList .ok {
  color: #b8ffd0;
}

.impulse-platform .hublms-hero__panelCaption {
  display: flex; justify-content: space-between;
  padding: 12px 16px;
  border-top: 1px solid rgba(255,255,255,0.14);
  font-family: var(--ic-font-mono); font-size: 10.5px;
  letter-spacing: 0.12em; color: rgba(255,255,255,0.65);
  background: rgba(10,10,20,0.35);
}

/* ── Shared sec__head — already exists in platform-thesis.hubl.css under
   .impulse-platform .sec__head. Add fallback in case this file is loaded
   without that one. ── */

.impulse-platform .sec__head { max-width: 880px; margin-bottom: clamp(32px, 4vw, 56px); }

/* ── HUBLMS THESIS · 2-col + pull quote (mirrors protocol-thesis) ── */

.impulse-platform .hublms-thesis {
  max-width: var(--ic-max); margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.35fr;
  grid-gap: clamp(32px, 4vw, 64px);
  gap: clamp(32px, 4vw, 64px);
  align-items: start;
}

@media (max-width: 880px) {
  .impulse-platform .hublms-thesis { grid-template-columns: 1fr; }
}

.impulse-platform .hublms-thesis__body { display: flex; flex-direction: column; gap: 16px; color: var(--ic-fg-muted); font-size: 16px; line-height: 1.6; }

.impulse-platform .hublms-thesis__body p { margin: 0; }

.impulse-platform .hublms-thesis__body strong { color: var(--ic-fg); }

.impulse-platform .hublms-thesis__lede {
  position: relative;
  padding-left: 18px;
  margin: 8px 0 0;
  font-family: var(--ic-font-display);
  font-size: clamp(20px, 1.7vw, 24px);
  line-height: 1.4;
  color: var(--ic-fg);
}

.impulse-platform .hublms-thesis__lede::before {
  content: ""; position: absolute; left: 0; top: 6px; bottom: 6px;
  width: 3px; background: var(--ic-accent-grad);
  border-radius: 2px;
}

.impulse-platform .hublms-thesis__kicker {
  margin: 4px 0 0;
  font-family: var(--ic-font-mono);
  font-size: 13px; letter-spacing: 0.04em;
  color: var(--ic-fg-dim);
}

.impulse-platform .hublms-thesis__kicker em { color: var(--ic-accent); font-style: italic; }

/* ── HUBLMS WHY · numbered story rows (Impulse-as-builder credibility) ── */

.impulse-platform .hublms-why {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-gap: 0; gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  overflow: hidden;
  background: var(--ic-bg-2);
}

.impulse-platform .hublms-why__row {
  display: grid; grid-template-columns: 220px 1fr;
  grid-gap: 28px;
  gap: 28px; align-items: start;
  padding: 26px 30px;
  border-top: 1px solid var(--ic-line);
}

.impulse-platform .hublms-why__row:first-child { border-top: 0; }

.impulse-platform .hublms-why__tag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
  padding-top: 4px;
}

.impulse-platform .hublms-why__h {
  font-family: var(--ic-font-display); font-weight: 400;
  font-size: clamp(20px, 1.7vw, 26px);
  letter-spacing: -0.015em;
  color: var(--ic-fg);
  margin-bottom: 8px;
  line-height: 1.25;
}

.impulse-platform .hublms-why__d {
  color: var(--ic-fg-muted);
  font-size: 15px; line-height: 1.6;
}

.impulse-platform .hublms-why__d p { margin: 0; }

.impulse-platform .hublms-why__d strong { color: var(--ic-fg); }

@media (max-width: 880px) {
  .impulse-platform .hublms-why__row { grid-template-columns: 1fr; gap: 8px; }
}

.impulse-platform .hublms-why__signoff {
  margin: 24px 0 0;
  font-family: var(--ic-font-display);
  font-style: italic;
  font-size: clamp(18px, 1.5vw, 22px);
  line-height: 1.45;
  color: var(--ic-fg);
  border-left: 3px solid var(--ic-accent);
  padding-left: 16px;
}

.impulse-platform .hublms-why__signoff p { margin: 0; }

.impulse-platform .hublms-why__signoff strong { color: var(--ic-accent); font-style: normal; font-family: var(--ic-font-sans); font-weight: 600; }

/* ── HUBLMS CAPABILITIES · responsive grid of capability cards ── */

.impulse-platform .hublms-cap {
  display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 16px; gap: 16px;
}

@media (max-width: 1100px) { .impulse-platform .hublms-cap { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 640px) { .impulse-platform .hublms-cap { grid-template-columns: 1fr; } }

.impulse-platform .hublms-cap__card {
  padding: 24px;
  background: var(--ic-bg-2);
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  display: flex; flex-direction: column; gap: 10px;
  transition: border-color 120ms ease, transform 120ms ease;
}

.impulse-platform .hublms-cap__card:hover { border-color: var(--ic-line-2); transform: translateY(-2px); }

.impulse-platform .hublms-cap__n {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.12em; color: var(--ic-accent);
}

.impulse-platform .hublms-cap__h {
  font-family: var(--ic-font-display); font-weight: 400;
  font-size: clamp(20px, 1.8vw, 24px);
  letter-spacing: -0.015em;
  color: var(--ic-fg);
  margin: 0;
}

.impulse-platform .hublms-cap__d {
  color: var(--ic-fg-muted);
  font-size: 14.5px; line-height: 1.55;
}

.impulse-platform .hublms-cap__d p { margin: 0; }

.impulse-platform .hublms-cap__link {
  display: inline-block; margin-top: 20px;
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em; color: var(--ic-accent);
  text-decoration: none;
}

.impulse-platform .hublms-cap__link:hover { color: var(--ic-fg); }

/* ── HUBLMS USE CASES · 3-up cards with two stacked rows ── */

.impulse-platform .hublms-use {
  display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 16px; gap: 16px;
}

@media (max-width: 980px) { .impulse-platform .hublms-use { grid-template-columns: 1fr; } }

.impulse-platform .hublms-use__card {
  padding: 28px;
  background: var(--ic-bg-2);
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  display: flex; flex-direction: column; gap: 14px;
}

.impulse-platform .hublms-use__n {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.12em; color: var(--ic-accent);
}

.impulse-platform .hublms-use__h {
  font-family: var(--ic-font-display); font-weight: 400;
  font-size: clamp(24px, 2.2vw, 30px);
  letter-spacing: -0.02em;
  color: var(--ic-fg);
  margin: 0;
}

.impulse-platform .hublms-use__row { display: flex; flex-direction: column; gap: 4px; }

.impulse-platform .hublms-use__row-h {
  font-family: var(--ic-font-mono); font-size: 10.5px;
  letter-spacing: 0.14em; color: var(--ic-fg-dim);
}

.impulse-platform .hublms-use__row-d { font-size: 14.5px; line-height: 1.55; color: var(--ic-fg-muted); }

.impulse-platform .hublms-use__row-d p { margin: 0; }

.impulse-platform .hublms-use__link {
  margin-top: auto;
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em; color: var(--ic-accent);
  text-decoration: none;
}

.impulse-platform .hublms-use__link:hover { color: var(--ic-fg); }

/* ── HUBLMS REPLACES · tagged definition list ── */

.impulse-platform .hublms-rep {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-gap: 0; gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  overflow: hidden;
  background: var(--ic-bg-2);
}

.impulse-platform .hublms-rep__row {
  display: grid; grid-template-columns: 180px 1fr;
  grid-gap: 24px;
  gap: 24px; align-items: start;
  padding: 22px 28px;
  border-top: 1px solid var(--ic-line);
}

.impulse-platform .hublms-rep__row:first-child { border-top: 0; }

.impulse-platform .hublms-rep__tag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
  padding-top: 2px;
}

.impulse-platform .hublms-rep__h {
  font-family: var(--ic-font-display);
  font-size: clamp(18px, 1.5vw, 22px);
  letter-spacing: -0.015em;
  color: var(--ic-fg);
  margin-bottom: 4px;
}

.impulse-platform .hublms-rep__d {
  font-size: 14.5px; line-height: 1.55;
  color: var(--ic-fg-muted);
}

@media (max-width: 720px) {
  .impulse-platform .hublms-rep__row { grid-template-columns: 1fr; gap: 8px; }
}

.impulse-platform .hublms-rep__foot {
  margin: 20px 0 0;
  font-size: 14.5px; color: var(--ic-fg-muted);
}

.impulse-platform .hublms-rep__foot p { margin: 0; }

/* ── HUBLMS NATIVE · numbered reason rows ── */

.impulse-platform .hublms-native {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 0;
  border-top: 1px solid var(--ic-line);
}

.impulse-platform .hublms-native__row {
  display: grid; grid-template-columns: 80px 1fr;
  grid-gap: 24px;
  gap: 24px; align-items: start;
  padding: 28px 0;
  border-bottom: 1px solid var(--ic-line);
}

.impulse-platform .hublms-native__n {
  font-family: var(--ic-font-mono);
  font-size: 14px; letter-spacing: 0.1em;
  color: var(--ic-accent);
}

.impulse-platform .hublms-native__h {
  font-family: var(--ic-font-display); font-weight: 400;
  font-size: clamp(22px, 2vw, 28px);
  letter-spacing: -0.02em;
  color: var(--ic-fg);
  margin-bottom: 10px;
}

.impulse-platform .hublms-native__d {
  color: var(--ic-fg-muted);
  font-size: 15px; line-height: 1.6;
}

.impulse-platform .hublms-native__d p { margin: 0; }

@media (max-width: 720px) {
  .impulse-platform .hublms-native__row { grid-template-columns: 1fr; gap: 8px; }
}

.impulse-platform .hublms-native__link {
  display: inline-block; margin-top: 22px;
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em; color: var(--ic-accent);
  text-decoration: none;
}

.impulse-platform .hublms-native__link:hover { color: var(--ic-fg); }

/* ── HUBLMS MEASURE · tagged rows (mirrors protocol-gov) ── */

.impulse-platform .hublms-meas {
  display: grid; grid-gap: 0; gap: 0;
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  overflow: hidden;
  background: var(--ic-bg-2);
}

.impulse-platform .hublms-meas__row {
  display: grid; grid-template-columns: 160px 1fr;
  align-items: start; grid-gap: 24px; gap: 24px;
  padding: 22px 28px;
  border-top: 1px solid var(--ic-line);
}

.impulse-platform .hublms-meas__row:first-child { border-top: 0; }

.impulse-platform .hublms-meas__tag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
  padding-top: 2px;
}

.impulse-platform .hublms-meas__h {
  font-family: var(--ic-font-display);
  font-size: clamp(18px, 1.5vw, 22px);
  letter-spacing: -0.015em;
  color: var(--ic-fg);
  margin-bottom: 4px;
}

.impulse-platform .hublms-meas__d {
  font-size: 14.5px; line-height: 1.55;
  color: var(--ic-fg-muted);
}

@media (max-width: 720px) {
  .impulse-platform .hublms-meas__row { grid-template-columns: 1fr; gap: 8px; }
}

.impulse-platform .hublms-meas__foot {
  margin: 20px 0 0;
  font-size: 14.5px; color: var(--ic-fg-muted);
}

.impulse-platform .hublms-meas__foot p { margin: 0; }

/* ── HUBLMS PRICING · 3-up tier cards ── */

.impulse-platform .hublms-price {
  display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 18px; gap: 18px;
}

@media (max-width: 980px) { .impulse-platform .hublms-price { grid-template-columns: 1fr; } }

.impulse-platform .hublms-price__card {
  position: relative;
  padding: 28px;
  background: var(--ic-bg-2);
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  display: flex; flex-direction: column; gap: 12px;
}

.impulse-platform .hublms-price__card--feat {
  border-color: var(--ic-accent);
  background: linear-gradient(160deg, var(--ic-bg-2) 0%, var(--ic-accent-soft, rgba(245,151,0,0.10)) 100%);
  box-shadow: 0 16px 40px -22px rgba(245,151,0,0.45);
}

.impulse-platform .hublms-price__ribbon {
  position: absolute; top: -10px; right: 16px;
  padding: 4px 10px;
  font-family: var(--ic-font-mono); font-size: 10px;
  letter-spacing: 0.16em;
  color: #fff;
  background: var(--ic-accent-grad);
  border-radius: 999px;
}

.impulse-platform .hublms-price__tag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
}

.impulse-platform .hublms-price__h {
  font-family: var(--ic-font-display); font-weight: 400;
  font-size: clamp(24px, 2.2vw, 30px);
  letter-spacing: -0.02em;
  color: var(--ic-fg);
  margin: 0;
}

.impulse-platform .hublms-price__hint {
  font-family: var(--ic-font-mono); font-size: 11.5px;
  letter-spacing: 0.06em;
  color: var(--ic-fg-dim);
}

.impulse-platform .hublms-price__blurb {
  font-size: 14.5px; line-height: 1.55;
  color: var(--ic-fg-muted);
  margin: 0;
}

.impulse-platform .hublms-price__list {
  list-style: none; margin: 8px 0 0; padding: 0;
  display: flex; flex-direction: column; gap: 6px;
  font-size: 14px; color: var(--ic-fg-muted);
}

.impulse-platform .hublms-price__list li {
  padding-left: 18px; position: relative;
}

.impulse-platform .hublms-price__list li::before {
  content: ""; position: absolute; left: 0; top: 8px;
  width: 8px; height: 8px;
  border-radius: 999px;
  background: var(--ic-accent);
}

.impulse-platform .hublms-price__cta {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 18px;
  border-radius: 999px;
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ic-fg); background: transparent;
  border: 1px solid var(--ic-line-2);
  text-decoration: none;
  transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}

.impulse-platform .hublms-price__cta:hover {
  background: var(--ic-accent-grad);
  border-color: transparent;
  color: #fff;
}

.impulse-platform .hublms-price__card--feat .hublms-price__cta {
  background: var(--ic-accent-grad);
  border-color: transparent;
  color: #fff;
}

.impulse-platform .hublms-price__card--feat .hublms-price__cta:hover {
  filter: brightness(1.05);
}

.impulse-platform .hublms-price__link {
  display: inline-block; margin-top: 20px;
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em; color: var(--ic-accent);
  text-decoration: none;
}

.impulse-platform .hublms-price__link:hover { color: var(--ic-fg); }

/* ── HUBLMS CUSTOMERS · 4-up named clients ── */

.impulse-platform .hublms-cust {
  display: grid; grid-template-columns: repeat(4, 1fr); grid-gap: 14px; gap: 14px;
}

@media (max-width: 1100px) { .impulse-platform .hublms-cust { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 620px) { .impulse-platform .hublms-cust { grid-template-columns: 1fr; } }

.impulse-platform .hublms-cust__card {
  padding: 22px;
  background: var(--ic-bg-2);
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  display: flex; flex-direction: column; gap: 10px;
}

.impulse-platform .hublms-cust__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }

.impulse-platform .hublms-cust__h {
  font-family: var(--ic-font-display); font-weight: 400;
  font-size: clamp(20px, 1.7vw, 24px);
  letter-spacing: -0.02em;
  color: var(--ic-fg);
  margin: 0;
}

.impulse-platform .hublms-cust__scope {
  font-family: var(--ic-font-mono); font-size: 10px;
  letter-spacing: 0.14em;
  padding: 3px 8px; border-radius: 999px;
  color: var(--ic-accent);
  background: var(--ic-accent-soft, rgba(245,151,0,0.14));
  border: 1px solid var(--ic-accent);
}

.impulse-platform .hublms-cust__region {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.08em; color: var(--ic-fg-dim);
}

.impulse-platform .hublms-cust__d {
  font-size: 14px; line-height: 1.55;
  color: var(--ic-fg-muted);
  margin: 0;
}

.impulse-platform .hublms-cust__foot {
  margin: 20px 0 0;
  font-size: 14.5px; color: var(--ic-fg-muted);
}

.impulse-platform .hublms-cust__link {
  display: inline-block; margin-top: 12px;
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em; color: var(--ic-accent);
  text-decoration: none;
}

.impulse-platform .hublms-cust__link:hover { color: var(--ic-fg); }

/* ── HUBLMS GET STARTED · 3-up path cards ── */

.impulse-platform .hublms-gs {
  display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 16px; gap: 16px;
}

@media (max-width: 880px) { .impulse-platform .hublms-gs { grid-template-columns: 1fr; } }

.impulse-platform .hublms-gs__card {
  padding: 28px;
  background: var(--ic-bg-2);
  border: 1px solid var(--ic-line);
  border-radius: 14px;
  display: flex; flex-direction: column; gap: 12px;
}

.impulse-platform .hublms-gs__tag {
  font-family: var(--ic-font-mono); font-size: 11px;
  letter-spacing: 0.14em; color: var(--ic-accent);
}

.impulse-platform .hublms-gs__h {
  font-family: var(--ic-font-display); font-weight: 400;
  font-size: clamp(22px, 2vw, 28px);
  letter-spacing: -0.02em;
  color: var(--ic-fg);
  margin: 0;
}

.impulse-platform .hublms-gs__d {
  font-size: 14.5px; line-height: 1.55;
  color: var(--ic-fg-muted);
  margin: 0;
}

.impulse-platform .hublms-gs__cta {
  margin-top: auto;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 18px;
  border-radius: 999px;
  font-family: var(--ic-font-mono); font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ic-fg); background: transparent;
  border: 1px solid var(--ic-line-2);
  text-decoration: none;
  transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}

.impulse-platform .hublms-gs__cta:hover {
  background: var(--ic-accent-grad);
  border-color: transparent;
  color: #fff;
}

/* ============================================================
   Webinar landing page (lp-webinar.hubl.html)
   Ported from the "Impulse Reimagined" comp (iv.css + webinar.css).
   Warm cream paper + ink, orange→magenta accents,
   Libre Baskerville / Montserrat / JetBrains Mono.
   All classes are wb-/iv- prefixed — no collisions with theme CSS.
   ============================================================ */

:root {
  --iv-orange: #F59700;
  --iv-magenta: #EB004F;
  /* Backgrounds track the site's surface design (theme section colors):
     light 1 #FAFAF7 · light 2 #F2F1EC · dark 1 #0A0A0F · dark 2 #12121A.
     Ink is the site's blue-black (14,14,29), not the comp's 14,14,16. */
  --iv-ink: #0E0E1D;
  --iv-ink-2: var(--impulse--section--darkSection--2__backgroundColor, #12121A);
  --iv-dark: var(--impulse--section--darkSection--1__backgroundColor, #0A0A0F);
  --iv-paper: var(--impulse--section--lightSection--1__backgroundColor, #FAFAF7);
  --iv-paper-2: var(--impulse--section--lightSection--2__backgroundColor, #F2F1EC);
  --iv-line: rgba(14, 14, 29, 0.1);
  --iv-muted: rgba(14, 14, 29, 0.62);
  --iv-grad: linear-gradient(90deg, var(--iv-orange), var(--iv-magenta));
  --iv-serif: "Libre Baskerville", Georgia, serif;
  --iv-sans: "Montserrat", system-ui, sans-serif;
  --iv-mono: "JetBrains Mono", ui-monospace, monospace;
  --iv-max: 1280px;
  --iv-pad: clamp(20px, 4vw, 56px);
}

/* Page canvas — flat, matching the site's surface design */

body:has(.wb-hero) {
  font-family: var(--iv-sans);
  color: var(--iv-ink);
  background: var(--iv-paper);
}

/* Full-bleed helper — same trick as .impulse-platform .sec--bg */

.wb-bleed {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* ---------- Reusable editorial atoms ---------- */

.iv-h2 {
  font-family: var(--iv-serif);
  font-weight: 700;
  font-size: clamp(36px, 5.4vw, 72px);
  line-height: 1.12;
  letter-spacing: -0.012em;
  margin: 0 0 18px;
  text-wrap: balance;
}

.iv-ital { font-style: italic; font-weight: 400; }

.iv-grad {
  background: var(--iv-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.iv-tag {
  font-family: var(--iv-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--iv-muted);
  margin: 0 0 22px;
}

.iv-kicker {
  font-size: clamp(17px, 1.4vw, 20px);
  line-height: 1.55;
  max-width: 780px;
  color: rgba(14, 14, 29, 0.78);
  margin: 0 0 40px;
  text-wrap: pretty;
}

.iv-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--iv-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--iv-ink);
  background: rgba(14, 14, 29, 0.06);
  padding: 8px 14px;
  border-radius: 999px;
  margin-bottom: 28px;
}

.iv-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--iv-orange);
  box-shadow: 0 0 0 3px rgba(245, 151, 0, 0.2);
}

/* Buttons — IC orange→magenta gradient, never underlined (theme global
   a:hover underline is suppressed explicitly). */

.iv-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  border-radius: 999px;
  font-family: var(--iv-sans);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.01em;
  text-decoration: none !important;
  transition: transform 0.15s ease, background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
  border: 1px solid transparent;
  cursor: pointer;
  white-space: nowrap;
}

.iv-btn:hover,
.iv-btn:focus { text-decoration: none !important; }

.iv-btn--primary {
  background: var(--iv-grad);
  color: #fff !important; /* beats theme link-color rules */
  box-shadow: 0 10px 30px -10px rgba(245, 151, 0, 0.5);
}

.iv-btn--primary:hover,
.iv-btn--primary:focus {
  background: var(--iv-grad);
  transform: translateY(-1px);
  filter: brightness(1.05);
  color: #fff !important;
}

.iv-btn--lg { padding: 16px 24px; font-size: 15px; }

/* ---------- Skip link ---------- */

.wb-skip {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--iv-ink);
  color: var(--iv-paper);
  padding: 10px 16px;
  border-radius: 8px;
  z-index: 200;
  font-family: var(--iv-sans);
  font-size: 14px;
}

.wb-skip:focus { left: 16px; top: 16px; }

/* ---------- Section wrapper ---------- */

.wb-sec {
  max-width: var(--iv-max);
  margin: 0 auto;
  padding: clamp(64px, 8vw, 120px) var(--iv-pad);
  border-top: 1px solid var(--iv-line);
}

.wb-sec--tight { padding-top: clamp(48px, 5vw, 72px); }

/* ---------- Top nav ---------- */

.wb-top {
  position: sticky;
  top: 0;
  z-index: 50;
  padding: 14px var(--iv-pad);
  transition: background 0.2s ease, backdrop-filter 0.2s ease, border-color 0.2s ease;
  border-bottom: 1px solid transparent;
}

.wb-top.is-scrolled {
  background: rgba(250, 250, 247, 0.82);
  backdrop-filter: saturate(1.1) blur(14px);
  -webkit-backdrop-filter: saturate(1.1) blur(14px);
  border-bottom-color: var(--iv-line);
}

.wb-top__inner {
  max-width: var(--iv-max);
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 24px;
}

.wb-top__logo img { height: 30px; display: block; }

.wb-top__logo-text {
  font-family: var(--iv-serif);
  font-weight: 700;
  font-size: 19px;
  color: var(--iv-ink);
  text-decoration: none;
}

.wb-top__date {
  font-family: var(--iv-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--iv-muted);
  margin-left: 18px;
  white-space: nowrap;
}

@media (max-width: 1080px) { .wb-top__date { display: none; } }

.wb-top__nav {
  display: flex;
  gap: 26px;
  margin-left: 24px;
}

.wb-top__nav a {
  color: var(--iv-ink);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  opacity: 0.78;
}

.wb-top__nav a:hover { opacity: 1; text-decoration: none; }

.wb-top__right { margin-left: auto; display: flex; gap: 10px; }

@media (max-width: 860px) { .wb-top__nav { display: none; } }

/* ---------- Hero ---------- */

.wb-hero {
  max-width: var(--iv-max);
  margin: 0 auto;
  padding: clamp(36px, 6vw, 80px) var(--iv-pad) clamp(56px, 7vw, 104px);
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  grid-gap: clamp(32px, 5vw, 72px);
  gap: clamp(32px, 5vw, 72px);
  /* Columns center against each other — whichever side is shorter floats to
     the vertical middle of the taller one (2026-06-04 review). */
  align-items: center;
}

@media (max-width: 1020px) {
  .wb-hero { grid-template-columns: 1fr; }
}

.wb-hero__h1 {
  font-family: var(--iv-serif);
  font-weight: 700;
  font-size: clamp(40px, 5.2vw, 74px);
  line-height: 1.12;
  letter-spacing: -0.012em;
  margin: 0 0 24px;
  text-wrap: balance;
}

.wb-hero__deck {
  font-size: clamp(17px, 1.35vw, 20px);
  line-height: 1.55;
  max-width: 600px;
  color: rgba(14, 14, 29, 0.78);
  margin: 0 0 32px;
  text-wrap: pretty;
}

.wb-hero__deck b, .wb-hero__deck strong { color: var(--iv-ink); font-weight: 600; }

.wb-hero__actions {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.wb-support {
  font-size: 14.5px;
  line-height: 1.5;
  color: rgba(14, 14, 29, 0.72);
  max-width: 540px;
  margin: 0 0 22px;
  padding-left: 14px;
  border-left: 2px solid var(--iv-orange);
  text-wrap: pretty;
}

.wb-support b, .wb-support strong { color: var(--iv-ink); font-weight: 600; }

.wb-trust {
  font-family: var(--iv-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--iv-muted);
  margin: 0;
}

.wb-hero__media { justify-self: end; width: 100%; max-width: 540px; }

@media (max-width: 1020px) {
  .wb-hero__media { justify-self: stretch; max-width: 560px; margin: 0 auto; }
}

.wb-hero__img {
  display: block;
  width: 100%;
  height: auto; /* natural aspect ratio — never crop the uploaded card */
  border-radius: 20px;
  box-shadow: 0 30px 70px -40px rgba(14, 14, 29, 0.5);
}

/* CTA + support + trust live under the media (per 2026-06-04 review) */

.wb-hero__media .wb-hero__actions { margin-top: clamp(20px, 2.5vw, 32px); }

/* Video alternative — same frame language as the image (rounded, shadowed) */

.wb-hero__video {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 20px;
  overflow: hidden;
  background: var(--iv-ink);
  box-shadow: 0 30px 70px -40px rgba(14, 14, 29, 0.5);
}

.wb-hero__video iframe,
.wb-hero__video video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.wb-hero__video video { -o-object-fit: cover; object-fit: cover; }

/* HubSpot video — the player manages its own aspect ratio */

.wb-hero__video--hs {
  aspect-ratio: auto;
  background: transparent;
}

.wb-hero__video--hs iframe,
.wb-hero__video--hs video {
  position: static;
}

/* Placeholder shown until an image is picked in the editor */

.wb-hero__img-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: clamp(380px, 44vw, 580px);
  border-radius: 20px;
  background: linear-gradient(160deg, #0E0E1D, #12121A);
  color: rgba(255, 255, 255, 0.5);
  font-family: var(--iv-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  box-shadow: 0 30px 70px -40px rgba(14, 14, 29, 0.5);
}

/* ---------- Stat strip ---------- */

.wb-stats {
  max-width: var(--iv-max);
  margin: 0 auto;
  padding: 0 var(--iv-pad) clamp(8px, 2vw, 20px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: clamp(16px, 3vw, 40px);
  gap: clamp(16px, 3vw, 40px);
}

@media (max-width: 720px) { .wb-stats { grid-template-columns: 1fr; gap: 20px; } }

.wb-stat { padding: 24px 0 0; border-top: 2px solid var(--iv-ink); }

.wb-stat__n {
  font-family: var(--iv-serif);
  font-weight: 700;
  font-size: clamp(30px, 3.4vw, 44px);
  line-height: 1;
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}

.wb-stat__d {
  font-size: 15px;
  line-height: 1.5;
  color: var(--iv-muted);
  text-wrap: pretty;
}

/* ---------- Motions accordion ---------- */

.wb-macc { margin-top: 28px; border-top: 1px solid var(--iv-ink); }

.wb-mo { border-bottom: 1px solid var(--iv-line); }

.wb-mo__head {
  width: 100%;
  display: grid;
  grid-template-columns: 56px 1fr 26px;
  align-items: center;
  grid-gap: 18px;
  gap: 18px;
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
  padding: 26px 4px;
  font-family: inherit;
}

.wb-mo__num {
  font-family: var(--iv-mono);
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--mo-color, var(--iv-orange));
  padding-top: 4px;
  align-self: start;
}

.wb-mo--bonus .wb-mo__num {
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--iv-muted);
}

.wb-mo__txt { display: flex; flex-direction: column; gap: 5px; }

.wb-mo__name {
  font-family: var(--iv-serif);
  font-weight: 700;
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.08;
  letter-spacing: -0.018em;
  color: var(--iv-ink);
}

.wb-mo__tag {
  font-size: 15.5px;
  line-height: 1.4;
  color: var(--iv-muted);
  text-wrap: pretty;
}

.wb-mo__ic {
  position: relative;
  width: 22px;
  height: 22px;
  align-self: start;
  margin-top: 6px;
  transition: transform 0.25s ease;
}

.wb-mo__ic::before, .wb-mo__ic::after {
  content: "";
  position: absolute;
  background: var(--mo-color, var(--iv-orange));
  border-radius: 2px;
}

.wb-mo--bonus .wb-mo__ic::before,
.wb-mo--bonus .wb-mo__ic::after { background: var(--iv-ink); }

.wb-mo__ic::before { left: 2px; right: 2px; top: 10px; height: 2px; }

.wb-mo__ic::after { top: 2px; bottom: 2px; left: 10px; width: 2px; transition: opacity 0.25s ease; }

.wb-mo.is-open .wb-mo__ic::after { opacity: 0; }

.wb-mo__body {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease;
}

.wb-mo.is-open .wb-mo__body { max-height: none; }

.wb-mo__inner { padding: 0 0 28px 74px; max-width: 760px; }

@media (max-width: 600px) { .wb-mo__inner { padding-left: 0; } }

.wb-mo__inner > p {
  font-size: 16px;
  line-height: 1.6;
  color: rgba(14, 14, 29, 0.82);
  margin: 0 0 16px;
  text-wrap: pretty;
}

.wb-mo__inner ul {
  list-style: none;
  padding: 0;
  margin: 0 0 18px;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.wb-mo__inner li {
  display: flex;
  gap: 12px;
  font-size: 15.5px;
  line-height: 1.5;
  color: var(--iv-ink);
  text-wrap: pretty;
}

.wb-mo__inner li::before {
  content: "";
  flex: none;
  width: 7px;
  height: 7px;
  margin-top: 8px;
  border-radius: 50%;
  background: var(--mo-color, var(--iv-orange));
}

.wb-mo--bonus .wb-mo__inner li::before { background: var(--iv-ink); }

.wb-mo__sig {
  font-size: 15px;
  line-height: 1.55;
  color: var(--iv-muted);
  margin: 0;
  text-wrap: pretty;
}

.wb-mo__sig span {
  font-family: var(--iv-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mo-color, var(--iv-orange));
  margin-right: 10px;
}

.wb-mo--bonus .wb-mo__sig span { color: var(--iv-ink); }

/* ---------- Data layer split ---------- */

.wb-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: clamp(20px, 3vw, 36px);
  gap: clamp(20px, 3vw, 36px);
  margin: 40px 0 36px;
}

@media (max-width: 820px) { .wb-split { grid-template-columns: 1fr; } }

.wb-card {
  border: 1px solid var(--iv-line);
  border-radius: 14px;
  padding: clamp(24px, 3vw, 36px);
  background: var(--iv-paper);
}

.wb-card--bad { background: var(--iv-paper-2); }

.wb-card--good {
  background: var(--iv-ink);
  color: var(--iv-paper);
  border-color: var(--iv-ink);
}

.wb-card__k {
  font-family: var(--iv-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 14px;
}

.wb-card--bad .wb-card__k { color: var(--iv-muted); }

.wb-card--good .wb-card__k { color: var(--iv-orange); }

.wb-card__h {
  font-family: var(--iv-serif);
  font-weight: 700;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.1;
  letter-spacing: -0.015em;
  margin: 0 0 14px;
}

.wb-card p { font-size: 16px; line-height: 1.6; margin: 0; text-wrap: pretty; }

.wb-card--bad p { color: rgba(14, 14, 29, 0.74); }

.wb-card--good p { color: rgba(255, 255, 255, 0.82); }

.wb-payoff {
  font-family: var(--iv-serif);
  font-size: clamp(20px, 2.2vw, 28px);
  line-height: 1.35;
  font-weight: 500;
  max-width: 860px;
  text-wrap: pretty;
  margin: 0;
}

.wb-payoff b, .wb-payoff strong { font-weight: 700; }

/* ---------- Agenda ---------- */

.wb-agenda {
  list-style: none;
  padding: 0;
  margin: 28px 0 0;
  border-top: 1px solid var(--iv-ink);
}

.wb-agenda li {
  display: grid;
  grid-template-columns: 56px 1fr;
  grid-gap: 16px;
  gap: 16px;
  align-items: start;
  padding: 22px 0;
  border-bottom: 1px solid var(--iv-line);
}

.wb-agenda__n {
  font-family: var(--iv-mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--iv-muted);
  padding-top: 4px;
}

.wb-agenda__t {
  font-size: clamp(17px, 1.5vw, 21px);
  line-height: 1.45;
  color: var(--iv-ink);
  text-wrap: pretty;
}

.wb-agenda__t em {
  font-family: var(--iv-serif);
  font-style: italic;
  font-weight: 700;
  color: var(--iv-muted);
  font-size: 0.92em;
}

/* ---------- Recipe book (dark, full-bleed) ---------- */

.wb-recipe {
  border-top: 1px solid var(--iv-line);
  background: var(--iv-dark);
  color: var(--iv-paper);
  position: relative;
  overflow: hidden;
}

.wb-recipe::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(900px 520px at 88% 0%, rgba(245, 151, 0, 0.12), transparent 62%);
  pointer-events: none;
}

.wb-recipe__inner {
  position: relative;
  max-width: var(--iv-max);
  margin: 0 auto;
  padding: clamp(64px, 8vw, 110px) var(--iv-pad);
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  grid-gap: clamp(32px, 5vw, 72px);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}

@media (max-width: 900px) { .wb-recipe__inner { grid-template-columns: 1fr; } }

.wb-recipe .iv-tag { color: var(--iv-orange); }

.wb-recipe__h {
  font-family: var(--iv-serif);
  font-weight: 700;
  font-size: clamp(32px, 4vw, 56px);
  line-height: 1.12;
  letter-spacing: -0.012em;
  margin: 0 0 22px;
  text-wrap: balance;
}

.wb-recipe__h span, .wb-recipe__h em { font-style: italic; font-weight: 500; }

.wb-recipe__copy p {
  font-size: 17px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.8);
  margin: 0 0 18px;
  text-wrap: pretty;
}

.wb-recipe__live {
  font-family: var(--iv-mono);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.65;
  margin: 6px 0 0;
}

.wb-recipe__live b, .wb-recipe__live strong { color: var(--iv-orange); font-weight: 500; }

.wb-inside {
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  padding: 28px 30px;
  background: rgba(255, 255, 255, 0.03);
}

.wb-inside__k {
  font-family: var(--iv-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--iv-orange);
  margin-bottom: 18px;
}

.wb-inside ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}

.wb-inside li {
  font-size: 16.5px;
  line-height: 1.4;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.92);
  padding: 14px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  gap: 12px;
  align-items: baseline;
}

.wb-inside li:first-child { border-top: 0; padding-top: 0; }

.wb-inside li:last-child { padding-bottom: 0; }

.wb-inside li::before {
  content: "";
  flex: none;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: linear-gradient(var(--iv-orange), var(--iv-magenta));
  transform: translateY(-1px);
}

/* ---------- Credibility ---------- */

.wb-cred__grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  grid-gap: clamp(28px, 4vw, 64px);
  gap: clamp(28px, 4vw, 64px);
  margin-top: 8px;
  align-items: start;
}

@media (max-width: 860px) { .wb-cred__grid { grid-template-columns: 1fr; } }

.wb-cred__lede {
  font-family: var(--iv-serif);
  font-size: clamp(22px, 2.6vw, 34px);
  line-height: 1.3;
  font-weight: 700;
  margin: 0 0 22px;
  text-wrap: pretty;
}

.wb-cred__body p {
  font-size: 16.5px;
  line-height: 1.6;
  color: rgba(14, 14, 29, 0.8);
  margin: 0 0 18px;
  text-wrap: pretty;
}

.wb-host {
  border: 1px solid var(--iv-line);
  border-radius: 14px;
  padding: 26px;
  background: var(--iv-paper);
}

.wb-host__row { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }

.wb-host__av {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  flex: none;
  background: linear-gradient(135deg, var(--iv-orange), var(--iv-magenta));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--iv-serif);
  font-weight: 700;
  font-size: 22px;
  color: #fff;
  overflow: hidden;
}

.wb-host__av img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; }

.wb-host__nm {
  font-family: var(--iv-serif);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.1;
}

.wb-host__rl { font-size: 13.5px; color: var(--iv-muted); margin-top: 3px; }

.wb-host__note {
  font-size: 14px;
  line-height: 1.55;
  color: rgba(14, 14, 29, 0.72);
  margin: 0;
  text-wrap: pretty;
}

.wb-host__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--iv-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--iv-ink);
  background: rgba(245, 151, 0, 0.1);
  border: 1px solid rgba(245, 151, 0, 0.28);
  padding: 7px 12px;
  border-radius: 999px;
  margin-bottom: 16px;
}

/* ---------- FAQ ---------- */

.wb-faq__list { border-top: 1px solid var(--iv-ink); margin-top: 28px; }

.wb-faq__item { border-bottom: 1px solid var(--iv-line); }

.wb-faq__q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 24px 4px;
  text-align: left;
  font-family: var(--iv-serif);
  font-weight: 700;
  font-size: clamp(19px, 2vw, 26px);
  letter-spacing: -0.01em;
  color: var(--iv-ink);
  line-height: 1.2;
}

.wb-faq__ic {
  flex: none;
  width: 26px;
  height: 26px;
  position: relative;
  transition: transform 0.25s ease;
}

.wb-faq__ic::before, .wb-faq__ic::after {
  content: "";
  position: absolute;
  background: var(--iv-orange);
  border-radius: 2px;
}

.wb-faq__ic::before { left: 4px; right: 4px; top: 12px; height: 2px; }

.wb-faq__ic::after { top: 4px; bottom: 4px; left: 12px; width: 2px; transition: opacity 0.25s ease; }

.wb-faq__item.is-open .wb-faq__ic::after { opacity: 0; }

.wb-faq__a {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease;
}

.wb-faq__item.is-open .wb-faq__a { max-height: none; }

.wb-faq__a p {
  font-size: 16.5px;
  line-height: 1.65;
  color: rgba(14, 14, 29, 0.8);
  margin: 0 0 24px;
  max-width: 760px;
  padding-right: 40px;
  text-wrap: pretty;
}

.wb-faq__a p b, .wb-faq__a p strong { color: var(--iv-ink); }

/* ---------- Details grid ---------- */

.wb-details {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-gap: 0;
  gap: 0;
  margin-top: 28px;
}

@media (max-width: 860px) { .wb-details { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 520px) { .wb-details { grid-template-columns: 1fr; } }

.wb-det {
  padding: 24px 24px 24px 0;
  border-top: 2px solid var(--iv-ink);
  margin-right: 1px;
}

.wb-det__k {
  font-family: var(--iv-mono);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--iv-muted);
  margin-bottom: 12px;
}

.wb-det__v {
  font-family: var(--iv-serif);
  font-weight: 700;
  font-size: clamp(18px, 1.8vw, 24px);
  line-height: 1.2;
  letter-spacing: -0.01em;
  text-wrap: pretty;
}

.wb-det__v small {
  display: block;
  font-family: var(--iv-sans);
  font-weight: 400;
  font-size: 13.5px;
  color: var(--iv-muted);
  margin-top: 6px;
  letter-spacing: 0;
}

/* ---------- Register / final CTA (dark dnd_section) ---------- */

.wb-cta-copy { position: relative; }

.wb-cta-copy .iv-tag { color: rgba(255, 255, 255, 0.55); }

.wb-cta__h {
  font-family: var(--iv-serif);
  font-weight: 700;
  font-size: clamp(38px, 5vw, 72px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  margin: 0 0 22px;
  text-wrap: balance;
  color: var(--iv-paper);
}

.wb-cta__h span, .wb-cta__h em { font-style: italic; font-weight: 500; }

.wb-cta__p {
  font-size: clamp(16px, 1.3vw, 19px);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.8);
  margin: 0 0 24px;
  max-width: 520px;
  text-wrap: pretty;
}

.wb-cta__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  font-family: var(--iv-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.6);
}

.wb-cta__meta span { display: inline-flex; align-items: center; gap: 7px; }

.wb-cta__meta i { width: 5px; height: 5px; border-radius: 50%; background: var(--iv-orange); }

/* Section-level glow for the register dnd_section (flat ink bg comes from
   the section background_color; this layers the comp's radial gradients). */

.dnd-section:has(.wb-cta-copy) {
  position: relative;
  overflow: hidden;
  /* overrides the page-level dnd background so existing pages pick up the
     site's dark-section color without re-editing */
  background-color: var(--iv-dark) !important;
}

.dnd-section:has(.wb-cta-copy)::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 520px at 80% 0%, rgba(245, 151, 0, 0.22), transparent 60%),
    radial-gradient(720px 420px at 8% 100%, rgba(235, 0, 79, 0.18), transparent 60%);
  pointer-events: none;
}

.dnd-section:has(.wb-cta-copy) > * { position: relative; }

/* HubSpot form, restyled as the comp's dark glass form card.
   Covers BOTH embeds: the legacy one (.hs-form / .hs-input / .hs-button) and
   the new client-rendered one (.hsfc-Renderer → hsfc-* markup). The new embed
   injects its own stylesheet from the form's theme settings, so the visual
   props below are asserted with !important. */

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer,
.dnd-section:has(.wb-cta-copy) form.hs-form {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 18px;
  padding: clamp(26px, 3vw, 38px);
  backdrop-filter: blur(6px);
}

/* the new embed nests its own <form> — don't double-card it, and kill the
   form theme's white background layers (FormWrapper/Step paint white). */

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer form {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer [data-hsfc-id='FormWrapper'],
.dnd-section:has(.wb-cta-copy) .hsfc-Renderer .hsfc-Step,
.dnd-section:has(.wb-cta-copy) .hsfc-Renderer .hsfc-Step__Content,
.dnd-section:has(.wb-cta-copy) .hsfc-Renderer .hsfc-Form {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* the form theme resolves backgrounds/colors from --hsf vars — repoint them */

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer {
  --hsf-global__background-color: transparent;
  --hsf-form__background-color: transparent;
  --hsf-global__color: rgba(255, 255, 255, 0.85);
  --hsf-global__font-family: var(--iv-sans);
  --hsf-label__color: rgba(255, 255, 255, 0.6);
  --hsf-heading__color: #fff;
  --hsf-richtext__color: rgba(255, 255, 255, 0.7);
}

.dnd-section:has(.wb-cta-copy) .hs-form-field { margin-bottom: 16px; }

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer label,
.dnd-section:has(.wb-cta-copy) .hs-form-field > label {
  display: block;
  font-family: var(--iv-mono) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6) !important;
  margin-bottom: 8px;
}

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer input:not([type='checkbox']):not([type='radio']):not([type='submit']):not([type='button']),
.dnd-section:has(.wb-cta-copy) .hsfc-Renderer select,
.dnd-section:has(.wb-cta-copy) .hsfc-Renderer textarea,
.dnd-section:has(.wb-cta-copy) .hs-input[type='text'],
.dnd-section:has(.wb-cta-copy) .hs-input[type='email'],
.dnd-section:has(.wb-cta-copy) .hs-input[type='tel'],
.dnd-section:has(.wb-cta-copy) select.hs-input,
.dnd-section:has(.wb-cta-copy) textarea.hs-input {
  width: 100%;
  padding: 14px 16px !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  border-radius: 10px !important;
  font-family: var(--iv-sans) !important;
  font-size: 16px !important;
  background: rgba(255, 255, 255, 0.06) !important;
  color: #fff !important;
  box-shadow: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer input::-moz-placeholder, .dnd-section:has(.wb-cta-copy) .hs-input::-moz-placeholder { color: rgba(255, 255, 255, 0.4) !important; }

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer input::placeholder,
.dnd-section:has(.wb-cta-copy) .hs-input::placeholder { color: rgba(255, 255, 255, 0.4) !important; }

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer input:focus,
.dnd-section:has(.wb-cta-copy) .hsfc-Renderer select:focus,
.dnd-section:has(.wb-cta-copy) .hsfc-Renderer textarea:focus,
.dnd-section:has(.wb-cta-copy) .hs-input:focus {
  outline: 0 !important;
  border-color: var(--iv-orange) !important;
  box-shadow: 0 0 0 3px rgba(245, 151, 0, 0.18) !important;
}

/* body copy, GDPR/legal text, links inside the form */

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer p,
.dnd-section:has(.wb-cta-copy) .hsfc-Renderer span,
.dnd-section:has(.wb-cta-copy) .hsfc-Renderer legend {
  color: rgba(255, 255, 255, 0.7);
}

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer a { color: var(--iv-orange); }

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer [role='alert'],
.dnd-section:has(.wb-cta-copy) .hs-error-msgs,
.dnd-section:has(.wb-cta-copy) .hs-error-msg {
  color: #ff5e8a !important;
  font-size: 12.5px;
  list-style: none;
  padding: 4px 0 0;
  margin: 0;
}

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer button[type='submit'],
.dnd-section:has(.wb-cta-copy) .hs-button {
  width: 100%;
  display: inline-flex;
  justify-content: center;
  background: var(--iv-grad) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  font-family: var(--iv-sans) !important;
  font-weight: 600 !important;
  font-size: 15.5px !important;
  letter-spacing: 0.01em;
  padding: 16px 24px !important;
  margin-top: 6px;
  cursor: pointer;
  box-shadow: 0 10px 30px -10px rgba(245, 151, 0, 0.5) !important;
  transition: transform 0.15s ease, filter 0.15s ease;
}

.dnd-section:has(.wb-cta-copy) .hsfc-Renderer button[type='submit']:hover,
.dnd-section:has(.wb-cta-copy) .hs-button:hover { transform: translateY(-1px); filter: brightness(1.05); }

.dnd-section:has(.wb-cta-copy) .submitted-message {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  padding: clamp(26px, 3vw, 38px);
  text-align: center;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
}

/* Countdown, restyled inside the register section */

.dnd-section:has(.wb-cta-copy) .impulse-webinar-countdown { margin-bottom: clamp(32px, 4vw, 56px); }

.dnd-section:has(.wb-cta-copy) .impulse-webinar-countdown__kicker {
  font-family: var(--iv-mono);
  letter-spacing: 0.18em;
  color: var(--iv-orange);
}

.dnd-section:has(.wb-cta-copy) .impulse-webinar-countdown__label {
  font-family: var(--iv-serif);
  font-style: italic;
  color: rgba(255, 255, 255, 0.85);
}

.dnd-section:has(.wb-cta-copy) .impulse-webinar-countdown__unit {
  border-color: rgba(255, 255, 255, 0.15);
  border-radius: 14px;
}

.dnd-section:has(.wb-cta-copy) .impulse-webinar-countdown__value {
  font-family: var(--iv-serif);
  color: var(--iv-paper);
}

.dnd-section:has(.wb-cta-copy) .impulse-webinar-countdown__unit-label,
.dnd-section:has(.wb-cta-copy) .impulse-webinar-countdown__local-time {
  font-family: var(--iv-mono);
  color: rgba(255, 255, 255, 0.6);
}

.dnd-section:has(.wb-cta-copy) .impulse-webinar-countdown__replay-headline { color: var(--iv-paper); }

.dnd-section:has(.wb-cta-copy) .impulse-webinar-countdown__replay-body { color: rgba(255, 255, 255, 0.8); }

.dnd-section:has(.wb-cta-copy) .impulse-webinar-countdown__replay-cta {
  border-radius: 999px;
  background: var(--iv-grad);
  border-color: transparent;
}

.dnd-section:has(.wb-cta-copy) .impulse-webinar-countdown__replay-cta:hover {
  background: var(--iv-grad);
  color: #fff;
  filter: brightness(1.05);
}

/* ---------- Footer (dark, full-bleed module) ---------- */

.wb-foot {
  background: var(--iv-ink-2);
  color: rgba(255, 255, 255, 0.6);
  padding: clamp(48px, 6vw, 80px) var(--iv-pad) 28px;
}

.wb-foot__inner {
  max-width: var(--iv-max);
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
}

.wb-foot__brand img { height: 30px; display: block; margin-bottom: 16px; }

.wb-foot__brand p {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.5);
  max-width: 360px;
  margin: 0;
}

.wb-foot__cta { text-align: right; }

.wb-foot__cta .iv-btn { margin-bottom: 12px; }

.wb-foot__when {
  font-family: var(--iv-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.5);
}

.wb-foot__base {
  max-width: var(--iv-max);
  margin: 40px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-family: var(--iv-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.38);
}

@media (max-width: 620px) { .wb-foot__cta { text-align: left; } }

/* Hide all kicker / eyebrow / tag eyebrows site-wide (2026-05-14 editorial
   decision). Loaded last so it overrides any prior display rules. Delete
   this @import to bring them back. */

/* ============================================================
   Kicker / eyebrow / tag overrides
   ============================================================
   Per editorial decision (2026-05-14): the small uppercase orange
   mono labels with the dash prefix (e.g. "— WHERE IT LIVES",
   "— THREE READERS · ONE SURFACE") are hidden across all pages.

   The text remains in the HubL templates + module fields so
   editors can re-enable later by deleting (or commenting out)
   this file — content is not destroyed.

   Each rule targets a known class pattern. If a new module is
   built with a different class name, add it here.
   ============================================================ */

.impulse-platform .kicker,
.impulse-platform .impulse-kicker,
.impulse-platform [class$="__kicker"],
.impulse-platform [class*="__kicker "],
.impulse-platform [class$="__eyebrow"],
.impulse-platform [class*="__eyebrow "],
.impulse-platform .svc-cta__tag,
.impulse-platform .svc-related-card__tag,
.impulse-platform .agents-deliv__tag,
.impulse-platform .agents-venue__tag,
.impulse-platform .as-gate__tag,
.impulse-platform .as-hero__eyebrow,
.impulse-platform .as-result__tag,
.impulse-platform .kernel-disclaim__tag,
.impulse-platform .mat-detail__tag,
.impulse-platform .mat-hero__eyebrow,
.impulse-platform .mat-move__tag,
.impulse-platform .mat-next__tag,
.impulse-platform .protocol-endpoint__tag,
.impulse-platform .protocol-hero__eyebrow,
.impulse-platform .vs-cat__tag,
.impulse-platform .vs-hero__eyebrow,

/* Service-detail template kickers (not all wrapped in .impulse-platform) */
.svc-cta__tag,
.svc-related-card__tag,
.svc-cta-mini__tag,

/* Pillar page kickers */
.impulse-pillar__kicker,
.impulse-pillar__section-kicker,
.impulse-pillar__hero-meta .k,

/* Editorial / shared kicker components */
.impulse-kicker,
.impulse-kicker__dot,
.impulse-kicker__text {
  display: none !important;
}

/* Preset-specific styles */

/* Onyx preset specific styles */

  

 