/* ============================================================
   DESIGN PLAN — shared across all IRAA pages
   Layout: full-bleed navy hero anchored by the lockup logo,
   alternating white / off-white content bands separated by a
   thin wave-derived rule, generous vertical rhythm — the
   restrained, confident cadence of a private banking site.
   ============================================================ */
:root{
  --bg:#ffffff;
  --bg-alt:#f6f9fc;
  --ink:#0b2a52;
  --ink-soft:#44587a;
  --navy-deep:#082245;
  --accent:#3f74ac;
  --accent-light:#8fc1ec;
  --border:#dde6f0;
  --on-navy:#f3f7fc;
  --on-navy-soft:#aec6de;
  color-scheme: light;
  --font-display:'Cormorant Garamond', 'Times New Roman', Georgia, serif;
  --font-body:'Public Sans', -apple-system, 'Segoe UI', Arial, sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#081a33; --bg-alt:#0b2340; --ink:#f3f7fc; --ink-soft:#aec6de;
    --navy-deep:#051122; --accent:#8fc1ec; --accent-light:#3f74ac;
    --border:#1d3a5c; --on-navy:#f3f7fc; --on-navy-soft:#aec6de;
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --bg:#081a33; --bg-alt:#0b2340; --ink:#f3f7fc; --ink-soft:#aec6de;
  --navy-deep:#051122; --accent:#8fc1ec; --accent-light:#3f74ac;
  --border:#1d3a5c; --on-navy:#f3f7fc; --on-navy-soft:#aec6de;
  color-scheme: dark;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg); color:var(--ink); font-family:var(--font-body);
  font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased;
  padding-left:max(0px, env(safe-area-inset-left,0px));
  padding-right:max(0px, env(safe-area-inset-right,0px));
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--font-display); font-weight:600; line-height:1.15; margin:0; text-wrap:balance; color:var(--ink);}
p{margin:0;}
.shell{max-width:1180px; margin:0 auto; padding-left:max(20px, env(safe-area-inset-left,0px)); padding-right:max(20px, env(safe-area-inset-right,0px));}
section{padding-block:clamp(56px,8vw,112px);}
.on-navy{background:var(--navy-deep);color:var(--on-navy);}
.on-navy .ink-soft{color:var(--on-navy-soft);}
.bg-alt{background:var(--bg-alt);}
.ink-soft{color:var(--ink-soft);}
.eyebrow{font-family:var(--font-body); font-size:12.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--accent);}
.on-navy .eyebrow{color:var(--accent-light);}
.lede{font-size:clamp(17px,1.9vw,19px); color:var(--ink-soft); max-width:62ch;}
.on-navy .lede{color:var(--on-navy-soft);}
.rule{height:1px; background:linear-gradient(90deg, transparent, var(--border) 20%, var(--border) 80%, transparent); border:0; margin:0;}

