/* Responsive refinement pass: smoother tablet / half-screen desktop scaling */
.site-footer a,
.privacy-link { color: var(--blue-soft); font-weight: 700; text-decoration: none; }
.site-footer a:hover,
.privacy-link:hover { color: var(--text); }
.contact-card { min-width: 0; overflow: hidden; }
.contact-card span,
.contact-card strong,
.contact-card p { overflow-wrap: anywhere; }
.contact-card img { flex: 0 0 auto; }
.contact-card-button { width: 100%; appearance: none; color: inherit; font: inherit; text-align: left; background: transparent; cursor: pointer; }
.contact-card-button:hover { background: rgba(0,168,255,0.035); color: var(--blue-soft); }
.contact-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.contact-bg { display: none; }
.contact-card { min-height: 112px; border-left: 1px solid rgba(255,255,255,0.08); border-top: 1px solid rgba(255,255,255,0.08); }
.qr-card,
.slogan-card { grid-column: auto; }
.slogan-card { justify-content: flex-start; }
.slogan-card strong { font-size: clamp(1rem, 1.35vw, 1.35rem); }
.contact-overlay { position: fixed; inset: 0; z-index: 140; display: none; align-items: center; justify-content: center; padding: 18px; background: rgba(0,0,0,0.62); backdrop-filter: blur(8px); }
.contact-overlay.open { display: flex; }
.contact-window { width: min(100%, 900px); max-height: calc(100vh - 36px); overflow: auto; border: 1px solid rgba(0,168,255,0.42); border-radius: 20px; background: radial-gradient(circle at 50% 0%, rgba(0,168,255,0.14), transparent 36%), rgba(5, 8, 13, 0.98); box-shadow: 0 24px 90px rgba(0,0,0,0.62), 0 0 42px rgba(0,168,255,0.14); }
.contact-window-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 24px 24px 16px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.contact-window-header h2 { font-size: clamp(1.75rem, 4vw, 3rem); line-height: 1; }
.contact-close { width: 40px; height: 40px; border: 1px solid rgba(255,255,255,0.12); border-radius: 12px; background: rgba(255,255,255,0.04); color: var(--text); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.contact-direct-line { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 14px 24px; border-bottom: 1px solid rgba(255,255,255,0.08); color: var(--muted); }
.contact-direct-line strong { color: var(--text); }
.contact-direct-line button { border: 1px solid rgba(0,168,255,0.55); border-radius: 999px; background: rgba(0,168,255,0.08); color: var(--blue-soft); padding: 0.62rem 0.9rem; font-weight: 800; cursor: pointer; }
.contact-form { padding: 22px 24px 24px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.contact-form label { display: grid; gap: 7px; color: var(--silver); font-size: 0.92rem; font-weight: 750; }
.contact-form input,
.contact-form select,
.contact-form textarea { width: 100%; border: 1px solid rgba(255,255,255,0.12); border-radius: 12px; background: rgba(255,255,255,0.045); color: var(--text); padding: 0.82rem 0.9rem; font: inherit; outline: none; }
.contact-form select option { color: #06101a; }
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus { border-color: rgba(0,168,255,0.72); box-shadow: 0 0 0 3px rgba(0,168,255,0.12); }
.form-wide,
.form-consent { grid-column: 1 / -1; }
.form-consent { display: flex !important; grid-template-columns: auto 1fr; align-items: flex-start; gap: 10px !important; margin-top: 16px; color: var(--muted) !important; font-weight: 600 !important; }
.form-consent input { width: auto; margin-top: 5px; }
.form-hidden { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.contact-status { margin-top: 14px; font-size: 0.92rem; }
.contact-status[data-state="ok"] { color: var(--blue-soft); }
.contact-status[data-state="error"] { color: #ff9a9a; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.contact-actions .button-primary,
.contact-actions .button-ghost { border: 0; cursor: pointer; }
.contact-actions .button-ghost { border: 1px solid rgba(255,255,255,0.12); }
.services-grid { grid-template-columns: repeat(3, 1fr); }
.service-card { border-top: 0; border-right: 1px solid rgba(255,255,255,0.08); }
.service-card:nth-child(3n) { border-right: 0; }
.service-card:nth-child(n + 4) { border-top: 1px solid rgba(255,255,255,0.08); }
.service-card p { max-width: 28ch; }
.projects-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding: 18px; }
.project-card { grid-template-columns: minmax(132px, 170px) minmax(0, 1fr); gap: 20px; padding: 18px; min-height: 190px; }
.project-thumb { width: 160px; height: 160px; object-fit: contain; }
.project-body h3 { font-size: clamp(1.55rem, 2.1vw, 2rem); max-width: 12ch; }
.project-body p { max-width: 46ch; }
@media (max-width: 1280px) and (min-width: 1081px) {
  .contact-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-card { min-height: 104px; border-left: 0; border-top: 1px solid rgba(255,255,255,0.08); }
  .qr-card,
  .slogan-card { grid-column: 1 / -1; }
  .slogan-card { justify-content: flex-start; }
  .slogan-card strong { font-size: 1.16rem; }
}
@media (max-width: 1180px) and (min-width: 1081px) {
  .hero-frame { grid-template-columns: minmax(120px, 0.55fr) minmax(0, 2.9fr) minmax(120px, 0.55fr); }
  .hero-core { min-width: 0; padding-inline: clamp(1rem, 2.4vw, 2rem); }
  .hero-brand-wrap { min-width: 0; }
  .hero-title { font-size: clamp(3.65rem, 8vw, 6.2rem); max-width: 100%; overflow-wrap: normal; white-space: nowrap; }
  .hero-headline { font-size: clamp(1.55rem, 3.15vw, 2.35rem); }
}
@media (max-width: 1080px) {
  html, body { width:100% !important; max-width:100% !important; overflow-x:hidden !important; }
  body { padding-bottom:82px !important; }
  .container { width:min(calc(100% - 20px), var(--container)) !important; max-width:calc(100vw - 20px) !important; }
  .header-row { min-height:68px !important; gap:8px !important; }
  .brand { min-width:0 !important; flex:1 1 auto !important; }
  .brand img { height:42px !important; max-width:min(245px, calc(100vw - 92px)) !important; object-fit:contain; object-position:left center; }
  .nav-toggle { display:block; }
  .site-nav { position:absolute; right:16px; top:calc(100% + 8px); width:min(320px, calc(100vw - 32px)); display:none; flex-direction:column; align-items:stretch; gap:0; border:1px solid rgba(255,255,255,0.09); border-radius:16px; background:rgba(5,8,13,0.98); overflow:hidden; box-shadow:0 24px 40px rgba(0,0,0,0.35); }
  .site-nav.open { display:flex; }
  .site-nav a { padding:0.95rem 1rem; border-bottom:1px solid rgba(255,255,255,0.06); }
  .site-nav a:last-child { border-bottom:0; }
  .hero { overflow:hidden !important; padding-bottom:18px !important; }
  .hero-frame { display:block !important; width:min(calc(100% - 20px), var(--container)) !important; max-width:calc(100vw - 20px) !important; margin-inline:auto !important; border-bottom:0 !important; overflow:hidden !important; }
  .trace-panel { display:none !important; }
  .hero-core { width:100% !important; max-width:100% !important; min-height:auto !important; padding:44px 14px 28px !important; overflow:hidden !important; border:1px solid rgba(0,168,255,.13) !important; border-radius:0 0 18px 18px !important; }
  .hero-brand-wrap { width:100% !important; max-width:100% !important; min-width:0 !important; }
  .hero-house { width:min(70vw,250px) !important; max-width:100% !important; }
  .hero-title { display:flex !important; justify-content:center !important; width:100% !important; max-width:100% !important; font-size:clamp(2.05rem,8vw,3.3rem) !important; line-height:.92 !important; letter-spacing:-.06em !important; white-space:nowrap !important; overflow:hidden !important; }
  .hero-slogan { font-size:clamp(.85rem,3.2vw,1.05rem) !important; line-height:1.25 !important; }
  .hero-divider { margin:16px auto 20px !important; }
  .hero-headline { max-width:100% !important; font-size:clamp(1.35rem,5vw,1.8rem) !important; line-height:1.12 !important; }
  .hero-copy { max-width:100% !important; font-size:clamp(.94rem,3.6vw,1rem) !important; line-height:1.5 !important; }
  .hero-actions { width:100% !important; display:grid !important; grid-template-columns:1fr !important; gap:10px !important; margin-top:22px !important; }
  .hero .hero-actions .button-primary, .hero .hero-actions .button-ghost { width:100% !important; min-width:0 !important; max-width:100% !important; padding-inline:.75rem !important; font-size:.82rem !important; }
  .hero-trust-line { max-width:100% !important; white-space:normal !important; font-size:.72rem !important; line-height:1.35 !important; }
  .quick-contact-panel { width:100% !important; max-width:100% !important; margin-top:14px !important; }
  .quick-contact-actions { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:8px !important; width:100% !important; }
  .quick-contact-button { width:100% !important; min-width:0 !important; text-align:center !important; padding:.72rem .35rem !important; font-size:.74rem !important; }
  .quick-contact-problem { display:none !important; }
  .what-send-box { width:100% !important; max-width:100% !important; margin-top:6px !important; padding:14px !important; text-align:left !important; }
  .what-send-box strong { font-size:.86rem !important; }
  .what-send-box p { font-size:.92rem !important; line-height:1.45 !important; }
  .sticky-contact-bar { grid-template-columns:repeat(3,minmax(0,1fr)) !important; left:8px !important; right:8px !important; bottom:8px !important; gap:6px !important; }
  .sticky-contact-bar [data-sticky-problem] { display:none !important; }
  .sticky-contact-bar a, .sticky-contact-bar button { font-size:.72rem !important; padding:.72rem .35rem !important; }
  .services.section-panel, .projects.section-panel, .about, .trust-section, .contact-strip { max-width:calc(100vw - 20px) !important; margin-inline:auto !important; }
  .section-label { font-size:clamp(1.1rem,7vw,1.45rem) !important; line-height:1.1 !important; }
  .services-grid { grid-template-columns:1fr; }
  .service-card, .service-card:nth-child(2n), .service-card:nth-child(3n) { border-right:0; }
  .service-card + .service-card { border-top:1px solid rgba(255,255,255,0.08); }
  .projects-grid { grid-template-columns:1fr; }
  .project-card { grid-template-columns:1fr; }
  .project-thumb { width:100%; height:auto; aspect-ratio:1 / 1; }
  .project-body h3 { max-width:none; }
  .contact-strip { grid-template-columns:1fr; }
  .qr-card, .slogan-card { grid-column:auto; }
  .contact-bg { display:block; }
  .contact-card { min-height:auto; padding:20px 18px; border-left:0; border-top:1px solid rgba(255,255,255,0.08); }
  .slogan-card { justify-content:flex-start; }
  .footer-row { align-items:flex-start; }
  .contact-overlay { padding:10px; align-items:stretch; }
  .contact-window { max-height:calc(100vh - 20px); }
  .contact-window-header, .contact-direct-line, .contact-form { padding-left:16px; padding-right:16px; }
  .contact-direct-line, .contact-actions { align-items:stretch; flex-direction:column; }
  .form-grid { grid-template-columns:1fr; }
  .contact-actions .button-primary, .contact-actions .button-ghost { width:100%; }
}
@media (max-width: 390px) {
  .hero-title { font-size:clamp(1.9rem,7.5vw,2.9rem) !important; }
  .quick-contact-button, .sticky-contact-bar a, .sticky-contact-bar button { font-size:.66rem !important; }
}

/* NERDHOUSE-mobile-cleanup branch: stronger phone-only layout guard. */
@media (max-width: 760px) {
  html, body { width:100% !important; max-width:100% !important; overflow-x:hidden !important; }
  body { padding-bottom:84px !important; }
  .container, .hero .container, .services.section-panel, .projects.section-panel, .about, .trust-section, .contact-strip { width:calc(100vw - 20px) !important; max-width:calc(100vw - 20px) !important; margin-left:auto !important; margin-right:auto !important; }
  .header-row { width:100% !important; max-width:100% !important; min-height:68px !important; padding-left:12px !important; padding-right:12px !important; }
  .brand { min-width:0 !important; max-width:calc(100vw - 92px) !important; }
  .brand img { width:auto !important; max-width:calc(100vw - 104px) !important; height:42px !important; object-fit:contain !important; object-position:left center !important; }
  .nav-toggle { display:block !important; flex:0 0 auto !important; }
  .site-nav { position:absolute !important; right:12px !important; top:calc(100% + 8px) !important; width:min(320px, calc(100vw - 24px)) !important; max-width:calc(100vw - 24px) !important; display:none !important; flex-direction:column !important; align-items:stretch !important; gap:0 !important; z-index:80 !important; }
  .site-nav.open { display:flex !important; }
  .hero, .hero-frame { width:100% !important; max-width:100% !important; overflow:hidden !important; }
  .hero-frame { display:block !important; border-bottom:0 !important; }
  .trace-panel { display:none !important; }
  .hero-core { width:100% !important; max-width:100% !important; min-height:auto !important; display:flex !important; flex-direction:column !important; align-items:center !important; justify-content:flex-start !important; text-align:center !important; padding:38px 14px 24px !important; overflow:hidden !important; border:1px solid rgba(0,168,255,0.14) !important; border-radius:0 0 20px 20px !important; }
  .hero-brand-wrap { width:100% !important; max-width:100% !important; min-width:0 !important; overflow:hidden !important; }
  .hero-house { width:min(68vw,230px) !important; max-width:100% !important; margin:0 auto 12px !important; }
  .hero-title { width:100% !important; max-width:100% !important; display:flex !important; justify-content:center !important; font-size:clamp(2.15rem,12.2vw,3.6rem) !important; line-height:.92 !important; letter-spacing:-.065em !important; white-space:nowrap !important; overflow:hidden !important; }
  .hero-slogan, .hero-headline, .hero-copy { width:100% !important; max-width:100% !important; }
  .hero-slogan { font-size:clamp(.86rem,3.6vw,1rem) !important; line-height:1.25 !important; }
  .hero-divider { width:100% !important; margin:16px auto 22px !important; }
  .hero-divider::before, .hero-divider::after { width:min(27vw,110px) !important; }
  .hero-headline { font-size:clamp(1.32rem,6.15vw,1.8rem) !important; line-height:1.13 !important; letter-spacing:-.025em !important; }
  .hero-copy { margin-top:16px !important; font-size:clamp(.95rem,3.9vw,1.02rem) !important; line-height:1.48 !important; overflow-wrap:break-word !important; }
  .hero-actions { width:min(100%, 320px) !important; max-width:320px !important; display:grid !important; grid-template-columns:1fr !important; gap:9px !important; margin:22px auto 0 !important; align-items:stretch !important; justify-items:stretch !important; }
  .hero-actions .button-primary, .hero-actions .button-ghost, .hero .hero-actions .button-primary, .hero .hero-actions .button-ghost { width:100% !important; max-width:100% !important; min-width:0 !important; min-height:42px !important; padding:.68rem .75rem !important; font-size:.72rem !important; line-height:1.1 !important; white-space:normal !important; text-align:center !important; }
  .quick-contact-panel, .hero-core [data-quick-contact] { width:100% !important; max-width:100% !important; margin:14px auto 0 !important; display:flex !important; flex-direction:column !important; align-items:stretch !important; justify-content:center !important; gap:10px !important; }
  .hero-core .quick-contact-actions, .hero-core [data-quick-contact] .quick-contact-actions, .quick-contact-actions { display:none !important; }
  .hero-core .quick-contact-button, .hero-core .quick-contact-problem { display:none !important; }
  .what-send-box, .hero-core [data-quick-contact] .what-send-box { width:100% !important; max-width:100% !important; margin:0 auto !important; padding:13px 14px !important; text-align:left !important; border-radius:14px !important; }
  .what-send-box strong { font-size:.82rem !important; line-height:1.2 !important; margin-bottom:5px !important; }
  .what-send-box p { font-size:.9rem !important; line-height:1.42 !important; }
  .hero-trust-line { width:100% !important; max-width:100% !important; margin:14px auto 0 !important; white-space:normal !important; text-align:center !important; font-size:.68rem !important; line-height:1.32 !important; overflow-wrap:break-word !important; }
  .sticky-contact-bar { position:fixed !important; left:8px !important; right:8px !important; bottom:8px !important; width:auto !important; z-index:100 !important; display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:6px !important; padding:8px !important; border:1px solid rgba(0,168,255,.35) !important; border-radius:18px !important; background:rgba(5,8,13,.96) !important; }
  .sticky-contact-bar [data-sticky-problem] { display:none !important; }
  .sticky-contact-bar a, .sticky-contact-bar button { width:100% !important; min-width:0 !important; max-width:100% !important; padding:.72rem .25rem !important; font-size:.66rem !important; line-height:1.05 !important; text-align:center !important; white-space:nowrap !important; }
  .services-grid, .projects-grid, .about-panel, .contact-strip { grid-template-columns:1fr !important; }
}
@media (max-width: 360px) {
  .hero-title { font-size:clamp(1.95rem,11.2vw,3.1rem) !important; }
  .sticky-contact-bar a, .sticky-contact-bar button { font-size:.6rem !important; }
}
