/* =========================================================
   Finance Grow Support — Main Stylesheet
   Design: supportive growth — floating pill navigation,
   centered hero with chips, horizontal cards, soft blobs.
   Palette: deep cobalt + flamingo pink + aqua on cool white
   ========================================================= */
:root {
  --navy: #14286b;
  --navy-2: #1c3580;
  --navy-3: #26449a;
  --tang: #f2456a;
  --tang-d: #cc2f52;
  --tang-soft: #ffe6ec;
  --mint: #1497a8;
  --mint-soft: #dff4f6;
  --cream: #f9fafc;
  --soft: #eef2fa;
  --text: #4a5372;
  --line: #dfe5f2;
  --white: #ffffff;
  --r-xl: 32px;
  --r-lg: 22px;
  --r-md: 16px;
  --sh: 0 30px 60px -20px rgba(20,40,107, 0.25);
  --sh-sm: 0 10px 30px -12px rgba(20,40,107, 0.18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'Nunito', system-ui, sans-serif; color: var(--text); background: var(--white); font-size: 1.04rem; line-height: 1.75; overflow-x: hidden; }
h1, h2, h3, h4, h5 { font-family: 'Montserrat', sans-serif; color: var(--navy); font-weight: 800; letter-spacing: -0.4px; line-height: 1.2; }
a { color: var(--navy); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--tang-d); }
img { max-width: 100%; height: auto; }

/* ---------- Buttons ---------- */
.btn { border-radius: 999px; font-weight: 700; padding: 12px 26px; font-family: 'Montserrat', sans-serif; transition: all .25s ease; }
.btn-lg { padding: 15px 32px; font-size: 1.02rem; }
.btn-tang { background: var(--tang); color: var(--white); border: 2px solid var(--tang); box-shadow: 0 12px 24px -10px rgba(242,69,106,.7); }
.btn-tang:hover { background: var(--tang-d); border-color: var(--tang-d); color: var(--white); transform: translateY(-2px); }
.btn-navy { background: var(--navy); color: var(--white); border: 2px solid var(--navy); }
.btn-navy:hover { background: var(--navy-3); border-color: var(--navy-3); color: var(--white); transform: translateY(-2px); }
.btn-outline-navy { border: 2px solid var(--navy); color: var(--navy); background: transparent; }
.btn-outline-navy:hover { background: var(--navy); color: var(--white); }
.btn-soft { background: var(--tang-soft); color: var(--tang-d); border: 0; padding: 10px 20px; }
.btn-soft:hover { background: var(--tang); color: var(--white); }
.btn-ghost { border: 2px solid rgba(20,40,107,.25); color: var(--navy); background: transparent; }
.btn-ghost:hover { background: var(--white); color: var(--navy); }
.more-link { font-weight: 800; font-family: 'Montserrat', sans-serif; display: inline-flex; align-items: center; gap: 6px; color: var(--tang-d); }
.more-link:hover { gap: 10px; }

/* ---------- Tags / titles ---------- */
.tag { display: inline-flex; align-items: center; gap: 6px; background: var(--tang-soft); color: var(--tang-d); font-weight: 800; font-family: 'Montserrat', sans-serif; font-size: .8rem; letter-spacing: .6px; text-transform: uppercase; border-radius: 999px; padding: 6px 14px; margin-bottom: 16px; }
.tag-white { background: var(--white); box-shadow: var(--sh-sm); }
.tag-dark { background: rgba(255,255,255,.08); color: var(--tang); }
.tag-light { background: rgba(255,255,255,.18); color: var(--white); }
.title { font-size: clamp(1.9rem, 3.4vw, 2.75rem); margin-bottom: 16px; }
.sub { font-size: 1.08rem; }
.block { padding: 96px 0; }
.bg-cream { background: var(--cream); }
.bg-soft { background: var(--soft); }
.bg-navy { background: var(--navy); }
.head-c { max-width: 700px; margin: 0 auto 52px; }
.head-row { margin-bottom: 44px; }

