/* Trade Practice shared layer used by multiple SSR templates.
   Loaded via @import inside cms/templates/public/partials/nav.html */

:root{
  --c-black:#000000;
  --c-white:#ffffff;
  --c-red:#e2001a;

  --c-text:#000000;
  --c-ink:var(--c-text);
  --c-strong:rgba(0,0,0,0.86);
  --c-muted:rgba(0,0,0,0.72);

  --c-border:rgba(0,0,0,0.14);
  --c-wash:rgba(0,0,0,0.03);
  --c-wash-2:rgba(0,0,0,0.02);

  --space-1:8px;
  --space-2:12px;
  --space-3:16px;
  --space-4:22px;
  --space-5:28px;
  --space-6:34px;
  --space-7:44px;

  --section-gap:var(--space-6);
  --section-gap-tight:var(--space-5);

  /* Typography tokens */
  --ff-sans:"Montserrat", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Noto Sans", "Liberation Sans", sans-serif;
  --fs-root:16px;
  --fs-xs:13px;
  --fs-sm:15px;
  --fs-base:17px;
  --fs-md:18px;
  --fs-lg:20px;
  --lh-base:1.62;
  --lh-tight:1.18;

  /* Heading scale */
  --fs-h1:clamp(34px, 3.1vw, 46px);
  --fs-h2:clamp(28px, 2.4vw, 36px);
  --fs-h3:clamp(22px, 1.9vw, 28px);
  --fs-h4:20px;
  --fw-regular:520;
  --fw-strong:780;
  --fw-title:860;
  --tracking-tight:-0.02em;
  --focus-ring:2px solid rgba(226,0,26,0.55);
  --focus-offset:3px;

  /* Aliases used by some templates */
  --red:var(--c-red);
  --ink:var(--c-text);
  --muted:var(--c-muted);
  --line:var(--c-border);
  --wash:var(--c-wash);
}

/* Global typography: keep Montserrat everywhere */
html{
  font-family:var(--ff-sans) !important;
  font-size:var(--fs-root) !important;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

body{
  margin:0;
  font-family:var(--ff-sans) !important;
  font-size:var(--fs-base) !important;
  line-height:var(--lh-base) !important;
  color:var(--c-text);
  background:var(--c-white);
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}

@media (max-width:420px){
  body{font-size:16px !important;}
}

/* Global layout containment and responsive safety */
*,
*::before,
*::after{box-sizing:border-box;}

html, body{overflow-x:clip;}

.tp-page{overflow-x:clip;}

img, svg, video{max-width:100%;height:auto;}

/* Tables: allow horizontal scroll on small screens */
.tp-table-wrap{overflow:auto;-webkit-overflow-scrolling:touch;margin-top:12px;max-width:100%;}
.tp-table-wrap table{min-width:720px;}
@media (max-width:520px){.tp-table-wrap table{min-width:640px;}}

/* Simple action row used by error pages */
.tp-error-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;}
@media (max-width:760px){
  .tp-error-actions{flex-direction:column;align-items:stretch;}
  .tp-error-actions .btn{width:100%;text-align:center;}
}

/* Footer assistant entry needs strong contrast on dark background */
.tp-footer-links a.tp-footer-assistant-entry{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,0.28);
  background:transparent;
  color:rgba(255,255,255,0.92);
  font-weight:900;
  letter-spacing:0.08em;
  text-transform:uppercase;
  text-decoration:none;
  margin-top:4px;
}
.tp-footer-links a.tp-footer-assistant-entry:hover{
  background:var(--c-white);
  color:var(--c-text);
  border-color:var(--c-white);
}
.tp-footer-links a.tp-footer-assistant-entry:focus-visible{
  background:var(--c-white);
  color:var(--c-text);
  border-color:var(--c-white);
  outline:var(--focus-ring);
  outline-offset:var(--focus-offset);
}

button, input, select, textarea, summary, optgroup{
  font-family:inherit !important;
  font-size:inherit !important;
  line-height:inherit !important;
}

/* Ensure main content containers share the same base rules */
.container, .content, .prose, .richtext, .rt, .page, .section{
  font-family:inherit;
  font-size:inherit;
  line-height:inherit;
  color:inherit;
}

.page small, .content small, .prose small, .richtext small, .rt small, .section small{
  font-size:var(--fs-sm);
}

strong{font-weight:750;}

h1, h2, h3, h4, h5, h6{
  font-family:inherit;
}

/* Global heading system.
   Templates often define their own heading sizes.
   These rules unify the scale without changing content structure. */
body h1, body .h1{font-size:var(--fs-h1);line-height:1.08;font-weight:var(--fw-title);letter-spacing:var(--tracking-tight);color:var(--c-text);}
body h2, body .h2{font-size:var(--fs-h2);line-height:1.12;font-weight:var(--fw-title);letter-spacing:-0.01em;color:var(--c-text);}
body h3, body .h3{font-size:var(--fs-h3);line-height:1.18;font-weight:var(--fw-strong);letter-spacing:-0.01em;color:var(--c-text);}
body h4, body .h4{font-size:var(--fs-h4);line-height:1.25;font-weight:var(--fw-strong);letter-spacing:-0.005em;color:var(--c-text);}

/* Eyebrow and section labels */
body .eyebrow{display:inline-block;font-size:var(--fs-xs);letter-spacing:0.16em;text-transform:uppercase;color:var(--c-red);font-weight:900;}
body .lab{font-size:var(--fs-xs);letter-spacing:0.12em;text-transform:uppercase;color:rgba(0,0,0,0.70);}

/* Typography and helper tones */
.eyebrow{
  font-size:var(--fs-xs);
  line-height:1.2;
  color:var(--c-red);
  font-weight:850;
  letter-spacing:0.16em;
  text-transform:uppercase;
}

.tp-muted{color:var(--c-muted);}

/* Links: readable default, and consistent action links */
body .page a, body .content a, body .prose a, body .richtext a, body .rt a{
  color: inherit;
  text-decoration: none;
}
body .page a:hover, body .content a:hover, body .prose a:hover, body .richtext a:hover, body .rt a:hover{
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
  text-decoration-color: currentColor;
}
body .page a:focus-visible, body .content a:focus-visible, body .prose a:focus-visible, body .richtext a:focus-visible, body .rt a:focus-visible{
  outline:var(--focus-ring);
  outline-offset:var(--focus-offset);
}

/* Do not underline navigation and button styled links */
body .tp-header a,
body a.btn,
body a.tp-btn,
body a.cta,
body .sup-link,
body .card,
body .hi-link,
body .ins-all{
  text-decoration:none;
}

/* Action style links used in section headers */
body .hi-link, body .ins-all{
  color:var(--c-red);
  font-weight:900;
  letter-spacing:0.02em;
  border-bottom:2px solid rgba(226,0,26,0.40);
  padding-bottom:2px;
}
body .hi-link:hover, body .hi-link:focus-visible,
body .ins-all:hover, body .ins-all:focus-visible{
  border-bottom-color:rgba(226,0,26,0.74);
  outline:none;
}

