/* Mobile navigation uses a native modal for focus management and background isolation. */
.mobile-header-contact,.mobile-value-link,.service-collapse { display:none; }
#mobile-menu { color:var(--ink); background:var(--bg); border:1px solid var(--line); }
#mobile-menu:not([open]) { display:none; }
body.menu-is-open { position:fixed; width:100%; overflow:hidden; }
/* Phone composition. Keep mobile decisions together instead of interleaving
   them with the desktop brand history in styles.css. */
@media (max-width:760px) {
  .wrap { width:calc(100% - 40px); }
  .section,.outcomes-section { padding-block:44px; }
  .topline>.masthead-shell { padding-block:14px; gap:10px; }
  .masthead-message { padding-left:10px; }
  .masthead-message p:first-child { font-size:1rem; line-height:1.4; letter-spacing:-.02em; }
  .masthead-message p:last-child { font-size:.75rem; letter-spacing:.025em; margin-top:4px; }
  .topline .masthead-shell>.topline-contact { flex-direction:row; gap:4px 16px; padding-top:8px; }
  .topline-contact a { min-height:36px; font-size:.875rem; }
  .navigation { min-height:72px; height:auto; padding-block:12px; gap:8px; flex-wrap:wrap; }
  .brand,html[data-theme="dark"] .brand { padding:0; gap:6px; flex-shrink:0; }
  .brand img:first-child { width:26px; height:auto; }
  .brand img:last-child { width:104px; height:auto; }
  .nav-controls { gap:0; margin-left:auto; }
  .language-switch { padding:0; }
  .language-switch button,.icon-button { min-width:44px; min-height:44px; padding:8px; font-size:.875rem; }
  nav { top:100%; left:0; right:0; padding:8px 16px 16px; border:1px solid var(--line); border-radius:12px; }
  nav a { min-height:48px; font-size:1rem; }
  .hero { display:flex; flex-direction:column; align-items:stretch; gap:20px; padding-block:30px 24px; }
  .hero-content { order:0; }
  .hero-brand { order:1; display:block; width:100%; }
  .hero-content .eyebrow { font-size:.75rem; line-height:1.5; margin-bottom:14px; letter-spacing:.04em; }
  .hero h1 { font-size:clamp(1.9rem,8vw,2.65rem); line-height:1.12; letter-spacing:-.035em; text-wrap:balance; overflow-wrap:anywhere; }
  .hero h1 em { white-space:normal; }
  .hero-description { font-size:1rem; line-height:1.6; margin-top:16px; }
  .hero-actions { display:grid; grid-template-columns:1fr; gap:8px; margin-top:24px; }
  .hero-actions>a { width:100%; min-height:48px; justify-content:center; font-size:.9375rem; margin:0; }
  .hero-actions .text-link { padding:10px; border:1px solid var(--line); border-radius:10px; }
  .founder-line { grid-template-columns:minmax(0,1fr); padding:20px; gap:12px; margin-top:24px; }
  .founder-tenure { display:flex; flex-direction:row; align-items:baseline; gap:8px; border:0; padding:0; }
  .founder-tenure strong { font-size:1.5rem; line-height:1; }
  .founder-tenure>span { max-width:none; font-size:.75rem; }
  .founder-line>span:nth-child(2)>strong { font-size:1.375rem; line-height:1.3; letter-spacing:-.025em; }
  .founder-line [data-i="founderLine"] { gap:10px; }
  .consultant-role,.about-position .consultant-role { font-size:1rem; line-height:1.5; }
  .owner-brand,html[data-theme="dark"] .owner-brand { padding:0; gap:10px; flex-wrap:wrap; align-items:center; }
  .owner-label { font-size:.875rem; line-height:1.5; }
  .inline-wordmark { width:108px; height:auto; }
  .brand-stage { width:100%; height:auto; min-height:0; grid-template-columns:76px minmax(0,1fr); gap:16px; padding:20px; border-radius:16px; }
  .logo-surface { width:76px; margin:0; padding:0; }
  .stage-caption { width:100%; }
  .stage-caption img { width:100%; max-width:190px; height:auto; }
  .stage-process { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; font-size:.9375rem; line-height:1.5; padding-top:14px; }
  .stage-process .brand-chevron { width:12px; height:16px; }
  .brand-manifesto { font-size:.875rem; line-height:1.6; letter-spacing:.035em; text-align:center; text-wrap:balance; padding:14px 8px 0; margin:0; overflow-wrap:normal; }
  .brand-manifesto br { display:block; }
  .expertise-band { padding-block:24px; }
  .expertise-band>.wrap { gap:18px; }
  .expertise-label { font-size:1.125rem; line-height:1.4; text-wrap:balance; }
  .expertise-band .wrap>div { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr)); width:100%; gap:8px; }
  .expertise-band .wrap>div>a { display:flex; align-items:center; min-height:48px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; font-size:.875rem; line-height:1.5; letter-spacing:.02em; }
  .expertise-band .wrap>div>a::before { display:none!important; }
  h2,.contact-section h2,.about-content h2 { font-size:clamp(1.65rem,6.7vw,2.125rem); line-height:1.18; letter-spacing:-.03em; text-wrap:balance; }
  h2 br { display:initial; }
  .about-content h2 br { display:block; }
  .section-title-row { gap:18px; }
  .section-title-row>p,.service-description>p,.service-description ul,.outcome-list p,.process p { font-size:1rem; line-height:1.65; }
  .section-intro { margin-bottom:28px; }
  .eyebrow { line-height:1.5; letter-spacing:.04em; margin-bottom:16px; }
  .service summary { grid-template-columns:1.6rem minmax(0,1fr) 28px; gap:10px; padding:22px 0; }
  .service-name { font-size:1.1875rem; line-height:1.35; letter-spacing:-.02em; }
  .service-body { padding:0 0 24px; gap:24px; }
  .service-description ul { padding-left:20px; }
  .service-delivery { padding:20px; border-radius:14px; }
  .service-delivery h3 { font-size:1.375rem; line-height:1.3; }
  .service-delivery .service-result { font-size:1rem; }
  .flow { justify-content:flex-start; flex-wrap:wrap; gap:8px; }
  .flow>span { font-size:.875rem; }
  .text-link { font-size:.9375rem; line-height:1.5; }
  .process { gap:24px; }
  .process article { grid-template-columns:24px minmax(0,1fr); column-gap:12px; }
  .process h3 { font-size:2rem; margin-bottom:12px; }
  .outcome-list article { grid-template-columns:1.6rem minmax(0,1fr); padding-block:24px; gap:12px; }
  .about { display:flex; flex-direction:column; gap:28px; }
  .about-content { order:0; }
  .experience-panel { order:1; width:100%; padding:24px; min-height:0; overflow:hidden; }
  .experience-number { font-size:5rem; }
  .experience-caption { font-size:1rem; }
  .experience-bottom { display:block; }
  .competency-content { padding-left:26px; overflow-wrap:anywhere; }
  .about-position { padding:18px; }
  .contact-grid { gap:28px; }
  .contact-info .direct,#consultation { padding:22px 20px; border-radius:14px; }
  .contact-info .direct a { font-size:1rem; line-height:1.5; min-height:44px; }
  .contact-value { min-width:0; overflow-wrap:anywhere; }
  .social-buttons { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,5rem),1fr)); gap:8px; }
  .social-button { display:flex; flex-direction:column; gap:10px; padding:14px 6px; font-size:.875rem; }
  .form-heading h3 { font-size:1.5rem; line-height:1.3; }
  .form-heading>span { font-size:.75rem; line-height:1.5; }
  input,select,textarea { font-size:1rem; }
  .consent { font-size:.875rem; line-height:1.6; }
  .footer-top { grid-template-columns:1fr; gap:24px; }
  .footer-links { grid-template-columns:1fr; gap:0; }
  .footer-links a { font-size:.9375rem; min-height:48px; border-bottom:1px solid var(--line); }
  .footer-action { gap:10px; }
  .footer-action>a,.footer-action .button { font-size:.9375rem; min-height:48px; }
  .business-details dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .business-details dd { overflow-wrap:anywhere; }
  .footer-legal { flex-wrap:wrap; }
  /* Scroll is the dominant mobile interaction: no staggered content movement
     or sticky hover glow competing with destination feedback. */
  .reveal-in,.brand-stage,.masthead-message,.topline-contact { animation:none!important; opacity:1; transform:none; }
  .stage-process .brand-chevron,.circuit-signal { animation:none!important; }
  .edge-track { opacity:.12; }
  .service summary:hover { padding-inline:0; background:transparent; }
  a.service-delivery:hover,html[data-theme="dark"] a.service-delivery:hover,.founder-line:hover,.experience-panel:hover { transform:none; box-shadow:none; border-color:var(--line); }
  .button:hover,.social-button:hover,.text-link:hover,.social-button:hover svg { transform:none; }
  .button::after { display:none; }
  .related-outcome { animation:none; outline:2px solid var(--accent); outline-offset:3px; }
}
@media (max-width:360px) {
  .wrap { width:calc(100% - 32px); }
  .brand img:last-child { width:90px; }
  .brand img:first-child { width:24px; }
  .business-details dl { grid-template-columns:1fr; }
}

