/* Phone layouts are designed independently of the wide-screen composition. */
.mobile-consultation[hidden] { display:none; }
.mobile-consultation { display:none; }

@media (max-width:900px) {
  .header-inner { min-height:70px; }
  .brand { width:190px; margin-left:-5px; }
  .js .menu-toggle { min-width:64px; min-height:44px; border:0; padding:10px 0 10px 12px; font-size:13px; gap:8px; }
  .js .header-nav { padding:12px 24px 24px; border-radius:0 0 20px 20px; box-shadow:0 16px 24px #10213214; }
  .header-nav>a:not(.button) { min-height:50px; border-bottom:1px solid var(--line); font-size:17px; }
  .header-nav .button { width:100%; margin-top:12px; }
}

@media (max-width:760px) {
  html { scroll-padding-top:88px; scroll-padding-bottom:88px; }
  .container { width:calc(100% - 40px); }
  .section { padding-block:56px; }
  h2 { font-size:32px; letter-spacing:-.04em; line-height:1.15; text-wrap:balance; }
  .section-heading { display:block; margin-bottom:26px; }
  .section-heading>p { margin-top:14px; font-size:16px; line-height:1.6; max-width:36em; }
  .section-intro { font-size:16px; line-height:1.65; margin-top:16px; }
  .button { min-height:54px; padding:16px 19px; border-radius:10px; font-size:15px; }
  .text-link { min-height:44px; line-height:1.5; }
  .site-header { background:var(--chalk); }
  .header-inner { min-height:66px; gap:14px; }
  .brand { width:178px; min-height:44px; display:flex; align-items:center; }
  .menu-toggle svg { width:20px; height:20px; }

  /* The first screen explains the offer instead of displaying a large logo tile. */
  .hero.container {
    position:relative;
    isolation:isolate;
    display:block;
    width:100%;
    padding:46px 24px 36px;
    background:var(--ink);
    color:var(--chalk);
    border-radius:0 0 28px 28px;
    overflow:hidden;
  }
  .hero-copy { position:relative; z-index:1; padding:0; }
  .hero h1 { font-size:clamp(36px,10.5vw,58px); line-height:1.08; letter-spacing:-.055em; max-width:600px; }
  .hero h1 span:last-child { color:#f48773; }
  .hero-lead { color:#d2dce1; font-size:16px; line-height:1.65; margin-top:22px; max-width:500px; }
  .hero-button { width:100%; margin-top:28px; border-color:var(--coral); }
  .hero-art {
    position:absolute;
    z-index:0;
    right:-45px;
    top:-14px;
    width:180px;
    height:160px;
    min-height:0;
    padding:0;
    background:transparent;
    opacity:.07;
    pointer-events:none;
  }
  .hero-symbol { width:180px; max-width:none; }
  .hero a:focus-visible { outline-color:var(--chalk); }

  /* Compact service rows keep all four offers easy to scan. */
  .services { padding-top:44px; }
  .services .section-heading>p { display:none; }
  .service-grid { grid-template-columns:1fr; gap:12px; }
  .service-card {
    display:grid;
    grid-template-columns:32px minmax(0,1fr) 20px;
    grid-template-rows:auto auto;
    column-gap:15px;
    padding:22px 18px;
    border-radius:14px;
  }
  .service-card-top { grid-column:1; grid-row:1 / 3; align-self:start; margin:3px 0 0; }
  .service-card-top .service-number { display:none; }
  .service-card-top img { width:30px; height:30px; }
  .service-card h3 { grid-column:2; grid-row:1; margin:0; font-size:20px; line-height:1.25; }
  .service-card>p { grid-column:2; grid-row:2; margin-top:8px; font-size:15px; line-height:1.55; }
  .service-tags { display:none; }
  .service-card .service-link { grid-column:3; grid-row:1 / 3; margin:0; padding:0; border:0; align-self:center; font-size:0; }
  .service-link svg { width:20px; height:20px; }
  .service-card-primary { border-color:#dc8273; background:#fff0e9; }

  /* Keep each product's identity and status without a full-screen cover. */
  .project-grid { grid-template-columns:1fr; gap:20px; }
  .project-card { border-radius:18px; }
  .project-card .project-visual { min-height:0; height:132px; padding:20px 26px; justify-content:center; }
  .project-card .project-visual-top,.project-card .project-visual-bottom { display:none; }
  .project-card .project-identity { padding:0; }
  .project-card .project-identity>img { width:auto; max-width:245px; max-height:58px; }
  .project-card .support-diagram { width:220px; }
  .project-card .support-diagram>span { width:42px; height:42px; border-radius:10px; }
  .project-card-body { padding:21px; }
  .project-status { font-size:11px; padding:5px 9px; margin-bottom:13px; }
  .project-card h3 { font-size:25px; }
  .project-card h3 a { display:inline-flex; align-items:center; min-height:44px; }
  .project-card .project-full-name { margin-top:0; font-size:13px; }
  .project-summary { font-size:16px; line-height:1.6; margin-top:8px; }
  .project-card .project-capabilities { display:none; }
  .project-card-links { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; margin-top:18px; }
  .project-card-link { flex:0 0 100%; padding:12px 0; margin:0; font-size:14px; }
  .project-destination { font-size:13px; min-height:44px; padding-block:8px; }
  .work-next-step { margin-top:24px; padding-top:0; border:0; }

  .process .section-heading { margin-bottom:30px; }
  .process-grid { grid-template-columns:1fr; gap:0; padding:0; }
  .process-grid article { position:relative; display:grid; grid-template-columns:32px minmax(0,1fr); gap:5px 18px; border:0; padding:0 0 28px; }
  .process-grid article:last-child { padding-bottom:0; }
  .process-grid article>span { grid-column:1; grid-row:1 / 3; display:flex; align-items:center; justify-content:center; width:32px; height:32px; border:1px solid #69808d; border-radius:50%; color:#f48773; font-size:11px; line-height:1; }
  .process-grid h3 { grid-column:2; margin:3px 0 0; font-size:21px; line-height:1.25; }
  .process-grid p { grid-column:2; font-size:15px; line-height:1.6; color:#d2dce1; }
  .pricing-grid,.about-grid,.faq-grid,.consultation-grid,.fit-grid,.quote-grid,.service-hero-grid { grid-template-columns:1fr; gap:28px; }
  .pricing h2 { font-size:32px; }
  .pricing .text-link { margin-top:18px; font-size:14px; }
  .pricing-breakdown article { padding:18px 0; gap:15px; }
  .pricing-breakdown h3 { font-size:20px; }
  .pricing-breakdown p { font-size:15px; line-height:1.6; margin-top:7px; }

  .founder-card { min-height:0; display:flex; align-items:center; gap:17px; padding:20px; border-radius:14px; }
  .founder-mark { flex:none; width:58px; height:auto; margin:0; }
  .founder-mark img { width:58px; }
  .founder-card .founder-name { font-size:21px; line-height:1.3; }
  .founder-card p { font-size:13px; }
  .founder-tag { display:none; }
  .about-copy h2 { font-size:32px; }
  .about-copy>p:not(.eyebrow) { font-size:16px; line-height:1.65; margin-top:17px; }
  .professional-links { gap:12px; margin-top:22px; }
  .professional-links>a { min-height:44px; border:1px solid var(--line); padding:8px 14px; border-radius:8px; font-size:14px; }
  .faq-item summary { min-height:64px; padding:19px 0; font-size:16px; line-height:1.5; gap:20px; }
  .faq-answer p { font-size:16px; line-height:1.65; padding-bottom:22px; }

  .consultation h2 { font-size:34px; max-width:360px; }
  .booking-grid { grid-template-areas:"intro" "card"; }
  .contact-card { padding:24px 20px 18px; border-radius:18px; }
  .contact-card h3 { font-size:24px; line-height:1.3; margin:0 0 15px; }
  .contact-card>p { font-size:15px; line-height:1.65; }
  .contact-action { font-size:15px; margin-top:23px; }
  .booking-card>.booking-provider-note { font-size:13px; line-height:1.55; margin-top:14px; }
  .booking-email-fallback { padding-top:20px; }
  .booking-email-fallback>.text-link { font-size:13px; gap:12px; }
  .contact-address-row { gap:12px; }
  .contact-address { display:inline-flex; align-items:center; min-height:44px; font-size:14px; text-decoration-thickness:1px; }
  .copy-email { font-size:13px; padding-inline:14px; }
  .contact-card>.copy-status:empty { min-height:0; margin:0; }
  .contact-card>.copy-status { font-size:13px; }

  /* A thumb-reachable action appears only while browsing the page's content. */
  .mobile-consultation {
    display:flex;
    position:fixed;
    z-index:25;
    left:16px;
    right:16px;
    bottom:calc(12px + env(safe-area-inset-bottom, 0px));
    box-shadow:0 6px 28px #10213229;
    min-height:54px;
    margin:0;
  }
  .site-footer { padding-top:42px; }
  .footer-main { grid-template-columns:1fr; gap:30px; padding-bottom:28px; }
  .footer-brand>a { max-width:205px; }
  .footer-brand>p { display:none; }
  .footer-brand .professional-links>a { border-color:#526470; font-size:13px; }
  .footer-links { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
  .footer-links .footer-label { grid-column:1 / -1; margin-bottom:12px; }
  .footer-links a { display:flex; align-items:center; min-height:44px; font-size:14px; }
  .footer-email { font-size:16px; overflow-wrap:anywhere; }
  .footer-contact a { min-height:44px; align-items:center; }
  .footer-bottom { align-items:start; gap:13px; font-size:12px; padding-bottom:calc(24px + env(safe-area-inset-bottom, 0px)); }
  .footer-bottom>span:nth-child(2) { display:none; }
  .footer-bottom a { display:inline-flex; align-items:center; min-height:44px; }

  .breadcrumbs { font-size:12px; flex-wrap:wrap; margin-bottom:26px; gap:8px; }
  .breadcrumbs>a { display:inline-flex; align-items:center; min-height:44px; }
  .service-hero,.project-hero { padding-top:10px; padding-bottom:42px; }
  .service-hero h1,.project-hero h1 { font-size:40px; letter-spacing:-.045em; overflow-wrap:anywhere; }
  .service-lead,.project-overview { font-size:16px; line-height:1.65; margin-top:20px; }
  .service-hero .button { width:100%; font-size:15px; }
  .scope-grid { grid-template-columns:1fr; gap:28px; }
  .scope-grid h3 { font-size:22px; }
  .scope-grid p,.fit-list li,.quote-factors li { font-size:16px; line-height:1.65; }
  .quote-factors h3 { font-size:23px; }
  .example-note { margin-top:30px; padding:22px; }
  .project-hero-grid { gap:28px; }
  .project-visual-hero { min-height:200px; padding:24px; border-radius:16px; }
  .project-visual-hero .project-visual-bottom { display:none; }
  .project-visual-hero .project-identity { padding:20px 0 8px; }
  .project-hero-actions { gap:8px 20px; }
  .project-hero-actions a { font-size:14px; min-height:44px; }
  .project-facts { gap:20px; margin-top:28px; padding-top:24px; }
  .project-facts strong { font-size:17px; }
  .project-facts ul { font-size:14px; gap:8px 18px; }
  .project-flow { margin-top:28px; }
  .project-status-note { padding:22px; }
  .project-status-note>p:not(.eyebrow) { font-size:16px; line-height:1.65; }
  .related-links { gap:8px; }
  .related-links a { min-height:44px; }
  .legal-page { padding-top:32px; }
  .legal-page h1 { font-size:38px; }
}

@media (max-width:359px) {
  .container { width:calc(100% - 32px); }
  .brand { width:160px; }
  .hero.container { padding:36px 20px 30px; }
  .hero h1 { font-size:34px; }
  .service-card { padding:19px 14px; column-gap:12px; grid-template-columns:27px minmax(0,1fr) 18px; }
  .service-card h3 { font-size:18px; }
  .project-card-body { padding:18px; }
  .project-card .project-identity>img { max-width:215px; }
}
