/* Foundry Forward — brand stylesheet (design layer for native Elementor build) */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter+Tight:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{--ff-navy:#0F1D35;--ff-navy-deep:#08111F;--ff-navy-soft:#1A2A47;--ff-copper:#B87333;--ff-copper-bright:#D68A45;--ff-bronze:#8A6332;--ff-parch:#F4EDE0;--ff-parch-warm:#EBE1CF;--ff-ink:#1A1A1A;--ff-ink-soft:#3A3A3A;--ff-rule:rgba(184,115,51,.28);}

/* ---- Base type scoped to Foundry pages/templates ---- */
.ff-page,.ff-page p,.ff-page .elementor-widget-text-editor{font-family:'Inter Tight',sans-serif;}
.ff-page h1,.ff-page h2,.ff-page h3,.ff-page h4,.ff-page h5,.ff-page h6,.ff-page .elementor-heading-title{font-family:'Cormorant Garamond',serif;font-weight:500;line-height:1.05;letter-spacing:-.01em;}
.ff-page .elementor-heading-title em,.ff-page em{font-style:italic;color:var(--ff-copper);}
.ff-page p{line-height:1.65;}

/* ---- Buttons: sharp, mono, uppercase ---- */
.ff-page .elementor-button{font-family:'JetBrains Mono',monospace;font-size:.76rem;letter-spacing:.15em;text-transform:uppercase;border-radius:0;font-weight:600;padding:.95rem 1.6rem;transition:transform .2s,background-color .2s,color .2s,border-color .2s;}
.ff-page .elementor-button:hover{transform:translateY(-2px);}
.ff-btn-ghost .elementor-button{background:transparent!important;border:1px solid rgba(244,237,224,.45);color:#F4EDE0!important;}
.ff-btn-ghost .elementor-button:hover{border-color:#F4EDE0;}
.ff-btn-outline .elementor-button{background:transparent!important;border:1px solid var(--ff-rule);color:var(--ff-navy)!important;}
.ff-btn-outline .elementor-button:hover{border-color:var(--ff-copper);background:rgba(184,115,51,.08)!important;}

/* ---- Eyebrow (mono + copper rule) ---- */
.ff-eyebrow .elementor-heading-title{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ff-copper);font-weight:500;display:flex;align-items:center;gap:.7rem;}
.ff-eyebrow .elementor-heading-title:before{content:"";width:28px;height:1px;background:var(--ff-copper);display:inline-block;}
.ff-eyebrow.ff-center .elementor-heading-title{justify-content:center;}
.ff-eyebrow-light .elementor-heading-title{color:var(--ff-copper-bright);}
.ff-eyebrow-light .elementor-heading-title:before{background:var(--ff-copper-bright);}
.ff-kicker .elementor-heading-title{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ff-copper);}
.ff-mono .elementor-heading-title,.ff-mono .elementor-widget-container{font-family:'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;}

/* ---- Grids (reliable, responsive) ---- */
.ff-grid-2,.ff-grid-3,.ff-grid-4{display:grid!important;gap:1.5rem;align-content:start;}
.ff-grid-2{grid-template-columns:repeat(2,1fr);}
.ff-grid-3{grid-template-columns:repeat(3,1fr);}
.ff-grid-4{grid-template-columns:repeat(4,1fr);gap:0;}
.ff-split{display:grid!important;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center;}
@media(max-width:1024px){.ff-grid-3,.ff-grid-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:767px){.ff-grid-2,.ff-grid-3,.ff-grid-4,.ff-split{grid-template-columns:1fr!important;gap:1.5rem;}}

/* ---- Flex direction: this Elementor build leaves full-width containers as row; force column, opt-in rows ---- */
.ff-page.e-con.e-flex,.ff-page .e-con.e-flex{flex-direction:column;}
.ff-page .ff-row.e-flex{flex-direction:row !important;flex-wrap:wrap;align-items:center;}
.ff-page .ff-grid-2.e-con,.ff-page .ff-grid-3.e-con,.ff-page .ff-grid-4.e-con,.ff-page .ff-split.e-con{display:grid !important;}
.ff-page .ff-trust.e-con{display:flex !important;flex-direction:row !important;flex-wrap:wrap;justify-content:center;align-items:center;}

/* ---- Cards + corner brackets ---- */
.ff-card{position:relative;border:1px solid var(--ff-rule);transition:transform .25s,border-color .25s,box-shadow .25s;height:100%;}
.ff-card:hover{transform:translateY(-4px);border-color:var(--ff-copper);box-shadow:0 24px 40px -28px rgba(15,29,53,.4);}
.ff-card-navy{background:var(--ff-navy-deep)!important;}
.ff-corner:before,.ff-corner:after{content:"";position:absolute;width:16px;height:16px;z-index:3;pointer-events:none;}
.ff-corner:before{top:-1px;left:-1px;border-top:2px solid var(--ff-copper);border-left:2px solid var(--ff-copper);}
.ff-corner:after{bottom:-1px;right:-1px;border-bottom:2px solid var(--ff-copper);border-right:2px solid var(--ff-copper);}

/* ---- Textures ---- */
.ff-hatch{background-image:repeating-linear-gradient(135deg,transparent 0,transparent 60px,rgba(184,115,51,.05) 60px,rgba(184,115,51,.05) 61px);}
.ff-paper{background-image:radial-gradient(circle at 25% 15%,rgba(138,99,50,.05) 0,transparent 40%),radial-gradient(circle at 75% 85%,rgba(15,29,53,.05) 0,transparent 40%);}
.ff-topline{box-shadow:inset 0 4px 0 -1px var(--ff-copper);}

/* ---- Prose treatments ---- */
.ff-dropcap .elementor-widget-container>p:first-of-type:first-letter{font-family:'Cormorant Garamond',serif;font-size:3.6rem;float:left;line-height:.82;padding:.3rem .5rem 0 0;color:var(--ff-copper);font-weight:500;}
.ff-pullquote .elementor-heading-title{font-style:italic;border-left:3px solid var(--ff-copper);padding:.4rem 0 .4rem 1.4rem;line-height:1.35;}
.ff-lede .elementor-widget-container{font-size:1.08rem;line-height:1.7;color:var(--ff-ink-soft);}
.ff-lede-light .elementor-widget-container{color:rgba(244,237,224,.82);}

/* ---- Trust strip ---- */
.ff-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 2.2rem;align-items:center;}
.ff-trust .elementor-widget{width:auto!important;}
.ff-trust .elementor-heading-title{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,237,224,.72);display:flex;align-items:center;gap:.5rem;}
.ff-trust .elementor-heading-title:before{content:"";width:6px;height:6px;background:var(--ff-copper);transform:rotate(45deg);display:inline-block;}

