/* ============================================
   Key Leads Media — Framed Theme (Static Site)
   Shared stylesheet for all pages.
   ============================================ */

:root{
  --color-bg:#ECECEC;
  --color-surface:#FFF;
  --color-text:#0A0A0A;
  --color-text-muted:#6E6E6E;
  --color-border:rgba(10,10,10,.08);
  --color-white:#FFF;
  --font-display:'Inter',sans-serif;
  --font-body:'Inter',sans-serif;
  --fs-h1:clamp(2.75rem,6vw,5.25rem);
  --fs-h2:clamp(2rem,4.25vw,3.5rem);
  --fs-medium:1.125rem;
  --fs-regular:1rem;
  --fs-small:.875rem;
  --fs-tiny:.75rem;
  --space-xs:.5rem;
  --space-sm:1rem;
  --space-md:1.5rem;
  --space-lg:3rem;
  --space-xl:5rem;
  --space-2xl:7rem;
  --radius-md:14px;
  --radius-lg:24px;
  --radius-xl:32px;
  --radius-pill:999px;
  --section-gutter:1rem;
  --ease-smooth:cubic-bezier(.22,1,.36,1);
  --transition-base:.35s var(--ease-smooth);
}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);font-size:var(--fs-regular);line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
p{margin:0}
.visually-hidden{position:absolute;left:-9999px}

/* Typography */
.heading-style-h1{font-family:var(--font-display);font-size:var(--fs-h1);line-height:1.02;font-weight:500;letter-spacing:-.035em;margin:0}
.heading-style-h2{font-family:var(--font-display);font-size:var(--fs-h2);line-height:1.05;font-weight:500;letter-spacing:-.03em;margin:0}
.heading-style-h3{font-family:var(--font-display);font-size:clamp(1.25rem,2vw,1.5rem);line-height:1.2;font-weight:500;letter-spacing:-.02em;margin:0}
.text-size-medium{font-size:var(--fs-medium);line-height:1.6}
.text-size-regular{font-size:var(--fs-regular)}
.text-size-small{font-size:var(--fs-small)}
.text-size-tiny{font-size:var(--fs-tiny)}
.text-weight-medium{font-weight:500}
.text-style-muted{color:var(--color-text-muted)}

