/**
 * FSPL theme - Global: layout, media, components, animations, tables, text helpers, small-screen tuning
 * Colours/fonts come from tokens.css. Do not add inline styles in Elementor content; add a class here instead.
 */

/* ========== Layout: column proportions, max-widths, line-length caps ========== */
@media(min-width:901px){.elementor .e-con.fspl-fr{flex:var(--fr,1) 1 0;width:auto;max-width:none;min-width:0}
.elementor .e-con.fspl-cf-label{flex:0 0 240px;width:240px}.elementor .e-con.fspl-cf-logos{flex:1 1 0;width:auto;min-width:0}}
.fspl-fr-90{--fr:.9}.fspl-fr-100{--fr:1}.fspl-fr-105{--fr:1.05}.fspl-fr-110{--fr:1.1}.fspl-fr-155{--fr:1.55}.fspl-fr-190{--fr:1.9}

.fspl-badges{flex-wrap:wrap}.elementor .e-con.fspl-badge{flex:1 1 150px;min-width:150px;width:auto}
@media(max-width:600px){.fspl-btn-row .elementor-widget-button{flex:1 1 auto;width:auto}.fspl-btn-row .elementor-button{display:flex;justify-content:center;white-space:nowrap}}
.elementor .elementor-element.fspl-t-lede.elementor-widget{max-width:32em}.elementor .elementor-element.fspl-t-ledelg.elementor-widget{max-width:40em}
.fspl-maxw-920{max-width:920px}.fspl-maxw-712{max-width:712px}.fspl-maxw-640{max-width:640px}.fspl-maxw-860{max-width:860px}
.fspl-mw-240{max-width:240px}.fspl-mw-576{max-width:576px}.fspl-mw-640{max-width:640px}.fspl-mw-648{max-width:648px}.fspl-mw-828{max-width:828px}.fspl-mw-968{max-width:968px}

/* ========== Media: image frames, aspect ratios, photo tiles, video block, logo frames ========== */
.fspl-media{overflow:hidden;position:relative;background-image:repeating-linear-gradient(135deg,rgba(48,56,100,.07) 0 1px,transparent 1px 12px)}
.fspl-img{position:relative;width:100%}
.fspl-img .elementor-widget-container{position:static}
.fspl-r900-16-10{} .fspl-img img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.22,.61,.36,1)}
.fspl-ar-1-1{aspect-ratio:1 / 1}
.fspl-ar-16-9{aspect-ratio:16 / 9}
.fspl-ar-2-1{aspect-ratio:2 / 1}
.fspl-ar-21-8{aspect-ratio:21 / 8}
.fspl-ar-21-9{aspect-ratio:21 / 9}
.fspl-ar-3-4{aspect-ratio:3 / 4}
.fspl-ar-4-3{aspect-ratio:4 / 3}
.fspl-ar-4-5{aspect-ratio:4 / 5}
.fspl-ar-5-2{aspect-ratio:5 / 2}
.fspl-fill.fspl-img,.fspl-media-fill .fspl-img{position:absolute;inset:0;aspect-ratio:auto;width:100%;height:100%}
.fspl-media-fill{min-width:0}
@media(max-width:600px){.fspl-media-fill .fspl-img,.fspl-fill.fspl-img{position:relative;aspect-ratio:4/3;height:auto}}
.fspl-banner{background-image:repeating-linear-gradient(135deg,rgba(252,252,252,.05) 0 1px,transparent 1px 14px)}
.fspl-ind-tile,.fspl-video{position:relative;overflow:hidden;isolation:isolate}
.fspl-ind-tile::after,.fspl-video::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(to top,rgba(32,44,80,.95) 0%,rgba(32,44,80,.84) 45%,rgba(32,44,80,.40) 100%)}
.fspl-ind-tile:hover::after{background:rgba(48,56,100,.97)}
.fspl-logo-slot{position:relative;overflow:hidden;aspect-ratio:5/2}
.fspl-logo-slot.fspl-logo-single{aspect-ratio:2/1}
.fspl-logo-img.fspl-img{position:absolute;inset:0;aspect-ratio:auto;height:100%}
.fspl-logo-img img{object-fit:contain;padding:0}
@media(max-width:900px){.fspl-video{aspect-ratio:16/10}}
@media(max-width:600px){.fspl-video{aspect-ratio:auto;min-height:380px}.fspl-ar-3-4.fspl-ind-tile{aspect-ratio:16/11}}

