/*
Theme Name: The Lantern Room
Theme URI: https://thelanternroom.com
Author: Ummah IT Solutions
Author URI: https://ummahitsolutions.com
Description: A warm, literary WordPress theme for boutique literacy and tutoring studios. Includes 7 pre-built page templates, a one-click demo importer, and a full customizer panel for colors, contact details and social links. No page builder required.
Version: 1.6.0
Requires at least: 5.9
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lantern-room
Tags: education, custom-colors, custom-menu, custom-logo, featured-images, threaded-comments, translation-ready, block-styles, wide-blocks
*/

/* Design tokens are printed inline by inc/customizer.php so the
   Customizer color controls stay live. Fallbacks below. */
:root{
  --tlr-navy:#1F2A44;
  --tlr-cream:#F7F3EA;
  --tlr-ivory:#FDFBF6;
  --tlr-gold:#D4A017;
  --tlr-amber:#E8B45A;
  --tlr-brown:#7A5A3A;
  --tlr-sage:#6D8B6D;
  --tlr-taupe:#CBB8A0;
  --tlr-body:#3A3733;
  --tlr-muted:#6E6A63;

  --tlr-display:"Playfair Display",Georgia,"Times New Roman",serif;
  --tlr-text:"Lora",Georgia,serif;
  --tlr-ui:"Inter",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;

  --tlr-radius:4px;
  --tlr-section-y:100px;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;}
body{
  margin:0;
  background:var(--tlr-cream);
  color:var(--tlr-body);
  font-family:var(--tlr-text);
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--tlr-display);color:var(--tlr-navy);font-weight:400;margin:0;}
h1{font-size:66px;line-height:1.08;letter-spacing:.01em;}
h2{font-size:42px;line-height:1.15;}
h3{font-size:23px;line-height:1.3;}
p{margin:0 0 1em;}
a{color:var(--tlr-gold);text-decoration:none;}
img{max-width:100%;height:auto;display:block;}
figure{margin:0;}

.tlr-wrap{max-width:1200px;margin:0 auto;padding:0 24px;}
.tlr-section{padding:var(--tlr-section-y) 0;}
.tlr-center{text-align:center;}
.screen-reader-text{
  position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px);white-space:nowrap;
}
.skip-link:focus{
  position:fixed;top:10px;left:10px;z-index:100;background:#fff;
  padding:12px 18px;color:var(--tlr-navy);border-radius:4px;clip:auto;
  width:auto;height:auto;
}

/* ---------- Motifs ---------- */
.tlr-heart{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px 0;}
.tlr-heart::before,.tlr-heart::after{
  content:"";height:1px;width:64px;
  background:linear-gradient(90deg,transparent,var(--tlr-gold));
}
.tlr-heart::after{background:linear-gradient(90deg,var(--tlr-gold),transparent);}
.tlr-heart span{color:var(--tlr-gold);font-size:15px;line-height:1;}
.tlr-heart--left{justify-content:flex-start;}
.tlr-heart--left::before{display:none;}

.tlr-eyebrow{
  font-family:var(--tlr-ui);text-transform:uppercase;letter-spacing:.12em;
  font-size:12px;font-weight:600;color:var(--tlr-gold);display:block;
}
.tlr-italic{font-family:var(--tlr-display);font-style:italic;font-size:20px;color:var(--tlr-muted);}
.tlr-sub{font-size:16px;color:var(--tlr-muted);max-width:620px;margin:0 auto;}
.tlr-laurel{width:70px;height:auto;opacity:.55;color:var(--tlr-sage);flex:none;}
.tlr-sprig{width:24px;color:var(--tlr-sage);opacity:.6;}