@media (max-width:760px) {
  html { scroll-padding-top:0; }
  [id],summary { scroll-margin-top:88px; }
  .topline { display:none; }
  .site-header { position:sticky; top:0; z-index:40; padding-top:env(safe-area-inset-top,0px); }
  .navigation { min-height:68px; height:auto; padding-block:10px; flex-wrap:nowrap; gap:10px; }
  .brand,html[data-theme="dark"] .brand { gap:7px; padding:0; }
  .brand img:first-child { width:28px; }
  .brand img:last-child { width:112px; }
  .nav-controls { gap:6px; }
  .mobile-header-contact { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 13px; border:1px solid var(--line); border-radius:9px; font-size:.875rem; font-weight:650; }
  .menu-button { width:44px; height:44px; border:1px solid var(--line); border-radius:9px; background:var(--surface); }
  .menu-button>span { width:20px; height:2px; }
  .menu-button[aria-expanded=true]>span:first-child { transform:translateY(4px) rotate(45deg); }
  .menu-button[aria-expanded=true]>span:last-child { transform:translateY(-4px) rotate(-45deg); }
  #mobile-menu { position:fixed; inset:0 0 0 auto; margin:0; width:min(100%,440px); max-width:100%; height:100dvh; max-height:100dvh; padding:max(20px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left)); border:0; border-left:1px solid var(--line); overflow-y:auto; overscroll-behavior:contain; }
  #mobile-menu[open] { display:flex; flex-direction:column; gap:24px; }
  #mobile-menu::backdrop { background:rgb(0 0 0 / .55); }
  .mobile-menu-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:1.125rem; font-weight:700; }
  .menu-close { display:flex; align-items:center; gap:12px; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:9px; background:var(--surface); font-size:.875rem; }
  .menu-close>span:last-child { font-size:1.75rem; line-height:1; font-weight:400; }
  #mobile-menu nav { display:flex; position:static; flex-direction:column; align-items:stretch; gap:0; padding:0; border:0; border-radius:0; box-shadow:none; background:transparent; }
  #mobile-menu nav a { display:flex; align-items:center; justify-content:space-between; min-height:64px; padding:16px 0; font-size:1.375rem; line-height:1.3; font-weight:650; letter-spacing:-.025em; border-bottom:1px solid var(--line); }
  #mobile-menu nav a::after { content:'›'; font-size:1.5rem; color:var(--accent); padding-left:14px; }
  #mobile-menu nav a[aria-current] { color:var(--accent); }
  #mobile-menu nav .mobile-contact { margin-top:20px; padding:16px; background:var(--button); color:var(--button-text); font-size:1rem; border-radius:10px; border:0; }
  #mobile-menu nav .mobile-contact::after { color:inherit; }
  .mobile-menu-contact { display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
  .mobile-menu-contact a { min-height:44px; display:flex; align-items:center; font-size:1rem; overflow-wrap:anywhere; }
  .mobile-menu-preferences { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid var(--line); padding-top:20px; margin-top:auto; font-size:.875rem; color:var(--muted); }
  #mobile-preferences-controls { display:flex; gap:12px; align-items:center; }
  #mobile-preferences-controls .icon-button { border:1px solid var(--line); border-radius:8px; }
  .hero-content .eyebrow { font-size:.75rem; letter-spacing:.025em; margin-bottom:16px; }
  .hero-actions { margin-top:22px; gap:8px; }
  .hero-actions .button { border-radius:10px; min-height:50px; }
  .hero-actions .brand-chevron { width:17px; height:17px; }
  .founder-line,html[data-theme="dark"] .founder-line { display:grid; grid-template-columns:52px minmax(0,1fr); align-items:center; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; padding:18px 0 0; margin-top:22px; gap:14px; box-shadow:none; }
  .founder-tenure { display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
  .founder-tenure strong { font-size:1.75rem; }
  .founder-tenure>span { font-size:.75rem; }
  .founder-line>span:nth-child(2)>strong { font-size:1.0625rem; letter-spacing:-.025em; }
  .founder-line [data-i="founderLine"] { margin-top:3px; gap:0; }
  .founder-line .consultant-role { font-size:.875rem; border:0; padding:0; }
  .founder-line .owner-brand,.founder-link-arrow { display:none; }
  .hero-brand { align-self:stretch; }
  .brand-stage,html[data-theme="dark"] .brand-stage { display:block; padding:12px 0 0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; }
  .brand-stage .logo-surface,.brand-stage .stage-caption,.stage-circuits,.stage-pixels,.brand-stage::before,.brand-stage::after,.hero-brand .brand-manifesto { display:none; }
  .stage-process { position:static; display:flex; justify-content:space-between; padding:0; border:0; font-size:1rem; gap:8px; }
  .expertise-band { padding-block:18px; background:var(--surface); }
  .expertise-label { display:none; }
  .expertise-band .wrap>div { gap:8px; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .expertise-band .wrap>div>a { min-height:44px; padding:10px; font-size:.75rem; letter-spacing:0; background:var(--bg); }
  .section-title-row>p { max-width:none; }
  .section-intro { margin-bottom:22px; }
  .section-title-row { gap:14px; }
  .outcomes-heading h2 { font-size:clamp(1.65rem,6.7vw,2.125rem); line-height:1.18; }
  h2 br { display:initial; }
  .about-content h2 br { display:block; }
  .scenario-notice { font-size:.8125rem; margin-bottom:18px; }
  .service-index { display:grid; gap:10px; border:0; }
  .service { border:1px solid var(--line); border-radius:12px; background:var(--bg); }
  .service[open] { border-color:var(--accent); }
  .service summary,.service summary:hover { padding:18px 14px; grid-template-columns:20px minmax(0,1fr) 28px; gap:10px; min-height:80px; }
  .service-name { font-size:1.0625rem; line-height:1.4; font-weight:650; letter-spacing:-.02em; }
  .service-number { font-size:.75rem; }
  .service .expand { width:28px; height:28px; background:var(--surface); border:0; }
  .service .expand .brand-chevron { width:15px; height:15px; }
  .service-body { padding:0 16px 18px; gap:20px; }
  .service-description>p { margin-bottom:16px; }
  .service-description .service-question { font-size:.9375rem; margin-bottom:8px; }
  .service-description ul { margin:16px 0; padding:0; font-size:.9375rem; }
  .service-description>p+.service-question { margin-top:20px; }
  .service-delivery,html[data-theme="dark"] .service-delivery { padding:18px; border-radius:8px; box-shadow:none; }
  .service-delivery h3 { font-size:1.25rem; }
  .service-delivery .service-result,.service-delivery>p,.delivery-link { font-size:.9375rem; line-height:1.6; }
  .service-collapse { display:block; width:calc(100% - 32px); min-height:44px; margin:0 16px 16px; border:1px solid var(--line); border-radius:8px; background:transparent; color:var(--muted); font-size:.875rem; }
  .process { gap:12px; }
  .process article { display:grid; grid-template-columns:28px minmax(0,1fr); padding:20px 16px; border:1px solid var(--line); border-radius:12px; background:var(--surface); column-gap:10px; }
  .process article::before { display:none; }
  .step-index { grid-row:1; align-self:center; }
  .step-index>span:last-child { display:none; }
  .process h3 { font-size:1.5rem; margin:0; line-height:1.25; }
  .process h4,.process p,.step-output { grid-column:1 / -1; }
  .process h4 { margin:14px 0 8px; font-size:1rem; line-height:1.4; }
  .process p { font-size:1rem; line-height:1.6; margin:0 0 16px; }
  .step-output { padding-top:12px; gap:4px; }
  .step-output>span { font-size:.75rem; letter-spacing:.04em; }
  .step-output>strong { font-size:.9375rem; }
  .outcomes-grid { gap:24px; }
  .outcomes-heading .text-link { margin-top:18px; }
  .outcome-list { display:grid; gap:12px; }
  .outcome-list article,.outcome-list article:first-child,.outcome-list article:last-child { padding:18px 16px; border:1px solid var(--line); border-radius:12px; grid-template-columns:20px minmax(0,1fr); gap:10px; }
  .outcome-list h3 { font-size:1.125rem; line-height:1.4; }
  .outcome-list p { font-size:1rem; line-height:1.6; margin-top:8px; }
  .experience-panel { padding:22px; border-radius:12px; }
  .experience-number { font-size:3.5rem; }
  .experience-caption { margin-bottom:18px; }
  .about-lead { font-size:1.125rem; }
  .contact-grid { margin-top:22px; }
  .contact-info { display:flex; flex-direction:column; }
  .contact-info .direct { margin-top:8px; padding:18px; order:0; }
  .contact-info .social-section { order:1; margin-top:22px; }
  .contact-info .conversation-guide { order:2; }
  .social-button { font-size:.875rem; }
  label,.form-note { font-size:.875rem; }
  input,select,textarea { border-radius:8px; min-height:48px; }
  .consent input { min-height:0; }
  .text-link { min-height:44px; gap:14px; }
  .text-link .brand-chevron { width:18px; height:18px; flex-shrink:0; }
  .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
  footer { padding-bottom:calc(24px + env(safe-area-inset-bottom,0px)); }
}
@media (max-width:360px) {
  .brand img:first-child { width:24px; }
  .brand img:last-child { width:96px; }
  .mobile-header-contact { padding-inline:9px; }
  .navigation { gap:6px; }
}

@media(max-width:760px) {
  #mobile-menu nav a[href="#services"] { order:0; }
  #mobile-menu nav a[href="#process"] { order:1; }
  #mobile-menu nav a[href="#outcomes"] { order:2; }
  #mobile-menu nav a[href="#about"] { order:3; }
  #mobile-menu nav a[href="#contact"] { order:4; }
}
/* Reflow scales with the reader's font size instead of fixed column widths. */
@media(max-width:760px) {
  .navigation .brand { flex:0 1 147px; min-width:0; }
  .navigation .brand img:first-child { flex:0 0 auto; }
  .navigation .brand img:last-child { min-width:0; flex:1 1 auto; object-fit:contain; }
  .nav-controls { flex:0 0 auto; }
  .founder-line,html[data-theme="dark"] .founder-line { grid-template-columns:3.25rem minmax(0,1fr); }
  .expertise-band .wrap>div { grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr)); }
  .expertise-band .wrap>div>a { white-space:normal; overflow-wrap:anywhere; }
  .service summary,.service summary:hover { grid-template-columns:1.25rem minmax(0,1fr) 28px; }
  .outcome-list article,.outcome-list article:first-child,.outcome-list article:last-child { grid-template-columns:1.25rem minmax(0,1fr); }
  .competency summary { min-width:0; overflow-wrap:anywhere; }
  .competency summary>span { min-width:0; }
  .contact-process { flex-wrap:wrap; }
}
@media(max-width:760px) {
  html[data-theme] .navigation .brand { flex:0 1 147px; width:auto; min-width:0; }
  p,a,.form-heading>span { overflow-wrap:anywhere; }
  .experience-circuit { right:0; }
}