/* ---- Big step number ---- */
.ff-stepnum .elementor-heading-title{font-family:'Cormorant Garamond',serif;font-size:2.8rem;color:var(--ff-copper);line-height:1;}

/* ---- Icon box (benefits/blurbs) ---- */
.ff-page .elementor-icon-box-title{font-family:'Cormorant Garamond',serif;font-weight:500;}
.ff-page .elementor-icon-box-wrapper .elementor-icon{color:var(--ff-copper);}

/* ---- Quote card ---- */
.ff-quote .elementor-heading-title{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;line-height:1.35;}

/* ---- Framework layers (hero) ---- */
.ff-framerow{border-bottom:1px solid var(--ff-rule);padding:.8rem 0;}
.ff-framerow:last-child{border-bottom:none;}

/* ---- Listing badge ---- */
.ff-badge .elementor-heading-title{display:inline-block;background:var(--ff-navy);color:var(--ff-copper-bright);font-family:'JetBrains Mono',monospace;font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;padding:.35rem .7rem;border:1px solid var(--ff-copper);}

/* ---- Filter bar (static, styled) ---- */
.ff-filter{display:flex;flex-wrap:wrap;gap:.6rem;border-top:1px solid var(--ff-rule);border-bottom:1px solid var(--ff-rule);padding:1.1rem 0;}
.ff-filter .elementor-button{background:transparent!important;border:1px solid var(--ff-rule);color:var(--ff-navy)!important;padding:.5rem 1rem!important;font-size:.66rem!important;}
.ff-filter .elementor-button:hover{border-color:var(--ff-copper);transform:none;}

