/* D032: an integrated, light personal arrival. Existing palette and controls. */
body {
  background-color: var(--surface-page);
  background-image:
    radial-gradient(ellipse at 88% 22%, rgba(47,107,138,.13), transparent 56%),
    radial-gradient(ellipse at 12% 47%, rgba(201,164,92,.16), transparent 58%),
    linear-gradient(180deg, rgba(231,239,242,.42), rgba(250,248,242,0) 92%);
  background-size: 100% 1080px;
  background-repeat: no-repeat;
}
.preview-banner { border: 0; background: transparent; }
.site-header { background: transparent; }
.header-inner { height: 108px; }
/* D036: selected full logo at the top; signature alone in the compact header. */
.identity-logo { display: block; width: 204px; height: auto; aspect-ratio: 414 / 154; }
.identity-lettering { font-family: 'Source Sans 3',sans-serif; fill: #213B4A; font-size: 76px; font-weight: 400; }
.site-header .brand { display: inline-flex; min-width: 0; min-height: 0; gap: 0; }
.site-header .identity-logo { transition: width .22s ease-out; }
.site-header .identity-name { opacity: 1; visibility: visible; transition: opacity .16s ease-out; }
.site-header.is-compact .identity-name { opacity: 0; visibility: hidden; }
.site-header.is-compact .identity-logo { width: 150px; }
.site-footer .identity-logo { width: 214px; }
.site-header.is-compact {
  background: rgba(250,248,242,.96);
  backdrop-filter: blur(16px);
  border-bottom-color: rgba(33,59,74,.08);
}
.nav-links { gap: 38px; }
.nav-links .nav-contact {
  gap: 20px;
  min-height: 48px;
  padding: 10px 20px;
  border: 1px solid rgba(47,107,138,.4);
  border-radius: 28px;
  background-color: var(--rudy-warm-white);
  background-position: 100% 0;
  color: var(--rudy-clear-blue);
  text-decoration: none;
  transition: background-position var(--action-duration) var(--action-easing),color var(--action-duration) var(--action-easing),border-color var(--action-duration) var(--action-easing),box-shadow var(--action-duration) var(--action-easing);
}
.nav-links .nav-contact,
.nav-links .nav-contact:is(:focus-visible,:active,[aria-current=page]),
.nav-links .nav-contact:hover:not(:active) {
  background-image: linear-gradient(90deg,var(--rudy-clear-blue) 50%,var(--rudy-warm-white) 50%);
  background-repeat: no-repeat;
  background-size: 205% 100%;
}
.nav-links .nav-contact .link-arrow { transition: transform var(--action-duration) var(--action-easing); }
.nav-links .nav-contact:is(:focus-visible,:active) {
  background-position: 0 0;
  color: var(--rudy-warm-white);
  border-color: var(--rudy-clear-blue);
}
.nav-links .nav-contact:is(:focus-visible,:active) .link-arrow { transform: translate(2px,-2px); }
.nav-links .nav-contact:active { box-shadow: inset 0 0 0 1px var(--rudy-warm-white); transition: none; }
.nav-links .nav-contact:active .link-arrow { transition: none; }
@media (hover:hover) and (pointer:fine) {
  .nav-links .nav-contact:hover:not(:active) {
    background-position: 0 0;
    color: var(--rudy-warm-white);
    border-color: var(--rudy-clear-blue);
  }
  .nav-links .nav-contact:hover:not(:active) .link-arrow { transform: translate(2px,-2px); }
}
.button { border-radius: 28px; padding-inline: 27px; }
/* The lower light reaches full transparency before each painted edge. */
.page-home .story-grid,.page-home .routes-section { position: relative; isolation: isolate; }
.page-home .story-grid::before,.page-home .routes-section::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: -32px -12px -56px;
  pointer-events: none;
}
.page-home .story-grid::before {
  background:
    radial-gradient(ellipse 29% 46% at 32% 52%,rgba(201,164,92,.06),transparent 100%),
    radial-gradient(ellipse 29% 42% at 70% 45%,rgba(47,107,138,.035),transparent 100%);
}
.page-home .routes-section::before {
  background: radial-gradient(ellipse 38% 46% at 60% 50%,rgba(47,107,138,.03),transparent 100%);
}
.hero,
.page-one-to-one .one-to-one-hero,
.page-speaking .speaking-hero {
  grid-template-columns: minmax(0,1.03fr) minmax(0,1fr);
  column-gap: 74px;
  row-gap: 26px;
  padding-block: 32px 96px;
}
.hero h1 { font-size: clamp(44px,4.2vw,58px); line-height: 1.08; letter-spacing: -.035em; }
.keep-together { white-space: nowrap; }
.home-hero h1 { font-size: clamp(50px,5.2vw,72px); }
.hero-heading { padding-top: 18px; }
.hero .eyebrow { margin-bottom: 24px; }
.hero-copy { padding-bottom: 20px; }
.hero-copy .lead { font-size: 24px; line-height: 1.45; }
.hero-copy > p:not(.lead):not(.offer-note) { color: var(--text-secondary); }
.home-hero .hero-copy > .button { margin-top: 27px; }
.home-hero .hero-copy > .button + p { margin-top: 32px; font-size: 19px; line-height: 1.55; max-width: 480px; }
.home-hero .hero-image,
.page-about .personal-portrait,
.one-to-one-hero .close-portrait,
.page-speaking .speaking-image-frame {
  padding: 0;
  background: none;
  border: 0;
  width: 100%;
  max-width: none;
  margin: 0;
}
.hero-image::before,
.hero-image::after,
.home-hero .hero-image::before,
.home-hero .hero-image::after,
.page-about .personal-portrait::after,
.one-to-one-hero .close-portrait::before { content: none; }
.home-hero .hero-image img,
.page-about .personal-portrait img,
.one-to-one-hero .close-portrait img,
.page-speaking .speaking-image-frame img {
  width: 100%;
  max-width: none;
  max-height: none;
  height: 570px;
  border: 0;
  border-radius: 18px 110px 18px 52px;
  box-shadow: 0 22px 60px -26px rgba(33,59,74,.1);
  object-fit: cover;
}
.home-hero .hero-image img { object-position: 50% 34%; }
.page-about .personal-portrait img { border-radius: 110px 18px 52px 18px; height: 600px; object-position: 50% 44%; }
.one-to-one-hero .close-portrait img { object-position: 50% 24%; height: 570px; }
.page-speaking .speaking-image-frame { width: min(100%,440px); justify-self: end; }
.page-speaking .speaking-image-frame img { height: 570px; aspect-ratio: auto; object-position: 55% 30%; border-radius: 18px 90px 18px 42px; }
.hero-copy .about-contents,
.hero-copy .service-page-links { margin-top: 30px; padding-top: 20px; border-top: 1px solid rgba(33,59,74,.14); }
.hero-copy .contents-label { font-size: 12px; letter-spacing: .09em; }
.hero-copy .contents-links { gap: 0 28px; }
.hero-copy .contents-links .reading-link { font-size: 16px; }
.page-one-to-one .offer-note { padding: 0 0 0 18px; margin-top: 24px !important; background: none; border-left: 2px solid var(--rudy-honey-gold); font-size: 17px; max-width: 460px; }
.page-one-to-one .hero-copy .button,
.page-speaking .hero-copy .button { margin-top: 26px; }
.speaking-hero .hero-copy > .button + p { margin-top: 28px; }
.contact-composition { gap: 72px; padding-block: 45px 100px; grid-template-columns: .83fr 1.17fr; }
.contact-composition .contact-intro { padding-top: 40px; }
.contact-intro h1 { font-size: 58px; letter-spacing: -.035em; }
.contact-intro h1::before { height: 2px; width: 38px; margin-bottom: 26px; }
.contact-composition .contact-intro .lead { font-size: 25px; line-height: 1.48; }
.contact-composition .contact-form {
  padding: 38px 40px;
  background: rgba(250,248,242,.88);
  border: 1px solid rgba(33,59,74,.1);
  border-radius: 36px 12px 36px 12px;
  box-shadow: 0 24px 64px -38px rgba(33,59,74,.1);
}
.contact-composition .email-alternative { margin-top: 34px; max-width: 290px; font-size: 18px; }
.contact-composition .preview-status { background: var(--surface-secondary); border: 0; border-radius: 8px; }
input,textarea,select { border-radius: 8px; }
@media (min-width: 761px) and (max-width: 1060px) {
  .header-inner { height: 96px; }
  .site-header .identity-logo { width: 184px; }
  .nav-links { gap: 22px; }
  .nav-links .nav-contact { padding-inline: 14px; gap: 12px; }
  .hero,.page-one-to-one .one-to-one-hero,.page-speaking .speaking-hero { column-gap: 40px; }
  .hero h1 { font-size: 44px; }
  .home-hero h1 { font-size: 56px; }
  .hero-copy .lead { font-size: 22px; }
  .home-hero .hero-image img,.page-about .personal-portrait img,.one-to-one-hero .close-portrait img,.page-speaking .speaking-image-frame img { height: 520px; }
  .contact-composition { gap: 40px; }
}
@media (max-width: 960px) {
  .contact-composition .contact-intro { padding-top: 0; }
  .contact-composition .contact-form { margin-top: 38px; }
  .contact-composition .email-alternative { max-width: none; }
}
@media (min-width: 761px) and (max-width: 960px) {
  .hero .hero-heading { grid-column: 1 / -1; grid-row: 1; padding: 0; }
  .hero .hero-image { grid-row: 2; align-self: start; }
  .hero .hero-copy { grid-row: 2; }
  .hero .hero-heading h1 { max-width: 620px; }
}
@media (max-width: 760px) {
  body { background-size: 100% 1100px; background-image: radial-gradient(ellipse at 100% 25%,rgba(47,107,138,.12),transparent 60%),radial-gradient(ellipse at 0% 45%,rgba(201,164,92,.14),transparent 64%); }
  .header-inner { height: 82px; }
  .site-header .identity-logo { width: 160px; }
  .nav-links { background: var(--rudy-warm-white); border-radius: 0 0 24px 24px; padding: 12px 24px 26px; gap: 0; }
  .nav-links .nav-contact { align-self: flex-start; margin-top: 14px; padding: 10px 22px; }
  .hero,.page-one-to-one .one-to-one-hero,.page-speaking .speaking-hero { gap: 26px; padding-block: 23px 68px; }
  .hero-heading { padding: 0; order: 0; }
  .hero h1 { font-size: 43px; line-height: 1.08; }
  .home-hero h1 { font-size: 52px; }
  .hero .eyebrow { font-size: 12px; margin-bottom: 16px; }
  .hero .hero-image,.one-to-one-hero .hero-image,.speaking-hero .hero-image { order: 1; }
  .hero .hero-copy,.one-to-one-hero .hero-copy,.speaking-hero .hero-copy { order: 2; padding: 0; }
  .hero-copy .lead { font-size: 22px; line-height: 1.45; }
  .home-hero .hero-image img,.one-to-one-hero .close-portrait img { height: auto; aspect-ratio: 1.15; object-position: 50% 16%; border-radius: 14px 70px 14px 34px; }
  .one-to-one-hero .close-portrait img { aspect-ratio: 1.3; object-position: 50% 10%; }
  .page-about .personal-portrait img { height: auto; aspect-ratio: 1; object-position: 50% 23%; border-radius: 70px 14px 34px 14px; }
  .page-speaking .speaking-image-frame { width: 100%; max-width: 460px; align-self: center; }
  .page-speaking .speaking-image-frame img { height: auto; aspect-ratio: 1.3; object-position: 55% 23%; border-radius: 14px 70px 14px 34px; }
  .home-hero .hero-copy > .button + p { margin-top: 28px; font-size: 18px; }
  .hero-copy .about-contents,.hero-copy .service-page-links { margin-top: 26px; }
  .contact-composition { padding-block: 28px 68px; }
  .contact-intro h1 { font-size: 46px; }
  .contact-composition .contact-intro .lead { font-size: 22px; }
  .contact-composition .email-alternative { font-size: 17px; margin-top: 24px; }
  .contact-composition .contact-form { margin-top: 32px; padding: 28px 23px; border-radius: 26px 10px 26px 10px; }
}
@media (prefers-reduced-motion:reduce) {
  .nav-links .nav-contact,.nav-links .nav-contact .link-arrow,.site-header .identity-logo { transition: none; }
}
@media (max-width: 370px) {
  .site-header .identity-logo { width: 156px; }
  .hero h1 { font-size: 38px; }
  .home-hero h1 { font-size: 46px; }
  .hero .eyebrow { font-size: 10.5px; letter-spacing: .07em; }
  .hero-copy .lead { font-size: 21px; }
  .contact-intro h1 { font-size: 42px; }
  .contact-composition .contact-form { padding-inline: 19px; }
}