/* Center the two personal identity blocks on phone screens. */
@media(max-width:760px) {
  .founder-line,html[data-theme="dark"] .founder-line {
    grid-template-columns:minmax(0,1fr);
    justify-items:center;
    gap:12px;
    text-align:center;
  }
  .founder-line .founder-tenure {
    flex-direction:row;
    align-items:baseline;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px;
    padding:0;
  }
  .founder-line .founder-tenure>span { max-width:none; }
  .founder-line [data-i="founderLine"] { align-items:center; }
  .about-content>.eyebrow { justify-content:center; }
  .about-content>h2 { text-align:center; }
  .about-content>.about-position {
    align-items:center;
    text-align:center;
    border-left-width:1px;
    border-right:1px solid var(--line);
  }
  .about-position .owner-brand,html[data-theme="dark"] .about-position .owner-brand {
    justify-content:center;
  }
}

/* Override the desktop role's explicit left alignment in both identity blocks. */
@media(max-width:760px) {
  .founder-line>span:nth-child(2) {
    width:100%;
    align-items:center;
    text-align:center;
  }
  .founder-line [data-i="founderLine"] {
    width:100%;
    align-items:center;
    text-align:center;
  }
  .founder-line .consultant-role,
  .about-position .consultant-role {
    align-self:center;
    text-align:center;
    max-width:100%;
    margin-inline:auto;
    padding-bottom:8px;
    border-bottom:2px solid var(--accent);
  }
  .founder-line .founder-tenure strong { color:var(--accent); }
}

/* The experience metric is already explained in the About section. Keep the
   mobile hero identity focused on the consultant instead of repeating it. */
@media(max-width:760px) {
  .founder-line,html[data-theme="dark"] .founder-line {
    min-height:132px;
    padding:24px 18px;
    border:1px solid var(--line);
    border-radius:12px;
    justify-content:center;
  }
  .founder-line .founder-tenure { display:none; }
  .founder-line>span:nth-child(2)>strong {
    display:block;
    font-size:clamp(1.45rem,6.4vw,1.75rem);
    font-weight:800;
    line-height:1.15;
    letter-spacing:-.04em;
    text-wrap:balance;
  }
  .founder-line [data-i="founderLine"] { margin-top:12px; }
  .founder-line .consultant-role {
    font-size:1rem;
    font-weight:750;
    line-height:1.35;
  }
}