/* ========== Components: links, cards, hover states, equal-height rows ========== */
.fspl-arrow{display:inline-block;transition:transform .2s ease}
.fspl-more a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .25s ease;text-decoration:none}
.fspl-more a:hover{background-size:100% 1px;text-decoration:none}
.fspl-card{position:relative}
.fspl-card:hover{border-color:var(--fspl-navy)}
.fspl-ind-tile:hover{border-color:var(--fspl-navy-deep)}
.fspl-stretch a::after{content:"";position:absolute;inset:0;z-index:1}
.fspl-span-all{grid-column:1/-1}
.elementor-button{transition:background-color .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s}
.elementor-button:hover{transform:translateY(-1px)}
.fspl-side-link{transition:background-color .15s,color .15s}
.fspl-side-link:not(.is-active):hover{background:var(--fspl-mist)}
.fspl-side-link:not(.is-active):hover .elementor-heading-title a{color:var(--fspl-navy)}
@media(min-width:1025px){.fspl-side{position:sticky;top:96px;align-self:flex-start}}
@media(max-width:900px){.fspl-side-links{flex-direction:row!important;flex-wrap:wrap!important;gap:6px!important;padding:0 12px 12px!important}
.fspl-side-links .fspl-side-link{border:1px solid var(--fspl-line);padding:6px 10px!important}
.fspl-side-links .fspl-side-link .elementor-heading-title{font-size:14px!important}}
.fspl-spec-wrap{-webkit-overflow-scrolling:touch}
.fspl-spec tr:last-child th,.fspl-spec tr:last-child td{border-bottom:0!important}
.fspl-grow{flex:1 1 auto}
@media(min-width:1121px) and (max-width:1131px){.fspl-eqh-d1131 .elementor-heading-title{min-height:2.3em}}
@media(min-width:1121px) and (max-width:1146px){.fspl-eqh-d1146 .elementor-heading-title{min-height:2.3em}}
@media(min-width:1121px) and (max-width:1156px){.fspl-eqh-d1156 .elementor-heading-title{min-height:2.3em}}
@media(min-width:1121px) and (max-width:1916px){.fspl-eqh-d1916 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:601px){.fspl-eqh-t601 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:626px){.fspl-eqh-t626 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:646px){.fspl-eqh-t646 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:661px){.fspl-eqh-t661 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:686px){.fspl-eqh-t686 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:711px){.fspl-eqh-t711 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:716px){.fspl-eqh-t716 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:741px){.fspl-eqh-t741 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:756px){.fspl-eqh-t756 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:776px){.fspl-eqh-t776 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:781px){.fspl-eqh-t781 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:876px){.fspl-eqh-t876 .elementor-heading-title{min-height:2.3em}}
@media(min-width:601px) and (max-width:896px){.fspl-eqh-t896 .elementor-heading-title{min-height:2.3em}}
@media(min-width:901px) and (max-width:986px){.fspl-eqh-x986 .elementor-heading-title{min-height:2.3em}}
@media(min-width:901px) and (max-width:1051px){.fspl-eqh-x1051 .elementor-heading-title{min-height:2.3em}}
@media(min-width:901px) and (max-width:1066px){.fspl-eqh-x1066 .elementor-heading-title{min-height:2.3em}}
@media(min-width:901px) and (max-width:1116px){.fspl-eqh-x1116 .elementor-heading-title{min-height:2.3em}}

.fspl-p3l{min-height:4.35em}
@media(max-width:600px){.fspl-p3l{min-height:0}}

/* ========== Small-screen tuning ========== */
@media(max-width:600px){
  .fspl-cfg .fspl-img{aspect-ratio:1/1}
}
@media(max-width:380px){
  .elementor-button{padding-left:16px!important;padding-right:16px!important}
  .fspl-root .e-con{--gap:min(var(--gap,0px),20px)}
}