/* ---- Filter active + listing thumb ---- */
.ff-filter .ff-active .elementor-button{background:var(--ff-navy) !important;color:var(--ff-parch) !important;border-color:var(--ff-navy) !important;}
.ff-listing{overflow:hidden;}
.ff-thumb{min-height:190px;background-size:cover;background-position:center;position:relative;}
.ff-page .ff-grid-4-foot.e-con{display:grid !important;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:2.5rem;}
@media(max-width:1024px){.ff-page .ff-grid-4-foot.e-con{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.ff-page .ff-grid-4-foot.e-con{grid-template-columns:1fr;}}
.ff-faq .elementor-accordion-title{font-family:'JetBrains Mono',monospace;letter-spacing:.04em;color:var(--ff-navy);}
.ff-faq .elementor-tab-title.elementor-active .elementor-accordion-title{color:var(--ff-copper);}

/* ---- Divider hairline ---- */
.ff-page .elementor-widget-divider{--divider-color:var(--ff-rule);}

/* ---- Full-width page content: override Astra's .ast-container max-width on Elementor Full Width pages so full-bleed sections reach the viewport edges ---- */
.page-template-elementor_header_footer .site-content > .ast-container{max-width:100% !important;width:100% !important;padding-left:0 !important;padding-right:0 !important;}
.page-template-elementor_header_footer #primary{margin:0 !important;padding:0 !important;}

/* ---- Header / Footer ---- */
.ff-header{position:sticky;top:0;z-index:100;}
.ff-header .elementor-widget-image img{height:48px !important;width:auto !important;max-width:none !important;}
.ff-footer .elementor-widget-image img{height:54px !important;width:auto !important;max-width:none !important;}
.ff-navbar{background:rgba(244,237,224,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--ff-rule);}
.ff-topbar{background:var(--ff-navy-deep) !important;border-bottom:1px solid var(--ff-copper);}
.ff-topbar .elementor-heading-title{margin:0;}
.ff-header .elementor-widget-mega-menu a,.ff-header .e-n-menu-title-text,.ff-header .elementor-item{font-family:'JetBrains Mono',monospace !important;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;}
.ff-mega-panel{border-top:2px solid var(--ff-copper);}
.ff-mega-panel .elementor-icon-box-title,.ff-mega-panel .elementor-icon-box-title a{color:var(--ff-parch) !important;font-family:'Cormorant Garamond',serif;}
.ff-videoplaceholder{background:var(--ff-navy) !important;}
.ff-footer .elementor-heading-title,.ff-footer p,.ff-footer a{color:rgba(244,237,224,.72);}
.ff-footer a:hover{color:var(--ff-copper-bright);}
.ff-footer .ff-kicker .elementor-heading-title{color:var(--ff-copper-bright);}

/* ---- WPForms to brand ---- */
.ff-page .wpforms-field-label{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ff-bronze);font-weight:500;}
.ff-page div.wpforms-container input[type=text],.ff-page div.wpforms-container input[type=email],.ff-page div.wpforms-container input[type=tel],.ff-page div.wpforms-container textarea,.ff-page div.wpforms-container select{border:none;border-bottom:1px solid var(--ff-rule);background:transparent;border-radius:0;padding:.6rem .1rem;font-family:'Inter Tight',sans-serif;}
.ff-page div.wpforms-container input:focus,.ff-page div.wpforms-container textarea:focus,.ff-page div.wpforms-container select:focus{outline:none;border-bottom-color:var(--ff-copper);box-shadow:none;}
.ff-page div.wpforms-container button[type=submit]{background:var(--ff-navy);color:var(--ff-parch);border:1px solid var(--ff-navy);border-radius:0;font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.15em;font-weight:600;padding:1rem 1.4rem;transition:all .2s;width:100%;}
.ff-page div.wpforms-container button[type=submit]:hover{background:var(--ff-copper);border-color:var(--ff-copper);color:var(--ff-navy-deep);}

/* ---- Social icons to brand ---- */
.ff-page .elementor-social-icon{background-color:var(--ff-navy) !important;border-radius:0 !important;}
.ff-page .elementor-social-icon:hover{background-color:var(--ff-copper) !important;}
.ff-footer .elementor-social-icon{background-color:rgba(244,237,224,.1) !important;}
.ff-footer .elementor-social-icon:hover{background-color:var(--ff-copper) !important;}

/* ---- Image frame ---- */
.ff-imgframe .elementor-widget-container{position:relative;}
.ff-imgframe img{display:block;width:100%;}