/* nav */
header.site-nav{position:sticky; top:env(safe-area-inset-top,0px); z-index:40; background:var(--navy-deep); border-bottom:1px solid rgba(143,193,236,.18);}
body::before{content:""; position:fixed; inset:0 0 auto; height:env(safe-area-inset-top,0px); z-index:41; background:var(--navy-deep);}
.nav-row{display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:14px;}
.brand{display:flex;align-items:center;min-width:0;}
.brand img{height:30px;width:auto;}
nav.links{display:flex;align-items:center;gap:30px;flex-wrap:wrap;}
nav.links a{font-size:14px; font-weight:500; letter-spacing:.01em; color:var(--on-navy-soft); text-decoration:none; padding-block:4px; border-bottom:1px solid transparent; transition:color .15s ease, border-color .15s ease; white-space:nowrap;}
nav.links a:hover, nav.links a:focus-visible{color:var(--on-navy); border-color:var(--accent-light);}
nav.links a[aria-current="page"]{color:var(--on-navy); border-color:var(--accent-light);}
.btn{display:inline-flex; align-items:center; justify-content:center; font-family:var(--font-body); font-weight:600; font-size:14px; letter-spacing:.02em; text-decoration:none; cursor:pointer; border-radius:2px; padding:13px 26px; border:1px solid transparent; transition:transform .15s ease, background .15s ease, border-color .15s ease, color .15s ease;}
.btn:focus-visible{outline:2px solid var(--accent-light); outline-offset:2px;}
.btn-primary{background:var(--accent-light); color:var(--navy-deep); border-color:var(--accent-light);}
.btn-primary:hover{background:#a9d2f1; transform:translateY(-1px);}
.btn-outline-light{background:transparent; color:var(--on-navy); border-color:rgba(243,247,252,.5);}
.btn-outline-light:hover{border-color:var(--on-navy); background:rgba(243,247,252,.08);}
.btn-outline{background:transparent; color:var(--ink); border-color:var(--border);}
.btn-outline:hover{border-color:var(--accent); color:var(--accent);}
.btn:disabled{opacity:.6; cursor:not-allowed; transform:none;}
.nav-cta{display:none;}
.menu-toggle{display:none; background:none; border:1px solid rgba(243,247,252,.35); color:var(--on-navy); border-radius:2px; padding:9px 12px; cursor:pointer;}
@media (min-width:900px){ .nav-cta{display:inline-flex;} }
@media (max-width:899px){
  nav.links{position:absolute; left:0; right:0; top:100%; background:var(--navy-deep); flex-direction:column; align-items:flex-start; gap:2px; padding:10px max(20px,env(safe-area-inset-left,0px)) 20px max(20px,env(safe-area-inset-left,0px)); border-bottom:1px solid rgba(143,193,236,.18);}
  nav.links[hidden]{display:none;}
  nav.links a{padding-block:10px; width:100%;}
  .menu-toggle{display:inline-flex; align-items:center; gap:8px;}
}

/* hero */
.hero{background:radial-gradient(ellipse 900px 480px at 85% -10%, rgba(143,193,236,.16), transparent 60%), var(--navy-deep); position:relative; overflow:hidden; padding-block:clamp(64px,10vw,128px);}
.hero::after{content:""; position:absolute; left:0; right:0; bottom:0; height:120px; background:linear-gradient(180deg, transparent, rgba(5,17,34,.9)), url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'><path d='M0,60 C250,110 400,10 650,55 C850,90 1000,20 1200,60 L1200,120 L0,120 Z' fill='rgba(143,193,236,0.10)'/><path d='M0,80 C300,40 500,100 750,70 C950,45 1050,90 1200,75 L1200,120 L0,120 Z' fill='rgba(143,193,236,0.07)'/></svg>"); background-size:cover; pointer-events:none;}
.hero-inner{position:relative; z-index:1; max-width:760px;}
.hero .eyebrow{margin-bottom:18px; display:block;}
.hero h1{font-size:clamp(40px,6vw,68px); color:var(--on-navy); letter-spacing:.005em;}
.hero .lede{margin-top:22px; font-size:clamp(17px,2vw,20px);}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap; margin-top:38px;}
.hero-compact{padding-block:clamp(48px,7vw,84px);}
.hero-compact h1{font-size:clamp(32px,5vw,50px);}
.hero-compact .lede{margin-top:16px;}

/* split / kicker */
.split{display:grid; grid-template-columns:1fr; gap:48px; align-items:start;}
@media (min-width:860px){ .split{grid-template-columns:0.85fr 1.15fr; gap:72px;} }
.split h2{font-size:clamp(30px,3.6vw,42px);}
.split .col-right{display:flex; flex-direction:column; gap:20px;}
.split .col-right p{color:var(--ink-soft); font-size:16.5px; max-width:60ch;}
.kicker-head{max-width:640px;}
.kicker-head h2{font-size:clamp(30px,3.6vw,42px); margin-top:10px;}
.kicker-head .lede{margin-top:16px;}

/* definition + consider grid */
.definition{border:1px solid var(--border); border-left:3px solid var(--accent-light); background:var(--bg); padding:clamp(24px,4vw,40px); display:grid; gap:14px; margin-top:36px;}
.definition dt{font-family:var(--font-display); font-size:22px; font-weight:600; color:var(--ink);}
.definition dd{margin:0; color:var(--ink-soft); font-size:16px; max-width:66ch;}
.consider-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--border); border:1px solid var(--border); margin-top:16px;}
@media (min-width:620px){ .consider-grid{grid-template-columns:repeat(2,1fr);} }
@media (min-width:900px){ .consider-grid{grid-template-columns:repeat(3,1fr);} }
.consider-grid > div{background:var(--bg); padding:18px 20px;}
.consider-grid .label{font-weight:600; font-size:14.5px; color:var(--ink);}
.consider-grid .desc{color:var(--ink-soft); font-size:14px; margin-top:4px;}

/* pathways */
.pathways-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--border); border:1px solid var(--border); margin-top:44px;}
@media (min-width:760px){ .pathways-grid{grid-template-columns:repeat(2,1fr);} }
.pathway-card{background:var(--bg); padding:clamp(32px,4vw,52px); display:flex; flex-direction:column; gap:14px;}
.pathway-card h3{font-size:clamp(23px,2.4vw,28px); margin-top:4px;}
.pathway-card p{color:var(--ink-soft); font-size:15.5px; max-width:48ch;}
.pathway-card .btn{margin-top:12px; align-self:flex-start;}

