/*
Theme Name: Final Ink & Notary Child
Theme URI: https://fianotary.com/
Description: Custom child theme for Final Ink and Notary, built on Hello Elementor.
Author: Final Ink and Notary
Template: hello-elementor
Version: 1.0.1
Text Domain: final-ink-notary
License: GNU General Public License v2 or later
*/

/* Brand tokens */
:root {
  --fin-navy: #0B1F3A;
  --fin-white: #F8FAFC;
  --fin-gold: #C9A227;
  --fin-ink: #172033;
  --fin-muted: #64748B;
  --fin-line: #E2E8F0;
  --fin-radius: 18px;
  --fin-shadow: 0 18px 50px rgba(11,31,58,.12);
}

html { scroll-behavior: smooth; }
body {
  background: var(--fin-white);
  color: var(--fin-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.7;
}
a { color: var(--fin-navy); }
a:hover { color: var(--fin-gold); }

.fin-container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.fin-section { padding: 88px 0; }
.fin-eyebrow {
  display:inline-flex; align-items:center; gap:10px;
  color:var(--fin-gold); text-transform:uppercase; letter-spacing:.16em;
  font-size:.78rem; font-weight:800;
}
.fin-eyebrow:before { content:""; width:28px; height:2px; background:var(--fin-gold); }
.fin-title { margin:12px 0 18px; color:var(--fin-navy); font-size:clamp(2rem,4vw,3.5rem); line-height:1.08; letter-spacing:-.035em; }
.fin-lead { max-width:700px; color:#526176; font-size:1.08rem; }
.fin-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:50px; padding:0 23px; border-radius:999px;
  font-weight:800; text-decoration:none; border:1px solid transparent;
  transition:.2s ease; cursor:pointer;
}
.fin-btn-primary { background:var(--fin-gold); color:var(--fin-navy); }
.fin-btn-primary:hover { background:#b78f1e; color:var(--fin-navy); transform:translateY(-2px); }
.fin-btn-dark { background:var(--fin-navy) !important; color:#fff !important; border-color:var(--fin-navy) !important; }
.fin-btn-dark:hover { background:#07162a !important; color:#fff !important; transform:translateY(-2px); }
.fin-header .fin-btn-dark, .fin-header .fin-btn-dark:visited, .fin-header .fin-btn-dark:hover, .fin-header .fin-btn-dark:focus { color:#fff !important; background:var(--fin-navy) !important; }
.fin-card-link, .fin-card-link:visited { color:var(--fin-navy) !important; }
.fin-card-link:hover, .fin-card-link:focus { color:var(--fin-gold) !important; }
.fin-btn-light { background:#fff; color:var(--fin-navy); border-color:var(--fin-line); }
.fin-btn-light:hover { color:var(--fin-navy); border-color:var(--fin-gold); }

.fin-header {
  position:sticky; top:0; z-index:999; background:rgba(248,250,252,.96);
  border-bottom:1px solid rgba(226,232,240,.9); backdrop-filter:blur(14px);
}
.fin-header-inner { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.fin-brand { display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--fin-navy); }
.fin-brand:hover { color:var(--fin-navy); }
.fin-brand img { width:48px; height:48px; object-fit:contain; }
.fin-brand-text { line-height:1.05; }
.fin-brand-name { display:block; font-weight:900; letter-spacing:-.02em; }
.fin-brand-sub { display:block; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--fin-gold); font-weight:800; margin-top:4px; }
.fin-nav { display:flex; align-items:center; gap:24px; }
.fin-nav a { font-size:.92rem; font-weight:750; text-decoration:none; color:var(--fin-navy); }
.fin-nav a:hover { color:var(--fin-gold); }
.fin-menu-toggle { display:none; border:0; background:transparent; color:var(--fin-navy); font-size:1.8rem; }

.fin-hero { position:relative; overflow:hidden; background:var(--fin-navy); color:#fff; }
.fin-hero:after { content:""; position:absolute; width:520px; height:520px; border:1px solid rgba(201,162,39,.24); border-radius:50%; right:-230px; top:-180px; }
.fin-hero-grid { min-height:690px; display:grid; grid-template-columns:1.03fr .97fr; align-items:center; gap:55px; }
.fin-hero .fin-eyebrow { color:#e4c55f; }
.fin-hero-title { margin:14px 0 22px; max-width:760px; font-size:clamp(2.8rem,5.8vw,5.4rem); line-height:.98; letter-spacing:-.055em; }
.fin-hero-copy { max-width:650px; color:rgba(255,255,255,.78); font-size:1.12rem; }
.fin-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.fin-hero-note { margin-top:22px; font-size:.85rem; color:rgba(255,255,255,.62); }
.fin-portrait-wrap { position:relative; }
.fin-portrait { width:100%; aspect-ratio:1/1.05; object-fit:cover; border-radius:30px; box-shadow:0 30px 80px rgba(0,0,0,.28); border:1px solid rgba(255,255,255,.12); }
.fin-portrait-badge {
  position:absolute; left:-24px; bottom:28px; max-width:245px; padding:17px 19px;
  border-radius:16px; background:#fff; color:var(--fin-navy); box-shadow:var(--fin-shadow);
}
.fin-portrait-badge strong { display:block; font-size:1.05rem; }
.fin-portrait-badge span { color:var(--fin-muted); font-size:.82rem; }

.fin-trust { margin-top:-1px; background:#fff; border-bottom:1px solid var(--fin-line); }
.fin-trust-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.fin-trust-item { padding:25px 22px; text-align:center; border-right:1px solid var(--fin-line); }
.fin-trust-item:last-child { border-right:0; }
.fin-trust-item strong { display:block; color:var(--fin-navy); font-size:1rem; }
.fin-trust-item span { color:var(--fin-muted); font-size:.84rem; }

.fin-services-head { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:40px; }
.fin-services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.fin-card {
  background:#fff; border:1px solid var(--fin-line); border-radius:var(--fin-radius);
  padding:28px; box-shadow:0 6px 30px rgba(11,31,58,.04); transition:.2s ease;
}
.fin-card:hover { transform:translateY(-5px); box-shadow:var(--fin-shadow); border-color:rgba(201,162,39,.45); }
.fin-icon {
  width:48px; height:48px; border-radius:14px; display:grid; place-items:center;
  background:rgba(201,162,39,.12); color:var(--fin-navy); font-weight:900; margin-bottom:22px;
}
.fin-card h3 { color:var(--fin-navy); font-size:1.25rem; margin:0 0 10px; }
.fin-card p { margin:0; color:#617086; font-size:.94rem; }
.fin-card-link { display:inline-block; margin-top:18px; font-size:.88rem; font-weight:800; text-decoration:none; }

.fin-about { background:#fff; }
.fin-about-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:75px; align-items:center; }
.fin-about-box { background:var(--fin-navy); color:#fff; border-radius:26px; padding:42px; position:relative; overflow:hidden; }
.fin-about-box:after { content:""; position:absolute; width:170px; height:170px; border:1px solid rgba(201,162,39,.35); border-radius:50%; right:-65px; bottom:-70px; }
.fin-about-box h3 { font-size:2rem; line-height:1.1; margin:0 0 12px; }
.fin-about-box p { color:rgba(255,255,255,.74); margin:0; }
.fin-list { list-style:none; padding:0; margin:28px 0 0; }
.fin-list li { position:relative; padding:0 0 12px 28px; color:#4e5d73; }
.fin-list li:before { content:"✓"; position:absolute; left:0; color:var(--fin-gold); font-weight:900; }

.fin-cta { background:linear-gradient(135deg,var(--fin-navy),#122d50); color:#fff; }
.fin-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:30px; }
.fin-cta h2 { color:#fff; font-size:clamp(2rem,4vw,3.2rem); margin:0 0 12px; line-height:1.05; }
.fin-cta p { color:rgba(255,255,255,.75); margin:0; max-width:650px; }

.fin-footer { background:#07162a; color:rgba(255,255,255,.72); padding:55px 0 22px; }
.fin-footer-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:45px; }
.fin-footer h3 { color:#fff; margin:0 0 15px; font-size:1rem; }
.fin-footer a { color:rgba(255,255,255,.75); text-decoration:none; }
.fin-footer a:hover { color:#e4c55f; }
.fin-footer-brand { color:#fff; font-size:1.2rem; font-weight:900; }
.fin-disclaimer { border-top:1px solid rgba(255,255,255,.12); margin-top:35px; padding-top:18px; font-size:.76rem; color:rgba(255,255,255,.5); }
.fin-copyright { margin-top:15px; font-size:.78rem; color:rgba(255,255,255,.45); }

.fin-page-hero { background:var(--fin-navy); color:#fff; padding:100px 0 85px; }
.fin-page-hero h1 { color:#fff; font-size:clamp(2.5rem,5vw,4.6rem); line-height:1; margin:12px 0 15px; }
.fin-page-hero p { max-width:700px; color:rgba(255,255,255,.74); font-size:1.08rem; }
.fin-content-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:55px; align-items:start; }
.fin-service-detail { background:#fff; border:1px solid var(--fin-line); border-radius:20px; padding:32px; margin-bottom:20px; }
.fin-service-detail h2 { color:var(--fin-navy); margin-top:0; }
.fin-side-card { background:var(--fin-navy); color:#fff; border-radius:22px; padding:32px; position:sticky; top:110px; }
.fin-side-card h3 { color:#fff; margin-top:0; }
.fin-side-card p { color:rgba(255,255,255,.72); }
.fin-contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:40px; }
.fin-contact-card { background:var(--fin-navy); color:#fff; border-radius:24px; padding:35px; }
.fin-contact-card h2 { color:#fff; margin-top:0; }
.fin-contact-card a { color:#fff; }
.fin-form { background:#fff; border:1px solid var(--fin-line); border-radius:24px; padding:35px; }
.fin-form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.fin-form label { display:block; color:var(--fin-navy); font-size:.86rem; font-weight:800; margin-bottom:7px; }
.fin-form input, .fin-form textarea, .fin-form select {
  width:100%; border:1px solid #CBD5E1; border-radius:12px; padding:13px 14px;
  background:#fff; color:var(--fin-ink); box-sizing:border-box; margin-bottom:18px;
}
.fin-form textarea { min-height:145px; resize:vertical; }
.fin-notice { padding:14px 16px; border-radius:12px; background:#F8F4E6; color:#5c4b16; font-size:.82rem; margin-bottom:20px; }

.fin-skip { position:absolute; left:-9999px; }
.fin-skip:focus { left:10px; top:10px; z-index:10000; background:#fff; padding:10px; }

@media (max-width: 900px) {
  .fin-nav { display:none; position:absolute; left:20px; right:20px; top:78px; padding:18px; background:#fff; border:1px solid var(--fin-line); border-radius:16px; box-shadow:var(--fin-shadow); flex-direction:column; align-items:flex-start; }
  .fin-nav.is-open { display:flex; }
  .fin-menu-toggle { display:block; }
  .fin-hero-grid, .fin-about-grid, .fin-content-grid, .fin-contact-grid { grid-template-columns:1fr; }
  .fin-hero-grid { min-height:auto; padding:75px 0 90px; }
  .fin-portrait-wrap { max-width:620px; margin:auto; }
  .fin-services-grid { grid-template-columns:repeat(2,1fr); }
  .fin-cta-inner { flex-direction:column; align-items:flex-start; }
  .fin-footer-grid { grid-template-columns:1fr 1fr; }
  .fin-side-card { position:static; }
}
@media (max-width: 620px) {
  .fin-container { width:min(100% - 28px, 1180px); }
  .fin-section { padding:65px 0; }
  .fin-header-inner { min-height:70px; }
  .fin-nav { top:70px; left:14px; right:14px; }
  .fin-services-grid, .fin-trust-grid, .fin-footer-grid, .fin-form-row { grid-template-columns:1fr; }
  .fin-trust-item { border-right:0; border-bottom:1px solid var(--fin-line); }
  .fin-trust-item:last-child { border-bottom:0; }
  .fin-hero-title { font-size:clamp(2.55rem,13vw,4rem); }
  .fin-portrait-badge { left:12px; bottom:12px; }
  .fin-page-hero { padding:75px 0 65px; }
}


/* v1.0.2 accessibility and responsive refinements */
.fin-header .fin-btn-dark,
.fin-header .fin-btn-dark:visited,
.fin-header .fin-btn-dark:hover,
.fin-header .fin-btn-dark:focus {
  color: #FFFFFF !important;
  background: #0B1F3A !important;
  border-color: #0B1F3A !important;
  text-shadow: none !important;
}
.fin-card-icon { width: 52px; height: 52px; margin-bottom: 20px; color: #0B1F3A; }
.fin-card-icon svg { display:block; width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.fin-card-link,
.fin-card-link:visited { color:#0B1F3A !important; }
.fin-card-link:hover,
.fin-card-link:focus { color:#C9A227 !important; }
.fin-coming-soon { min-height:calc(100vh - 80px); display:grid; place-items:center; text-align:center; background:var(--fin-navy); color:#fff; padding:70px 0; }
.fin-coming-soon-inner { max-width:850px; }
.fin-coming-soon-logo { width:90px; height:90px; object-fit:contain; margin:0 auto 25px; }
.fin-coming-soon h1 { color:#fff; font-size:clamp(2.8rem,7vw,5.5rem); line-height:.98; margin:10px 0 20px; letter-spacing:-.05em; }
.fin-coming-soon p { color:rgba(255,255,255,.78); font-size:1.1rem; max-width:680px; margin:0 auto 28px; }
.fin-coming-soon .fin-eyebrow { justify-content:center; }
.fin-coming-soon .fin-eyebrow:before { display:none; }
.fin-coming-soon-contact { margin-top:24px; font-size:.9rem; }
.fin-coming-soon-contact a { color:#e4c55f; font-weight:800; }
@media (max-width:620px) {
  .fin-header-inner { gap:12px; }
  .fin-brand img { width:42px; height:42px; }
  .fin-brand-name { font-size:.92rem; }
  .fin-brand-sub { font-size:.58rem; letter-spacing:.1em; }
  .fin-hero-actions .fin-btn { width:100%; }
  .fin-form, .fin-contact-card, .fin-service-detail { padding:24px; }
}