/* Buttons: one system for primary, secondary, and subtle variants.
   Ensures sharp corners and no layout shift on hover. */
body .btn, body .button, body .cta, body .tp-btn,
body input[type="submit"], body input[type="button"], body input[type="reset"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:1px solid var(--c-text);
  background:#ffffff;
  color:var(--c-text);
  padding:12px 14px;
  font:inherit;
  font-weight:var(--fw-strong);
  letter-spacing:0.01em;
  line-height:1.1;
  cursor:pointer;
  border-radius:0 !important;
  text-decoration:none;
  transition:background-color 120ms ease, color 120ms ease, border-color 120ms ease, opacity 120ms ease;
}

body .btn.primary, body .btn.is-primary, body .tp-btn, body .btn--primary,
body button.primary, body input[type="submit"].primary{
  background:var(--c-text);
  color:var(--c-white);
  border-color:var(--c-text);
}

body .btn.secondary, body .btn.is-secondary, body .btn--secondary{
  background:#ffffff;
  color:var(--c-text);
  border-color:var(--c-text);
}

body .btn.subtle, body .btn.is-subtle, body .btn--subtle{
  background:transparent;
  color:var(--c-text);
  border-color:transparent;
}

/* Focus states: visible and consistent */
body .btn:focus-visible, body .button:focus-visible, body .cta:focus-visible, body .tp-btn:focus-visible,
body input[type="submit"]:focus-visible, body input[type="button"]:focus-visible, body input[type="reset"]:focus-visible{
  outline:var(--focus-ring);
  outline-offset:var(--focus-offset);
}

/* Hover states: keep contrast on white and black backgrounds */
body .btn:hover, body .button:hover, body .cta:hover,
body input[type="submit"]:hover, body input[type="button"]:hover, body input[type="reset"]:hover{
  border-color:var(--c-text);
  background:var(--c-text);
  color:var(--c-white);
}

body .btn.primary:hover, body .btn.is-primary:hover, body .btn--primary:hover, body .tp-btn:hover,
body button.primary:hover, body input[type="submit"].primary:hover{
  background:rgba(0,0,0,0.92);
  color:var(--c-white);
  border-color:rgba(0,0,0,0.92);
}

body .btn.secondary:hover, body .btn.is-secondary:hover, body .btn--secondary:hover{
  border-color:var(--c-text);
  background:var(--c-text);
  color:var(--c-white);
}

body .btn.subtle:hover, body .btn.is-subtle:hover, body .btn--subtle:hover{
  background:rgba(0,0,0,0.02);
  border-color:transparent;
  color:var(--c-text);
}

/* One click checkout protection */
body form[data-checkout-form].is-processing{pointer-events:none;}
body .btn.is-processing, body .button.is-processing, body .cta.is-processing, body .tp-btn.is-processing{
  opacity:0.78;
  cursor:default;
}
body [data-checkout-submit]{
  white-space:normal;
  text-align:center;
  line-height:1.35;
}

/* Calm status message */
.tp-alert{
  margin:14px 0;
  padding:12px 14px;
  border:1px solid var(--c-line);
  background:rgba(0,0,0,0.02);
  color:var(--c-text);
  line-height:1.6;
}
.tp-checkout-status{
  display:block;
  margin:8px 0 0;
  min-height:1.5em;
  color:var(--c-muted);
  font-size:var(--fs-sm);
  line-height:1.55;
}
.tp-checkout-status.is-error{
  color:var(--c-text);
  font-weight:600;
}


/* Accessibility helpers */
.sr-only{
  position:absolute !important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
/* Supplier detail gallery slider and lightbox.
   SSR first: scroll works without JS. JS only opens dialog preview. */
.tp-gallery{
  margin-top:10px;
  display:grid;
  grid-template-columns:44px minmax(0, 1fr) 44px;
  gap:10px;
  align-items:center;
}

.tp-gallery-viewport{
  position:relative;
  overflow:hidden;
}

.tp-gallery-nav{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid var(--c-border);
  background:#ffffff;
  color:rgba(0,0,0,0.86);
  cursor:pointer;
  font-weight:800;
  letter-spacing:0.02em;
  border-radius:0 !important;
  position:relative;
  z-index:4;
  pointer-events:auto;
}
.tp-gallery-nav:hover{background:rgba(0,0,0,0.02);}
.tp-gallery-nav:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);}
.tp-gallery-nav:disabled{opacity:0.45;cursor:not-allowed;}

.tp-gallery-more .tp-gallery-viewport::before,
.tp-gallery-more .tp-gallery-viewport::after{
  content:"";
  position:absolute;
  top:0;
  bottom:8px;
  width:22px;
  pointer-events:none;
  z-index:2;
}
.tp-gallery-more .tp-gallery-viewport::before{
  left:0;
  background:linear-gradient(to right, #ffffff, rgba(255,255,255,0));
}
.tp-gallery-more .tp-gallery-viewport::after{
  right:0;
  background:linear-gradient(to left, #ffffff, rgba(255,255,255,0));
}

.tp-gallery-track{
  --tp-gap:12px;
  display:flex;
  gap:var(--tp-gap);
  overflow-x:auto;
  padding-bottom:10px;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  scroll-snap-stop:always;
  scrollbar-width:thin;
}
.tp-gallery-track:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);}

.tp-gallery-thumb{
  flex:0 0 calc((100% - (2 * var(--tp-gap))) / 3);
  aspect-ratio:1 / 1;
  padding:0;
  border:1px solid var(--c-border);
  background:var(--c-wash);
  cursor:pointer;
  scroll-snap-align:start;
  border-radius:0 !important;
}

@media (max-width:860px){
  .tp-gallery-thumb{flex-basis:calc((100% - (1 * var(--tp-gap))) / 2);}
}

@media (max-width:520px){
  .tp-gallery{grid-template-columns:38px minmax(0, 1fr) 38px;}
  .tp-gallery-nav{width:38px;height:38px;}
}

@media (max-width:420px){
  .tp-gallery-thumb{flex-basis:100%;}
}
.tp-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.tp-gallery-thumb:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);}

.tp-gallery-dialog{
  width:min(980px, calc(100vw - 32px));
  max-width:980px;
  border:1px solid var(--c-border);
  background:#ffffff;
  padding:0;
}
.tp-gallery-dialog::backdrop{background:rgba(0,0,0,0.55);}

.tp-gallery-dialog-inner{position:relative;padding:16px;background:#ffffff;}
.tp-gallery-dialog-image{display:block;width:100%;height:auto;max-height:calc(100vh - 160px);object-fit:contain;}

.tp-dialog-close{
  position:absolute;
  top:12px;
  right:12px;
  padding:10px 12px;
  border:1px solid rgba(0,0,0,0.22);
  background:#ffffff;
  color:rgba(0,0,0,0.86);
  font-weight:780;
  letter-spacing:0.01em;
  cursor:pointer;
  border-radius:0 !important;
}
.tp-dialog-close:hover{background:rgba(0,0,0,0.02);}
.tp-dialog-close:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);}