/* services */
.services-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--border); border:1px solid var(--border); margin-top:44px;}
@media (min-width:620px){ .services-grid{grid-template-columns:repeat(2,1fr);} }
@media (min-width:900px){ .services-grid{grid-template-columns:repeat(3,1fr);} }
.service-card{background:var(--bg); padding:32px 28px; display:flex; flex-direction:column; gap:12px;}
.service-card .num{font-family:var(--font-display); font-size:15px; color:var(--accent); font-weight:600; letter-spacing:.05em;}
.service-card h3{font-size:20px; font-weight:600;}
.service-card p{color:var(--ink-soft); font-size:15px;}

/* roles grid (4 items) */
.roles-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--border); border:1px solid var(--border); margin-top:44px;}
@media (min-width:620px){ .roles-grid{grid-template-columns:repeat(2,1fr);} }
@media (min-width:1000px){ .roles-grid{grid-template-columns:repeat(4,1fr);} }
.role-card{background:var(--bg); padding:26px 22px; display:flex; flex-direction:column; gap:10px;}
.role-card h3{font-size:17px;}
.role-card p{color:var(--ink-soft); font-size:14px;}

/* compare grid (2 items) */
.compare-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--border); border:1px solid var(--border); margin-top:36px;}
@media (min-width:760px){ .compare-grid{grid-template-columns:1fr 1fr;} }
.compare-card{background:var(--bg); padding:clamp(24px,4vw,36px); border-left:3px solid var(--accent-light);}
.compare-card h4{font-family:var(--font-display); font-size:20px; font-weight:600; margin-bottom:10px;}
.compare-card p{color:var(--ink-soft); font-size:15px;}

/* process */
.process{margin-top:48px;}
.process-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr; gap:0;}
@media (min-width:760px){ .process-list{grid-template-columns:repeat(5,1fr); gap:0;} }
.process-list li{position:relative; padding:28px 22px 22px 0; border-top:1px solid var(--border);}
@media (min-width:760px){
  .process-list li{border-top:none; border-left:1px solid var(--border); padding:0 20px 0 22px;}
  .process-list li:first-child{border-left:none; padding-left:0;}
}
.process-list .step-num{font-family:var(--font-display); font-size:30px; color:var(--accent-light); -webkit-text-stroke:1px var(--accent); display:block; margin-bottom:10px;}
.process-list h4{font-size:16.5px; margin-bottom:6px;}
.process-list p{font-size:14px; color:var(--ink-soft);}

/* panels */
.panel-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:36px; margin-top:44px;}
.panel h3{font-size:19px; margin-bottom:10px;}
.panel p{color:var(--ink-soft); font-size:15px;}
.panel .mark{width:38px; height:38px; border:1px solid var(--accent-light); border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:16px; color:var(--accent); font-family:var(--font-display); font-size:17px; font-weight:600;}

/* commitment */
.commitment{display:grid; grid-template-columns:1fr; gap:40px;}
@media (min-width:860px){ .commitment{grid-template-columns:1fr 1fr; gap:60px;} }
.commitment blockquote{margin:0; font-family:var(--font-display); font-size:clamp(22px,2.6vw,28px); line-height:1.4; color:var(--on-navy); font-weight:500; font-style:italic;}
.commitment blockquote cite{display:block; margin-top:18px; font-family:var(--font-body); font-style:normal; font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--on-navy-soft);}
.commitment ul{list-style:none; margin:0; padding:0; display:grid; gap:18px;}
.commitment ul li{display:flex; gap:14px; font-size:15px; color:var(--on-navy-soft); align-items:flex-start;}
.commitment ul li svg{flex:none; margin-top:3px;}

/* profile cards (About) */
.profile-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--border); border:1px solid var(--border); margin-top:44px;}
@media (min-width:700px){ .profile-grid{grid-template-columns:repeat(2,1fr);} }
.profile-card{background:var(--bg); padding:clamp(28px,4vw,44px); display:flex; flex-direction:column; gap:14px;}
.avatar-placeholder{width:64px; height:64px; border-radius:50%; background:var(--navy-deep); color:var(--on-navy); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:22px; font-weight:600; border:2px solid var(--accent-light);}
.profile-card h3{font-size:21px;}
.profile-card .role{font-size:12.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--accent);}
.profile-meta{display:grid; gap:6px; font-size:14px; color:var(--ink-soft); margin-top:4px;}
.profile-meta a{color:var(--ink-soft); text-decoration:none;}
.profile-meta a:hover{color:var(--accent);}