/* ---------- Floating navigation ---------- */
.nav-shell { position: sticky; top: 14px; z-index: 1030; margin-top: 14px; margin-bottom: -88px; }
.nav-pill { background: rgba(255,255,255,.95); backdrop-filter: blur(10px); border-radius: 999px; padding: 10px 12px 10px 24px; box-shadow: var(--sh-sm); border: 1px solid rgba(20,40,107,.06); transition: box-shadow .3s ease; }
.nav-pill.scrolled { box-shadow: var(--sh); }
.logo-link img { height: 40px; width: auto; display: block; }
.nav-pill .nav-link { color: var(--navy); font-weight: 700; font-family: 'Montserrat', sans-serif; padding: 8px 14px !important; border-radius: 999px; }
.nav-pill .nav-link:hover { background: var(--soft); color: var(--navy); }
.nav-pill .nav-link.active { background: var(--navy); color: var(--white); }
.navbar-toggler { border: 0; font-size: 1.7rem; color: var(--navy); padding: 2px 10px; }
.navbar-toggler:focus { box-shadow: none; }

/* ---------- Hero ---------- */
.hero-center { background: var(--cream); padding: 170px 0 90px; position: relative; overflow: hidden; }
.blob { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; }
.blob-1 { width: 420px; height: 420px; background: #ffd0da; top: 40px; left: -120px; }
.blob-2 { width: 380px; height: 380px; background: #c7eef3; top: 120px; right: -100px; }
.hero-copy { max-width: 860px; margin: 0 auto 56px; }
.hero-copy h1 { font-size: clamp(2.5rem, 5.6vw, 4.4rem); line-height: 1.06; margin-bottom: 22px; }
.hero-copy h1 span { color: var(--tang); }
.hero-copy p { font-size: 1.2rem; max-width: 660px; margin: 0 auto 32px; }
.hero-shot { position: relative; max-width: 1040px; margin: 0 auto; }
.hero-shot img { width: 100%; aspect-ratio: 16 / 7; object-fit: cover; object-position: 40% 70%; border-radius: var(--r-xl); box-shadow: var(--sh); border: 8px solid var(--white); }
.chip { position: absolute; background: var(--white); border-radius: 999px; padding: 12px 20px; font-weight: 800; font-family: 'Montserrat', sans-serif; color: var(--navy); box-shadow: var(--sh-sm); display: inline-flex; align-items: center; gap: 10px; font-size: .95rem; white-space: nowrap; }
.chip i { width: 32px; height: 32px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--white); }
.chip-1 { top: 12%; left: -28px; } .chip-1 i { background: var(--tang); }
.chip-2 { bottom: 14%; left: 8%; } .chip-2 i { background: var(--navy); }
.chip-3 { top: 30%; right: -28px; } .chip-3 i { background: var(--mint); }

/* ---------- Categories ---------- */
.cat { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 26px 18px; text-align: center; height: 100%; transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.cat:hover { transform: translateY(-6px); border-color: var(--tang); box-shadow: var(--sh-sm); }
.cat span { width: 58px; height: 58px; border-radius: 18px; background: var(--tang-soft); color: var(--tang-d); display: inline-flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 14px; }
.col-6:nth-child(even) .cat span { background: var(--mint-soft); color: #26449a; }
.cat h4 { font-size: 1.05rem; margin-bottom: 6px; }
.cat p { font-size: .9rem; margin: 0; line-height: 1.5; }

/* ---------- Stacked images ---------- */
.stack-img { position: relative; padding: 0 70px 70px 0; }
.si-main { width: 100%; border-radius: var(--r-xl); aspect-ratio: 4 / 3; object-fit: cover; box-shadow: var(--sh); }
.si-small { position: absolute; right: 0; bottom: 0; width: 46%; border-radius: var(--r-lg); border: 8px solid var(--white); aspect-ratio: 1 / 1; object-fit: cover; box-shadow: var(--sh); }
.si-badge { position: absolute; left: 24px; top: 24px; background: var(--white); border-radius: 999px; padding: 10px 18px; font-weight: 800; font-family: 'Montserrat', sans-serif; color: var(--navy); box-shadow: var(--sh-sm); display: inline-flex; gap: 8px; align-items: center; }
.si-badge i { color: var(--tang); }
.principles { list-style: none; padding: 0; margin: 26px 0 30px; }
.principles li { display: flex; gap: 18px; padding: 16px 0; border-bottom: 1px dashed var(--line); }
.principles li:last-child { border-bottom: 0; }
.principles span { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 1.5rem; color: var(--tang); line-height: 1; min-width: 42px; }
.principles h4 { font-size: 1.05rem; margin-bottom: 2px; }
.principles p { margin: 0; font-size: .97rem; }

/* ---------- Horizontal service cards ---------- */
.hcard { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; height: 100%; transition: transform .3s ease, box-shadow .3s ease; }
.hcard:hover { transform: translateY(-5px); box-shadow: var(--sh); }
.hcard-img { height: 100%; min-height: 230px; position: relative; overflow: hidden; }
.hcard-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.hcard:hover .hcard-img img { transform: scale(1.07); }
.hcard-body { padding: 28px 26px; display: flex; flex-direction: column; height: 100%; }
.hcard-icon { width: 46px; height: 46px; border-radius: 14px; background: var(--navy); color: var(--tang); display: inline-flex; align-items: center; justify-content: center; font-size: 1.25rem; margin-bottom: 14px; }
.hcard-body h3 { font-size: 1.25rem; margin-bottom: 10px; }
.hcard-body p { font-size: .97rem; flex: 1; }
.hcard-body .btn { align-self: flex-start; display: inline-flex; align-items: center; gap: 2px; }

/* ---------- Numbered steps ---------- */
.nstep { background: var(--navy-2); border-radius: var(--r-lg); padding: 34px 28px; height: 100%; border: 1px solid rgba(255,255,255,.06); transition: transform .3s ease, background .3s ease; }
.nstep:hover { transform: translateY(-6px); background: var(--navy-3); }
.nstep-no { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 3rem; line-height: 1; color: transparent; -webkit-text-stroke: 2px var(--tang); display: block; margin-bottom: 18px; }
.nstep h4 { color: var(--white); font-size: 1.3rem; }
.nstep p { color: #a9b6dc; margin: 0; }

/* ---------- Checklist ---------- */
.check-wrap { background: var(--mint-soft); border-radius: var(--r-xl); padding: 56px; }
.check-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.check-grid li { background: var(--white); border-radius: var(--r-md); padding: 16px 18px; display: flex; gap: 12px; align-items: flex-start; font-weight: 700; color: var(--navy); line-height: 1.45; box-shadow: 0 6px 18px -12px rgba(20,40,107,.3); }
.check-grid i { color: var(--mint); font-size: 1.2rem; }

/* ---------- Testimonials ---------- */
.tcard { border-radius: var(--r-lg); padding: 32px 30px; height: 100%; display: flex; flex-direction: column; transition: transform .3s ease; }
.tcard:hover { transform: translateY(-6px) rotate(-.4deg); }
.tcard p { flex: 1; font-size: 1.04rem; margin-bottom: 22px; }
.tcard-q { font-size: 2rem; line-height: 1; margin-bottom: 14px; display: block; }
.tcard-who { display: flex; align-items: center; gap: 12px; }
.tcard-who span { width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-family: 'Montserrat', sans-serif; }
.tcard-who strong { font-family: 'Montserrat', sans-serif; color: inherit; }
.t-cream { background: var(--tang-soft); color: var(--navy); }
.t-cream .tcard-q { color: var(--tang); } .t-cream .tcard-who span { background: var(--tang); color: var(--white); }
.t-mint { background: var(--mint-soft); color: var(--navy); }
.t-mint .tcard-q { color: var(--mint); } .t-mint .tcard-who span { background: var(--mint); color: var(--white); }
.t-navy { background: var(--navy); color: #cdd5ef; }
.t-navy .tcard-q { color: var(--tang); } .t-navy .tcard-who strong { color: var(--white); } .t-navy .tcard-who span { background: var(--white); color: var(--navy); }

/* ---------- Blog ---------- */
.bfeature { position: relative; display: block; border-radius: var(--r-xl); overflow: hidden; height: 100%; min-height: 480px; color: var(--white); }
.bfeature img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.bfeature::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,40,107,0) 25%, rgba(20,40,107,.92) 100%); }
.bfeature:hover img { transform: scale(1.05); }
.bfeature-body { position: absolute; left: 0; right: 0; bottom: 0; padding: 36px; z-index: 2; }
.bfeature-body h3 { color: var(--white); font-size: clamp(1.5rem, 2.4vw, 2rem); margin-bottom: 10px; }
.bfeature-body p { color: #d9dff3; }
.bfeature .more, .bfeature:hover .more { color: var(--tang); }
.more { font-weight: 800; font-family: 'Montserrat', sans-serif; color: var(--tang-d); display: inline-flex; align-items: center; }
.blist { display: flex; gap: 20px; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 14px; flex: 1; transition: transform .3s ease, box-shadow .3s ease; color: var(--text); }
.blist:hover { transform: translateY(-4px); box-shadow: var(--sh-sm); color: var(--text); }
.blist img { width: 42%; flex: 0 0 42%; object-fit: cover; border-radius: var(--r-md); aspect-ratio: 1 / 1; }
.blist h3 { font-size: 1.12rem; margin: 6px 0 8px; }
.blist p { font-size: .93rem; margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.bcard { display: block; background: var(--white); border-radius: var(--r-lg); overflow: hidden; height: 100%; border: 1px solid var(--line); color: var(--text); transition: transform .3s ease, box-shadow .3s ease; }
.bcard:hover { transform: translateY(-5px); box-shadow: var(--sh); color: var(--text); }
.bcard img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.bcard-body { padding: 24px; }
.bcard-body h3 { font-size: 1.2rem; }

/* ---------- CTA ---------- */
.cta-tang { background: linear-gradient(120deg, #ff7d97, var(--tang) 55%, #cc2f52); border-radius: var(--r-xl); padding: 60px 56px; position: relative; overflow: hidden; }
.cta-tang::before { content: ''; position: absolute; width: 300px; height: 300px; border-radius: 50%; background: rgba(255,255,255,.14); right: -80px; top: -120px; }
.cta-tang .row { position: relative; z-index: 1; }
.cta-tang h2 { color: var(--white); font-size: clamp(1.8rem, 3vw, 2.5rem); margin-bottom: 8px; }
.cta-tang p { color: #fff1f4; margin: 0; font-size: 1.1rem; }
.cta-tang .btn-ghost { border-color: rgba(255,255,255,.6); color: var(--white); margin-left: 8px; }
.cta-tang .btn-ghost:hover { background: var(--white); color: var(--tang-d); }

/* ---------- Page title ---------- */
.ptitle { background: var(--navy); padding: 170px 0 80px; border-radius: 0 0 var(--r-xl) var(--r-xl); position: relative; overflow: hidden; }
.ptitle::before { content: ''; position: absolute; width: 420px; height: 420px; border-radius: 50%; background: rgba(242,69,106,.18); filter: blur(40px); left: -140px; bottom: -200px; }
.ptitle::after { content: ''; position: absolute; width: 360px; height: 360px; border-radius: 50%; background: rgba(46,196,214,.16); filter: blur(40px); right: -120px; top: -80px; }
.ptitle .container { position: relative; z-index: 1; }
.ptitle h1 { color: var(--white); font-size: clamp(2.2rem, 4.6vw, 3.5rem); max-width: 900px; margin: 0 auto 14px; }
.ptitle p { color: #bcc6e6; font-size: 1.12rem; max-width: 680px; margin: 0 auto; }
.breadcrumb { margin-bottom: 18px; font-weight: 700; font-size: .9rem; }
.breadcrumb-item a { color: var(--tang); }
.breadcrumb-item.active, .breadcrumb-item + .breadcrumb-item::before { color: #8d98bd; }

/* ---------- About page ---------- */
.vcard { background: var(--white); border-radius: var(--r-lg); padding: 36px 30px; height: 100%; box-shadow: var(--sh-sm); position: relative; overflow: hidden; }
.vcard::after { content: ''; position: absolute; right: -40px; bottom: -40px; width: 120px; height: 120px; border-radius: 50%; background: var(--tang-soft); }
.vcard span { width: 56px; height: 56px; border-radius: 18px; background: var(--tang); color: var(--white); display: inline-flex; align-items: center; justify-content: center; font-size: 1.4rem; margin-bottom: 18px; }
.vcard h3 { font-size: 1.3rem; }
.vcard p { margin: 0; position: relative; z-index: 1; }

/* ---------- Article ---------- */
.read { max-width: 800px; margin: 0 auto; }
.read-img { width: 100%; border-radius: var(--r-xl); margin: -40px 0 40px; aspect-ratio: 16 / 9; object-fit: cover; box-shadow: var(--sh); position: relative; }
.read p { font-size: 1.13rem; color: #2b3558; margin-bottom: 1.45rem; }
.read h2 { font-size: 1.9rem; margin: 2.4rem 0 1rem; }
.read blockquote { position: relative; background: var(--navy); color: var(--white); border-radius: var(--r-lg); padding: 34px 36px 34px 86px; margin: 2.2rem 0; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 1.3rem; line-height: 1.45; }
.read blockquote::before { content: '\201C'; position: absolute; left: 28px; top: 14px; font-size: 4.5rem; line-height: 1; color: var(--tang); font-family: Georgia, serif; }
.read-box { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; background: var(--tang-soft); border-radius: var(--r-lg); padding: 26px 28px; margin-top: 40px; }
.read-box > span { width: 54px; height: 54px; border-radius: 16px; background: var(--tang); color: var(--white); display: inline-flex; align-items: center; justify-content: center; font-size: 1.4rem; }
.read-box > div { flex: 1; min-width: 220px; }
.read-box h4 { font-size: 1.12rem; margin-bottom: 2px; }
.read-box p { font-size: 1rem; margin: 0; }
.read-box a:not(.btn) { color: var(--tang-d); font-weight: 700; }
.read-nav { margin-top: 30px; }

/* ---------- Contact ---------- */
.contact-card { background: var(--white); border-radius: var(--r-xl); box-shadow: var(--sh); overflow: hidden; margin-top: -40px; position: relative; }
.contact-side { background: var(--navy); padding: 50px 44px; height: 100%; }
.contact-side h2 { color: var(--white); font-size: 2rem; }
.contact-side > p { color: #bcc6e6; }
.cside { list-style: none; padding: 0; margin: 30px 0 0; }
.cside li { display: flex; gap: 16px; margin-bottom: 24px; }
.cside li > span { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 14px; background: rgba(255,255,255,.08); color: var(--tang); display: inline-flex; align-items: center; justify-content: center; font-size: 1.2rem; }
.cside h5 { color: var(--white); font-size: 1rem; margin-bottom: 2px; }
.cside a, .cside p { color: #bcc6e6; margin: 0; overflow-wrap: anywhere; }
.cside a:hover { color: var(--tang); }
.contact-form { padding: 50px 46px; }
.contact-form h3 { font-size: 1.6rem; margin-bottom: 22px; }
.form-label { font-weight: 700; color: var(--navy); font-size: .93rem; }
.form-control, .form-select { border-radius: 14px; border: 1.5px solid var(--line); padding: 12px 16px; background-color: var(--soft); }
.form-control:focus, .form-select:focus { border-color: var(--tang); box-shadow: 0 0 0 4px rgba(242,69,106,.15); background-color: var(--white); }
.form-check-input:checked { background-color: var(--tang); border-color: var(--tang); }
.form-check-label a { color: var(--tang-d); font-weight: 700; }
.map-box { border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--sh-sm); }
.map-box iframe { width: 100%; height: 400px; border: 0; display: block; }

/* ---------- Newsletter page ---------- */
.news-card { background: var(--white); border-radius: var(--r-xl); padding: 52px 48px; box-shadow: var(--sh); margin-top: -40px; position: relative; }
.news-ico { width: 74px; height: 74px; border-radius: 24px; background: var(--tang-soft); color: var(--tang); display: inline-flex; align-items: center; justify-content: center; font-size: 2rem; margin-bottom: 16px; }
.news-card .sub a { color: var(--tang-d); font-weight: 700; }
.nperk { background: var(--soft); border-radius: 999px; padding: 12px 16px; font-weight: 800; font-family: 'Montserrat', sans-serif; color: var(--navy); display: flex; align-items: center; justify-content: center; gap: 8px; font-size: .95rem; text-align: center; }
.nperk i { color: var(--tang); }

/* ---------- Legal ---------- */
.toc { position: sticky; top: 120px; background: var(--soft); border-radius: var(--r-lg); padding: 26px; }
.toc h5 { font-size: 1rem; margin-bottom: 12px; }
.toc ol { padding-left: 18px; margin: 0; font-size: .93rem; }
.toc li { margin-bottom: 6px; }
.toc a { color: var(--text); }
.toc a:hover { color: var(--tang-d); }
.legal h2 { font-size: 1.55rem; margin: 2.2rem 0 .8rem; scroll-margin-top: 120px; }
.legal a { color: var(--tang-d); font-weight: 700; }
.updated { background: var(--tang-soft); display: inline-block; border-radius: 999px; padding: 6px 16px; font-size: .92rem; }

/* ---------- Footer ---------- */
.foot { background: var(--cream); padding-top: 80px; position: relative; overflow: hidden; border-top: 1px solid #fbd9e1; }
.foot .logo-link img { height: 42px; }
.foot-about { margin: 18px 0 22px; }
.foot h5 { font-size: 1rem; margin-bottom: 18px; text-transform: uppercase; letter-spacing: 1px; }
.foot-links { list-style: none; padding: 0; margin: 0; }
.foot-links li { margin-bottom: 10px; }
.foot-links a { color: var(--text); font-weight: 600; }
.foot-links a:hover { color: var(--tang-d); }
.foot-contact { list-style: none; padding: 0; margin: 0; }
.foot-contact li { display: flex; gap: 12px; margin-bottom: 16px; align-items: flex-start; }
.foot-contact li > span { width: 36px; height: 36px; flex: 0 0 36px; border-radius: 12px; background: var(--white); color: var(--tang); display: inline-flex; align-items: center; justify-content: center; box-shadow: var(--sh-sm); }
.foot-contact a { color: var(--text); font-weight: 600; overflow-wrap: anywhere; }
.foot-form .form-label { font-size: .9rem; }
.foot-input { display: flex; gap: 8px; background: var(--white); border-radius: 999px; padding: 6px; box-shadow: var(--sh-sm); }
.foot-input .form-control { border: 0; background: transparent; border-radius: 999px; padding: 8px 14px; }
.foot-input .form-control:focus { box-shadow: none; }
.foot-input .btn { padding: 8px 16px; }
.foot-word { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: clamp(3rem, 12vw, 9.5rem); line-height: .9; color: rgba(20,40,107,.05); letter-spacing: -4px; text-align: center; margin: 50px 0 -8px; white-space: nowrap; user-select: none; }
.foot-bar { background: var(--navy); color: #a9b6dc; padding: 18px 0; font-size: .92rem; position: relative; }
.foot-bar a { color: #a9b6dc; margin-left: 20px; }
.foot-bar a:hover { color: var(--tang); }

/* ---------- Forms status ---------- */
.form-status { display: none; border-radius: 14px; padding: 14px 18px; margin-top: 18px; font-weight: 600; }
.form-status.success { display: block; background: var(--mint-soft); color: #14286b; border: 1px solid #a9e3ea; }
.form-status.error { display: block; background: #fdecea; color: #a12a1f; border: 1px solid #f5c2bd; }
.hp-field { position: absolute; left: -9999px; }
.is-invalid ~ .invalid-feedback { display: block; }

/* ---------- Back to top + reveal ---------- */
#backToTop { position: fixed; right: 22px; bottom: 22px; width: 50px; height: 50px; border-radius: 50%; border: 0; background: var(--navy); color: var(--white); font-size: 1.2rem; opacity: 0; visibility: hidden; transition: all .3s ease; z-index: 99; box-shadow: var(--sh-sm); }
#backToTop.show { opacity: 1; visibility: visible; }
#backToTop:hover { background: var(--tang); }
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s ease, transform .8s ease; }
.reveal.visible { opacity: 1; transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 991.98px) {
  .block { padding: 76px 0; }
  .nav-pill { border-radius: 26px; padding: 10px 16px; }
  .navbar-collapse { padding: 12px 0 6px; }
  .navbar-collapse .btn { margin-top: 10px; }
  .chip-1 { left: 10px; } .chip-3 { right: 10px; }
  .check-wrap { padding: 40px 30px; }
  .contact-side, .contact-form { padding: 40px 30px; }
  .toc { position: static; }
}
@media (max-width: 767.98px) {
  .hero-center { padding: 140px 0 70px; }
  .hero-shot img { aspect-ratio: 4 / 3; }
  .chip { position: static; margin: 10px 6px 0 0; }
  .hero-shot { text-align: center; }
  .stack-img { padding: 0 40px 40px 0; }
  .check-grid { grid-template-columns: 1fr; }
  .cta-tang { padding: 44px 28px; }
  .cta-tang .btn { width: 100%; margin: 8px 0 0 !important; }
  .blist { flex-direction: column; }
  .blist img { width: 100%; flex-basis: auto; aspect-ratio: 16 / 10; }
  .bfeature { min-height: 420px; }
  .news-card { padding: 38px 24px; }
  .hcard-img { min-height: 220px; }
  .ptitle { padding: 140px 0 64px; }
}
@media (max-width: 575.98px) {
  .logo-link img { height: 34px; }
  .foot-bar a { margin: 0 16px 0 0; }
}