/* Primary hover rules are defined in the main button system above. */

body .btn:focus-visible, body .button:focus-visible, body .cta:focus-visible, body .tp-btn:focus-visible,
body button:not(.tp-menu-btn):focus-visible,
body input[type="submit"]:focus-visible, body input[type="button"]:focus-visible, body input[type="reset"]:focus-visible{
  outline:var(--focus-ring);
  outline-offset:var(--focus-offset);
}

body .btn:disabled, body .button:disabled, body .cta:disabled, body .tp-btn:disabled,
body button:disabled,
body input[type="submit"]:disabled, body input[type="button"]:disabled, body input[type="reset"]:disabled{
  opacity:0.55;
  cursor:not-allowed;
}

/* CTA chips used on supplier cards and similar components */
body .cta{
  text-transform:uppercase;
  letter-spacing:0.12em;
  font-size:var(--fs-xs);
  padding:10px 12px;
  width:max-content;
}

/* Form controls: consistent inputs and selects */
body input[type="text"],
body input[type="search"],
body input[type="email"],
body input[type="password"],
body input[type="number"],
body input[type="url"],
body select,
body textarea,
body .tp-field{
  width:100%;
  border:1px solid var(--c-border);
  background:#ffffff;
  padding:12px 12px;
  font:inherit;
  font-size:var(--fs-base);
  line-height:1.35;
  color:var(--c-text);
  outline:none;
  border-radius:0 !important;
}

body textarea{min-height:120px;}
body textarea.tp-field{min-height:120px;}

body input::placeholder, body textarea::placeholder{color:rgba(0,0,0,0.52);}

body input:focus, body select:focus, body textarea:focus, body .tp-field:focus{
  border-color:rgba(226,0,26,0.55);
  outline:var(--focus-ring);
  outline-offset:2px;
}

body input[type="checkbox"], body input[type="radio"]{
  accent-color:var(--c-red);
}

/* Request introduction layout and form containment */
.ri-steps{margin:10px 0 0;color:var(--c-muted);}

.ri-steps .ri-step-line{line-height:1.45;}

.ri-hero-media{margin-top:14px;max-width:560px;border:1px solid var(--c-border);background:#fff;}
.ri-hero-img{width:100%;height:auto;display:block;}

.ri-details-intro{margin-top:10px;margin-bottom:12px;color:var(--c-muted);font-size:var(--fs-sm);line-height:1.55;}
.ri-summary-help{margin:0 0 12px;font-size:var(--fs-sm);line-height:1.55;}

.ri-layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 360px);
  gap:var(--space-4);
  align-items:start;
}

.ri-left, .ri-right{min-width:0;}

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

.ri-block{
  border:1px solid var(--c-border);
  background:#fff;
  padding:16px;
  min-width:0;
}

.ri-selected{
  border:1px solid var(--c-border);
  background:var(--c-wash);
  padding:12px;
  margin:0 0 18px;
}
.ri-selected strong{font-weight:var(--fw-title);}
.ri-selected .meta{margin-top:6px;color:var(--c-muted);font-size:var(--fs-sm);}
.ri-selected .actions{margin-top:10px;}

.ri-error{border:1px solid rgba(226,0,26,0.35);background:rgba(226,0,26,0.06);padding:12px;margin:0 0 16px;}

.ri-radio{display:grid;gap:10px;}
.ri-radio label{
  display:flex;
  gap:10px;
  align-items:flex-start;
  border:1px solid var(--c-border);
  background:#fff;
  padding:12px;
  cursor:pointer;
  min-width:0;
}
.ri-radio input{margin-top:5px;}
.ri-radio .ri-radio-body{min-width:0;}
.ri-radio .title{font-weight:var(--fw-title);}
.ri-radio .sub{margin-top:4px;color:var(--c-muted);font-size:var(--fs-sm);line-height:1.55;}
.ri-radio .price{margin-left:auto;font-weight:900;white-space:nowrap;}

.ri-help{margin-top:10px;color:var(--c-muted);font-size:var(--fs-sm);line-height:1.55;}

.ri-field{margin-top:12px;}
.ri-field.first{margin-top:10px;}

/* Critical containment for form controls inside grid contexts */
.ri-form{min-width:0;}
.ri-form .tp-field{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

.ri-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:16px;
  align-items:center;
}
.ri-actions .primary{margin-left:auto;}
.ri-actions .btn{text-transform:none;letter-spacing:0;font-weight:var(--fw-title);}

@media (max-width: 640px){
  .ri-actions{flex-direction:column;align-items:stretch;}
  .ri-actions .primary{margin-left:0;}
}

.ri-summary h2{margin:0 0 12px;font-size:20px;letter-spacing:-0.01em;}
.ri-summary .line{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid rgba(0,0,0,0.08);}
.ri-summary .line:last-child{border-bottom:0;}
.ri-summary .k{color:var(--c-muted);}
.ri-notes{margin-top:14px;color:var(--c-muted);font-size:var(--fs-sm);line-height:1.55;}
.ri-notes ul{margin:10px 0 0;padding-left:18px;}
.ri-notes li{margin:6px 0;}

/* Premium bullets for content lists.
   Scoped to reading and page containers to avoid nav and utility lists. */
.page ul:not(.links):not(.feat):not(.plan-list):not(.about-points),
.section ul:not(.links):not(.feat):not(.plan-list):not(.about-points),
.prose ul:not(.links):not(.feat):not(.plan-list):not(.about-points),
.rt ul:not(.links):not(.feat):not(.plan-list):not(.about-points){
  list-style:none;
  padding-left:0;
}

.page ul:not(.links):not(.feat):not(.plan-list):not(.about-points) > li,
.section ul:not(.links):not(.feat):not(.plan-list):not(.about-points) > li,
.prose ul:not(.links):not(.feat):not(.plan-list):not(.about-points) > li,
.rt ul:not(.links):not(.feat):not(.plan-list):not(.about-points) > li{
  position:relative;
  padding-left:18px;
}

.page ul:not(.links):not(.feat):not(.plan-list):not(.about-points) > li + li,
.section ul:not(.links):not(.feat):not(.plan-list):not(.about-points) > li + li,
.prose ul:not(.links):not(.feat):not(.plan-list):not(.about-points) > li + li,
.rt ul:not(.links):not(.feat):not(.plan-list):not(.about-points) > li + li{
  margin-top:10px;
}

.page ul:not(.links):not(.feat):not(.plan-list):not(.about-points) > li::before,
.section ul:not(.links):not(.feat):not(.plan-list):not(.about-points) > li::before,
.prose ul:not(.links):not(.feat):not(.plan-list):not(.about-points) > li::before,
.rt ul:not(.links):not(.feat):not(.plan-list):not(.about-points) > li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.9em;
  width:7px;
  height:7px;
  background:var(--c-red);
  transform:translateY(-50%);
}

