/* Home-page art direction. No external assets, fonts, or animation dependencies. */
.home {
  --warm: #d1bea0;
  background: radial-gradient(ellipse 65% 760px at 90% 290px, #34516a40, transparent 80%), #122431;
}
.home .site-header { background: #122431; border-color: #89a4b626; }
.home .header-inner { min-height: 92px; }
.home .brand-mark { background: transparent; color: var(--warm); border: 1px solid #bcae9359; border-radius: 50%; width: 40px; height: 40px; }
.home .brand { letter-spacing: .13em; font-size: .8rem; }
.home .header-inner nav .nav-contact { border: 1px solid #91acc557; padding: 10px 18px; border-radius: 4px; }
.home .hero { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(36px, 5vw, 76px); padding-block: 76px 80px; }
.home .hero h1 { font-size: clamp(3.6rem, 5.4vw, 5.2rem); line-height: .99; letter-spacing: -.055em; margin-block: 30px; }
.home .hero h1 > span { display: inline-block; padding-top: 9px; color: #d1bea0; letter-spacing: -.055em; }
.home .hero-main > .eyebrow { display: flex; align-items: center; gap: 12px; font-size: .68rem; letter-spacing: .14em; }
.hero-main > .eyebrow::before { content: ''; width: 26px; height: 1px; background: var(--warm); flex-shrink: 0; }
.home .hero-intro { max-width: 460px; font-size: 1rem; }
.home .hero-expertise { border-color: #b8a88e70; color: #c9d6df; font-size: .82rem; margin-top: 22px; }
.hero-actions { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; margin-top: 30px; }
.hero-actions .button { margin-top: 0; }
.hero-discover { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; font-size: .82rem; text-decoration: none; }
.hero-discover span { color: var(--warm); }
.home .button { border-radius: 3px; background: #d5c4a9; color: #142737; box-shadow: 0 8px 24px #07131a38; }
.home .button:hover, .home .button:focus-visible { background: #e8dbc8; }
.home .hero-person { border-top: 1px solid #7893a22e; padding-top: 20px; margin-top: 28px; display: flex; flex-wrap: wrap; column-gap: 16px; font-size: .8rem; }
.home .hero-person span { margin: 0; font-size: .76rem; }
.home .hero-visual {
  padding: 34px 28px 26px;
  border-radius: 8px;
  border-color: #a5bec732;
  background: linear-gradient(145deg, #29425070, #19314080);
  box-shadow: inset 0 1px 0 #dcecff12, 0 24px 70px #050e1726;
}
.home .hero-visual > .approach-label { color: var(--warm); font-size: .66rem; letter-spacing: .16em; }
.approach-title { font-size: clamp(1.5rem, 2.35vw, 2rem); line-height: 1.2; margin-top: 18px; letter-spacing: -.035em; }
.approach-title em { font-family: var(--serif); color: #d1bea0; font-weight: 400; }
.home .relationship-map { display: grid; gap: 18px; margin: 32px 0 26px; padding: 0; border: 0; }
.home .map-step { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 16px; padding: 0; align-items: start; }
.home .map-node, .home .map-step:last-child .map-node {
  display: grid; place-items: center; width: 30px; height: 30px; margin: 17px 0 0;
  border: 1px solid #a99d8866; border-radius: 3px; background: #1b303e;
  color: #d1bea0; font-size: .65rem; box-shadow: none;
}
.home .map-connector { display: block; left: 14px; top: 55px; bottom: -27px; width: 1px; background: linear-gradient(#bba98b70, #bba98b30); }
.process-card {
  position: relative; padding: 20px; border: 1px solid #9cb0bb33; border-radius: 4px;
  background: linear-gradient(110deg, #30485775, #243c4960);
  box-shadow: 0 6px 18px #09192416;
  transition: border-color .22s ease, background-color .22s ease;
}
.process-card::before { content: ''; position: absolute; left: -17px; top: 31px; width: 16px; height: 1px; background: #bba98b66; }
.process-card h3 { font-size: clamp(1rem, 1.5vw, 1.2rem); letter-spacing: -.025em; line-height: 1.3; font-weight: 500; text-wrap: initial; }
.home .map-step .process-card p { margin-top: 9px; font-size: .8rem; line-height: 1.6; color: #b7c9d9; letter-spacing: 0; }
.map-step:last-child .process-card { border-color: #c3b4995c; background: linear-gradient(110deg, #49534b45, #243c4960); }
.visual-footnote { border-top: 1px solid #89a4b62e; padding-top: 20px; font-size: .85rem; line-height: 1.6; }
.visual-footnote > span { color: #d1bea0; font-family: var(--serif); font-style: italic; font-size: 1.12rem; }
.home .identity-strip { background: #182d3a; border-color: #89a4b626; }
.home .identity-strip > .container { padding-block: 26px; }
.home .identity-strip span { color: #d1bea0; font-family: var(--serif); font-style: italic; font-size: 1.12rem; }
.home .identity-strip p { font-size: .77rem; }
.home .section { padding-block: 108px; }
.home .section-heading { grid-template-columns: .75fr 2fr; margin-bottom: 48px; }
.home .section-heading h2 { font-size: clamp(2.2rem, 3.4vw, 3.25rem); }
.home .section-heading .eyebrow, .home .contact-section > .eyebrow { color: #d1bea0; }
.home .service-list { display: grid; grid-template-columns: 1.08fr 1fr 1fr; gap: 0; border: 1px solid #89a4b63d; border-radius: 8px; overflow: hidden; }
.home .service { display: flex; flex-direction: column; align-items: flex-start; gap: 0; padding: 30px; border: 0; border-left: 1px solid #89a4b63d; background: #192f3d42; }
.home .service:nth-child(n+4) { border-top: 1px solid #89a4b63d; }
.home .service-number { border: 0; border-radius: 0; background: none; width: auto; height: auto; display: block; color: #9eb4c6; font-size: .7rem; margin-bottom: 25px; letter-spacing: .08em; }
.home .service h3 { font-size: 1.18rem; letter-spacing: -.025em; margin-bottom: 14px; overflow-wrap: anywhere; }
.home .service p { font-size: .91rem; line-height: 1.75; }
.home .service-featured { grid-row: span 2; border-left: 0; background: radial-gradient(ellipse at 0 100%, #5e6b6124, transparent 75%), linear-gradient(145deg, #29404b, #1d333f); }
.home .service-featured .service-number { color: #d1bea0; }
.home .service-featured h3 { font-size: 1.65rem; }
.service-principle { margin-top: auto; padding-top: 58px; width: 100%; }
.service-principle > span, .service-principle > em { display: block; font-size: clamp(1.5rem, 2.4vw, 2.2rem); line-height: 1.25; letter-spacing: -.045em; }
.service-principle > em { color: #d1bea0; font-family: var(--serif); font-weight: 400; }
.home .service-principle > p { font-size: .7rem; margin-top: 24px; border-top: 1px solid #a9b5b83b; padding-top: 18px; display: flex; flex-wrap: wrap; gap: 8px; }
.home .about-section { padding-block: 100px; background: radial-gradient(ellipse at 10% 45%, #36536b30, transparent 60%), #0e202c; border-color: #89a4b629; }
.home .about-section .eyebrow { color: #d1bea0; }
.home .about-heading h2 { font-size: clamp(2.2rem, 3.5vw, 3.5rem); }
.home .about-heading h2 span { color: #c0b59f; }
.home .portrait { margin-top: 8px; padding: 0; border: 0; border-radius: 0; }
.home .portrait-image { border-radius: 6px; border: 1px solid #a8b4b333; background: linear-gradient(135deg, #455c68, #203846 85%); box-shadow: 0 20px 45px #050e1738; }
.home .portrait figcaption { padding: 20px 0 10px; border-bottom: 1px solid #bcae9340; }
.home .portrait figcaption strong { font-size: 1rem; }
.home .portrait figcaption span { font-size: .75rem; }
.home .about-copy .about-principle { border-color: #c3b499; color: #d5c8b2; }
.home .experience-tags li { background: #b4c7d107; border-color: #7893a22e; border-radius: 3px; font-size: .76rem; }
.home .team-panel { background: linear-gradient(105deg, #213746, #182d3b); border-left-color: #c3b499; border-radius: 4px; }
.home .contact-section { position: relative; border-top: 0; }
.home .contact-section::before { content: ''; display: block; width: 52px; height: 2px; background: #c3b499; margin-bottom: 28px; }
.home .contact-section h2 { font-size: clamp(2.5rem, 4.5vw, 4.3rem); }
.home .contact-section h2 > span { font-family: var(--serif); font-style: italic; color: #d1bea0; }
.home .contact-grid { gap: 70px; }
.home .contact-direct { padding-top: 40px; }
.home .contact-direct .email-link { font-size: clamp(1.15rem, 2.05vw, 1.7rem); color: #d1bea0; border-color: #a99d8870; }
.home .contact-form { padding: 34px; border-radius: 6px; border-color: #89a4b642; background: linear-gradient(145deg, #253b49, #192f3d); }
.home .form-field input, .home .form-field textarea { background: #142834; border-color: #8098a566; border-radius: 3px; }
.home .site-footer { background: #0c1d28; border-color: #89a4b629; }
@media (hover: hover) and (pointer: fine) {
  .home .service:hover { background-color: #2f4b5b; }
  .home .service:hover .service-number { background: none; color: #d1bea0; }
  .hero-discover:hover { color: #d1bea0; }
  .process-card:hover { background-color: #375363; border-color: #bcae9373; }
}
@media (max-width: 1050px) {
  .home .hero { grid-template-columns: minmax(0, 1fr) minmax(0, .88fr); gap: 30px; }
  .home .hero h1 { font-size: clamp(3rem, 5.8vw, 4rem); }
  .home .hero-visual { padding-inline: 20px; }
  .home .service { padding: 24px; }
  .home .service-list { grid-template-columns: 1fr 1fr; }
  .home .service-featured { grid-column: 1 / -1; grid-row: auto; display: grid; grid-template-columns: 1fr 1fr; column-gap: 36px; }
  .home .service-featured .service-number, .home .service-featured h3, .home .service-featured > p { grid-column: 1; }
  .service-principle { grid-column: 2; grid-row: 1 / 4; align-self: center; margin-top: 0; padding-top: 0; }
  .home .service:nth-child(n+2) { border-top: 1px solid #89a4b63d; }
  .home .service:nth-child(even) { border-left: 0; }
  .home .contact-grid { gap: 36px; }
}
@media (max-width: 720px) {
  .home .header-inner { min-height: 110px; }
  .home .header-inner nav .nav-contact { padding: 6px 12px; }
  .home .hero { grid-template-columns: 1fr; padding-block: 50px; gap: 42px; }
  .home .hero h1 { font-size: clamp(3.15rem, 11vw, 4.8rem); }
  .home .hero-intro { max-width: 520px; }
  .home .hero-visual { width: 100%; max-width: 440px; justify-self: center; padding: 20px 24px 24px; }
  .approach-title { font-size: 1.8rem; }
  .home .section, .home .about-section { padding-block: 64px; }
  .home .section-heading { grid-template-columns: 1fr; gap: 20px; }
  .home .service-list { grid-template-columns: 1fr; }
  .home .service { padding: 28px; border-left: 0; }
  .home .service-featured { display: flex; grid-column: auto; }
  .service-principle { margin-top: 30px; padding-top: 0; }
  .service-principle > span, .service-principle > em { font-size: 1.9rem; }
  .home .service-number { margin-bottom: 18px; }
  .home .portrait { justify-self: center; }
  .home .contact-direct { padding-top: 0; }
  .home .contact-form { padding: 26px; }
  .home .contact-grid { gap: 32px; }
}
@media (max-width: 380px) {
  .home .hero-main > .eyebrow { font-size: .6rem; letter-spacing: .08em; gap: 8px; }
  .home .hero h1 { font-size: 2.95rem; }
  .home .hero-visual { padding-inline: 16px; }
  .home .map-step { gap: 12px; }
  .process-card { padding: 16px 12px; }
  .process-card::before { left: -13px; width: 12px; }
  .approach-title { font-size: 1.55rem; }
  .home .contact-form { padding: 22px 18px; }
}
@media print {
  .home { background: white; }
  .home .hero-visual { display: none; }
  .home .hero h1 > span, .home .contact-section h2 > span, .home .about-heading h2 span, .home .about-copy .about-principle { color: #122638; }
  .home .service-list { display: block; }
  .home .service, .home .service-featured { display: block; background: none; padding: 16px 0; }
  .service-principle { display: none; }
  .home .about-section, .home .team-panel, .home .identity-strip { background: white; }
  .home .hero-discover { display: none; }
}
