/* Truevalue Mortgage – styles for Elementor widgets.
   Colours, fonts, spacing and layout are normal Elementor settings (edit them in the panel);
   this file adds the finishing touches Elementor has no control for. */

/* Sections */
.tv-sec{overflow:hidden}
.tv-dark a:not(.elementor-button){color:var(--gold)}
.tv-dark .elementor-widget-text-editor strong{color:#fff}
.tv-head{max-width:780px}
.tv-head.tv-center{margin-inline:auto}
.tv-narrow{max-width:880px;margin-inline:auto}
.elementor-widget-text-editor p+p{margin-top:1em}
.elementor-widget-text-editor a{font-weight:700}

.e-con.tv-auto{--width:auto}

/* Images */
.tv-img img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:24px;display:block}
.tv-media img{box-shadow:0 24px 60px rgba(14,42,59,.16)}
.tv-portrait-img img{aspect-ratio:4/5}
.tv-card-img{overflow:hidden}
.tv-card-img img{border-radius:0;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.tv-card:hover .tv-card-img img{transform:scale(1.07)}

/* Hero */
.tv-hero-art{position:relative}
.tv-hero-img{border-radius:28px;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.tv-hero-img img{border-radius:0;animation:kenburns 24s ease-in-out infinite alternate}
.tv-portrait img{aspect-ratio:4/5;object-position:74% 50%}
.tv-floats{position:static!important}
.tv-float{position:absolute;background:#fff;border-radius:14px;padding:13px 16px;display:flex;gap:12px;align-items:center;box-shadow:0 18px 40px rgba(0,0,0,.22);color:var(--ink);font-size:.85rem;line-height:1.3;animation:bob 5s ease-in-out infinite;z-index:2}
.tv-float b{display:block;color:var(--navy);font-size:.95rem}
.tv-float .ic{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}
.tv-float .ic-green{background:var(--green-soft)}.tv-float .ic-gold{background:#FBF1DC}
.tv-float.one{left:-24px;top:12%}.tv-float.two{right:-16px;bottom:14%;animation-delay:.9s}
@media (max-width:1024px){.tv-float.one{left:10px}.tv-float.two{right:10px}}
.tv-hero-copy>.elementor-element,.tv-hero-copy>.e-con-inner>.elementor-element{animation:rise .9s cubic-bezier(.2,.7,.2,1) backwards}
.tv-hero-copy>.elementor-element:nth-child(2){animation-delay:.08s}.tv-hero-copy>.elementor-element:nth-child(3){animation-delay:.16s}
.tv-hero-copy>.elementor-element:nth-child(4){animation-delay:.24s}.tv-hero-copy>.elementor-element:nth-child(5){animation-delay:.32s}
.tv-hero-art{animation:rise 1.1s .15s cubic-bezier(.2,.7,.2,1) backwards}
.tv-pill .elementor-heading-title{display:inline-flex;gap:10px;align-items:center;background:#16384B;border:1px solid #2B5266;border-radius:40px;padding:7px 15px}
.tv-pill .elementor-heading-title::before{content:"";width:8px;height:8px;border-radius:50%;background:#6FCF97;flex-shrink:0;animation:pulse 2s ease-out infinite}
.tv-crumbs a{color:var(--gold);text-decoration:none;font-weight:600}
@media (max-width:1024px){.tv-lp-art{display:none}}

/* Cards */
.tv-card{transition:transform .28s ease,box-shadow .28s ease}
.tv-card:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(14,42,59,.14)}
.tv-card-media{overflow:hidden}
.tv-card .elementor-heading-title a{color:inherit;text-decoration:none}
.tv-step-num .elementor-heading-title{line-height:1}
.tv-icon-tile .elementor-icon{transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.tv-card:hover .tv-icon-tile .elementor-icon{transform:rotate(-8deg) scale(1.08)}
.tv-stars{letter-spacing:.2em}
.tv-testimonial .elementor-testimonial-wrapper{text-align:left}

/* Buttons */
.tv-btn .elementor-button{min-height:52px;display:inline-flex;align-items:center;justify-content:center}
.tv-btn-gold .elementor-button{position:relative;overflow:hidden}
.tv-btn-gold .elementor-button::after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .6s ease}
.tv-btn-gold .elementor-button:hover::after{left:130%}
.tv-more .elementor-button{min-height:0}
.tv-more .elementor-button-icon svg{width:.9em;transition:transform .2s ease}
.tv-more .elementor-button:hover .elementor-button-icon svg{transform:translateX(4px)}
.tv-phone-big .elementor-heading-title{font-size:1.5rem}

/* FAQ accordion */
.tv-faq .e-n-accordion{display:flex;flex-direction:column;gap:12px}
.tv-faq .e-n-accordion-item{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.elementor-widget-n-accordion.tv-faq .e-n-accordion-item-title{padding:20px 24px;border:0;background:transparent;justify-content:space-between}
.tv-faq .e-n-accordion-item-title-icon svg{fill:var(--gold-ink);width:16px;height:16px}
.tv-faq .e-n-accordion-item[open] .e-n-accordion-item-title{padding-bottom:12px}

/* Shortcode blocks inside Elementor */
.elementor-widget-shortcode .form-card{box-shadow:0 24px 60px rgba(10,31,44,.18)}
.tv-dark .elementor-widget-shortcode .calc{margin-top:8px}
.elementor-widget-counter.tv-counter .elementor-counter{gap:14px;align-items:center}

@media (prefers-reduced-motion:reduce){.tv-hero-img img,.tv-float,.tv-pill .elementor-heading-title::before{animation:none}}