/* Override check icon lists to match the same bullet system. */
ul.feat{list-style:none;padding-left:0;}
ul.feat .check{display:none;}
ul.feat li{display:block;padding-left:18px;position:relative;}
ul.feat li + li{margin-top:10px;}
ul.feat li::before{content:"";position:absolute;left:0;top:0.9em;width:7px;height:7px;background:var(--c-red);transform:translateY(-50%);}

.mt-8 { margin-top: 8px; }
.mt-10 { margin-top: 10px; }
.mt-14 { margin-top: 14px; }
.mt-18 { margin-top: 18px; }

.list-pad { margin: 10px 0 0; padding-left: 18px; }
.lh-165 { line-height: 1.65; }


/* Home micro feature strip */
.home-microfeatures{
  margin-top: var(--section-gap-tight);
  padding: 18px 0 8px;
}

.home-microfeatures .mf-grid{
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  background: #ffffff;
}

@media (max-width: 900px){
  .home-microfeatures .mf-grid{ grid-template-columns: 1fr; }
}

.home-microfeatures .mf-item{
  padding: 20px 18px;
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 12px;
  align-items: start;
  border-right: 1px solid var(--c-border);
}

.home-microfeatures .mf-item:last-child{ border-right: 0; }
@media (max-width: 900px){
  .home-microfeatures .mf-item{ border-right: 0; border-bottom: 1px solid var(--c-border); }
  .home-microfeatures .mf-item:last-child{ border-bottom: 0; }
}

.home-microfeatures .mf-icon{
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--c-border);
  background: var(--c-wash);
}

.home-microfeatures .mf-icon svg{ width: 20px; height: 20px; display:block; }
.home-microfeatures .mf-title{ margin: 0; font-weight: 880; font-size: var(--fs-sm); color: var(--c-strong); }
.home-microfeatures .mf-sub{ margin: 4px 0 0; font-size: var(--fs-xs); color: var(--c-muted); line-height: 1.55; }


/* Home values section */
.home-values{
  margin-top: var(--section-gap);
  padding: 26px;
  border: 1px solid var(--c-border);
  background: #ffffff;
}

.home-values .hv-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}

@media (max-width: 900px){
  .home-values .hv-grid{ grid-template-columns: 1fr; }
}

.home-values .hv-item{
  padding: 18px 16px;
  border-right: 1px solid var(--c-border);
}

.home-values .hv-item:last-child{ border-right: 0; }

@media (max-width: 900px){
  .home-values .hv-item{ border-right: 0; border-bottom: 1px solid var(--c-border); }
  .home-values .hv-item:last-child{ border-bottom: 0; }
}

.home-values .hv-title{ margin: 0; font-size: var(--fs-lg); font-weight: 800; }
.home-values .hv-body{ margin: 8px 0 0; color: var(--c-muted); line-height: 1.7; }


/* Home how it works */
.home-howitworks{
  margin-top: var(--section-gap);
}

.home-howitworks .hi-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 18px;
}

.home-howitworks .hi-title{
  margin:0;
  font-size:34px;
  line-height:1.12;
  font-weight:800;
  color: var(--c-red);
}

.home-howitworks .hi-sub{
  margin:8px 0 0;
  color: var(--c-muted);
  font-size:var(--fs-md);
}

.home-howitworks .hi-link{
  color: var(--c-red);
  text-decoration:none;
  font-weight:850;
  letter-spacing:0.02em;
  white-space:nowrap;
  border-bottom: 2px solid rgba(226,0,26,0.40);
  padding-bottom: 2px;
}

.home-howitworks .hi-link:hover,
.home-howitworks .hi-link:focus-visible{
  border-bottom-color: rgba(226,0,26,0.72);
  outline: none;
}

