/* ETS-SL mobile refinements. Load after the component styles; same site and URL. */
@media (max-width:980px) {
  html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
  .js .site-header #main-nav { max-height:var(--ets-menu-height,calc(100dvh - 88px)); overflow-y:auto; overscroll-behavior-y:contain; scroll-padding-block:12px; -webkit-overflow-scrolling:touch; }
  .site-header #main-nav>a, .site-header #main-nav summary { min-height:48px; }
  .site-header #main-nav .nav-services a { display:flex; align-items:center; min-height:46px; line-height:1.5; }
  .site-header #main-nav .nav-services>div { min-width:0; }
  .menu-toggle { min-width:84px; min-height:44px; }
  .text-link, .journal-back, .contact-email, .spotlight-source-link>a { min-height:44px; display:inline-flex; align-items:center; }
  .footer-grid a:not(.brand) { min-height:44px; display:flex; align-items:center; margin-bottom:3px; }
  .footer-bottom a { min-height:44px; display:inline-flex; align-items:center; }
  .journal-pagination .page-numbers { min-width:44px; min-height:44px; }
  .project-links a { display:flex; flex-direction:column; justify-content:center; min-height:48px; }
  .home-intro a { display:inline-flex; align-items:center; min-height:44px; }
  .breadcrumb { display:inline-flex; align-items:center; min-height:44px; margin-bottom:20px; }
  .thematic-hero .breadcrumb { margin-bottom:16px; }
  .inquiry-form input:not([type=checkbox]), .inquiry-form select, .inquiry-form textarea { font-size:16px; min-height:49px; }
  .inquiry-form .consent { min-height:44px; padding-block:7px; }
  .inquiry-form .consent input { min-width:18px; width:18px; height:18px; }
  .inquiry-form textarea { min-height:165px; }
  .spotlight-source-link>a, .article-layout a, .spotlight-status-detail { overflow-wrap:anywhere; }
  .spotlight-source-link>a { line-height:1.65; }
  .article-layout .wp-block-table, .article-layout .article-table { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
  .article-cover, .thematic-visual, .spotlight-card, .journal-card, .service-feature { min-width:0; }
}
@media (max-width:800px) {
  .thematic-hero>.wrap { gap:29px; }
  .thematic-visual { max-width:560px; }
  .thematic-visual figcaption { font-size:10px; line-height:1.65; }
  .article-content.article-layout { width:calc(100% - 48px); max-width:850px; margin-inline:auto; }
  .spotlight-verification { gap:8px 17px; font-size:12px; }
  .article-meta { font-size:12px; }
}
@media (max-width:600px) {
  .hero-content { padding-block:44px 43px; }
  .hero-premium h1 { font-size:clamp(34px,8.5vw,43px); line-height:1.12; margin-bottom:25px; }
  .hero-premium .lead { font-size:17px; line-height:1.72; margin-bottom:0; }
  .hero-premium .eyebrow { margin-bottom:22px; font-size:10px; }
  .hero-premium .actions { margin-top:26px; gap:15px 22px; }
  .hero-service-tags { margin-top:25px; padding-top:19px; gap:9px 18px; font-size:12px; }
  .hero-system.service-dock { margin-top:27px; padding:18px; }
  .hero-system.service-dock .system-nodes, .hero-system .service-dock .system-nodes { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .service-dock .system-nodes>a { min-height:60px; padding:10px 11px; flex-direction:row; justify-content:flex-start; gap:10px; font-size:12.5px; text-align:left; }
  .service-dock .system-nodes>a>span { max-width:none; min-height:0; line-height:1.45; overflow-wrap:normal; }
  .hero-system.service-dock .system-nodes svg, .hero-system .service-dock .system-nodes svg { width:21px; height:21px; }
  .hero-system.service-dock .system-caption { font-size:9px; letter-spacing:.075em; margin-bottom:15px; }
  .section, .situations { padding-block:54px; }
  .service-showcase { margin-top:28px; gap:22px; }
  .service-showcase .service-image { aspect-ratio:1.8; }
  .service-showcase .service-body { padding:25px; }
  .service-showcase .service-body h3 { font-size:27px; line-height:1.23; }
  .service-showcase .service-body p { font-size:16px; line-height:1.8; }
  .service-showcase .service-body ul { font-size:15px; line-height:1.75; }
  .service-showcase .service-body .text-link { min-height:44px; }
  .service-showcase .image-label { font-size:9px; }
  .audience-panel { padding:30px 26px; }
  .audience-panel h3 { font-size:32px; }
  .approach-band, .home-faq { padding-block:54px; }
  .approach-grid>*>span { margin-bottom:16px; }
  .faq-list summary { min-height:52px; font-size:17px; line-height:1.55; padding-block:19px; }
  .faq-list summary::after { top:18px; }
  .homeoffice-banner { padding-block:37px; }
  .homeoffice-tags span { font-size:12px; }
  .technology-brands>a { min-height:140px; }
  .technology-brands span { font-size:12px; }
  .ets-planner .planner-options button { min-height:52px; font-size:14px; }
  .ets-planner .planner-audience-options label>span { min-height:46px; }
  .ets-planner .planner-intro, .ets-planner .planner-panel { padding:27px 24px; }
  .ets-planner .planner-count, .ets-planner .planner-selected { font-size:14px; }
  .ets-planner .planner-hint { font-size:12px; }
  .page-hero { padding-block:22px 38px; }
  .thematic-hero h1 { font-size:clamp(33px,8.2vw,39px); }
  .thematic-hero .lead { font-size:17px; line-height:1.78; }
  .thematic-hero .actions .button, .thematic-hero .actions .text-link { font-size:14px; }
  .thematic-photo>img:first-child { aspect-ratio:16/10; }
  .thematic-visual .thematic-inset { right:10px; bottom:10px; border-width:3px; }
  .thematic-sketch { width:98%; }
  .journal-card-body, .spotlight-card { padding:24px; }
  .journal-card-body h3 { font-size:26px; }
  .journal-meta { font-size:12px; }
  .spotlight-grid { gap:21px; }
  .spotlight-card { gap:18px; }
  .spotlight-image { min-height:150px; padding:10px; }
  .spotlight-image>img { height:150px; max-width:280px; }
  .spotlight-card h3 { font-size:25px; line-height:1.25; }
  .spotlight-card .text-link { font-size:14px; min-height:44px; }
  .spotlight-status { font-size:11px; padding:5px 8px; }
  .spotlight-area { font-size:11px; }
  .product-spotlight-note { font-size:13px; }
  .article-hero h1 { font-size:clamp(32px,8.3vw,38px); line-height:1.18; }
  .article-hero .lead { font-size:17px; line-height:1.8; }
  .article-content.article-layout, .article-content .article-layout { width:calc(100% - 40px); font-size:17px; }
  .article-layout h2 { font-size:28px; }
  .article-cover { margin-top:27px; }
  .spotlight-single .article-cover { aspect-ratio:1.7; }
  .spotlight-single .article-cover>img { padding:14px; object-fit:contain; }
  .spotlight-status-detail { font-size:14px; line-height:1.75; }
  .spotlight-source-link { margin-bottom:0; }
  .contact-layout { gap:30px; }
  .contact-layout aside>h2 { font-size:31px; }
  .form-grid { gap:0; }
  .inquiry-form label { font-size:14px; margin-bottom:22px; }
  .inquiry-form .button { min-height:52px; width:100%; }
  .footer-grid { gap:29px; }
  .footer-grid h2 { margin-bottom:13px; font-size:13px; }
  .footer-grid p { font-size:14px; }
}
@media (max-width:370px) {
  .hero-system.service-dock { padding:16px; }
  .service-dock .system-nodes>a { font-size:12px; padding-inline:9px; gap:8px; }
  .hero-system.service-dock .system-nodes svg, .hero-system .service-dock .system-nodes svg { width:20px; height:20px; }
  .service-showcase .service-body, .journal-card-body, .spotlight-card { padding:23px; }
  .ets-planner .planner-panel, .ets-planner .planner-intro { padding-inline:22px; }
}
@media (orientation:landscape) and (max-height:500px) and (max-width:980px) {
  .js .site-header .header-inner { height:58px; }
  .brand-logo { width:72px; height:48px; max-width:72px; max-height:48px; }
  .brand-caption { font-size:8px; max-width:130px; }
  .menu-toggle { min-height:44px; padding-block:8px!important; }
  .hero-content { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:0 28px; padding-block:24px; }
  .hero-content>*:not(.hero-system) { grid-column:1; }
  .hero-premium h1 { font-size:37px; line-height:1.13; margin-bottom:20px; }
  .hero-premium .eyebrow { font-size:9px; margin-bottom:17px; }
  .hero-premium .lead { font-size:16px; line-height:1.75; }
  .hero-premium .actions { margin-top:23px; gap:15px; }
  .hero-premium .button { font-size:13px; padding:13px 17px; min-height:48px; }
  .hero-premium .text-link { font-size:13px; }
  .hero-service-tags { font-size:11px; gap:8px 16px; margin-top:21px; padding-top:17px; }
  .hero-system.service-dock { grid-column:2; grid-row:1/span 5; align-self:start; margin:0; width:100%; max-width:none!important; padding:14px; }
  .hero-system.service-dock .system-nodes, .hero-system .service-dock .system-nodes { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .service-dock .system-nodes>a { flex-direction:row; text-align:left; justify-content:flex-start; min-height:52px; padding:8px 7px; gap:8px; font-size:11.5px; }
  .service-dock .system-nodes>a>span { min-height:0; line-height:1.45; overflow-wrap:normal; }
  .hero-system.service-dock .system-nodes svg, .hero-system .service-dock .system-nodes svg { width:20px; height:20px; }
  .hero-system.service-dock .system-caption { font-size:8px; margin-bottom:10px; }
  .section, .situations, .approach-band, .home-faq { padding-block:48px; }
  .page-hero, .article-hero { padding-top:25px; }
  .page-hero .breadcrumb, .article-hero .breadcrumb { margin-bottom:14px; }
}

/* Targeted final polish: touch targets also on tablet; complete copy stays on detail. */
@media (max-width:980px) {
  .service-showcase .service-body .text-link { min-height:44px; }
}
@media (max-width:600px) {
  .spotlight-body>p:not(.spotlight-area) { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; line-clamp:4; overflow:hidden; }
}

/* Persistent top contact strip and branding/navigation header. */
.dev-strip { position:sticky; top:var(--ets-admin-offset,0px); z-index:40; }
.site-header { top:calc(var(--ets-admin-offset,0px) + var(--ets-topline-height,35px)); }
.admin-bar .dev-strip { top:var(--ets-admin-offset,32px); }
.admin-bar .site-header { top:calc(var(--ets-admin-offset,32px) + var(--ets-topline-height,35px)); }
@media(max-width:782px) {
  .admin-bar .dev-strip { top:var(--ets-admin-offset,46px); }
  .admin-bar .site-header { top:calc(var(--ets-admin-offset,46px) + var(--ets-topline-height,35px)); }
}
@media(max-width:600px) {
  .site-header { top:calc(var(--ets-admin-offset,0px) + var(--ets-topline-height,31px)); }
  .admin-bar .site-header { top:calc(var(--ets-admin-offset,46px) + var(--ets-topline-height,31px)); }
}


/* Public telephone contact; keep both contact links visible in the sticky strip. */
.header-contacts { display:flex; align-items:center; gap:22px; }
.header-contacts a { white-space:nowrap; }
.header-contacts .header-phone { font-weight:650; font-variant-numeric:tabular-nums; }
.footer-grid .footer-phone { color:#fff; font-size:21px; font-weight:600; letter-spacing:-.015em; margin-top:22px; }
.footer-grid .footer-phone + .footer-email { margin-top:9px; }
.contact-layout .contact-phone { display:inline-flex; align-items:center; min-height:44px; font-size:23px; font-weight:650; color:var(--blue); letter-spacing:-.025em; }
@media(max-width:760px) {
  .dev-strip .wrap>span:first-child, .dev-strip .dev-label { display:none; }
  .dev-strip .wrap { min-height:44px; }
  .header-contacts { width:100%; justify-content:space-between; gap:16px; }
  .dev-strip .header-contacts a { display:inline-flex; align-items:center; min-height:44px; font-size:12px; }
  .dev-strip .header-contacts .header-phone { font-size:13px; }
}


/* Original high-resolution logo, proportionate framing and restrained motion. */
.brand-logo-frame { position:relative; display:block; flex:none; width:110px; height:73px; overflow:visible; isolation:isolate; }
.brand-logo-frame .brand-logo { background:transparent; padding:0; border:0; border-radius:0; box-shadow:none; display:block; width:100%; height:100%; max-width:none; max-height:none; object-fit:contain; image-rendering:auto; filter:drop-shadow(1px 1px 0 #173558) drop-shadow(2px 3px 0 #0a1d3940) drop-shadow(3px 5px 3px #06142b4d); }
.brand-logo-frame::before { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; opacity:0; background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.08) 47%,rgba(255,255,255,.5) 50%,rgba(255,255,255,.08) 53%,transparent 60%); background-size:300% 100%; background-position:150% 0; -webkit-mask:url("/wp-content/themes/ets-sl/assets/images/ets-sl-logo-transparent.png") center/contain no-repeat; mask:url("/wp-content/themes/ets-sl/assets/images/ets-sl-logo-transparent.png") center/contain no-repeat; }
@keyframes ets-logo-sheen { 0% { opacity:0; background-position:150% 0; } 15% { opacity:1; } 80% { opacity:1; } 100% { opacity:0; background-position:-150% 0; } }
.brand-logo-frame::after { content:none; }
@media(prefers-reduced-motion:no-preference) {
  .site-header .brand-logo-frame::before { animation:ets-logo-sheen 8s linear .3s 1 both; }
  .hero-system .system-nodes svg { transition:transform .18s ease,color .18s ease; }
  .button, .nav-contact { transition:background-color .18s ease,box-shadow .18s ease,transform .18s ease; }
  .journal-card, .spotlight-card, .service-feature { transition:box-shadow .22s ease,border-color .22s ease; }
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .button:hover, .nav-contact:hover { transform:translateY(-2px); box-shadow:0 8px 22px #2152a425; }
  .hero-system .system-nodes>a:hover svg { transform:translateY(-2px); }
  .journal-card:hover, .spotlight-card:hover, .service-feature:hover { border-color:#b6cce4; box-shadow:0 14px 38px #173e7812; }
}
.ets-reveal { opacity:0; transform:translateY(12px); transition:opacity .48s ease,transform .48s cubic-bezier(.2,.7,.3,1); transition-delay:var(--ets-reveal-delay,0ms); }
.ets-reveal.is-visible, .ets-reveal:focus-within { opacity:1; transform:none; }
@media(max-width:980px) { .brand-logo-frame { width:90px; height:59px; } .footer-brand .brand-logo-frame { width:110px; height:73px; } }
@media(orientation:landscape) and (max-height:500px) and (max-width:980px) { .site-header .brand-logo-frame { width:72px; height:48px; } }
@media(prefers-reduced-motion:reduce) {
  .brand-logo-frame, .brand-logo-frame::before, .brand-logo-frame::after, .button, .nav-contact, .hero-system .system-nodes svg, .journal-card, .spotlight-card, .service-feature, .ets-reveal { animation:none!important; transition:none!important; }
  .brand-logo-frame::before, .brand-logo-frame::after { opacity:0!important; }
  .ets-reveal { opacity:1; transform:none; }
}


/* Partner technologies shown as real, sourced product illustrations. */
.technology-brands { grid-template-columns:repeat(3,minmax(0,1fr)); }
.technology-brands>a>img { max-width:165px; }
.service-image .device-inset { position:absolute; right:15px; top:15px; width:36%; max-width:170px; padding:10px; display:flex; flex-direction:column; align-items:center; gap:6px; overflow:hidden; background:#ffffffed; border:1px solid #fff; border-radius:4px; box-shadow:0 8px 22px #0b203422; }
.service-image .device-inset>img { display:block; width:100%; height:100px; object-fit:contain; transform:none!important; }
.service-image .device-inset small { position:relative; z-index:1; color:#214b7b; font-size:9px; line-height:1.4; font-weight:600; text-align:center; }
.service-image .device-inset-network>img { height:65px; object-fit:cover; transform:scale(1.35)!important; }
.equipment-showcase { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:30px; }
.equipment-device { min-width:0; margin:0; border:1px solid #dce5ee; background:#fff; box-shadow:0 8px 24px #173e7808; }
.equipment-picture { height:220px; overflow:hidden; background:#fff; padding:18px; }
.equipment-picture img { display:block; width:100%; height:100%; object-fit:contain; }
.equipment-picture-network img { object-fit:cover; transform:scale(1.1); }
.equipment-device figcaption { display:flex; flex-direction:column; gap:9px; padding:19px 23px 24px; border-top:1px solid #edf1f6; }
.equipment-device figcaption strong { color:#1b3f6c; font-size:17px; }
.equipment-device figcaption span { color:#5c7185; font-size:15px; line-height:1.7; }
.equipment-note { margin-top:17px; color:#60758a; font-size:12px; line-height:1.7; }
@media(max-width:980px) { .technology-rail .wrap { grid-template-columns:1fr; } }
@media(max-width:600px) {
  .technology-brands { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  .technology-brands>a { min-height:112px; padding:15px 9px; }
  .technology-brands>a>img { max-width:100%; height:48px; }
  .technology-brands span { font-size:10px; }
  .service-image .device-inset { width:34%; right:10px; top:10px; padding:7px; }
  .service-image .device-inset>img { height:72px; }
  .service-image .device-inset-network>img { height:46px; }
  .service-image .device-inset small { font-size:8px; }
  .equipment-showcase { grid-template-columns:1fr; gap:18px; }
  .equipment-picture { height:190px; }
}

@media print { .ets-reveal { opacity:1!important; transform:none!important; } .brand-logo-frame::before, .brand-logo-frame::after { display:none!important; } }

.omada-management { background:linear-gradient(130deg,#f0f5fb,#fff); }
.omada-experience { margin:26px 0 0; padding:17px 20px; border-left:3px solid #2152a4; background:#edf3fa; font-size:16px; line-height:1.75; color:#395571; }
.datacenter-brands { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.datacenter-brands>span { display:inline-flex; align-items:center; min-height:40px; padding:8px 15px; border:1px solid #ccdae8; background:#fff; color:#214b7c; font-size:14px; font-weight:600; }

.physical-network-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.network-route-sketch { display:block; width:100%; max-width:360px; height:90px; margin-bottom:20px; fill:none; stroke:#2152a4; stroke-width:1.5; }
.physical-network-grid .card>p { font-size:16px; line-height:1.75; }
@media(max-width:760px) { .physical-network-grid { grid-template-columns:1fr; gap:18px; } }


.platform-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.platform-device { height:200px; margin:0 0 22px; background:#fff; padding:15px; }
.platform-device img { width:100%; height:100%; object-fit:contain; }
.platform-card h3 { font-size:27px; }
.platform-card>p:not(.eyebrow) { font-size:16px; line-height:1.75; }
.use-case-note { margin-top:28px; padding:24px 27px; border-left:3px solid #2152a4; background:#eef4fb; }
.use-case-note h3 { font-size:24px; margin-bottom:13px; }
.use-case-note p { font-size:16px; line-height:1.75; }
.journal-editorial .solution-device-image>img { object-fit:contain; padding:18px; background:#fff; }
.journal-editorial .solution-example .solution-sizing { font-size:14px!important; color:#60758a; line-height:1.7!important; }
.solution-source { display:inline-flex; align-items:center; min-height:44px; margin-top:8px; color:#617a94; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
@media(max-width:760px) { .platform-grid { grid-template-columns:1fr; gap:18px; } .platform-device { height:180px; } .use-case-note { padding:21px; } .journal-editorial .solution-example h3 { font-size:27px; } }

.antibot-check { max-width:420px; padding:20px 22px; margin:24px 0; background:#f1f5fa; border:1px solid #d3dfec; border-radius:3px; }
.inquiry-form .antibot-check label { display:block; margin:0 0 10px; color:#234669; font-size:15px; }
.inquiry-form .antibot-check input[type=text] { width:130px; min-height:46px; margin-bottom:9px; background:#fff; }
.antibot-check .form-notice { margin:0; padding:0; border:0; background:none; font-size:12px; color:#5a728b; line-height:1.6; }

/* Related reading uses text cards rather than repeating article cover imagery. */
.journal-grid.journal-compact { gap:18px; margin-top:24px; }
.journal-compact .journal-card-body { padding:22px; }
.journal-compact .journal-card-body h3 { font-size:22px; line-height:1.3; margin-bottom:12px; }
.journal-grid.journal-compact .journal-card-body>p:not(.journal-meta) { font-size:15px; line-height:1.65; margin-bottom:16px; }
.journal-compact .journal-meta { margin-bottom:12px; }

/* Same transparent brand asset on dark footer; light bevel keeps its edges legible. */
.site-footer .footer-brand .brand-logo { background:transparent; padding:0; border:0; border-radius:0; box-shadow:none; filter:drop-shadow(1px 1px 0 #b9d2f080) drop-shadow(2px 3px 0 #061426) drop-shadow(3px 5px 3px #ffffff24); }