/* cta band */
.cta-band{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:28px;}
.cta-band h2{font-size:clamp(26px,3.2vw,36px); max-width:520px;}
.cta-contacts{display:flex; flex-direction:column; gap:6px; font-size:15px;}
.cta-contacts a{text-decoration:none; color:var(--ink); font-weight:600;}
.cta-contacts a:hover{color:var(--accent);}
.on-navy .cta-contacts a{color:var(--on-navy);}
.cta-actions{display:flex; gap:14px; flex-wrap:wrap;}

/* inquiry / contact form */
.contact-split{display:grid; grid-template-columns:1fr; gap:48px; align-items:start;}
@media (min-width:900px){ .contact-split{grid-template-columns:0.8fr 1.2fr; gap:72px;} }
.contact-intro .cta-contacts{margin-top:28px;}
.contact-note{margin-top:18px; font-size:14px; color:var(--ink-soft);}
.inquiry-form{display:grid; gap:18px; background:var(--bg); border:1px solid var(--border); padding:clamp(24px,4vw,40px);}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media (max-width:560px){ .form-row{grid-template-columns:1fr;} }
.field{display:flex; flex-direction:column; gap:7px;}
.field label{font-size:13px; font-weight:600; color:var(--ink); letter-spacing:.01em;}
.field .optional{font-weight:400; color:var(--ink-soft); text-transform:none; letter-spacing:0;}
.field input, .field textarea, .field select{font-family:var(--font-body); font-size:15px; padding:12px 14px; border:1px solid var(--border); background:var(--bg); color:var(--ink); border-radius:2px; transition:border-color .15s ease; width:100%;}
.field input:focus, .field textarea:focus, .field select:focus{outline:none; border-color:var(--accent);}
.field textarea{resize:vertical; min-height:120px; font-family:var(--font-body);}
.consent-row{display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:var(--ink-soft); line-height:1.5;}
.consent-row input{margin-top:3px; flex:none;}
.form-foot{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
.form-status{font-size:14px; display:none;}
.form-status.success{color:#1a6b45; display:block;}
.form-status.error{color:#a4342a; display:block;}
.field-error{font-size:12.5px; color:#a4342a; display:none;}
.field.invalid input, .field.invalid textarea, .field.invalid select{border-color:#c6453a;}
.field.invalid .field-error{display:block;}

/* legal content */
.legal-content{max-width:760px;}
.legal-content h2{font-size:clamp(22px,2.6vw,26px); margin-top:48px; margin-bottom:14px;}
.legal-content h2:first-child{margin-top:0;}
.legal-content h3{font-size:18px; margin-top:26px; margin-bottom:8px;}
.legal-content p{color:var(--ink-soft); font-size:15.5px; line-height:1.75; margin-bottom:14px;}
.legal-content ul{padding-left:20px; margin:0 0 14px; color:var(--ink-soft); font-size:15.5px; line-height:1.75;}
.legal-content li{margin-bottom:6px;}
.legal-meta{font-size:13px; color:var(--ink-soft); margin-bottom:8px;}

/* footer */
footer{background:var(--navy-deep); color:var(--on-navy); padding-block:56px 32px;}
.footer-grid{display:grid; grid-template-columns:1fr; gap:40px;}
@media (min-width:760px){ .footer-grid{grid-template-columns:1.3fr 1fr 1fr;} }
.footer-grid h5{font-family:var(--font-body); font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--on-navy-soft); margin:0 0 16px;}
.footer-brand img{height:26px; margin-bottom:16px;}
.footer-brand p{color:var(--on-navy-soft); font-size:14px; max-width:40ch;}
.footer-links{list-style:none; margin:0; padding:0; display:grid; gap:10px;}
.footer-links a{color:var(--on-navy-soft); text-decoration:none; font-size:14px;}
.footer-links a:hover{color:var(--on-navy);}
.footer-contact{display:grid; gap:10px; font-size:14px; color:var(--on-navy-soft);}
.footer-contact a{color:var(--on-navy-soft); text-decoration:none;}
.footer-contact a:hover{color:var(--on-navy);}
.footer-disclosure{margin-top:44px; padding-top:28px; border-top:1px solid rgba(243,247,252,.14); font-size:12.5px; line-height:1.7; color:var(--on-navy-soft); max-width:980px;}
.footer-bottom{margin-top:28px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:12.5px; color:var(--on-navy-soft);}
.footer-bottom a{color:var(--on-navy-soft);}


@media (max-width:480px){ .hero-actions .btn{width:100%;} }