.home-howitworks .hi-grid{
  margin-top: 18px;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

@media (max-width: 980px){
  .home-howitworks .hi-grid{ grid-template-columns: 1fr; }
}

.home-howitworks .hi-card{
  border: 1px solid var(--c-border);
  background:#ffffff;
  padding: 22px;
}

.home-howitworks .hi-card-inner{
  display:grid;
  grid-template-columns: 48px 1fr;
  gap: 14px;
  align-items:start;
}

.home-howitworks .hi-num{
  width: 44px;
  height: 44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border: 2px solid rgba(226,0,26,0.34);
  color: var(--c-red);
  font-weight: 900;
  background: rgba(226,0,26,0.02);
}

.home-howitworks .hi-step-title{
  margin:0;
  font-size: 20px;
  line-height: 1.18;
  font-weight: 800;
  color: var(--c-strong);
}

.home-howitworks .hi-step-body{
  margin: 8px 0 0;
  color: var(--c-muted);
  line-height: 1.7;
}


/* Home spacing: services to insights */
.plans-section{
  margin-bottom: var(--section-gap);
}


/* Services page
   Premium layout, sharp edges, SSR only */

.svc-page{
  padding: 44px 0 72px;
}

.svc-hero{
  display:grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: var(--space-7);
  align-items: start;
  margin-bottom: var(--section-gap);
}

.svc-sub{
  margin: 14px 0 0;
  max-width: 78ch;
  color: var(--c-muted);
}

.svc-hero-actions{
  margin-top: var(--space-4);
  display:flex;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.svc-media{
  position: relative;
  border: 1px solid var(--c-border);
  background:
    linear-gradient(0deg, rgba(0,0,0,0.03), rgba(0,0,0,0.03)),
    repeating-linear-gradient(135deg, rgba(0,0,0,0.04) 0 1px, transparent 1px 12px);
  min-height: 300px;
  padding: var(--space-6);
  overflow: hidden;
}

.svc-media-img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.svc-hero-body{margin-top: var(--space-3); max-width: 78ch;}

.svc-media-inner{
  max-width: 52ch;
}

.svc-media-text{
  margin-top: 12px;
  color: rgba(0,0,0,0.74);
  line-height: 1.7;
}

.svc-quote{
  position: absolute;
  left: var(--space-6);
  bottom: var(--space-6);
  background: #ffffff;
  border: 1px solid var(--c-border);
  padding: 14px 14px;
  width: min(360px, calc(100% - 48px));
}

.svc-quote-text{
  font-weight: 820;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

.svc-quote-meta{
  margin-top: 8px;
  font-size: 13px;
  color: rgba(0,0,0,0.66);
}

.svc-intro{
  margin-bottom: var(--section-gap);
}

.svc-grid-wrap{
  border: 1px solid var(--c-border);
  background: var(--c-wash);
  padding: var(--space-5);
}

.svc-grid{
  gap: var(--space-3);
}

.svc-grid.balanced-card-grid{
  gap: var(--space-3);
}

.svc-grid.balanced-card-grid > *{
  flex-basis: calc((100% - (var(--space-3) * 2)) / 3);
  max-width: calc((100% - (var(--space-3) * 2)) / 3);
}

.svc-card{
  background:#ffffff;
  border: 1px solid var(--c-border);
  padding: var(--space-4);
  display:flex;
  flex-direction: column;
  min-height: 320px;
}

.svc-card.is-selected{
  border-color: rgba(226,0,26,0.55);
}

.svc-card-top{
  min-width:0;
  display:flex;
  flex-direction:column;
}

.svc-icon{
  width: 42px;
  height: 42px;
  border: 1px solid var(--c-border);
  background: rgba(226,0,26,0.02);
  display:flex;
  align-items:center;
  justify-content:center;
}

.svc-icon svg{width: 22px; height: 22px; display:block;}
.svc-icon path{fill: var(--c-red);}

.svc-title{
  margin-top: 14px;
  font-weight: var(--fw-title);
  letter-spacing: -0.01em;
  font-size: 18px;
  line-height: 1.22;
  text-wrap: balance;
  min-height: 2.44em;
}

.svc-title-link{color: inherit; text-decoration: none;}
.svc-title-link:hover{text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px;}

.svc-desc{
  margin: 8px 0 0;
  color: rgba(0,0,0,0.72);
  line-height: 1.56;
  min-height: 4.68em;
  max-width: 34ch;
}

.svc-bullets{
  margin: 10px 0 0;
  padding-left: 18px;
  color: rgba(0,0,0,0.74);
  line-height: 1.6;
}

.svc-bullets li{margin: 6px 0;}

.svc-card-bottom{
  margin-top: auto;
  padding-top: var(--space-4);
  border-top: 1px solid rgba(0,0,0,0.10);
}

.svc-price{
  margin-top: 2px;
  font-weight: 900;
  letter-spacing: -0.01em;
}

.svc-actions{
  margin-top: 12px;
  display:flex;
  gap: var(--space-2);
  flex-wrap: wrap;
  align-items:center;
}

.svc-buy{margin:0;}
.svc-actions .btn{padding: 10px 12px; font-size: 13px;}

.svc-empty{color: rgba(0,0,0,0.70); padding: 10px 6px; line-height: 1.7;}

.svc-process{
  margin-top: var(--section-gap);
  border: 1px solid var(--c-border);
  background: #ffffff;
  padding: var(--space-6);
}

.svc-band-head{display:flex;flex-direction:column;gap:10px;max-width:80ch;margin-bottom: var(--space-4);}
.svc-band-head p{margin:0;}

.svc-steps{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}

.svc-step{
  border: 1px solid var(--c-border);
  background: var(--c-wash-2);
  padding: var(--space-4);
}

.svc-step-title{font-weight: 900; letter-spacing: -0.01em;}
.svc-step-desc{margin: 10px 0 0; color: rgba(0,0,0,0.72); line-height: 1.65;}

.svc-notes{
  margin-top: var(--section-gap);
  border: 1px solid var(--c-border);
  background: var(--c-wash);
  padding: var(--space-5);
}

.svc-notes-title{margin:0; font-size: 22px; line-height: 1.15; font-weight: 900; letter-spacing: -0.01em;}

.svc-notes-list{
  margin: 14px 0 0;
  padding-left: 18px;
  color: rgba(0,0,0,0.74);
  line-height: 1.7;
}

.svc-notes-list li{margin: 8px 0;}

.svc-cta{
  margin-top: var(--section-gap);
  border: 1px solid var(--c-border);
  background:#ffffff;
  padding: var(--space-6);
}

.svc-cta-inner{
  display:grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: var(--space-6);
  align-items: stretch;
}

.svc-cta-actions{margin-top: var(--space-4); display:flex; gap: var(--space-2); flex-wrap:wrap;}

.svc-cta-right{min-width:0;}

.svc-cta-media{
  border:1px solid var(--c-border);
  background:repeating-linear-gradient(135deg, rgba(0,0,0,0.04) 0 1px, transparent 1px 12px);
  height: 100%;
  min-height: 220px;
}

.svc-cta-img{
  width:100%;
  height:100%;
  min-height: 220px;
  display:block;
  object-fit:cover;
  border:1px solid var(--c-border);
}

@media (max-width: 980px){
  .svc-hero{grid-template-columns: 1fr; gap: var(--space-5);}
  .svc-media{min-height: 240px; padding: var(--space-5);}
  .svc-quote{left: var(--space-5); bottom: var(--space-5); width: min(360px, calc(100% - 40px));}
  .svc-grid.balanced-card-grid > *{flex-basis:calc((100% - var(--space-3)) / 2);max-width:calc((100% - var(--space-3)) / 2);} 
  .svc-grid-wrap{padding: var(--space-4);}
  .svc-steps{grid-template-columns: 1fr;}
  .svc-process{padding: var(--space-5);}
  .svc-cta{padding: var(--space-5);}
  .svc-cta-inner{grid-template-columns: 1fr;}
}

/* About page upgrade (Port09.22)
   Premium layout, sharp edge, SSR only. */

.about-page{
  padding:var(--space-7) 0 0;
}

.about-hero{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap:var(--space-6);
  align-items:start;
}

.about-sub{
  margin:0;
  color:var(--c-muted);
  max-width:72ch;
}

.about-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:18px;
}

.about-media{
  position:relative;
  border:1px solid var(--c-border);
  background:var(--c-wash);
}

.about-media-inner{
  aspect-ratio: 16 / 11;
  border:1px solid rgba(0,0,0,0.0);
  background:
    linear-gradient(135deg, rgba(226,0,26,0.08), rgba(0,0,0,0.03));
  position:relative;
  overflow:hidden;
}

.about-media-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.about-quote{
  position:absolute;
  left:16px;
  bottom:16px;
  max-width:320px;
  border:1px solid var(--c-border);
  background:#ffffff;
  padding:12px 14px;
}

.about-quote-text{font-weight:800; color:rgba(0,0,0,0.88);}
.about-quote-meta{margin-top:6px; font-size:13px; color:var(--c-muted);}

.about-body{
  margin-top:var(--space-6);
  border:1px solid var(--c-border);
  background:var(--c-wash);
  padding:var(--space-5);
}

.about-split{
  margin-top:var(--space-6);
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  gap:var(--space-6);
  align-items:center;
}

.about-split-reverse .about-img{order:2;}
.about-split-reverse .about-copy{order:1;}

.about-img{
  border:1px solid var(--c-border);
  background:var(--c-wash);
  aspect-ratio: 4 / 3;
  overflow:hidden;
}

.about-split-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* Staff CMS container padding (Port09.27)
   Scoped to CMS pages only. */

.cms-body .tp-container{
  max-width:1240px;
  margin:0 auto;
  padding:0 24px;
}

@media (max-width: 720px){
  .cms-body .tp-container{padding:0 16px;}
}

.about-copy h2{margin:0 0 10px;}
.about-copy p{margin:0 0 16px;}

.about-dark{
  margin-top:72px;
  background:var(--c-black);
  color:var(--c-white);
  border-top:1px solid rgba(255,255,255,0.14);
  border-bottom:1px solid rgba(255,255,255,0.14);
  padding:var(--space-7) 0;
}

.about-dark h2{color:var(--c-white);}
.about-dark-sub{margin:10px 0 0; color:rgba(255,255,255,0.72); max-width:72ch;}

.about-features{
  margin-top:var(--space-6);
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:var(--space-4);
}

.about-feature{
  border:1px solid rgba(255,255,255,0.18);
  padding:18px;
  background:rgba(255,255,255,0.02);
}

.about-feature-ic{
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,0.20);
  margin-bottom:12px;
}

.about-feature-ic svg{width:20px;height:20px;fill:currentColor;color:var(--c-white);}
.about-feature-title{font-weight:900; letter-spacing:-0.01em;}
.about-feature-desc{margin-top:6px; color:rgba(255,255,255,0.74); font-size:15px;}

.about-insights{
  padding:var(--space-7) 0;
}

.about-ins-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
}