/* Promo row + Nav */
.promo-row{display:flex;align-items:center;justify-content:center;padding:.625rem 1.5rem;background:var(--color-bg);color:var(--color-text-muted)}
.nav_fixed{position:absolute;top:36px;left:0;right:0;z-index:100;background:transparent;transition:all .35s var(--ease-smooth)}
.nav_fixed.is-scrolled{position:fixed;top:0;background:rgba(236,236,236,.85);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--color-border)}
.nav_fixed.is-solid{position:sticky;top:0;background:rgba(236,236,236,.95);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--color-border)}
.nav_fixed.is-solid .nav_logo,.nav_fixed.is-solid .nav_link{color:var(--color-text)}
.nav_fixed.is-solid .button.nav-button{color:var(--color-text);border-color:var(--color-text)}
.nav_container{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1.5rem;max-width:1320px;margin:0 auto}
.nav_brand{display:inline-flex;align-items:center}
.nav_logo{font-family:var(--font-display);font-weight:500;font-size:1.125rem;letter-spacing:-.01em;color:#fff}
.nav_fixed.is-scrolled .nav_logo{color:var(--color-text)}
.nav_menu{display:flex;align-items:center;flex:1;justify-content:center}
.nav_center{display:flex;gap:.25rem}
.nav_actions{display:flex;align-items:center;gap:.5rem}
.nav_link{display:inline-flex;padding:.5rem .875rem;color:#fff;font-size:var(--fs-small);transition:all .35s var(--ease-smooth);position:relative}
.nav_fixed.is-scrolled .nav_link{color:var(--color-text)}
.nav_link .button-text{display:inline-flex;align-items:center;gap:.5rem}
.nav_dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:0;transform:translateY(2px) scale(.6);transition:all .35s var(--ease-smooth)}
.nav_link:hover .nav_dot,.nav_link.is-current .nav_dot{opacity:1;transform:translateY(0) scale(1)}

/* Buttons */
.button{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.375rem;border-radius:var(--radius-pill);background:var(--color-text);color:#fff;border:1px solid var(--color-text);font-weight:500;font-size:var(--fs-small);cursor:pointer;transition:all .35s var(--ease-smooth);line-height:1;font-family:inherit}
.button:hover{background:transparent;color:var(--color-text)}
.button.nav-button{padding:.5rem 1rem;background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.button.nav-button:hover{background:#fff;color:var(--color-text);border-color:#fff}
.nav_fixed.is-scrolled .button.nav-button{color:var(--color-text);border-color:var(--color-text)}
.button.is-form-submit{width:100%;padding:1rem 1.5rem;margin-top:.5rem;font-size:var(--fs-regular);border:none}
.button.is-outline{background:transparent;color:var(--color-text);border-color:var(--color-text)}
.button.is-outline:hover{background:var(--color-text);color:#fff}
.button.is-light{background:#fff;color:var(--color-text);border-color:#fff}
.button.is-light:hover{background:transparent;color:#fff;border-color:#fff}
.button-arrow{margin-left:.5rem;display:inline-block;transition:transform .35s var(--ease-smooth)}
.button:hover .button-arrow{transform:translate(2px,-2px)}
.button-row{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}

/* Tags */
.tag{display:inline-flex;padding:.4rem .85rem;border-radius:var(--radius-pill);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);width:fit-content;font-size:var(--fs-tiny);font-weight:500;white-space:nowrap}
.tag.outline-light{background:rgba(10,10,10,.35);border-color:rgba(255,255,255,.3);color:#fff;backdrop-filter:blur(8px)}
.tag.is-dark{background:var(--color-text);color:#fff;border-color:var(--color-text)}

/* Section spacing */
.section_hero,.section_form,.section_faq,.section_service,.section_testimonial,.section_portfolio,.section_footer{padding:var(--section-gutter)}
.section_hero{padding-top:0;padding-bottom:var(--section-gutter)}

/* Hero */
.hero_wrapper{position:relative;border-radius:var(--radius-xl);overflow:hidden;min-height:72vh;display:flex;align-items:flex-end;padding:5rem 3rem;background:linear-gradient(135deg,#2a2a2a,#0a0a0a)}
.hero_wrapper.is-short{min-height:50vh;align-items:center}
.image-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.65))}
.overlay.contact-overlay{background:linear-gradient(180deg,rgba(0,0,0,.4),rgba(0,0,0,.75))}
.contact-hero_block,.service-hero_content{position:relative;z-index:2;color:#fff;width:100%;max-width:1160px;margin:0 auto;text-align:center;display:flex;flex-direction:column;gap:1.5rem;align-items:center}
.hero_inside{display:flex;flex-direction:column;align-items:center;gap:1.5rem;margin-top:1rem}
.contact-hero_title .heading-style-h1{color:#fff;max-width:16ch}
.contact-hero_text{display:flex;flex-direction:column;gap:1.5rem;align-items:center;max-width:50ch}
.contact-hero_text .text-style-muted{color:rgba(255,255,255,.85)}
.hero_arch{position:absolute;bottom:-1px;left:50%;transform:translateX(-50%);width:64px;height:32px;background:var(--color-bg);border-radius:32px 32px 0 0;z-index:3;display:flex;align-items:center;justify-content:center;padding-top:4px;color:var(--color-text)}
.hero_arch::after{content:"↓";font-size:1rem}

/* Socials */
.social-wrapper{display:flex;gap:.625rem;justify-content:center}
.social-icon{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:var(--fs-small);transition:all .35s var(--ease-smooth)}
.social-icon svg{width:17px;height:17px;display:block;fill:currentColor}
.social-icon:hover{background:#fff;border-color:#fff;color:var(--color-text)}
.social-wrapper.is-light .social-icon{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}
.social-wrapper.is-light .social-icon:hover{background:var(--color-text);color:#fff}

/* Split hero */
.split-hero{position:relative;background:var(--color-surface);border-radius:var(--radius-xl);overflow:hidden;padding:4rem 3rem;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:stretch;margin:var(--section-gutter)}
.split-hero_left{display:flex;flex-direction:column;gap:1.5rem;justify-content:space-between;padding:1rem 0}
.split-hero_right{position:relative;border-radius:var(--radius-lg);overflow:hidden;min-height:480px;background:linear-gradient(135deg,#3a3a3a,#0a0a0a)}
.split-hero_title{display:flex;flex-direction:column;gap:1.5rem}
.split-hero_title .heading-style-h1{max-width:18ch;text-wrap:balance}
.split-hero_bottom{display:flex;flex-direction:column;gap:1rem}

/* Statement */
.statement-block{text-align:center;max-width:960px;margin:0 auto;padding:7rem 1.5rem;display:flex;flex-direction:column;gap:1.5rem;align-items:center}

/* Feature trio */
.feature-trio{background:var(--color-surface);border-radius:var(--radius-xl);padding:3rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin:var(--section-gutter)}
.feature-card{display:flex;flex-direction:column;gap:.75rem;padding:1.5rem}
.feature-icon{width:40px;height:40px;border-radius:8px;background:var(--color-bg);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;font-size:1.25rem}

/* Service card */
.service-card{background:var(--color-surface);border-radius:var(--radius-xl);overflow:hidden;display:grid;grid-template-columns:1fr 1fr;align-items:stretch;min-height:440px;margin:var(--section-gutter)}
.service-card.is-reversed .service-card_image{order:2}
.service-card_image{position:relative;min-height:400px;border-radius:var(--radius-lg);margin:1rem;overflow:hidden;background:linear-gradient(135deg,#3a3a3a,#0a0a0a)}
.service-card_image.is-tier-photo{background:linear-gradient(135deg,#5a5a5a,#1a1a1a)}
.service-card_image.is-tier-all{background:linear-gradient(135deg,#7a7a7a,#2a2a2a)}
.service-card_content{padding:3rem;display:flex;flex-direction:column;gap:1.5rem;justify-content:center}
.service-card_list{margin-top:1rem;border-top:1px solid var(--color-border);list-style:none;padding:0}
.service-card_list-item{display:grid;grid-template-columns:48px 1fr;gap:.5rem;align-items:center;padding:.875rem 0;border-bottom:1px solid var(--color-border);font-size:var(--fs-small)}
.service-card_list-num{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-weight:500}

/* Testimonial */
.testimonial_section{position:relative;border-radius:var(--radius-xl);overflow:hidden;min-height:520px;display:flex;align-items:center;justify-content:center;padding:5rem 1.5rem;background:linear-gradient(135deg,#1a1a1a,#000);margin:var(--section-gutter)}
.testimonial_card{position:relative;z-index:2;background:var(--color-surface);border-radius:var(--radius-lg);padding:3rem;max-width:580px;text-align:center;display:flex;flex-direction:column;gap:1.5rem;align-items:center}
.testimonial_avatar{width:64px;height:64px;border-radius:var(--radius-md);margin-top:-2.5rem;overflow:hidden;background:linear-gradient(135deg,#8a8a8a,#2a2a2a);border:4px solid #fff}
.testimonial_quote{font-family:var(--font-display);font-size:1.5rem;line-height:1.3;letter-spacing:-.015em;font-weight:500}
.testimonial_author{display:flex;flex-direction:column;gap:.25rem}
.testimonial_controls{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;width:100%;margin-top:1rem}
.testimonial_controls .button.is-ghost{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}
.testimonial_controls .button.is-ghost:hover{background:var(--color-bg)}

/* CTA section */
.section_cta{margin:var(--section-gutter);padding:0}
.section_cta_card{background:var(--color-surface);border-radius:var(--radius-xl);padding:5rem 3rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem;max-width:900px;margin:0 auto}
.section_cta_card .tag{margin:0}
.section_cta_card .heading-style-h2{margin:0}
.section_cta_card .text-style-muted{max-width:520px}
.section_cta_card .button{margin-top:.5rem}

/* Portfolio */
.portfolio_filters{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1.5rem}
.portfolio_filter{padding:.5rem 1rem;border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.3);background:rgba(10,10,10,.2);color:#fff;font-size:var(--fs-tiny);cursor:pointer;transition:all .35s var(--ease-smooth);backdrop-filter:blur(8px);font-family:inherit}
.portfolio_filter:hover,.portfolio_filter.is-active{background:#fff;color:var(--color-text);border-color:#fff}
.portfolio_grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:1rem;margin:var(--section-gutter);background:var(--color-surface);border-radius:var(--radius-xl)}
.portfolio_item{position:relative;aspect-ratio:4/3;border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(135deg,#4a4a4a,#0a0a0a);cursor:pointer;transition:transform .35s var(--ease-smooth)}
.portfolio_item:hover{transform:translateY(-4px)}
.portfolio_item:nth-child(2){background:linear-gradient(135deg,#6a6a6a,#1a1a1a)}
.portfolio_item:nth-child(3){background:linear-gradient(135deg,#8a8a8a,#2a2a2a)}
.portfolio_item:nth-child(4){background:linear-gradient(135deg,#5a5a5a,#0a0a0a)}
.portfolio_item:nth-child(5){background:linear-gradient(135deg,#7a7a7a,#1a1a1a)}
.portfolio_item:nth-child(6){background:linear-gradient(135deg,#9a9a9a,#2a2a2a)}
.portfolio_item:nth-child(7){background:linear-gradient(135deg,#3a3a3a,#0a0a0a)}
.portfolio_item_tag{position:absolute;top:1rem;left:1rem;z-index:2}
.portfolio_item_footer{position:absolute;left:1rem;right:1rem;bottom:1rem;z-index:2;background:#fff;border-radius:var(--radius-md);padding:.875rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.portfolio_item_title{display:flex;flex-direction:column;gap:.125rem}
.portfolio_item_date{color:var(--color-text-muted);font-size:var(--fs-tiny)}
.portfolio_item_arrow{width:32px;height:32px;border-radius:8px;background:var(--color-bg);display:flex;align-items:center;justify-content:center}

/* Form */
.form_wrapper{background:var(--color-surface);border-radius:var(--radius-xl);padding:3rem;max-width:640px;margin:0 auto;margin-top:-5rem;position:relative;z-index:4;box-shadow:0 24px 60px rgba(0,0,0,.08)}
.form_wrapper.is-inline{margin-top:0}
.form_form{display:flex;flex-direction:column;gap:1.5rem}
.form_field-wrapper{display:flex;flex-direction:column;gap:.375rem}
.form_label{font-size:var(--fs-small);font-weight:500}
.form_input{padding:.75rem .875rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;font-family:var(--font-body);font-size:var(--fs-small);width:100%;transition:all .35s var(--ease-smooth)}
.form_input:focus{outline:none;border-color:var(--color-text);box-shadow:0 0 0 3px rgba(10,10,10,.06)}
.form_input.is-text-area{min-height:140px;resize:vertical}
select.form_input{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3e%3cpath d='M1 1.5L6 6.5L11 1.5' stroke='%230a0a0a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}
.form_form .button{align-self:flex-start;margin-top:.5rem}
.dual-input{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:640px){.dual-input{grid-template-columns:1fr}}
.form-success,.form-error{padding:1rem;border-radius:var(--radius-md);margin-top:1rem;font-size:var(--fs-small);display:none}
.form-success{background:#e8f5e9;color:#1b5e20}
.form-error{background:#ffebee;color:#b71c1c}

/* Pricing */
.pricing_wrapper{background:var(--color-surface);border-radius:var(--radius-xl);padding:5rem 3rem;margin:var(--section-gutter)}
.pricing_head{display:flex;flex-direction:column;gap:1rem;align-items:center;text-align:center;margin-bottom:3rem}
.pricing_badge{display:inline-flex;padding:.5rem 1rem;background:var(--color-bg);border-radius:var(--radius-pill);font-size:var(--fs-tiny);font-weight:500;color:var(--color-text-muted)}
.pricing_grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1160px;margin:0 auto}
.pricing_card{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2rem;display:flex;flex-direction:column;gap:1rem;background:var(--color-bg)}
.pricing_card.is-featured{background:var(--color-text);color:#fff;border-color:var(--color-text)}
.pricing_card.is-featured .text-style-muted{color:rgba(255,255,255,.75)}
.pricing_price{display:flex;align-items:baseline;gap:.25rem;margin-top:.5rem}
.pricing_amount{font-family:var(--font-display);font-size:2.5rem;font-weight:500;letter-spacing:-.02em}
.pricing_period{font-size:var(--fs-small);color:var(--color-text-muted)}
.pricing_card.is-featured .pricing_period{color:rgba(255,255,255,.75)}
.pricing_quarterly{font-size:var(--fs-tiny);color:var(--color-text-muted)}
.pricing_card.is-featured .pricing_quarterly{color:rgba(255,255,255,.6)}
.pricing_card .button{margin-top:auto}
.pricing_card.is-featured .button{background:#fff;color:var(--color-text);border-color:#fff}
.pricing_card.is-featured .button:hover{background:transparent;color:#fff}

/* Values */
.values_wrapper{background:var(--color-surface);border-radius:var(--radius-xl);padding:5rem 3rem;margin:var(--section-gutter);display:grid;grid-template-columns:1fr 2fr;gap:3rem}
.values_left{display:flex;flex-direction:column;gap:1rem}
.values_grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.value_card{display:flex;flex-direction:column;gap:.75rem;padding:1.5rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg)}
.value_num{font-family:var(--font-display);font-size:1.25rem;font-weight:500;color:var(--color-text-muted)}

/* Process */
.process_wrapper{background:var(--color-surface);border-radius:var(--radius-xl);padding:5rem 3rem;margin:var(--section-gutter)}
.process_head{text-align:center;max-width:720px;margin:0 auto 3rem;display:flex;flex-direction:column;gap:1.5rem;align-items:center}
.process_grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1160px;margin:0 auto}
.process_step{padding:2rem;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);display:flex;flex-direction:column;gap:1rem}
.process_step_num{font-family:var(--font-display);font-size:1.5rem;font-weight:500;color:var(--color-text-muted)}

/* FAQ */
.section_faq{padding:var(--section-gutter)}
.faq_wrapper{background:var(--color-surface);border-radius:var(--radius-xl);padding:5rem 3rem}
.faq_block{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:3rem;align-items:center}
.faq_intro{display:flex;flex-direction:column;gap:1.25rem;align-items:center;text-align:center}
.faq_intro .heading-style-h2{white-space:nowrap}
.faq_grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;width:100%}
.faq-item{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:#fff;transition:border-color .35s var(--ease-smooth);align-self:start}
.faq-item:hover{border-color:rgba(10,10,10,.2)}
.faq-top{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.375rem;gap:1rem;cursor:pointer;user-select:none;width:100%;background:transparent;border:0;text-align:left;font-family:inherit;color:inherit}
.faq-top p{margin:0;font-size:1rem;font-weight:500;line-height:1.35;color:var(--color-text)}
.faq-icon{position:relative;flex-shrink:0;width:32px;height:32px;border-radius:50%;border:1px solid var(--color-border);background:#fff;transition:transform .35s var(--ease-smooth),background .25s var(--ease-smooth)}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;left:50%;top:50%;background:var(--color-text);border-radius:2px}
.faq-icon::before{width:12px;height:1.5px;transform:translate(-50%,-50%)}
.faq-icon::after{width:1.5px;height:12px;transform:translate(-50%,-50%);transition:transform .35s var(--ease-smooth),opacity .25s var(--ease-smooth)}
.faq-item.is-open .faq-icon{background:var(--color-text)}
.faq-item.is-open .faq-icon::before{background:#fff}
.faq-item.is-open .faq-icon::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.faq-bottom{max-height:0;overflow:hidden;transition:max-height .4s var(--ease-smooth),padding .4s var(--ease-smooth);padding:0 1rem}
.faq-item.is-open .faq-bottom{max-height:600px;padding:0 1rem 1rem}
.faq-content{padding:1.125rem 1.25rem;color:var(--color-text-muted);font-size:.9375rem;line-height:1.55;background:var(--color-surface);border-radius:var(--radius-md)}
.faq-content p{margin:0}

/* Footer */
.footer_card{background:var(--color-surface);border-radius:var(--radius-xl);overflow:hidden}
.footer_middle{display:grid;grid-template-columns:auto 1fr auto;gap:3rem;align-items:center;padding:3rem}
.footer_logo{font-family:var(--font-display);font-weight:500;font-size:1.125rem;color:var(--color-text)}
.footer_menu{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}
.footer_menu .footer_link{color:var(--color-text-muted);font-size:var(--fs-small)}
.footer_menu .footer_link:hover{color:var(--color-text)}
.footer_bottom{display:flex;justify-content:space-between;padding:1rem 3rem;border-top:1px solid var(--color-border);color:var(--color-text-muted);flex-wrap:wrap;gap:.5rem;font-size:var(--fs-tiny)}
.hyperlink{color:var(--color-text);text-decoration:underline}

/* Podcast */
.podcast_wrapper{background:var(--color-surface);border-radius:var(--radius-xl);padding:5rem 3rem;margin:var(--section-gutter);display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.podcast_embed{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:16/9;background:#000}
.podcast_embed iframe{width:100%;height:100%;border:0}

/* Calendar embed */
.calendar_wrapper{background:var(--color-surface);border-radius:var(--radius-xl);padding:2rem;margin:var(--section-gutter);max-width:960px;margin-left:auto;margin-right:auto}
.calendar_wrapper iframe{width:100%;min-height:720px;border:0;border-radius:var(--radius-lg)}

/* Reveal animations */
[data-reveal],.heading-style-h1,.heading-style-h2{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease-smooth),transform .8s var(--ease-smooth)}
.is-revealed{opacity:1;transform:translateY(0)}

/* Mobile nav toggle + panel */
.nav_toggle{display:none;background:transparent;border:0;padding:0;margin:0;cursor:pointer;width:44px;height:44px;color:#fff;position:relative;z-index:110;flex-direction:column;align-items:center;justify-content:center;gap:0}
.nav_toggle span{display:block;width:22px;height:2px;background:currentColor;border-radius:2px;margin:3px 0;transition:transform .3s var(--ease-smooth),opacity .3s var(--ease-smooth)}
.nav_fixed.is-solid .nav_toggle,.nav_fixed.is-scrolled .nav_toggle{color:var(--color-text)}

.mobile-menu{position:fixed;inset:0;background:rgba(236,236,236,.98);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);z-index:105;display:none;flex-direction:column;align-items:center;justify-content:center;padding:6rem 1.5rem 3rem;overflow-y:auto;opacity:0;transition:opacity .35s var(--ease-smooth);pointer-events:none}
.mobile-menu_inner{display:flex;flex-direction:column;gap:.25rem;align-items:center;text-align:center;width:100%;max-width:360px}
.mobile-menu_link{font-family:var(--font-display);font-size:2rem;line-height:1.2;letter-spacing:-.025em;font-weight:500;color:var(--color-text);padding:.625rem 0;transition:opacity .25s var(--ease-smooth)}
.mobile-menu_link:hover,.mobile-menu_link.is-current{opacity:.5}
.mobile-menu_cta{margin-top:2rem}

body.menu-open{overflow:hidden}
body.menu-open .mobile-menu{display:flex;opacity:1;pointer-events:auto}
body.menu-open .nav_toggle{color:var(--color-text)}
body.menu-open .nav_toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
body.menu-open .nav_toggle span:nth-child(2){opacity:0}
body.menu-open .nav_toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* Responsive */
@media(max-width:900px){
  .promo-row{font-size:.6875rem;padding:.5rem 1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  /* Mobile nav: solid header so logo is readable over any hero */
  .nav_fixed{top:30px;background:rgba(236,236,236,.96);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--color-border)}
  .nav_fixed .nav_logo,.nav_fixed .nav_link{color:var(--color-text)}
  .nav_fixed .button.nav-button{color:var(--color-text);border-color:var(--color-text);background:transparent}
  .nav_fixed .nav_toggle{color:var(--color-text)}
  .nav_container{padding:.625rem 1rem;gap:.5rem}
  .nav_logo{font-size:1rem}
  .nav_menu{display:none !important}
  .nav_toggle{display:flex !important}
  .nav_actions{gap:.375rem}
  .button.nav-button{padding:.45rem .85rem;font-size:var(--fs-tiny)}

  /* Typography scale-up for mobile readability */
  body{font-size:1rem;line-height:1.6}
  .text-size-medium{font-size:1rem;line-height:1.6}
  .text-size-small{font-size:.9375rem;line-height:1.6}
  .text-size-regular{font-size:1rem;line-height:1.6}
  p,.text-style-muted{line-height:1.6}

  /* Hero */
  .section_hero{padding:.875rem}
  .hero_wrapper{padding:3rem 1.5rem;min-height:60vh}
  .hero_wrapper.is-short{min-height:42vh}
  .contact-hero_title .heading-style-h1{max-width:12ch}
  .contact-hero_text{gap:1.25rem}
  .contact-hero_text .text-size-medium{font-size:1rem;line-height:1.6}

  /* Split hero */
  .split-hero{grid-template-columns:1fr;padding:2.5rem 1.5rem;gap:2rem}
  .split-hero_right{min-height:260px}
  .split-hero_title .heading-style-h1{max-width:none}
  .split-hero_left{gap:1.5rem;padding:.5rem 0}
  .split-hero_bottom{gap:1rem}

  /* Feature trio */
  .feature-trio{grid-template-columns:1fr;padding:2rem 1.25rem;gap:1.25rem}
  .feature-card{padding:1.25rem;gap:.5rem;background:var(--color-bg);border-radius:var(--radius-lg)}
  .feature-card .text-size-small{font-size:.9375rem;line-height:1.6}

  /* Service cards */
  .service-card,.service-card.is-reversed{grid-template-columns:1fr;min-height:auto}
  .service-card.is-reversed .service-card_image{order:0}
  .service-card_content{padding:2rem 1.5rem;gap:1.25rem}
  .service-card_image{min-height:240px;margin:1rem}
  .service-card_list-item{grid-template-columns:40px 1fr;padding:1rem 0;font-size:.9375rem;line-height:1.5}

  /* CTA */
  .section_cta_card{padding:3rem 1.5rem;gap:1.25rem}

  /* Portfolio */
  .portfolio_grid{grid-template-columns:1fr;padding:.75rem;gap:.75rem}
  .portfolio_item{aspect-ratio:16/10}
  .portfolio_item_footer{left:.75rem;right:.75rem;bottom:.75rem;padding:.75rem .875rem}
  .portfolio_filters{padding:0 1rem}

  /* FAQ */
  .section_faq{padding:1.5rem 1rem}
  .faq_wrapper{padding:3rem 1.25rem;border-radius:var(--radius-lg)}
  .faq_block{gap:2rem}
  .faq_intro{gap:1rem}
  .faq_intro .heading-style-h2{white-space:normal}
  .faq_grid{grid-template-columns:1fr;gap:.75rem}
  .faq-item{border-radius:var(--radius-md)}
  .faq-top{padding:1rem 1.125rem;gap:.75rem}
  .faq-top p{font-size:.9375rem;line-height:1.4}
  .faq-icon{width:28px;height:28px}
  .faq-icon::before{width:10px}
  .faq-icon::after{height:10px}
  .faq-bottom{padding:0 .625rem}
  .faq-item.is-open .faq-bottom{padding:0 .625rem .625rem}
  .faq-content{font-size:.9375rem;line-height:1.6;padding:1rem 1.125rem}

  /* Footer */
  .footer_card{border-radius:var(--radius-lg)}
  .footer_middle{grid-template-columns:1fr;text-align:center;justify-items:center;padding:2rem 1.5rem;gap:1.5rem}
  .footer_bottom{flex-direction:column;text-align:center;padding:1rem 1.5rem;gap:.25rem}
  .footer_menu{gap:1rem}

  /* Form */
  .dual-input{grid-template-columns:1fr}
  .form_wrapper{padding:2rem 1.25rem;margin-top:-3rem}
  .form_form{gap:1.25rem}

  /* Pricing */
  .pricing_wrapper{padding:3rem 1.25rem}
  .pricing_head{margin-bottom:2rem}
  .pricing_grid{grid-template-columns:1fr;gap:1rem;max-width:420px}
  .pricing_card{padding:1.75rem;gap:1rem}

  /* Process */
  .process_wrapper{padding:3rem 1.25rem}
  .process_head{margin-bottom:2rem;gap:1.25rem}
  .process_grid{grid-template-columns:1fr;gap:1rem}
  .process_step{padding:1.75rem;gap:1rem}

  /* Values — About page */
  .values_wrapper{grid-template-columns:1fr;padding:3rem 1.5rem;gap:2rem}
  .values_left{gap:1rem;align-items:flex-start}
  .values_grid{grid-template-columns:1fr;gap:1.25rem}
  .value_card{padding:1.75rem;gap:1rem;background:var(--color-bg);border-radius:var(--radius-lg)}
  .value_card .heading-style-h3{margin-top:.25rem}
  .value_card .text-style-muted{font-size:.9375rem;line-height:1.65}

  /* Podcast */
  .podcast_wrapper{grid-template-columns:1fr;padding:3rem 1.25rem;gap:2rem}

  /* Statement */
  .statement-block{padding:4rem 1.25rem;gap:1.5rem}

  /* Testimonial */
  .testimonial_section{padding:3rem 1rem;min-height:auto}
  .testimonial_card{padding:2rem 1.25rem;gap:1.25rem}
  .testimonial_quote{font-size:1.125rem;line-height:1.45}

  /* Calendar */
  .calendar_wrapper{padding:1rem}

  /* Prevent horizontal scroll */
  main{overflow-x:hidden}
}

@media(max-width:420px){
  .nav_container{padding:.5rem .875rem;gap:.375rem}
  .nav_logo{font-size:.9375rem}
  .button.nav-button{padding:.4rem .7rem}
  .mobile-menu_link{font-size:1.75rem}
  .hero_wrapper{padding:2.5rem 1.25rem}
  .split-hero{padding:2rem 1.25rem}
  .service-card_content{padding:1.75rem 1.25rem}
  .section_cta_card{padding:2.5rem 1.25rem}
  .testimonial_card{padding:1.75rem 1rem}
  .form_wrapper{padding:1.5rem 1rem}
  .values_wrapper{padding:2.5rem 1.25rem}
  .value_card{padding:1.5rem 1.25rem}
  .pricing_wrapper,.process_wrapper{padding:2.5rem 1.25rem}
  .pricing_card,.process_step{padding:1.5rem 1.25rem}
  .faq_wrapper{padding:2.5rem 1.25rem}
}

/* --- Cookie consent banner (Key Leads Media) --- */
.klm-consent{position:fixed;left:0;right:0;bottom:0;z-index:9999;display:none;
  background:#111;color:#e8e8e8;border-top:1px solid rgba(255,255,255,.14);
  box-shadow:0 -6px 24px rgba(0,0,0,.28)}
.klm-consent.is-open{display:block}
.klm-consent__in{max-width:1100px;margin:0 auto;padding:1rem 1.25rem;display:flex;
  gap:1.25rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.klm-consent__text{margin:0;font-size:.85rem;line-height:1.55;max-width:70ch}
.klm-consent__text a{color:#fff;text-decoration:underline;text-underline-offset:2px}
.klm-consent__btns{display:flex;gap:.6rem;flex-shrink:0}
.klm-consent__btn{font:inherit;font-size:.82rem;font-weight:600;letter-spacing:.02em;
  padding:.6rem 1.15rem;border-radius:6px;cursor:pointer;border:1px solid transparent;
  white-space:nowrap}
.klm-consent__btn--ghost{background:transparent;color:#e8e8e8;border-color:rgba(255,255,255,.35)}
.klm-consent__btn--ghost:hover{border-color:#fff;color:#fff}
.klm-consent__btn--solid{background:#fff;color:#111}
.klm-consent__btn--solid:hover{background:#e6e6e6}
@media (max-width:640px){
  .klm-consent__in{flex-direction:column;align-items:stretch;gap:.85rem;padding:1rem}
  .klm-consent__btns{justify-content:stretch}
  .klm-consent__btn{flex:1}
}

/* Sit above everything, including third-party floating widgets. */
.klm-consent{z-index:2147483647}
/* Hold back the chat widget while a cookie choice is pending: it floats
   bottom-right, intercepts the clicks meant for Accept/Decline, and should
   not collect a phone number before the visitor has answered. */
html.klm-consent-open chat-widget,
html.klm-consent-open #chat-widget,
html.klm-consent-open [id^="lc_text-widget"]{display:none!important}

.klm-consent__state{color:#fff;font-weight:600}