/* ---------- Buttons ---------- */
.tlr-btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--tlr-ui);text-transform:uppercase;letter-spacing:.12em;
  font-size:12px;font-weight:600;padding:16px 28px;
  border-radius:var(--tlr-radius);border:1px solid transparent;cursor:pointer;
  transition:transform .2s ease,background .2s ease,box-shadow .2s ease;
}
.tlr-btn:hover{transform:translateY(-2px);}
.tlr-btn--navy{background:var(--tlr-navy);color:#fff;}
.tlr-btn--navy:hover{background:#0d1c30;color:#fff;box-shadow:0 8px 22px rgba(18,38,63,.22);}
.tlr-btn--gold{background:var(--tlr-gold);color:#fff;}
.tlr-btn--gold:hover{background:#a9781f;color:#fff;box-shadow:0 8px 22px rgba(192,138,46,.28);}
.tlr-btn--ghost{background:var(--tlr-cream);color:var(--tlr-navy);border-color:var(--tlr-taupe);}
.tlr-btn--ghost:hover{border-color:var(--tlr-gold);color:var(--tlr-navy);}
.tlr-btn--outline-gold{background:transparent;color:var(--tlr-gold);border-color:var(--tlr-gold);}
.tlr-btn--outline-gold:hover{background:var(--tlr-gold);color:#fff;}

/* ---------- Header ---------- */
.tlr-header{position:sticky;top:0;z-index:50;background:var(--tlr-navy);transition:background .3s ease;}
.tlr-header--over{background:transparent;position:absolute;left:0;right:0;}
.tlr-header--over.is-stuck{position:fixed;background:var(--tlr-navy);box-shadow:0 2px 18px rgba(0,0,0,.18);}
.tlr-header .tlr-wrap{display:flex;align-items:center;justify-content:space-between;height:78px;}
.tlr-brand{display:flex;align-items:center;gap:12px;}
.tlr-brand__mark{width:42px;height:52px;flex:none;}
.tlr-brand__name{font-family:var(--tlr-display);font-size:25px;color:#fff;line-height:1.1;display:block;}
.tlr-brand__tag{
  font-family:var(--tlr-ui);font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.72);display:block;
}
.tlr-brand img.custom-logo{max-height:52px;width:auto;}

.tlr-nav ul{display:flex;align-items:center;gap:26px;list-style:none;margin:0;padding:0;}
.tlr-nav a{
  font-family:var(--tlr-ui);font-size:12px;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:#fff;padding:6px 0;
  border-bottom:2px solid transparent;display:block;
}
.tlr-nav a:hover{color:var(--tlr-amber);}
.tlr-nav .current-menu-item > a,
.tlr-nav .current_page_item > a{color:var(--tlr-amber);border-bottom-color:var(--tlr-gold);}
/* one level of dropdown, kept quiet */
.tlr-nav li{position:relative;}
.tlr-nav .sub-menu{
  display:none;position:absolute;top:100%;left:0;min-width:200px;
  background:var(--tlr-navy);padding:10px 0;flex-direction:column;gap:0;
  box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:60;
}
.tlr-nav li:hover > .sub-menu,.tlr-nav li:focus-within > .sub-menu{display:flex;}
.tlr-nav .sub-menu a{padding:10px 18px;border:0;letter-spacing:.08em;}

.tlr-burger{display:none;background:none;border:0;color:#fff;font-size:24px;cursor:pointer;padding:6px;}
.tlr-mobilenav{
  position:fixed;inset:0;background:var(--tlr-navy);z-index:60;
  display:none;flex-direction:column;align-items:center;justify-content:center;gap:22px;
}
.tlr-mobilenav.is-open{display:flex;}
.tlr-mobilenav ul{list-style:none;margin:0;padding:0;text-align:center;}
.tlr-mobilenav li{margin-bottom:20px;}
.tlr-mobilenav a{font-family:var(--tlr-display);font-size:28px;color:#fff;}
.tlr-mobilenav a:hover{color:var(--tlr-amber);}
.tlr-mobilenav .sub-menu{margin-top:14px;}
.tlr-mobilenav .sub-menu a{font-size:20px;color:rgba(255,255,255,.75);}
.tlr-mobilenav__close{
  position:absolute;top:24px;right:24px;background:none;border:0;
  color:#fff;font-size:30px;cursor:pointer;
}

/* ---------- Hero ---------- */
.tlr-hero{position:relative;background:var(--tlr-cream);}
.tlr-hero__grid{display:grid;grid-template-columns:1fr 1fr;min-height:640px;}
.tlr-hero__copy{display:flex;flex-direction:column;justify-content:center;padding:120px 60px 90px 0;}
.tlr-hero__inner{max-width:600px;margin-left:auto;padding-left:24px;width:100%;}
.tlr-hero__img{position:relative;background:var(--tlr-taupe);}
.tlr-hero__img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.tlr-hero__script{font-family:var(--tlr-display);font-style:italic;font-size:26px;color:var(--tlr-sage);margin:6px 0 0;}
.tlr-hero__lead{font-family:var(--tlr-display);font-style:italic;font-size:21px;color:var(--tlr-body);line-height:1.55;}
.tlr-hero__rwg{font-family:var(--tlr-ui);font-weight:700;letter-spacing:.1em;font-size:19px;color:var(--tlr-gold);margin:22px 0 6px;}
.tlr-hero__tagline{font-family:var(--tlr-display);font-style:italic;font-size:20px;color:var(--tlr-body);}
.tlr-hero .tlr-btn{align-self:flex-start;margin-top:30px;}

/* ---------- Inner hero ---------- */
.tlr-pagehero{background:var(--tlr-navy);padding:130px 0 68px;text-align:center;}
.tlr-pagehero h1{color:#fff;font-size:54px;}
.tlr-pagehero .tlr-italic{color:rgba(255,255,255,.72);}
.tlr-crumb{
  font-family:var(--tlr-ui);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.5);margin-bottom:18px;
}
.tlr-crumb a{color:rgba(255,255,255,.5);}
.tlr-crumb a:hover{color:var(--tlr-amber);}

/* ---------- Mission strip ---------- */
.tlr-mission{
  background:var(--tlr-ivory);padding:56px 0;
  border-top:1px solid var(--tlr-taupe);border-bottom:1px solid var(--tlr-taupe);
}
.tlr-mission__row{display:flex;align-items:center;justify-content:center;gap:48px;}
.tlr-mission p{
  font-family:var(--tlr-display);font-size:24px;line-height:1.6;
  color:var(--tlr-navy);text-align:center;max-width:640px;margin:0;
}

/* ---------- Cards & grids ---------- */
.tlr-grid{display:grid;gap:20px;}
.tlr-grid--5{grid-template-columns:repeat(5,1fr);}
.tlr-grid--3{grid-template-columns:repeat(3,1fr);}
.tlr-grid--2{grid-template-columns:repeat(2,1fr);}

.tlr-card{
  background:var(--tlr-ivory);border:1px solid var(--tlr-taupe);
  border-radius:var(--tlr-radius);padding:28px 20px;text-align:center;
  display:flex;flex-direction:column;
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.tlr-card:hover{
  transform:translateY(-2px);border-color:var(--tlr-gold);
  box-shadow:0 10px 30px rgba(192,138,46,.14);
}
.tlr-card__icon{width:64px;height:64px;margin:0 auto 16px;color:var(--tlr-gold);}
.tlr-card:hover .tlr-card__icon{filter:drop-shadow(0 0 8px rgba(232,180,90,.55));}
.tlr-card h3{font-size:21px;margin-bottom:4px;}
.tlr-card__meta{
  font-family:var(--tlr-ui);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--tlr-gold);margin-bottom:12px;
}
.tlr-card p{font-size:14px;line-height:1.65;color:var(--tlr-muted);margin-bottom:20px;}
.tlr-card__link{
  margin-top:auto;font-family:var(--tlr-ui);font-size:11px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:#8a6522;
}
.tlr-card__link:hover{color:var(--tlr-gold);}

/* ---------- Why parents ---------- */
.tlr-why{background:var(--tlr-cream);}
.tlr-why__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center;}
.tlr-check{list-style:none;margin:26px 0 34px;padding:0;}
.tlr-check li{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px;font-size:15px;}
.tlr-check li::before{
  content:"\2713";flex:none;width:19px;height:19px;margin-top:3px;border-radius:50%;
  background:var(--tlr-sage);color:#fff;font-size:11px;
  display:flex;align-items:center;justify-content:center;
}
.tlr-collage{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;}
.tlr-collage img{width:100%;height:230px;object-fit:cover;}
.tlr-quotebar{background:var(--tlr-sage);color:#fff;text-align:center;padding:30px 24px;}
.tlr-quotebar p{font-family:var(--tlr-display);font-style:italic;font-size:20px;line-height:1.5;margin:0;}
.tlr-quotebar .tlr-heart span{color:#fff;}
.tlr-quotebar .tlr-heart::before,.tlr-quotebar .tlr-heart::after{background:rgba(255,255,255,.45);}

/* ---------- Testimonials ---------- */
.tlr-stories{background:var(--tlr-ivory);}
.tlr-stories__head{display:grid;grid-template-columns:220px 1fr 220px;gap:32px;align-items:center;margin-bottom:44px;}
.tlr-stories__head img{
  border:1px solid var(--tlr-taupe);border-radius:var(--tlr-radius);
  height:150px;width:100%;object-fit:cover;
}
.tlr-quotes{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:26px;align-items:center;}
.tlr-quote{margin:0;}
.tlr-quote p{
  font-family:var(--tlr-display);font-style:italic;font-size:18px;
  line-height:1.55;color:var(--tlr-body);margin-bottom:12px;
}
.tlr-quote cite{font-family:var(--tlr-ui);font-size:12px;font-style:normal;color:var(--tlr-muted);}

/* ---------- CTA band ---------- */
.tlr-cta{background:var(--tlr-sage);padding:34px 0;}
.tlr-cta .tlr-wrap{display:flex;align-items:center;gap:22px;}
.tlr-cta__icon{
  width:52px;height:52px;border-radius:50%;background:var(--tlr-navy);
  display:flex;align-items:center;justify-content:center;color:#fff;flex:none;
}
.tlr-cta h3{color:#fff;font-size:24px;}
.tlr-cta p{color:rgba(255,255,255,.88);font-size:14px;margin:2px 0 0;}
.tlr-cta .tlr-btn{margin-left:auto;flex:none;}

/* ---------- Footer ---------- */
.tlr-footer{
  background:var(--tlr-navy);color:rgba(255,255,255,.75);
  position:relative;overflow:hidden;padding:64px 0 0;
}
.tlr-footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1.2fr 1fr;gap:40px;position:relative;z-index:2;}
.tlr-footer h4{
  font-family:var(--tlr-ui);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;margin-bottom:18px;font-weight:600;
}
.tlr-footer ul{list-style:none;margin:0;padding:0;}
.tlr-footer li{margin-bottom:10px;font-size:14px;}
.tlr-footer a{color:rgba(255,255,255,.75);font-size:14px;}
.tlr-footer a:hover{color:var(--tlr-amber);}
.tlr-footer__tag{font-family:var(--tlr-display);font-style:italic;color:var(--tlr-amber);font-size:16px;margin-top:14px;}
.tlr-contactline{display:flex;gap:10px;align-items:flex-start;color:rgba(255,255,255,.75);font-size:14px;margin-bottom:12px;}
.tlr-contactline svg{width:15px;flex:none;margin-top:4px;color:var(--tlr-gold);}
.tlr-social{display:flex;gap:10px;}
.tlr-social a{
  width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.25);
  display:flex;align-items:center;justify-content:center;color:#fff;
}
.tlr-social a:hover{background:var(--tlr-gold);border-color:var(--tlr-gold);}
.tlr-footer__leaf{position:absolute;right:-10px;bottom:40px;width:230px;color:var(--tlr-gold);opacity:.28;z-index:1;}
.tlr-footer__bar{
  margin-top:52px;border-top:1px solid rgba(255,255,255,.12);padding:20px 0;
  text-align:center;font-size:12px;color:rgba(255,255,255,.5);position:relative;z-index:2;
}

/* ---------- Forms ---------- */
.tlr-form{
  background:var(--tlr-ivory);border:1px solid var(--tlr-taupe);
  border-radius:var(--tlr-radius);padding:36px;
}
.tlr-field{margin-bottom:18px;}
.tlr-field label{
  display:block;font-family:var(--tlr-display);font-size:16px;
  color:var(--tlr-navy);margin-bottom:6px;
}
.tlr-field input,.tlr-field select,.tlr-field textarea{
  width:100%;background:var(--tlr-cream);border:1px solid var(--tlr-taupe);
  border-radius:var(--tlr-radius);padding:12px 14px;
  font-family:var(--tlr-text);font-size:15px;color:var(--tlr-body);outline:none;
}
.tlr-field input:focus,.tlr-field select:focus,.tlr-field textarea:focus{
  border-color:var(--tlr-gold);box-shadow:0 0 0 3px rgba(192,138,46,.18);
}
.tlr-field textarea{min-height:120px;resize:vertical;}
.tlr-field--2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.tlr-formnote{font-size:14px;margin:14px 0 0;}
.tlr-formnote.is-ok{color:var(--tlr-sage);}
.tlr-formnote.is-err{color:#a3382e;}
.tlr-hp{position:absolute!important;left:-9999px;}

/* ---------- Accordion ---------- */
.tlr-acc{border-top:1px solid var(--tlr-taupe);}
.tlr-acc__item{border-bottom:1px solid var(--tlr-taupe);}
.tlr-acc__q{
  width:100%;background:none;border:0;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:22px 4px;text-align:left;
  font-family:var(--tlr-display);font-size:20px;color:var(--tlr-navy);
}
.tlr-acc__q span{color:var(--tlr-gold);font-size:24px;flex:none;transition:transform .25s ease;}
.tlr-acc__item.is-open .tlr-acc__q span{transform:rotate(45deg);}
.tlr-acc__a{display:none;padding:0 4px 24px;font-size:15px;color:var(--tlr-muted);max-width:860px;}
.tlr-acc__item.is-open .tlr-acc__a{display:block;}

/* ---------- Table ---------- */
.tlr-tablewrap{overflow-x:auto;}
.tlr-table{width:100%;border-collapse:collapse;font-size:14px;border:1px solid var(--tlr-taupe);}
.tlr-table th{
  background:var(--tlr-navy);color:#fff;text-align:left;padding:14px 16px;
  font-family:var(--tlr-ui);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;font-weight:600;white-space:nowrap;
}
.tlr-table td{padding:14px 16px;border-top:1px solid var(--tlr-taupe);color:var(--tlr-body);}
.tlr-table tbody tr:nth-child(odd){background:var(--tlr-ivory);}
.tlr-table tbody tr:nth-child(even){background:var(--tlr-cream);}

/* ---------- Panels & misc ---------- */
.tlr-panel{
  background:var(--tlr-ivory);border:1px solid var(--tlr-taupe);
  border-radius:var(--tlr-radius);padding:30px;
}
.tlr-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.tlr-split--wide-right{grid-template-columns:.9fr 1.1fr;}
.tlr-split--top{align-items:start;}
.tlr-split img{border-radius:var(--tlr-radius);}
.tlr-sageband{background:var(--tlr-sage);color:#fff;padding:64px 0;text-align:center;}
.tlr-sageband h2{color:#fff;}
.tlr-sageband__row{display:flex;align-items:center;justify-content:center;gap:40px;}
.tlr-sageband p{
  font-family:var(--tlr-display);font-style:italic;font-size:27px;
  line-height:1.5;max-width:760px;margin:0 auto;
}
.tlr-sageband .tlr-laurel{color:#fff;opacity:.5;}
.tlr-step{
  display:flex;gap:20px;align-items:flex-start;background:var(--tlr-ivory);
  border:1px solid var(--tlr-taupe);border-radius:var(--tlr-radius);padding:26px;
}
.tlr-step__num{
  width:46px;height:46px;flex:none;border-radius:50%;
  background:var(--tlr-navy);color:var(--tlr-amber);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--tlr-display);font-size:20px;
}
.tlr-step p{margin:6px 0 0;font-size:15px;color:var(--tlr-muted);}
.tlr-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.tlr-gallery img{
  width:100%;height:200px;object-fit:cover;border-radius:var(--tlr-radius);
  cursor:pointer;transition:transform .3s ease;
}
.tlr-gallery img:hover{transform:scale(1.02);}
.tlr-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:40px;}
.tlr-chip{
  font-family:var(--tlr-ui);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  padding:9px 18px;border:1px solid var(--tlr-taupe);border-radius:999px;
  background:var(--tlr-ivory);color:var(--tlr-navy);cursor:pointer;
}
.tlr-chip.is-active,.tlr-chip:hover{background:var(--tlr-navy);color:#fff;border-color:var(--tlr-navy);}
.tlr-newsletter{display:flex;gap:12px;max-width:520px;margin:0 auto;}
.tlr-newsletter input{flex:1;padding:15px 16px;border:0;border-radius:var(--tlr-radius);font-family:var(--tlr-text);}
.tlr-pullquote{
  font-family:var(--tlr-display);font-style:italic;
  border-left:2px solid var(--tlr-gold);padding-left:20px;margin:26px 0;
  color:var(--tlr-navy);font-size:22px;
}
.tlr-mapframe{margin-top:26px;border:1px solid var(--tlr-taupe);border-radius:var(--tlr-radius);overflow:hidden;}
.tlr-mapframe iframe{width:100%;height:260px;border:0;display:block;filter:sepia(.45) saturate(.85) contrast(.95);}
.tlr-lightbox{
  position:fixed;inset:0;background:rgba(18,38,63,.92);z-index:80;
  display:none;align-items:center;justify-content:center;padding:40px;
}
.tlr-lightbox.is-open{display:flex;}
.tlr-lightbox img{max-width:90%;max-height:88vh;object-fit:contain;border-radius:var(--tlr-radius);}
.tlr-lightbox__close{
  position:absolute;top:24px;right:30px;background:none;border:0;
  color:#fff;font-size:34px;cursor:pointer;
}

/* ---------- Blog / archive / single (fallback templates) ---------- */
.tlr-post{
  background:var(--tlr-ivory);border:1px solid var(--tlr-taupe);
  border-radius:var(--tlr-radius);padding:28px;margin-bottom:24px;
}
.tlr-post h2{font-size:30px;margin-bottom:8px;}
.tlr-post__meta{font-family:var(--tlr-ui);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--tlr-muted);}
.tlr-entry{max-width:760px;margin:0 auto;}
.tlr-entry h2,.tlr-entry h3{margin:1.4em 0 .5em;}
.tlr-entry ul,.tlr-entry ol{padding-left:22px;}
.tlr-entry blockquote{
  border-left:2px solid var(--tlr-gold);padding-left:20px;margin:26px 0;
  font-family:var(--tlr-display);font-style:italic;font-size:21px;color:var(--tlr-navy);
}
.tlr-entry img{border-radius:var(--tlr-radius);margin:1.5em 0;}
.tlr-pagination{display:flex;gap:8px;justify-content:center;margin-top:40px;}
.tlr-pagination .page-numbers{
  padding:10px 16px;border:1px solid var(--tlr-taupe);border-radius:var(--tlr-radius);
  background:var(--tlr-ivory);color:var(--tlr-navy);font-family:var(--tlr-ui);font-size:13px;
}
.tlr-pagination .page-numbers.current,
.tlr-pagination .page-numbers:hover{background:var(--tlr-navy);color:#fff;border-color:var(--tlr-navy);}
.tlr-widget{margin-bottom:34px;}
.tlr-widget .widget-title{
  font-family:var(--tlr-ui);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--tlr-gold);margin-bottom:14px;
}
.tlr-widget ul{list-style:none;padding:0;margin:0;}
.tlr-widget li{padding:8px 0;border-bottom:1px solid var(--tlr-taupe);}

/* WP core classes */
.alignleft{float:left;margin:0 1.5em 1em 0;}
.alignright{float:right;margin:0 0 1em 1.5em;}
.aligncenter{margin-left:auto;margin-right:auto;}
.wp-caption-text{font-size:13px;color:var(--tlr-muted);text-align:center;}
.sticky .tlr-post{border-color:var(--tlr-gold);}

/* ---------- Reveal ---------- */
.tlr-reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease;}
.tlr-reveal.is-in{opacity:1;transform:none;}

/* ---------- A11y ---------- */
:focus-visible{outline:2px solid var(--tlr-gold);outline-offset:3px;}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  .tlr-reveal{opacity:1;transform:none;}
}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  h1{font-size:50px;}
  h2{font-size:34px;}
  .tlr-nav{display:none;}
  .tlr-burger{display:block;}
  .tlr-grid--5{grid-template-columns:repeat(3,1fr);}
  .tlr-grid--3{grid-template-columns:repeat(2,1fr);}
  .tlr-hero__grid{grid-template-columns:1fr;}
  .tlr-hero__copy{padding:120px 0 60px;order:1;}
  .tlr-hero__inner{max-width:none;margin:0;padding:0 24px;}
  .tlr-hero__img{order:2;height:380px;}
  .tlr-why__grid,.tlr-split,.tlr-split--wide-right{grid-template-columns:1fr;gap:34px;}
  .tlr-stories__head{grid-template-columns:1fr;text-align:center;}
  .tlr-quotes{grid-template-columns:1fr;}
  .tlr-quotes .tlr-sprig{display:none;}
  .tlr-footer__grid{grid-template-columns:1fr 1fr;}
  .tlr-gallery{grid-template-columns:repeat(2,1fr);}
  .tlr-mission__row .tlr-laurel,.tlr-sageband__row .tlr-laurel{display:none;}
}
@media (max-width:640px){
  :root{--tlr-section-y:64px;}
  h1{font-size:40px;}
  h2{font-size:29px;}
  .tlr-pagehero{padding:104px 0 52px;}
  .tlr-pagehero h1{font-size:36px;}
  .tlr-grid--5,.tlr-grid--3,.tlr-grid--2{grid-template-columns:1fr;}
  .tlr-collage{grid-template-columns:1fr;}
  .tlr-collage img{height:190px;}
  .tlr-cta .tlr-wrap{flex-direction:column;text-align:center;}
  .tlr-cta .tlr-btn{margin:8px auto 0;}
  .tlr-footer__grid{grid-template-columns:1fr;}
  .tlr-footer__leaf{display:none;}
  .tlr-field--2{grid-template-columns:1fr;}
  .tlr-newsletter{flex-direction:column;}
  .tlr-gallery{grid-template-columns:1fr;}
  .tlr-form{padding:24px;}
  .tlr-sageband p{font-size:21px;}
}

/* ============================================================
   ELEMENTOR BRIDGE
   Only loaded/needed when pages are built with Elementor.
   Elementor supplies the section/column scaffolding, so here we
   re-apply the theme's spacing, backgrounds and grid behaviour to
   its containers instead of to our own markup.
   ============================================================ */

/* Elementor boxes its container at the theme content width already;
   make our band backgrounds run full-bleed like the PHP version. */
.tlr-section { padding: var(--tlr-section-y) 0; }
.tlr-why { background: var(--tlr-cream); }
.tlr-stories { background: var(--tlr-ivory); }
.tlr-mission {
	background: var(--tlr-ivory);
	border-top: 1px solid var(--tlr-taupe);
	border-bottom: 1px solid var(--tlr-taupe);
	padding: 56px 0;
}
.tlr-sageband { background: var(--tlr-sage); padding: 64px 0; text-align: center; }
.tlr-sageband h2,
.tlr-sageband .elementor-heading-title { color: #fff; }
.tlr-pagehero {
	background: var(--tlr-navy);
	padding: 130px 0 68px;
	text-align: center;
}
.tlr-pagehero .elementor-heading-title { color: #fff; font-size: 54px; }
.tlr-pagehero p { color: rgba(255,255,255,.72); }

/* Stacked sections that belong to one visual block shouldn't double up
   on vertical padding. */
.tlr-el-tight-bottom { padding-bottom: 0 !important; }
.tlr-el-tight-top { padding-top: 24px !important; padding-bottom: var(--tlr-section-y); }
.tlr-el-steprow, .tlr-el-quotes { padding: 0 0 20px; }
.tlr-el-progpanel {
	max-width: 1200px;
	margin: 0 auto 22px !important;
	padding: 30px !important;
	background: var(--tlr-ivory);
	border: 1px solid var(--tlr-taupe);
	border-radius: var(--tlr-radius);
	scroll-margin-top: 100px;
}

/* Card grid rows: Elementor gives us the columns, we give them the gap
   and make every card in a row equal height. */
.elementor-column .tlr-card { height: 100%; }
.elementor-widget-html { width: 100%; }

/* HOME HERO — Elementor two-column, made full-bleed and edge to edge. */
.tlr-el-hero { background: var(--tlr-cream); padding: 0; }
.tlr-el-hero > .elementor-container { min-height: 640px; }
.tlr-el-herocopy { display: flex; align-items: center; padding: 120px 60px 90px 24px !important; }
.tlr-el-herocopy .elementor-widget-wrap { align-content: center; }
.tlr-el-herocopy .elementor-heading-title { font-size: 66px; line-height: 1.08; }
.tlr-el-heroimg { padding: 0 !important; }
.tlr-el-heroimg .elementor-widget-image,
.tlr-el-heroimg .elementor-widget-container,
.tlr-el-heroimg figure { height: 100%; margin: 0; }
.tlr-el-heroimg img { width: 100%; height: 100%; min-height: 640px; object-fit: cover; }

/* Two-column splits get the theme's gutter and vertical centring. */
.tlr-el-split > .elementor-container { align-items: center; gap: 20px; }
.tlr-el-split img { border-radius: var(--tlr-radius); }
.tlr-el-why > .elementor-container { align-items: center; }
.tlr-el-contact > .elementor-container { align-items: flex-start; }

/* Native Elementor accordion, restyled as ours. */
.tlr-el-acc .elementor-accordion-item {
	border: 0;
	border-bottom: 1px solid var(--tlr-taupe);
}
.tlr-el-acc .elementor-accordion-item:first-child { border-top: 1px solid var(--tlr-taupe); }
.tlr-el-acc .elementor-tab-title {
	background: transparent !important;
	padding: 22px 4px;
	font-family: var(--tlr-display);
	font-size: 20px;
}
.tlr-el-acc .elementor-tab-title a,
.tlr-el-acc .elementor-tab-title .elementor-accordion-title { color: var(--tlr-navy); }
.tlr-el-acc .elementor-tab-content {
	background: transparent !important;
	border: 0;
	padding: 0 4px 24px;
	color: var(--tlr-muted);
	font-size: 15px;
}
.tlr-el-acc .elementor-accordion-icon { color: var(--tlr-gold); }

/* Native Elementor gallery, matched to the theme's. */
.tlr-el-gallery .gallery-item img {
	border-radius: var(--tlr-radius);
	height: 200px;
	object-fit: cover;
	transition: transform .3s ease;
}
.tlr-el-gallery .gallery-item img:hover { transform: scale(1.02); }

/* ------------------------------------------------------------------
   TYPE + BUTTON LOCK
   Elementor's Kit emits `.elementor-kit-N h1{...}` (specificity 0,1,1) and
   `.elementor-widget-heading .elementor-heading-title` (0,2,0), both of which
   beat our bare `h1 {}` (0,0,1). Without the rules below, Elementor repaints
   every heading and button with ITS defaults and the design drifts.
   These selectors are scoped to Elementor's own classes so they match or beat
   it, and they restate the EXACT same values as the static build.
   ------------------------------------------------------------------ */

/* Display face — every heading, wherever Elementor renders it. */
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-heading h1.elementor-heading-title,
.elementor-widget-heading h2.elementor-heading-title,
.elementor-widget-heading h3.elementor-heading-title,
.elementor-widget-heading h4.elementor-heading-title,
.elementor-widget-text-editor h1,
.elementor-widget-text-editor h2,
.elementor-widget-text-editor h3,
.elementor-widget-text-editor h4,
.elementor-widget-html h1,
.elementor-widget-html h2,
.elementor-widget-html h3,
.elementor-widget-html h4 {
	font-family: var(--tlr-display);
	color: var(--tlr-navy);
	font-weight: 400;
	margin: 0;
}
.elementor-widget-heading h1.elementor-heading-title { font-size: 66px; line-height: 1.08; letter-spacing: .01em; }
.elementor-widget-heading h2.elementor-heading-title { font-size: 42px; line-height: 1.15; }
.elementor-widget-heading h3.elementor-heading-title { font-size: 23px; line-height: 1.3; }

/* Body face — Elementor's text editor and HTML widgets. */
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-html p,
.elementor-widget-icon-list .elementor-icon-list-text {
	font-family: var(--tlr-text);
	font-size: 17px;
	line-height: 1.7;
	color: var(--tlr-body);
}

/* Card internals must not inherit Elementor's type scale. */
.elementor-widget-html .tlr-card h3 { font-size: 21px; margin-bottom: 4px; }
.elementor-widget-html .tlr-card p { font-size: 14px; line-height: 1.65; color: var(--tlr-muted); }
.elementor-widget-html .tlr-card__meta,
.elementor-widget-html .tlr-eyebrow {
	font-family: var(--tlr-ui);
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* Buttons — Elementor's `.elementor-button` sets its own padding, radius,
   background and font. Re-assert ours at higher specificity. */
.elementor-widget-button .elementor-button.tlr-btn,
.elementor-button-wrapper .elementor-button.tlr-btn,
a.elementor-button.tlr-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--tlr-ui);
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	padding: 16px 28px;
	border-radius: var(--tlr-radius);
	border: 1px solid transparent;
	text-decoration: none;
	transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.elementor-widget-button .elementor-button.tlr-btn:hover,
a.elementor-button.tlr-btn:hover { transform: translateY(-2px); }

.elementor-widget-button .elementor-button.tlr-btn--navy,
a.elementor-button.tlr-btn--navy { background: var(--tlr-navy); color: #fff; }
.elementor-widget-button .elementor-button.tlr-btn--navy:hover,
a.elementor-button.tlr-btn--navy:hover { background: #0d1c30; color: #fff; box-shadow: 0 8px 22px rgba(18,38,63,.22); }

.elementor-widget-button .elementor-button.tlr-btn--gold,
a.elementor-button.tlr-btn--gold { background: var(--tlr-gold); color: #fff; }
.elementor-widget-button .elementor-button.tlr-btn--gold:hover,
a.elementor-button.tlr-btn--gold:hover { background: #a9781f; color: #fff; }

.elementor-widget-button .elementor-button.tlr-btn--ghost,
a.elementor-button.tlr-btn--ghost { background: var(--tlr-cream); color: var(--tlr-navy); border-color: var(--tlr-taupe); }
.elementor-widget-button .elementor-button.tlr-btn--ghost:hover,
a.elementor-button.tlr-btn--ghost:hover { border-color: var(--tlr-gold); color: var(--tlr-navy); }

.elementor-widget-button .elementor-button.tlr-btn--outline-gold,
a.elementor-button.tlr-btn--outline-gold { background: transparent; color: var(--tlr-gold); border-color: var(--tlr-gold); }
.elementor-widget-button .elementor-button.tlr-btn--outline-gold:hover,
a.elementor-button.tlr-btn--outline-gold:hover { background: var(--tlr-gold); color: #fff; }

/* Elementor wraps button text in a span; make sure it inherits. */
.elementor-button.tlr-btn .elementor-button-content-wrapper,
.elementor-button.tlr-btn .elementor-button-text {
	font-family: inherit;
	font-size: inherit;
	letter-spacing: inherit;
	font-weight: inherit;
	color: inherit;
}
.elementor-button.tlr-btn .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

/* Content width — match the static build's 1200px wrap exactly. */
.elementor-section > .elementor-container { max-width: 1200px; }
.tlr-el-hero > .elementor-container { max-width: 1400px; }

/* Elementor's text-editor wraps content in a div; kill its default margin
   so our paragraph rhythm survives. */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Elementor adds bottom margin to every widget; our sections already own
   their rhythm, so neutralise it and let the theme spacing rule. */
.elementor-widget:not(:last-child) { margin-bottom: 0; }
.elementor-widget-heading + .elementor-widget-html .tlr-heart { margin-top: 14px; }

@media (max-width: 1024px) {
	.tlr-el-herocopy { padding: 110px 24px 60px !important; }
	.tlr-el-heroimg img { min-height: 380px; }
	.tlr-el-hero > .elementor-container { min-height: 0; }
	.tlr-pagehero .elementor-heading-title { font-size: 40px; }
}
@media (max-width: 640px) {
	.tlr-el-herocopy .elementor-heading-title { font-size: 40px; }
	.tlr-pagehero { padding: 104px 0 52px; }
	.tlr-el-progpanel { padding: 22px !important; }
}

/* ============================================================
   1.1 FIXES
   1) Elementor flexbox-container fallbacks (.e-con-inner) so the
      Elementor build matches the PHP build on newer Elementor.
   2) Solid navy header on the front page (was transparent overlay),
      so the menu reads the same on Home as on every other page.
   ============================================================ */

.tlr-el-hero > .e-con-inner { min-height: 640px; }
.tlr-el-split > .e-con-inner { align-items: center; gap: 20px; }
.tlr-el-why > .e-con-inner { align-items: center; }
.tlr-el-contact > .e-con-inner { align-items: flex-start; }

/* Elementor pages: keep band sections full-bleed even when boxed. */
.tlr-pagehero,
.tlr-why,
.tlr-stories,
.tlr-mission,
.tlr-sageband { width: 100%; }

/* Header is now solid on Home too, so the hero no longer needs to
   clear a transparent bar. */
.tlr-hero__copy { padding-top: 80px; }
.tlr-el-herocopy { padding-top: 80px !important; }

@media (max-width: 900px) {
  .tlr-hero__copy { padding-top: 60px; }
}

/* Sage quote band: keep the text white even when Elementor drops the
   section class. */
.tlr-sageband__row p { color: #fff; }
.tlr-sageband__row .tlr-laurel { color: #fff; opacity: .5; }

/* ============================================================
   1.4 — ELEMENTOR PARITY

   Elementor puts custom CSS classes on the button widget's WRAPPER,
   not on the <a>. Giving that wrapper `.tlr-btn` painted the wrapper
   itself navy — the "button inside a button" box. Elementor buttons now
   use their own wrapper class, `.tlr-elbtn`, which styles the <a> only.
   ============================================================ */

.tlr-elbtn .elementor-button {
	display: inline-flex !important;
	align-items: center;
	gap: 10px;
	font-family: var(--tlr-ui) !important;
	text-transform: uppercase !important;
	letter-spacing: .12em !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1;
	padding: 16px 28px !important;
	border-radius: var(--tlr-radius) !important;
	border: 1px solid transparent;
	text-decoration: none;
	box-shadow: none;
	transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.tlr-elbtn .elementor-button:hover { transform: translateY(-2px); }

.tlr-elbtn--navy .elementor-button {
	background-color: var(--tlr-navy) !important;
	color: #fff !important;
	border-color: var(--tlr-navy) !important;
}
.tlr-elbtn--navy .elementor-button:hover {
	background-color: #141E33 !important;
	box-shadow: 0 8px 22px rgba(31,42,68,.22);
}
.tlr-elbtn--gold .elementor-button {
	background-color: var(--tlr-gold) !important;
	color: #fff !important;
	border-color: var(--tlr-gold) !important;
}
.tlr-elbtn--gold .elementor-button:hover { background-color: #A9781F !important; }

.tlr-elbtn--ghost .elementor-button {
	background-color: var(--tlr-cream) !important;
	color: var(--tlr-navy) !important;
	border-color: var(--tlr-taupe) !important;
}
.tlr-elbtn--ghost .elementor-button:hover { border-color: var(--tlr-gold) !important; }

.tlr-elbtn--outline-gold .elementor-button {
	background-color: transparent !important;
	color: var(--tlr-gold) !important;
	border-color: var(--tlr-gold) !important;
}
.tlr-elbtn--outline-gold .elementor-button:hover {
	background-color: var(--tlr-gold) !important;
	color: #fff !important;
}

/* The wrapper must stay invisible — no background, no border, no padding. */
.tlr-elbtn,
.tlr-elbtn .elementor-widget-container,
.tlr-elbtn .elementor-button-wrapper {
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}
.tlr-elbtn .elementor-button-content-wrapper,
.tlr-elbtn .elementor-button-text {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
	color: inherit;
}

/* ------------------------------------------------------------------
   HOME HERO — full-bleed 50/50 split, exactly like the PHP build.
   Forced from CSS so it does not depend on Elementor honouring the
   section's own layout settings.
   ------------------------------------------------------------------ */
.tlr-el-hero { padding: 0 !important; background: var(--tlr-cream); }
.tlr-el-hero > .elementor-container,
.tlr-el-hero > .e-con-inner {
	max-width: 100% !important;
	width: 100% !important;
	min-height: 640px;
	align-items: stretch !important;
}
.tlr-el-hero > .elementor-container > .elementor-column { display: flex; }

.tlr-el-herocopy > .elementor-widget-wrap {
	justify-content: center;
	align-content: center;
	max-width: 640px;
	margin-left: auto;
	padding: 80px 60px 90px 24px !important;
}
.tlr-el-herocopy .elementor-heading-title { font-size: 66px !important; line-height: 1.08; }

.tlr-el-heroimg,
.tlr-el-heroimg > .elementor-widget-wrap,
.tlr-el-heroimg .elementor-widget-image,
.tlr-el-heroimg .elementor-widget-container,
.tlr-el-heroimg figure,
.tlr-el-heroimg .elementor-image {
	height: 100% !important;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}
.tlr-el-heroimg img {
	width: 100% !important;
	height: 100% !important;
	min-height: 640px;
	object-fit: cover;
	border-radius: 0 !important;
	display: block;
}

@media (max-width: 900px) {
	.tlr-el-hero > .elementor-container { min-height: 0; }
	.tlr-el-herocopy > .elementor-widget-wrap { padding: 60px 24px !important; max-width: none; }
	.tlr-el-heroimg img { min-height: 360px; }
}

/* Safety net: pages imported with the old class name still render clean —
   neutralise `.tlr-btn` when it lands on an Elementor button wrapper. */
.elementor-widget-button.tlr-btn {
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	display: block !important;
}
.elementor-widget-button.tlr-btn .elementor-button {
	display: inline-flex !important;
	align-items: center;
	gap: 10px;
	font-family: var(--tlr-ui) !important;
	text-transform: uppercase !important;
	letter-spacing: .12em !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	padding: 16px 28px !important;
	border-radius: var(--tlr-radius) !important;
	border: 1px solid transparent;
}
.elementor-widget-button.tlr-btn--navy .elementor-button {
	background-color: var(--tlr-navy) !important; color: #fff !important; border-color: var(--tlr-navy) !important;
}
.elementor-widget-button.tlr-btn--gold .elementor-button {
	background-color: var(--tlr-gold) !important; color: #fff !important; border-color: var(--tlr-gold) !important;
}
.elementor-widget-button.tlr-btn--ghost .elementor-button {
	background-color: var(--tlr-cream) !important; color: var(--tlr-navy) !important; border-color: var(--tlr-taupe) !important;
}
.elementor-widget-button.tlr-btn--outline-gold .elementor-button {
	background-color: transparent !important; color: var(--tlr-gold) !important; border-color: var(--tlr-gold) !important;
}

/* ============================================================
   1.6 — STRUCTURAL PARITY
   The Elementor pages now render the theme's OWN markup (hero, splits,
   grids, collage, quote rows, panels) inside HTML widgets, so both
   builds share one layout and one stylesheet. The rules below stop
   Elementor's widget typography from repainting that markup — every
   value here is a restatement of the theme's own, at the specificity
   needed to beat `.elementor-widget-html p`.
   ============================================================ */

/* Home hero — full bleed, no Elementor gutters. */
.tlr-el-herowrap { padding: 0 !important; }
.tlr-el-herowrap > .elementor-container,
.tlr-el-herowrap > .e-con-inner {
	max-width: 100% !important;
	width: 100% !important;
}
.tlr-el-herowrap .elementor-widget-wrap,
.tlr-el-herowrap .elementor-widget-html,
.tlr-el-herowrap .elementor-widget-container { padding: 0 !important; margin: 0 !important; }

/* Contact split keeps the theme's 56px gutter (it is the one section that
   still uses Elementor columns, because of the form widget). */
.tlr-el-split > .elementor-container { gap: 56px; align-items: flex-start; }
.tlr-el-split > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0; }

/* ---- Typography guards for theme markup inside HTML widgets ---- */
.elementor-widget-html .tlr-hero__lead {
	font-family: var(--tlr-display);
	font-style: italic;
	font-size: 21px;
	line-height: 1.55;
	color: var(--tlr-body);
}
.elementor-widget-html .tlr-hero__rwg {
	font-family: var(--tlr-ui);
	font-weight: 700;
	letter-spacing: .1em;
	font-size: 19px;
	color: var(--tlr-gold);
	margin: 22px 0 6px;
}
.elementor-widget-html .tlr-hero__tagline {
	font-family: var(--tlr-display);
	font-style: italic;
	font-size: 20px;
	color: var(--tlr-body);
}
.elementor-widget-html .tlr-mission__row p {
	font-family: var(--tlr-display);
	font-style: normal;
	font-size: 24px;
	line-height: 1.6;
	color: var(--tlr-navy);
	text-align: center;
	max-width: 640px;
	margin: 0;
}
.elementor-widget-html .tlr-quotebar p {
	font-family: var(--tlr-display);
	font-style: italic;
	font-size: 20px;
	line-height: 1.5;
	color: #fff;
	margin: 0;
}
.elementor-widget-html .tlr-sageband__row p {
	font-family: var(--tlr-display);
	font-style: italic;
	font-size: 27px;
	line-height: 1.5;
	color: #fff;
}
.elementor-widget-html .tlr-quote p {
	font-family: var(--tlr-display);
	font-style: italic;
	font-size: 18px;
	line-height: 1.55;
	color: var(--tlr-body);
	margin-bottom: 12px;
}
.elementor-widget-html .tlr-quote cite {
	font-family: var(--tlr-ui);
	font-size: 12px;
	font-style: normal;
	color: var(--tlr-muted);
}
.elementor-widget-html .tlr-pullquote {
	font-family: var(--tlr-display);
	font-style: italic;
	font-size: 22px;
	color: var(--tlr-navy);
}
.elementor-widget-html .tlr-step p,
.elementor-widget-html .tlr-panel p { font-size: 15px; line-height: 1.65; }
.elementor-widget-html .tlr-check li { font-family: var(--tlr-text); font-size: 15px; }
.elementor-widget-html .tlr-sub { font-size: 16px; color: var(--tlr-muted); }
.elementor-widget-html .tlr-card p { font-size: 14px; line-height: 1.65; color: var(--tlr-muted); }
.elementor-widget-html .tlr-grid > .tlr-card { height: 100%; }

/* ---- Inner page hero: white type on navy, whatever Elementor's kit says ---- */
.tlr-pagehero .elementor-heading-title,
.tlr-pagehero .elementor-widget-text-editor,
.tlr-pagehero .elementor-widget-text-editor p,
.tlr-pagehero .tlr-italic { color: #fff !important; }
.tlr-pagehero .elementor-widget-text-editor p,
.tlr-pagehero .tlr-italic {
	color: rgba(255,255,255,.72) !important;
	font-family: var(--tlr-display);
	font-style: italic;
	font-size: 20px;
}
.tlr-pagehero .tlr-crumb,
.tlr-pagehero .tlr-crumb a { color: rgba(255,255,255,.5) !important; }
.tlr-pagehero .tlr-crumb a:hover { color: var(--tlr-amber) !important; }