.about-ins-grid{
  margin-top:var(--space-5);
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:var(--space-4);
}

.about-ins-card{
  border:1px solid var(--c-border);
  background:#ffffff;
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.about-ins-tag{
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:rgba(0,0,0,0.70);
}

.about-ins-title{
  font-weight:900;
  text-decoration:none;
}

.about-ins-excerpt{
  margin:0;
  color:var(--c-muted);
}

.about-ins-empty{
  margin-top:var(--space-5);
  border:1px solid var(--c-border);
  background:var(--c-wash);
  padding:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.about-cta{
  border-top:1px solid var(--c-border);
  background:var(--c-wash);
  padding:var(--space-6) 0;
}

.about-cta-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}

.about-cta-copy{max-width:72ch;}
.about-cta-copy h2{margin:0 0 10px;}
.about-cta-copy p{margin:0;}

.about-cta-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

@media (max-width: 980px){
  .about-hero{grid-template-columns:1fr;}
  .about-split{grid-template-columns:1fr;}
  .about-split-reverse .about-img{order:1;}
  .about-split-reverse .about-copy{order:2;}
  .about-features{grid-template-columns:1fr;}
  .about-ins-grid{grid-template-columns:1fr;}
  .about-quote{position:static; margin:12px;}
}

/* About advisor section */
.about-advisor{padding:var(--space-6) 0;}
.about-advisor-grid{
  display:grid;
  grid-template-columns:minmax(360px, 42%) minmax(0, 1fr);
  gap:28px;
  align-items:stretch;
  padding:22px;
  border:1px solid var(--c-border);
  background:var(--c-wash-2);
}
.about-advisor-media{min-width:0;display:flex;}
.advisor-portrait{
  border:1px solid var(--c-border);
  background:var(--c-wash);
  display:grid;
  place-items:center;
  min-height:480px;
  width:100%;
  overflow:hidden;
  position:relative;
}
.advisor-img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;}
.advisor-initials{
  width:92px;
  height:92px;
  border:1px solid var(--c-border);
  display:grid;
  place-items:center;
  font-weight:900;
  letter-spacing:0.12em;
  color:rgba(0,0,0,0.82);
  background:#ffffff;
}
.advisor-role{margin-top:6px;font-weight:850;letter-spacing:0.01em;color:rgba(0,0,0,0.78);}
.advisor-bullets{margin:14px 0 0;padding-left:18px;}
.advisor-bullets li{margin:6px 0;color:rgba(0,0,0,0.78);}
.advisor-actions{margin-top:16px;display:flex;gap:12px;flex-wrap:wrap;}

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

/* Expert profile */
.expert-page{padding:0 0 70px;}
.expert-hero{
  padding:var(--space-6) 0;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(380px, 420px);
  gap:30px;
  align-items:center;
}
.expert-sub{max-width:70ch;}
.expert-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;}
.expert-portrait{
  border:1px solid var(--c-border);
  background:var(--c-wash);
  min-height:440px;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.expert-img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;}
.expert-initials{
  width:110px;
  height:110px;
  border:1px solid var(--c-border);
  display:grid;
  place-items:center;
  font-weight:900;
  letter-spacing:0.14em;
  background:#ffffff;
  color:rgba(0,0,0,0.82);
}
.expert-section{padding:var(--space-5) 0;border-top:1px solid var(--c-border);}
.expert-section h2{margin:0 0 10px;}
.expert-grid{
  padding:var(--space-5) 0;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  gap:18px;
}
.expert-card{border:1px solid var(--c-border);background:var(--c-wash-2);padding:18px;}
.expert-card h3{margin:0 0 10px;}
.expert-list{margin:0;padding-left:18px;}
.expert-list li{margin:6px 0;color:rgba(0,0,0,0.78);}
.expert-cta{padding:var(--space-6) 0;border-top:1px solid var(--c-border);}
.expert-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:var(--c-wash);border:1px solid var(--c-border);padding:18px;}
.expert-cta-actions{display:flex;gap:12px;flex-wrap:wrap;}

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

/* Home premium sections after the hero */
.home-know{padding:var(--space-6) 0;border-top:1px solid var(--c-border);}
.home-know-grid{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:22px;align-items:stretch;}
.home-know-media{min-width:0;display:flex;}
.home-know-copy{min-width:0;}
.home-media-panel{border:1px solid var(--c-border);background:var(--c-wash);min-height:360px;position:relative;flex:1;overflow:hidden;}
.home-media-img{display:block;width:100%;height:100%;object-fit:cover;}
.home-media-inner{position:absolute;inset:16px;border:1px solid rgba(0,0,0,0.10);background:rgba(0,0,0,0.02);}
.home-know-body{margin-top:8px;max-width:72ch;}
.home-know-body p{margin:0 0 12px;}
.home-principles{margin-top:16px;display:grid;grid-template-columns:minmax(0, 1fr);gap:12px;}
.home-principle{border:1px solid var(--c-border);background:var(--c-wash-2);padding:14px;}
.home-principle-title{font-weight:900;letter-spacing:0.01em;}
.home-principle-sub{margin-top:6px;}
.home-know-actions{margin-top:16px;display:flex;gap:12px;flex-wrap:wrap;}

.home-services{padding:var(--space-6) 0;border-top:1px solid var(--c-border);}
.home-sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.home-sec-title{margin:8px 0 0;}
.home-services-grid{margin-top:16px;}
.balanced-card-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:14px;}
.balanced-card-grid > *{flex:0 1 calc((100% - 28px) / 3);max-width:calc((100% - 28px) / 3);min-width:0;}
.home-svc{display:flex;flex-direction:column;border:1px solid var(--c-border);background:var(--c-wash-2);padding:16px;text-decoration:none;min-height:190px;}
.home-svc:hover, .home-svc:focus-visible{outline:none;background:rgba(0,0,0,0.03);border-color:rgba(0,0,0,0.24);}
.home-svc-ic{width:30px;height:30px;margin-bottom:10px;}
.home-svc-ic svg{width:30px;height:30px;display:block;}
.home-svc-title{font-weight:900;letter-spacing:0.01em;line-height:1.22;text-wrap:balance;min-height:2.44em;}
.home-svc-sub{margin-top:8px;line-height:1.56;min-height:4.68em;max-width:34ch;}
.home-svc-price{margin-top:auto;padding-top:12px;font-weight:900;color:rgba(0,0,0,0.82);}

