/* Homepage header/footer: sole shared style owner. Build-time HTML, no runtime injection. */


.desktop-shell {
  color-scheme: light;
  --ink: var(--home-token-ink, #142b3a);
  --ink-2: var(--home-token-ink-2, #334d5d);
  --muted: var(--home-token-muted, #5e7482);
  --muted-2: var(--home-token-muted-2, #607684);
  --line: var(--home-token-line, #d9e3e9);
  --line-strong: var(--home-token-line-strong, #c7d6df);
  --line-soft: rgba(15, 71, 104, 0.11);
  --paper: #ffffff;
  --surface: var(--home-token-surface, #eef3f6);
  --surface-blue: var(--home-token-surface-blue, #eaf3f8);
  --brand: #1975ce;
  --brand-hover: #105da7;
  --brand-deep: var(--home-token-brand-deep, #075a91);
  --navy: var(--home-token-navy, #06466f);
  --price: var(--home-token-price, #df522d);
  --focus: rgba(19, 101, 151, 0.28);
  --search-border: #c9d7e0;
  --search-border-hover: #a8c0ce;
  --search-border-soft: #dee7ec;
  --search-icon: #536f7e;
  --radius-tag: var(--home-token-radius-tag, 4px);
  --radius-control: var(--home-token-radius-control, 6px);
  --radius-section: var(--home-token-radius-section, 8px);
  --radius-float: var(--home-token-radius-float, 4px);
  --image-divider: #e1e8ec;
  --shadow-card: var(--home-token-shadow-card, 0 12px 34px rgba(7, 42, 64, 0.1), 0 2px 8px rgba(7, 42, 64, 0.06));
  --shadow-float: var(--home-token-shadow-float, 0 24px 60px rgba(3, 30, 48, 0.18), 0 4px 14px rgba(3, 30, 48, 0.1));
  --font-sans: "Site Noto", "Site Noto", "Source Han Sans SC", "Microsoft YaHei", sans-serif;
  display: block;
  flex-shrink: 0;
  width: 100%;
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.7;
  color: var(--ink);
  text-align: left;
  -webkit-font-smoothing: antialiased;
}.desktop-shell *, .desktop-shell *::before, .desktop-shell *::after { box-sizing: border-box; }
.desktop-shell a { color: inherit; text-decoration: none; }
.desktop-shell img { display: block; max-width: 100%; }
.desktop-shell strong { font-weight: 700; }
.desktop-shell p { text-wrap: pretty; }
.desktop-shell button, .desktop-shell input { font: inherit; margin: 0; }
.desktop-shell button { cursor: pointer; }
.desktop-shell :focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.desktop-shell .ui-icon { display: inline-block; flex: 0 0 auto; fill: currentColor; stroke: none; overflow: visible; }

.desktop-shell .page-width { width: 1240px; max-width:calc(100% - 100px); margin: 0 auto; }

.desktop-shell .utility-bar {
  height: 36px;
  border-bottom: 1px solid rgba(16, 48, 67, 0.08);
  background: #fff;
  color: var(--muted);
  font-size: 13px;
}
.desktop-shell .utility-inner { height: 36px; display: flex; align-items: center; justify-content: space-between; }
.desktop-shell .utility-inner p { display: flex; align-items: center; gap: 12px; margin: 0; }
.desktop-shell .utility-inner p strong { color: var(--ink-2); font-weight: 600; }
.desktop-shell .utility-inner nav { display: flex; align-items: center; height: 100%; }
.desktop-shell .utility-inner nav a { position: relative; padding: 0 13px; line-height: 36px; }
.desktop-shell .utility-inner nav a + a::before { content: ""; position: absolute; left: 0; top: 11px; width: 1px; height: 12px; background: var(--line); }

.desktop-shell .brand-header-wrap { height: 94px; background: var(--paper); }
.desktop-shell .brand-header { height: 94px; display: grid; grid-template-columns: 330px minmax(340px, 1fr) 300px; align-items: center; gap: 46px; }
.desktop-brand { display: inline-flex; flex-shrink: 0; align-items: center; gap: 10px; color: #102b46; text-decoration: none; white-space: nowrap; }
.desktop-brand img { display: block; width: 48px; height: 48px; flex: 0 0 48px; object-fit: contain; }
.desktop-brand .brand-copy { display: flex; flex-direction: column; gap: 2px; }
.desktop-brand .brand-copy strong { color: #102b46; font-size: 22px; line-height: 28px; font-weight: 700; }
.desktop-brand .brand-copy small { color: #5c7d9d; font-size: 12px; line-height: 18px; font-weight: 400; }
.desktop-shell .site-search { position: relative; height: 44px; }
.desktop-shell .site-search label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.desktop-shell .site-search input {
  width: 100%;
  height: 44px;
  padding: 0 96px 0 16px;
  border: 1px solid var(--line-strong);
  border-radius: var(--home-shell-radius, 6px);
  background: #fff;
  color: var(--ink);
  font-size: 14px;
  box-shadow: var(--home-shell-shadow, none);
}
.desktop-shell .site-search input::placeholder { color: #91a0a9; }
.desktop-shell .site-search button {
  position: absolute;
  right: 0;
  top: 0;
  width: 82px;
  height: 44px;
  border: 0;
  border-radius: var(--home-shell-radius, 0 6px 6px 0);
  background: var(--brand);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
}
.desktop-shell .header-phone { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 1px; padding-left: 43px; }
.desktop-shell .header-phone .header-phone-icon { position: absolute; left: 0; top: 5px; display: block; width: 28px; height: 28px; color: var(--price); }
.desktop-shell .header-phone-icon svg { display: block; width: 28px; height: 28px; fill: currentColor; stroke: none; }
.desktop-shell .header-phone span { color: var(--ink-2); font-size: 13px; font-weight: 600; }
.desktop-shell .header-phone strong { color: var(--brand); font-size: 26px; line-height: 1.25; letter-spacing: 0.025em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.desktop-shell .header-phone small { color: var(--price); font-size: 12px; font-weight: 600; }

.desktop-shell .main-nav-wrap { position: relative; z-index: 30; height: 46px; background: #0084ff; }
.desktop-shell .main-nav { height: 46px; display: flex; align-items: stretch; }
.desktop-shell .primary-nav { display: flex; align-items: stretch; justify-content: space-between; width: 100%; height: 46px; }
.desktop-shell .primary-nav > a, .desktop-shell .nav-menu-item > a { display: flex; align-items: center; justify-content: center; position: relative; height: 46px; padding: 0 4px; border: 0; border-radius: 0; background: transparent; color: #fff; font-size: 14px; line-height: 1.4; font-weight: 500; white-space: nowrap; transition: background-color 120ms ease; }
.desktop-shell .primary-nav > a.is-current, .desktop-shell .nav-menu-item > a.is-current, .desktop-shell .nav-menu-item.is-open > button { background: transparent; }
.desktop-shell .primary-nav > a.is-current::after, .desktop-shell .nav-menu-item > a.is-current::after { content: ""; position: absolute; bottom: 0; left: 10px; right: 10px; height: 3px; background: #fff; }
.desktop-shell .nav-menu-item { position: relative; }
.desktop-shell .nav-menu-item > a::before { content: ""; order:1; width:0; height:0; margin-left:4px; border-left:4px solid transparent; border-right:4px solid transparent; border-top:5px solid currentColor; flex-shrink:0; }
.desktop-shell .nav-menu-item.is-open > a::before { transform:rotate(180deg); }
.desktop-shell .mega-menu { position: absolute; left: 0; top: 100%; min-width: 174px; max-height: min(560px, 70vh); overflow-y: auto; display: grid; gap: 0; padding: 6px 0; background: #0084ff; border: 1px solid rgba(255,255,255,.16); border-top: 0; box-shadow: 0 3px 6px rgba(7,42,64,.12), 0 12px 24px rgba(7,42,64,.12); visibility: hidden; opacity: 0; pointer-events: none; }
.desktop-shell .nav-menu-item:nth-last-child(-n+4) .mega-menu { left: auto; right: 0; }
.desktop-shell .mega-menu a { display: flex; align-items: center; min-height: 44px; padding: 10px 18px; color: #fff; font-size: 14px; line-height: 24px; white-space: nowrap; }
.desktop-shell .mega-menu.route-menu { min-width: 186px; background: #0084ff; }
.desktop-shell .route-menu a { min-height: 46px; padding-inline: 22px; font-weight: 500; }
.desktop-shell .mega-menu .nav-brand-all { margin-top: 5px; border-top: 1px solid rgba(255,255,255,.24); }
.desktop-shell .nav-menu-item.is-open .mega-menu { visibility: visible; opacity: 1; pointer-events: auto; }
.desktop-shell .primary-nav a:focus-visible, .desktop-shell .primary-nav button:focus-visible { outline: 2px solid #fff; outline-offset: -4px; background: transparent; }
.desktop-shell .main-nav-wrap.is-condensed { box-shadow: 0 2px 6px rgba(4,31,48,.12); }

.desktop-shell.site-footer { border-top: 1px solid rgba(255, 255, 255, 0.14); background: var(--navy); color: rgba(255, 255, 255, 0.76); }
.desktop-shell .footer-main { display: grid; grid-template-columns: 2fr repeat(4, 1fr); gap: 46px; padding: 48px 0 42px; }
.desktop-shell .footer-brand .desktop-brand img { width: 48px; height: 48px; filter: none; opacity: 1; }
.desktop-shell .desktop-brand-footer .brand-copy strong { color: #fff; font-size: 18px; }
.desktop-shell .desktop-brand-footer .brand-copy small { color: #d0deed; font-size: 11px; }
.desktop-shell .footer-brand p { margin: 18px 0 0; font-size: 13px; line-height: 1.8; }
.desktop-shell .footer-license { display: flex; flex-direction: column; gap: 2px; color: rgba(255, 255, 255, 0.68); }
.desktop-shell .footer-license span { font-size: 12px; }
.desktop-shell .footer-license strong { color: #fff; font-size: 14px; font-weight: 600; letter-spacing: 0.02em; }
.desktop-shell .footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; font-size: 13px; }
.desktop-shell .footer-column > strong { margin-bottom: 5px; color: #fff; font-size: 14px; }
.desktop-shell .footer-column a { color: rgba(255, 255, 255, 0.78); }
.desktop-shell .footer-service a:first-of-type { color: #fff; font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums; }
.desktop-shell .footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.09); }
.desktop-shell .footer-bottom > div { min-height: 58px; display: flex; align-items: center; justify-content: space-between; color: rgba(255, 255, 255, 0.68); font-size: 12px; }

@media (hover: hover) and (pointer: fine) {
  .desktop-shell .utility-inner a:hover { color: var(--brand-hover); text-decoration: underline; text-underline-offset: 3px; }
  .desktop-shell .primary-nav > a:not(.is-current):hover,
.desktop-shell .nav-menu-item > a:not(.is-current):hover, .desktop-shell .mega-menu a:hover { background: transparent; color: #fff; }
  .desktop-shell .site-search button:hover { background: var(--brand-hover); }
}

@media (max-width: 1439px) {
  .desktop-shell .page-width { width: 1200px; }
  .desktop-shell .brand-header { grid-template-columns: 290px minmax(220px, 1fr) 230px; gap: 28px; }
}

@media (max-width: 1319px) {
  .desktop-shell .page-width { width: 1180px; }
  .desktop-shell .brand-header { grid-template-columns: 290px minmax(220px, 1fr) 230px; gap: 24px; }
  .desktop-shell .header-phone strong { font-size: 24px; letter-spacing: 0.015em; }
}

@media (prefers-reduced-motion: reduce) { .desktop-shell .mega-menu { transition: none; transform: none; } }

@media (max-width: 1199px) { .desktop-shell .main-nav-wrap, .desktop-shell .main-nav, .desktop-shell .primary-nav { height: auto; } .desktop-shell .main-nav { width: 100%; } .desktop-shell .primary-nav { flex-wrap: wrap; justify-content: flex-start; } }

/* Shared desktop service toolbar. */
.desktop-service { position:fixed; right:16px; bottom:84px; z-index:45; width:72px; box-sizing:border-box; background:#0084ff; border:0; border-radius:10px; padding:0; box-shadow:0 3px 12px #125da512; font-family:"Site Noto","Microsoft YaHei",sans-serif; }
.desktop-service .service-action { position:relative; display:grid; grid-template-rows:26px 20px; justify-items:center; align-content:center; align-items:center; gap:6px; width:72px; height:70px; box-sizing:border-box; padding:6px 0; border:0; background:transparent; color:#fff; font:400 13px/20px "Microsoft YaHei","PingFang SC",sans-serif; text-decoration:none; letter-spacing:0; text-shadow:none; cursor:pointer; transition:background-color .15s,color .15s; }
.desktop-service > a.service-action { color:#fff; }
.desktop-service .service-action:hover,.desktop-service .service-action:focus-visible,.desktop-service .service-action[aria-expanded="true"] { background:#fff; color:#0084ff; }
.desktop-service .service-action:focus-visible { outline:2px solid #0084ff; outline-offset:-4px; }
.desktop-service .service-action svg { display:block; width:26px; height:26px; flex:none; color:inherit; }
.desktop-service > .service-action:first-child { border-radius:10px 10px 0 0; }
.desktop-service > .service-action:first-child::after { content:""; position:absolute; top:12px; left:calc(50% + 11px); width:5px; height:5px; border:0; border-radius:50%; background:#f04444; pointer-events:none; }
.desktop-service > [data-service-top] { border-radius:0 0 10px 10px; }
.desktop-service .service-action[aria-controls="service-line"] svg { width:24px; height:24px; }
.desktop-service .service-action span { display:block; line-height:20px; white-space:nowrap; text-decoration:none; font-weight:400; letter-spacing:0; text-shadow:none; }
.desktop-service .service-item { position:relative; }
.desktop-service .service-item::before,.desktop-service > [data-service-top]::before { content:""; position:absolute; top:0; left:0; right:0; border-top:1px solid #ffffff40; pointer-events:none; z-index:1; }
.desktop-service > [data-service-top] { position:relative; }
.desktop-service .service-panel { position:absolute; right:calc(100% + 12px); bottom:var(--service-panel-bottom,0); top:var(--service-panel-top,auto); width:239px; box-sizing:border-box; padding:16px; background:#fff; border:var(--service-panel-border-width,1px) solid var(--service-panel-border-color,#e4e9ef); border-radius:6px; box-shadow:0 6px 24px #18344b14; color:#344555; text-align:center; }
.desktop-service .service-panel::after { content:""; position:absolute; left:100%; top:0; width:13px; height:100%; }
.desktop-service .service-panel[hidden] { display:none; }
.desktop-service .service-panel img:not(.service-social-logo):not(.service-qr-image) { display:block; width:205px; max-width:100%; height:auto; margin:0 auto; }
.desktop-service .service-panel p { margin:12px 0 0; font-size:13px; line-height:20px; }
.desktop-service .service-social-panel { --service-panel-border-width:2px; --service-panel-border-color:#0084ff; --service-panel-bottom:auto; --service-panel-top:0; }
.desktop-service .service-social-logo { display:block; width:44px; height:44px; object-fit:contain; margin:0 auto 8px; }
.desktop-service .service-social-title { display:block; font-size:15px; line-height:22px; color:#12334d; }
.desktop-service .service-social-subtitle { display:block; margin:2px 0 14px; font-size:11px; color:#7a8897; }
.desktop-service .service-qr-frame { position:relative; width:100%; aspect-ratio:1; overflow:hidden; background:white; }
.desktop-service .service-qr-frame .service-qr-image { display:block; width:100%; height:auto; }
.desktop-service .service-qr-whatsapp .service-qr-image { position:absolute; width:216.129%; max-width:none; left:-58.065%; top:-157.348%; }
.desktop-service .service-phone { width:280px; padding:18px; border:3px solid #0084ff; border-radius:6px; text-align:left; }
.desktop-service .service-phone > p { margin:0 0 14px; padding-bottom:10px; border-bottom:2px solid #0084ff; font-size:14px; line-height:20px; color:#52677f; }
.desktop-service .service-phone a { display:flex; align-items:center; gap:12px; padding:14px 12px; border:1px solid #e2eaf4; border-radius:6px; color:#123b5e; font-size:20px; font-weight:500; line-height:28px; text-decoration:none; white-space:nowrap; font-variant-numeric:tabular-nums; }
.desktop-service .service-phone a:hover,.desktop-service .service-phone a:focus-visible { background:#f3f8ff; border-color:#0084ff; }
.desktop-service .service-phone a svg { width:24px; height:24px; flex:none; color:#0084ff; }
.desktop-service .service-phone a strong { display:block; font:inherit; }
.desktop-service .service-phone a small { display:block; font-size:13px; font-weight:400; line-height:21px; color:#52677f; }
.desktop-service .service-phone .service-phone-hours { display:block; margin-top:12px; font-size:12px; color:#687785; line-height:20px; }
@media(max-width:600px) { .desktop-service {width:52px; bottom:76px;} .desktop-service .service-action {width:50px;height:72px;padding:0;font-size:12px;} .desktop-service .service-panel {max-width:calc(100vw - 84px);} .desktop-service .service-phone a {font-size:20px;} }
@media(prefers-reduced-motion:reduce) { .desktop-service .service-action {transition:none;} }

.desktop-chat { position:fixed; inset:0; margin:auto; padding:0; width:min(900px,calc(100vw - 32px)); height:min(680px,calc(100dvh - 40px)); max-width:none; max-height:none; border:1px solid #dbe4ed; border-radius:8px; background:#fff; box-shadow:0 12px 48px #102b463d; overflow:hidden; }
.desktop-chat[open] { display:flex; flex-direction:column; }
.desktop-chat::backdrop { background:rgb(16 43 70 / 18%); }
.desktop-chat-heading { display:flex; align-items:center; justify-content:space-between; flex:0 0 44px; padding:0 12px 0 18px; background:#1975ce; color:#fff; font:16px/24px "Site Noto","Microsoft YaHei",sans-serif; }
.desktop-chat-heading button { width:36px; height:36px; border:0; background:transparent; color:#fff; font:28px/1 sans-serif; cursor:pointer; }
.desktop-chat-heading button:hover { background:#105da7; }
.desktop-chat-heading button:focus-visible { outline:2px solid white; outline-offset:-3px; }
.desktop-chat iframe { display:block; flex:1; width:100%; min-height:0; border:0; background:#fff; }

@media (min-width:901px) and (max-width:1399px) {
  .container-1200, .guide-main, .catalog-main, [class~="max-w-[1360px]"], main[class*="max-w-"] { max-width:calc(100vw - 144px); margin-left:auto; margin-right:auto; }
}