/* ========== Media: responsive aspect ratios ========== */
@media(max-width:900px){.fspl-img.fspl-r900-16-10{aspect-ratio:16/10}.fspl-img.fspl-r900-4-3{aspect-ratio:4/3}}

/* ========== Specification tables, text helpers, mobile tables ========== */
/* ---- Row children without an explicit width (Elementor would make them 100% wide and wrap): size to content ---- */
.elementor .e-con.fspl-fit{width:auto;max-width:100%;flex:0 1 auto}

/* ---- Clickable cards: the stretched link must cover the whole card, so nothing inside may become the containing block ---- */
.fspl-card{position:relative;cursor:default}
.fspl-card[data-linked]{cursor:pointer}
.fspl-card :where(.elementor-element,.e-con,.e-con-inner){position:static}
.fspl-card .fspl-stretch a::after,.fspl-card .fspl-more a::after{content:"";position:absolute;inset:0;z-index:1}
.fspl-card .fspl-media{position:relative}
.fspl-card .elementor-heading-title a:focus-visible{outline:3px solid var(--fspl-navy);outline-offset:3px}
.elementor-widget-button .elementor-button{white-space:nowrap}

/* ---- Specification tables (HTML widget: edit the rows in the widget) ---- */
.fspl-spec-wrap{overflow-x:auto;border:1px solid var(--fspl-line);background:var(--fspl-white);font-family:var(--fspl-font-body);line-height:1.6;-webkit-overflow-scrolling:touch}
.fspl-spec{width:100%;border-collapse:collapse;min-width:460px}
.fspl-spec__th,.fspl-spec__td{text-align:left;vertical-align:top;padding:14px 16px;border-bottom:1px solid var(--fspl-line);font-size:15px}
.fspl-spec__th{width:34%;font-weight:600;color:var(--fspl-head);background:var(--fspl-mist)}
.fspl-spec__th--std{width:38%}
.fspl-spec__td{color:var(--fspl-ink)}
.fspl-spec__td--tbd{color:var(--fspl-steel)}
.fspl-spec tr:last-child .fspl-spec__th,.fspl-spec tr:last-child .fspl-spec__td{border-bottom:0}
.fspl-spec__sub{display:block;margin-top:10px;font-family:var(--fspl-font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--fspl-steel)}
.fspl-spec a{color:var(--fspl-navy)}

/* ---- Inline text helpers (classes used inside Text Editor / Heading widgets) ---- */
.elementor .elementor-widget-text-editor p{margin:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit}
.fspl-link-plain{color:inherit;text-decoration:none}
.fspl-link-navy{color:var(--fspl-navy)}
.fspl-more-link{color:var(--fspl-navy);font-weight:600;font-size:14px;text-decoration:none}
.fspl-em{color:var(--fspl-head)}
.fspl-em--navy{color:var(--fspl-navy)}
.fspl-steel{color:var(--fspl-steel)}
.fspl-crumb-current{color:var(--fspl-white)}
.fspl-tbd{border-bottom:1px dashed currentColor;color:var(--fspl-steel)}
.fspl-num__unit{font-size:.4em;font-weight:600;margin-left:6px;letter-spacing:0}
.fspl-foot-label{display:block;color:var(--fspl-white);font-weight:500}

/* ---- Stacked specification tables on mobile ---- */
@media(max-width:600px){
  .fspl-spec-wrap{border:0;background:transparent}
  .fspl-spec{min-width:0}
  .fspl-spec,.fspl-spec tbody,.fspl-spec tr,.fspl-spec__th,.fspl-spec__td{display:block;width:auto}
  .fspl-spec tr{background:var(--fspl-white);border:1px solid var(--fspl-line);margin-bottom:10px}
  .fspl-spec__th{border-bottom:1px solid var(--fspl-line);padding:10px 14px;font-size:14px}
  .fspl-spec__td{border-bottom:0;padding:12px 14px}
  .fspl-spec tr:last-child .fspl-spec__th{border-bottom:1px solid var(--fspl-line)}
}