.home-work{padding:var(--space-6) 0;border-top:1px solid var(--c-border);}
.home-work-actions{display:flex;gap:12px;flex-wrap:wrap;}
.home-work-grid{margin-top:16px;display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:14px;}
.home-work-card{border:1px solid var(--c-border);background:var(--c-wash-2);padding:16px;}
.home-work-title{font-weight:900;letter-spacing:0.01em;margin-bottom:8px;}

.home-cta{padding:var(--space-6) 0;border-top:1px solid var(--c-border);}
.home-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:var(--c-wash);border:1px solid var(--c-border);padding:18px;}
.home-cta-actions{display:flex;gap:12px;flex-wrap:wrap;}

@media (max-width: 980px){
  .home-know-grid{grid-template-columns:1fr;}
  .balanced-card-grid > *{flex-basis:calc((100% - 14px) / 2);max-width:calc((100% - 14px) / 2);}
  .home-work-grid{grid-template-columns:1fr;}
}


@media (max-width: 640px){
  .svc-grid.balanced-card-grid > *,
  .balanced-card-grid > *{flex-basis:100%;max-width:100%;}
}

/* Staff CMS editor pages (not Django admin) */
.cms-page{padding:42px 0 64px;}
.cms-top{border-bottom:1px solid var(--c-border);background:#fff;}
.cms-top-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;}
.cms-brand{font-weight:900;letter-spacing:0.01em;text-decoration:none;color:#111;}
.cms-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.cms-nav-link{display:inline-block;border:1px solid var(--c-border);padding:8px 10px;text-decoration:none;font-weight:800;background:var(--c-wash-2);}
.cms-nav-link:hover,.cms-nav-link:focus-visible{outline:none;background:rgba(0,0,0,0.03);}
.cms-head{margin-bottom:18px;}
.cms-title{margin:8px 0 0;}
.cms-subhead{margin:16px 0 10px;font-size:18px;}
.cms-messages{margin:18px 0;display:grid;gap:10px;}
.cms-msg{border:1px solid var(--c-border);background:var(--c-wash);padding:12px;font-weight:700;}

.cms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px;}
.cms-card{display:block;border:1px solid var(--c-border);background:var(--c-wash-2);padding:16px;text-decoration:none;}
.cms-card:hover,.cms-card:focus-visible{outline:none;background:rgba(0,0,0,0.03);border-color:rgba(0,0,0,0.24);}
.cms-card-title{font-weight:900;letter-spacing:0.01em;margin-bottom:8px;}

.cms-actions{margin:14px 0;display:flex;gap:12px;flex-wrap:wrap;}

.cms-list{display:grid;gap:12px;margin-top:10px;}
.cms-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border:1px solid var(--c-border);background:var(--c-wash-2);padding:14px;}
.cms-row-title{font-weight:900;letter-spacing:0.01em;margin-bottom:4px;}
.cms-row-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.cms-pill{border:1px solid rgba(0,0,0,0.18);background:#fff;padding:6px 10px;font-weight:800;font-size:13px;}
.cms-pill.subtle{background:transparent;}

.cms-form{border:1px solid var(--c-border);background:var(--c-wash-2);padding:16px;}
.cms-field{display:grid;gap:8px;margin-bottom:14px;}
.cms-field label{font-weight:900;letter-spacing:0.01em;}
.cms-field input[type="text"],
.cms-field input[type="url"],
.cms-field textarea{width:100%;max-width:100%;box-sizing:border-box;border:1px solid var(--c-border);padding:10px 12px;background:#fff;font-family:inherit;font-size:16px;}
.cms-help{font-size:14px;}

.cms-grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.cms-check{display:flex;align-items:center;gap:10px;font-weight:800;}

.cms-preview{margin-top:10px;border:1px solid var(--c-border);background:rgba(0,0,0,0.02);padding:12px;}
.cms-preview-label{font-weight:900;margin-bottom:8px;}
.cms-preview-img{width:100%;height:auto;display:block;aspect-ratio:16 / 9;object-fit:cover;}

.cms-form-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;}

@media (max-width: 860px){
  .cms-grid{grid-template-columns:1fr;}
  .cms-row{flex-direction:column;}
  .cms-grid-two{grid-template-columns:1fr;}
}

/* Home hero editable intro */
.hero-stage .home-hero-intro{margin-bottom:16px;max-width:860px;}
.hero-stage .home-hero-eyebrow{font-weight:900;letter-spacing:0.18em;font-size:12px;color:rgba(255,255,255,0.72);}
.hero-stage .home-hero-title{margin-top:10px;font-weight:900;letter-spacing:-0.02em;font-size:clamp(26px,2.4vw,34px);color:#fff;}
.hero-stage .home-hero-body{margin-top:12px;color:rgba(255,255,255,0.78);max-width:70ch;}
.hero-stage .home-hero-body p{margin:0 0 10px;}

/* Floating assistant widget */
.tp-assistant{position:fixed;right:calc(18px + env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));z-index:1200;font-family:inherit;}
.tp-assistant-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 14px;border:1px solid rgba(0,0,0,0.24);background:#fff;color:rgba(0,0,0,0.88);font-weight:900;letter-spacing:0.02em;font-size:13px;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 26px rgba(0,0,0,0.12);}
.tp-assistant-btn:hover{border-color:rgba(226,0,26,0.35);box-shadow:0 12px 30px rgba(0,0,0,0.14);}
.tp-assistant-btn:focus-visible{border-color:rgba(226,0,26,0.35);box-shadow:0 12px 30px rgba(0,0,0,0.14);outline:var(--focus-ring);outline-offset:var(--focus-offset);}

.tp-assistant-panel{display:none;flex-direction:column;position:fixed;right:calc(18px + env(safe-area-inset-right));bottom:calc(70px + env(safe-area-inset-bottom));width:360px;max-width:calc(100vw - 36px);background:#fff;border:1px solid rgba(0,0,0,0.24);box-shadow:0 14px 40px rgba(0,0,0,0.18);overflow:hidden;max-height:75vh;height:auto;}
.tp-assistant-window{max-height:75vh;flex-direction:column;}
.tp-assistant[data-open="true"] .tp-assistant-panel{display:flex;}

.tp-assistant-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px;border-bottom:1px solid rgba(0,0,0,0.14);}
.tp-assistant-head-left{display:flex;flex-direction:column;gap:6px;min-width:0;}
.tp-assistant-title{font-weight:900;letter-spacing:0.01em;font-size:14px;color:rgba(0,0,0,0.86);}
.tp-assistant-head-sub{font-size:12px;color:rgba(0,0,0,0.62);font-weight:700;}
.tp-assistant-head-links{display:flex;flex-wrap:wrap;gap:10px;}
.tp-assistant-link-btn{padding:0;border:0;background:transparent;color:rgba(0,0,0,0.78);font-weight:900;font-size:12px;letter-spacing:0.02em;text-transform:uppercase;cursor:pointer;border-bottom:1px solid rgba(0,0,0,0.22);}
.tp-assistant-link-btn:hover{border-bottom-color:rgba(226,0,26,0.35);}
.tp-assistant-link-btn:focus-visible{border-bottom-color:rgba(226,0,26,0.35);outline:var(--focus-ring);outline-offset:var(--focus-offset);}
.tp-assistant-email-value{font-weight:900;color:rgba(0,0,0,0.86);}
.tp-assistant-subtitle{margin-top:4px;font-size:12px;color:rgba(0,0,0,0.62);font-weight:700;max-width:30ch;}

.tp-assistant-intro{border:1px solid rgba(0,0,0,0.14);background:#fff;padding:10px;display:grid;gap:10px;}
.tp-assistant-intro-body{color:rgba(0,0,0,0.78);font-size:13px;line-height:1.45;}
.tp-assistant-intro-body p{margin:0 0 10px;}
.tp-assistant-quick{display:flex;flex-wrap:wrap;gap:8px;}
.tp-assistant-quick-btn{border:1px solid rgba(0,0,0,0.18);background:rgba(0,0,0,0.02);padding:8px 10px;font-weight:900;font-size:12px;cursor:pointer;}
.tp-assistant-quick-btn:hover{border-color:rgba(226,0,26,0.35);background:rgba(226,0,26,0.04);}
.tp-assistant-quick-btn:focus-visible{border-color:rgba(226,0,26,0.35);background:rgba(226,0,26,0.04);outline:var(--focus-ring);outline-offset:var(--focus-offset);}
.tp-assistant-cta-row{display:flex;align-items:center;justify-content:flex-start;}
.tp-assistant-cta{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,0.22);background:#000;color:#fff;text-decoration:none;padding:10px 12px;font-weight:900;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;}
.tp-assistant-cta:hover{border-color:rgba(226,0,26,0.35);}
.tp-assistant-cta:focus-visible{border-color:rgba(226,0,26,0.35);outline:var(--focus-ring);outline-offset:var(--focus-offset);}
.tp-assistant-disclaimer{font-size:12px;color:rgba(0,0,0,0.62);line-height:1.4;padding:0 12px 12px;}
.tp-assistant-disclaimer p{margin:0;}
.tp-assistant-hidden{display:none;}

.tp-assistant-close{border:1px solid rgba(0,0,0,0.18);background:rgba(0,0,0,0.02);padding:8px 10px;font-weight:900;font-size:12px;cursor:pointer;}
.tp-assistant-close:hover{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.28);}
.tp-assistant-close:focus-visible{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.28);outline:var(--focus-ring);outline-offset:var(--focus-offset);}

.tp-assistant-body{display:flex;flex-direction:column;flex:1;min-height:0;}

.tp-assistant-msgs{flex:1;min-height:160px;overflow:auto;padding:12px;display:grid;gap:10px;background:rgba(0,0,0,0.01);}
.tp-assistant-quick-row{display:flex;flex-wrap:wrap;gap:8px;padding:0 12px 12px;}
.tp-assistant-actions{display:flex;align-items:center;justify-content:flex-start;padding:0 12px 12px;}
.tp-assistant-status-error{color:rgba(226,0,26,0.78);font-weight:700;}
.tp-assistant-msg{border:1px solid rgba(0,0,0,0.14);background:#fff;padding:10px 10px;font-size:13px;line-height:1.45;color:rgba(0,0,0,0.86);white-space:pre-wrap;}
.tp-assistant-msg.user{border-color:rgba(226,0,26,0.22);background:rgba(226,0,26,0.04);}
.tp-assistant-msg a{color:rgba(0,0,0,0.86);text-decoration:none;border-bottom:1px solid rgba(0,0,0,0.22);}
.tp-assistant-msg a:hover{border-bottom-color:rgba(226,0,26,0.35);}

.tp-assistant-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px;border-top:1px solid rgba(0,0,0,0.14);}
.tp-assistant-input{width:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,0.18);background:#fff;padding:10px 10px;font:inherit;font-size:13px;}
.tp-assistant-input:focus{outline:none;border-color:rgba(226,0,26,0.35);}
.tp-assistant-send{border:1px solid rgba(0,0,0,0.22);background:#000;color:#fff;padding:10px 12px;font-weight:900;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;}
.tp-assistant-send:hover{background:rgba(0,0,0,0.92);border-color:rgba(0,0,0,0.92);color:#fff;}
.tp-assistant-send:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);}
.tp-assistant-send:disabled{opacity:0.55;cursor:not-allowed;}

.tp-assistant-gate{padding:0 12px 12px;display:flex;flex-direction:column;gap:10px;max-height:32vh;overflow:hidden;}
.tp-assistant-gate-fields{display:grid;gap:10px;overflow:auto;min-height:0;}
.tp-assistant-gate-field{width:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,0.18);background:#fff;padding:10px 10px;font:inherit;font-size:13px;}
.tp-assistant-gate-field:focus{outline:none;border-color:rgba(226,0,26,0.35);}
.tp-assistant-gate-actions{display:flex;align-items:center;justify-content:flex-start;}

.tp-assistant-gate-row{display:grid;grid-template-columns:1fr;gap:10px;align-items:center;}
.tp-assistant-field-label{font-size:12px;font-weight:600;letter-spacing:0.01em;color:rgba(0,0,0,0.78);}
.tp-assistant-gate-note{font-size:12px;line-height:1.35;color:rgba(0,0,0,0.62);}
.tp-assistant-email{width:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,0.18);background:#fff;padding:10px 10px;font:inherit;font-size:13px;}
.tp-assistant-email:focus{outline:none;border-color:rgba(226,0,26,0.35);}
.tp-assistant-email-btn{border:1px solid rgba(0,0,0,0.22);background:#000;color:#fff;padding:10px 12px;font-weight:900;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;}
.tp-assistant-email-btn:hover{background:rgba(0,0,0,0.92);border-color:rgba(0,0,0,0.92);color:#fff;}
.tp-assistant-email-btn:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset);}
.tp-assistant-email-btn:disabled{opacity:0.55;cursor:not-allowed;}
.tp-assistant-email-skip{border:1px solid rgba(0,0,0,0.18);background:rgba(0,0,0,0.02);padding:10px 12px;font-weight:900;font-size:12px;letter-spacing:0.02em;text-transform:uppercase;cursor:pointer;}
.tp-assistant-email-skip:hover,.tp-assistant-email-skip:focus-visible{outline:none;border-color:rgba(226,0,26,0.35);background:rgba(226,0,26,0.04);}

.tp-assistant-status{min-height:18px;padding:0 12px 12px;font-size:12px;color:rgba(0,0,0,0.62);}

@media (max-width: 420px){
  .tp-assistant{right:calc(14px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));}
  .tp-assistant-panel{left:calc(14px + env(safe-area-inset-left));right:calc(14px + env(safe-area-inset-right));bottom:calc(70px + env(safe-area-inset-bottom));width:auto;max-width:none;}
  .tp-assistant-window{max-height:calc(100vh - 140px);}
}



@media (max-height:520px){
  .tp-assistant-panel{bottom:calc(14px + env(safe-area-inset-bottom));}
  .tp-assistant-window{max-height:calc(100vh - 28px);}
}
