/* Shared footer and responsive integrity layer v1.0.16. */
.site-footer,
.site-console-footer {
  --sf-gold: #e9c886;
  --sf-gold-bright: #f6dfa9;
  --sf-text: #f2efe8;
  --sf-muted: #b6b1a7;
  --sf-line: rgba(233, 200, 134, .16);
  box-sizing: border-box;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans Thai", Tahoma, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.site-footer *, .site-footer *::before, .site-footer *::after,
.site-console-footer *, .site-console-footer *::before, .site-console-footer *::after { box-sizing: border-box; }
.site-footer {
  position: relative;
  isolation: isolate;
  width: 100%;
  margin: 0;
  padding: 0;
  color: var(--sf-text);
  background: radial-gradient(ellipse at 0 0, rgba(174, 129, 54, .12), transparent 55%), linear-gradient(145deg, #151411, #0c0d0e 55%, #0a0a0b);
  border-top: 1px solid rgba(233, 200, 134, .44);
  line-height: 1.65;
  text-align: left;
}
.site-footer::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  background: linear-gradient(90deg, transparent, #aa8549 22%, #f3dca9 50%, #aa8549 78%, transparent);
  pointer-events: none;
}
.site-footer a, .site-console-footer a { text-decoration: none; }
.site-footer a { color: inherit; }
.site-footer a:focus-visible, .site-console-footer a:focus-visible {
  outline: 2px solid var(--sf-gold-bright);
  outline-offset: 4px;
  border-radius: 5px;
}
.site-footer p, .site-footer h2, .site-footer h3 { margin: 0; }
.site-footer .site-footer__inner { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.site-footer__icon { display: inline-block; width: 18px; height: 18px; flex: 0 0 auto; vertical-align: middle; }
.site-footer .site-footer__intro {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 24px 0 23px; border-bottom: 1px solid var(--sf-line);
}
.site-footer__intro-copy { min-width: 0; }
.site-footer .site-footer__eyebrow { display: block; margin-bottom: 7px; color: var(--sf-gold); font-size: 10px; font-weight: 600; letter-spacing: 1.8px; line-height: 1.5; }
.site-footer .site-footer__headline { font-size: clamp(22px, 2.2vw, 28px); font-weight: 750; line-height: 1.45; letter-spacing: -.45px; color: var(--sf-text); }
.site-footer .site-footer__intro-text { margin-top: 4px; font-size: 12px; line-height: 1.8; color: var(--sf-muted); }
.site-footer__actions { display: flex; align-items: center; flex: 0 0 auto; gap: 10px; }
.site-footer a.site-footer__button {
  display: inline-flex; justify-content: center; align-items: center; gap: 9px;
  min-height: 46px; padding: 11px 17px; border: 1px solid transparent; border-radius: 9px;
  font-size: 13px; font-weight: 700; line-height: 1.5; text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.site-footer a.site-footer__button--gold { color: #211b10; background: linear-gradient(115deg, #eed29a, #dbb66e); border-color: #efd39b; box-shadow: 0 3px 18px rgba(196, 157, 85, .12); }
.site-footer a.site-footer__button--gold:hover { background: #f6dfa9; box-shadow: 0 4px 22px rgba(196, 157, 85, .24); }
.site-footer a.site-footer__button--outline { color: var(--sf-gold-bright); border-color: rgba(233, 200, 134, .3); background: rgba(233, 200, 134, .035); }
.site-footer a.site-footer__button--outline:hover { background: rgba(233, 200, 134, .1); border-color: var(--sf-gold); }
.site-footer .site-footer__grid { display: grid; grid-template-columns: 1.5fr .86fr 1fr 1.08fr; gap: 30px; padding: 27px 0 23px; }
.site-footer__grid > * { min-width: 0; }
.site-footer a.site-footer__brand { display: flex; align-items: center; gap: 11px; width: fit-content; max-width: 100%; }
.site-footer .site-footer__logo-frame { display: grid; place-items: center; flex: 0 0 54px; width: 54px; height: 54px; padding: 4px; border: 1px solid rgba(233, 200, 134, .24); border-radius: 11px; background: #131312; }
.site-footer img.site-footer__logo { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: contain; border: 0; border-radius: 5px; }
.site-footer__brand-text { display: block; min-width: 0; }
.site-footer .site-footer__brand-kicker { display: block; margin-bottom: 3px; font-size: 8px; font-weight: 600; line-height: 1.5; letter-spacing: 1.2px; color: var(--sf-gold); }
.site-footer .site-footer__name { display: block; font-size: 18px; font-weight: 750; line-height: 1.4; color: var(--sf-text); overflow-wrap: anywhere; }
.site-footer .site-footer__description { margin: 13px 0 12px; font-size: 12px; color: var(--sf-muted); line-height: 1.95; }
.site-footer__tags { display: flex; flex-wrap: wrap; gap: 5px; }
.site-footer__tags span { display: inline-flex; padding: 3px 8px; font-size: 10px; line-height: 1.6; color: #c8bb9f; border: 1px solid rgba(233, 200, 134, .16); border-radius: 4px; background: rgba(233, 200, 134, .035); }
.site-footer .site-footer__heading { display: flex; align-items: center; gap: 9px; margin: 1px 0 11px; font-size: 13px; font-weight: 700; line-height: 1.5; color: var(--sf-text); }
.site-footer .site-footer__heading::before { content: ""; flex: 0 0 3px; width: 3px; height: 12px; border-radius: 1px; background: var(--sf-gold); }
.site-footer ul.site-footer__links { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.site-footer .site-footer__links li { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid rgba(255, 255, 255, .055); }
.site-footer .site-footer__links li:last-child { border-bottom: 0; }
.site-footer .site-footer__links a { display: flex; justify-content: space-between; align-items: center; gap: 7px; min-height: 37px; padding: 7px 0; font-size: 12px; font-weight: 400; line-height: 1.7; color: var(--sf-muted); transition: color .18s ease; }
.site-footer .site-footer__links a:hover { color: var(--sf-gold-bright); }
.site-footer .site-footer__links .site-footer__icon { width: 13px; height: 13px; color: #9b8760; }
.site-footer__contact-list { display: grid; gap: 7px; }
.site-footer a.site-footer__contact-card { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 9px 11px; border: 1px solid rgba(233, 200, 134, .14); border-radius: 8px; background: rgba(255, 255, 255, .025); transition: border-color .18s ease, background-color .18s ease; }
.site-footer a.site-footer__contact-card:hover { border-color: rgba(233, 200, 134, .55); background: rgba(233, 200, 134, .05); }
.site-footer__contact-card > span:last-child { min-width: 0; }
.site-footer__contact-icon { display: grid; place-items: center; width: 27px; height: 27px; flex: 0 0 27px; color: var(--sf-gold); }
.site-footer .site-footer__contact-label { display: block; color: #ada79a; font-size: 9px; font-weight: 500; line-height: 1.5; letter-spacing: .5px; }
.site-footer .site-footer__contact-value { display: block; color: var(--sf-gold-bright); font-size: 16px; font-weight: 650; line-height: 1.5; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.site-footer a.site-footer__appointment { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 35px; margin-top: 3px; color: #b9ac91; font-size: 11px; line-height: 1.6; }
.site-footer a.site-footer__appointment:hover { color: var(--sf-gold-bright); }
.site-footer__appointment .site-footer__icon { width: 14px; height: 14px; }
.site-footer .site-footer__assurance { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 28px; padding: 11px 0; border-top: 1px solid var(--sf-line); border-bottom: 1px solid var(--sf-line); }
.site-footer__assurance > span { display: inline-flex; align-items: center; gap: 7px; color: #c5bdad; font-size: 11px; line-height: 1.6; }
.site-footer__assurance > span .site-footer__icon { width: 14px; height: 14px; color: var(--sf-gold); }
.site-footer a.site-footer__back-top { display: inline-flex; align-items: center; gap: 7px; min-height: 28px; margin-left: auto; color: var(--sf-gold); font-size: 10px; }
.site-footer__back-top .site-footer__icon { width: 14px; height: 14px; }
.site-footer .site-footer__legal { padding: 13px 0 11px; }
.site-footer .site-footer__legal p { color: #a29d93; font-size: 10px; line-height: 1.85; }
.site-footer .site-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; padding: 13px 0 17px; border-top: 1px solid rgba(255, 255, 255, .07); }
.site-footer .site-footer__copyright { min-width: 0; color: #aaa395; font-size: 10px; line-height: 1.8; overflow-wrap: anywhere; }
.site-footer__copyright > span { margin-left: 4px; color: #9a958b; white-space: nowrap; }
.site-credits { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; gap: 0; font-family: inherit; line-height: 1.5; }
.site-credits .site-credits__item { display: inline-flex; align-items: baseline; gap: 6px; padding: 0 14px; border-left: 1px solid rgba(233, 200, 134, .2); white-space: nowrap; }
.site-credits .site-credits__item:first-child { border-left: 0; padding-left: 0; }
.site-credits .site-credits__item:last-child { padding-right: 0; }
.site-credits .site-credits__label { color: #aaa395; font-size: 10px; font-weight: 400; }
.site-credits a.site-credits__link { display: inline-block; color: var(--sf-gold-bright, #f6dfa9); font-size: 13px; font-weight: 700; text-decoration: none; text-underline-offset: 4px; transition: color .18s ease; }
.site-credits a.site-credits__link strong { color: inherit; font-weight: 700; }
.site-credits a.site-credits__link:hover { color: #fff; text-decoration: underline; }
/* Compact credits on every console, login and installer screen. */
.site-console-footer { margin: 30px 0 0; padding: 18px 0 5px; border-top: 1px solid #dce3ec; }
.site-console-footer__meta { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 18px; flex-wrap: wrap; color: #64748b; font-size: 10px; line-height: 1.8; }
.site-console-footer .site-credits { justify-content: flex-start; margin-top: 12px; }
.site-console-footer .site-credits__label { color: #64748b; }
.site-console-footer .site-credits__item { border-left-color: #d8dfe8; }
.site-console-footer .site-credits__link { color: #785516; }
.site-console-footer .site-credits__link:hover { color: #3d2b0d; }
.site-console-footer a:focus-visible { outline-color: #8f6c27; }
.site-console-footer--dark { border-top-color: rgba(233, 200, 134, .22); margin-top: 24px; padding-top: 16px; }
.site-console-footer--dark .site-console-footer__meta { justify-content: center; color: #a9b5c7; text-align: center; }
.site-console-footer--dark .site-credits { justify-content: center; }
.site-console-footer--dark .site-credits__label { color: #a9b5c7; }
.site-console-footer--dark .site-credits__item { border-left-color: rgba(233, 200, 134, .22); }
.site-console-footer--dark .site-credits__link { color: #f2d79e; }
.site-console-footer--dark .site-credits__link:hover { color: #fff; }
.site-console-footer--dark a:focus-visible { outline-color: #f2d79e; }
@media (max-width: 1050px) {
  .site-footer .site-footer__intro { gap: 18px; }
  .site-footer__actions { gap: 8px; }
  .site-footer a.site-footer__button { padding: 11px 13px; font-size: 12px; }
  .site-footer .site-footer__grid { grid-template-columns: 1.3fr 1fr; gap: 24px 36px; }
  .site-footer__brand-column { order: 0; }
  .site-footer__contact { order: 1; }
  .site-footer__nav { order: 2; }
  .site-footer .site-footer__bottom { flex-wrap: wrap; }
}
@media (max-width: 760px) {
  .site-footer .site-footer__intro { display: block; padding: 22px 0 20px; }
  .site-footer__actions { margin-top: 15px; }
  .site-footer .site-footer__headline { font-size: 23px; }
  .site-footer .site-footer__assurance { gap: 9px 18px; }
  .site-footer__assurance > span { font-size: 10px; }
  .site-footer .site-footer__bottom { display: grid; grid-template-columns: 1fr; gap: 12px; }
  .site-footer .site-credits { justify-content: flex-start; }
}
@media (max-width: 540px) {
  .site-footer .site-footer__inner { padding: 0 16px; }
  .site-footer .site-footer__eyebrow { font-size: 8px; letter-spacing: 1.25px; margin-bottom: 6px; }
  .site-footer .site-footer__headline { font-size: 21px; letter-spacing: -.35px; }
  .site-footer .site-footer__intro-text { font-size: 11px; }
  .site-footer__actions { display: grid; grid-template-columns: 1.35fr 1fr; gap: 8px; }
  .site-footer a.site-footer__button { padding: 10px 8px; font-size: 11px; gap: 6px; min-height: 44px; }
  .site-footer__button--gold > .site-footer__icon:last-child { display: none; }
  .site-footer .site-footer__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 18px; padding: 22px 0 18px; }
  .site-footer__brand-column { grid-column: 1 / -1; order: 0; }
  .site-footer__nav { order: 1; }
  .site-footer__contact { grid-column: 1 / -1; order: 2; }
  .site-footer .site-footer__name { font-size: 20px; }
  .site-footer .site-footer__description { font-size: 12px; margin-top: 10px; margin-bottom: 10px; line-height: 1.8; }
  .site-footer .site-footer__heading { margin-bottom: 8px; font-size: 12px; gap: 7px; }
  .site-footer .site-footer__links a { min-height: 40px; font-size: 11px; }
  .site-footer .site-footer__links .site-footer__icon { width: 11px; height: 11px; }
  .site-footer__contact-list { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
  .site-footer a.site-footer__contact-card { padding: 10px 8px; gap: 6px; }
  .site-footer__contact-icon { width: 21px; flex-basis: 21px; }
  .site-footer__contact-icon .site-footer__icon { width: 17px; height: 17px; }
  .site-footer .site-footer__contact-value { font-size: 14px; }
  .site-footer .site-footer__contact-label { font-size: 8px; }
  .site-footer a.site-footer__appointment { justify-content: flex-start; gap: 10px; margin-top: 4px; }
  .site-footer .site-footer__assurance { display: grid; grid-template-columns: 1fr; gap: 6px; padding: 12px 0; position: relative; }
  .site-footer a.site-footer__back-top { position: absolute; right: 0; bottom: 9px; font-size: 9px; gap: 3px; }
  .site-footer .site-footer__assurance > span:last-of-type { padding-right: 78px; }
  .site-footer .site-footer__legal { padding: 12px 0; }
  .site-footer .site-footer__legal p { font-size: 9px; line-height: 1.85; }
  .site-footer .site-footer__bottom { padding-top: 12px; padding-bottom: 20px; gap: 14px; }
  .site-footer .site-footer__copyright { font-size: 9px; text-align: center; }
  .site-credits, .site-footer .site-credits, .site-console-footer .site-credits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; gap: 0; justify-content: stretch; }
  .site-credits .site-credits__item { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 0 7px; min-width: 0; white-space: normal; text-align: center; }
  .site-credits .site-credits__item:first-child { padding-left: 0; }
  .site-credits .site-credits__item:last-child { padding-right: 0; }
  .site-credits .site-credits__label { font-size: 9px; white-space: nowrap; }
  .site-credits a.site-credits__link { font-size: 14px; }
  .site-console-footer__meta { display: grid; justify-content: center; text-align: center; gap: 2px; font-size: 9px; }
}
/* Clearance only where the original page has its own fixed mobile contact bar. */
@media (max-width: 640px) {
  .site-footer--mobile-cta { padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) {
  .site-footer *, .site-console-footer * { transition: none !important; }
}
@media print {
  .site-footer { background: #fff; color: #111; border-top: 1px solid #777; padding-bottom: 0; }
  .site-footer__intro, .site-footer__assurance, .site-footer__grid { display: none !important; }
  .site-footer .site-footer__legal p, .site-footer .site-footer__copyright,
  .site-credits .site-credits__label, .site-credits a.site-credits__link { color: #333; }
}

/* ===== 1.0.16 · Site-wide responsive integrity layer ===== */
html,body{max-width:100%}
html{overflow-x:clip}
body{overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@supports not (overflow:clip){html,body{overflow-x:hidden}}
body :where(main,header,footer,section,article,aside,nav,div,form,fieldset){min-width:0}
body :where(img,picture,video,canvas,svg,iframe,embed,object){max-width:100%}
body :where(img,video,canvas){height:auto}
body :where(h1,h2,h3,h4,h5,h6,p,a,li,dt,dd,td,th,code,pre,label,button){overflow-wrap:anywhere}
body :where(input,select,textarea,button){max-width:100%}
body :where(pre){max-width:100%;overflow:auto}
body :where(table){max-width:100%}
@media(max-width:768px){
  body :where(table){display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  body :where(iframe[width],video[width],canvas[width]){width:100%!important}
  body :where(pre){white-space:pre-wrap;word-break:break-word}
  body :where([class*="container"],[class*="wrapper"],[class*="-inner"],[class$="-wrap"],[class*="__inner"]){max-width:100%}
  body :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){font-size:16px}
}

/* v1.0.18 · managed 30-link network */
.site-footer .site-footer__partner-network{position:relative;margin:0 0 18px;padding:20px;border:1px solid rgba(233,200,134,.17);border-radius:14px;background:radial-gradient(circle at 8% 0,rgba(221,180,99,.08),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.008));overflow:hidden}.site-footer .site-footer__partner-network::after{content:"";position:absolute;inset:0 auto auto 20px;width:78px;height:1px;background:linear-gradient(90deg,#d9b46d,transparent);opacity:.75}.site-footer__partner-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.site-footer__partner-kicker{display:block;margin-bottom:4px;color:var(--sf-gold);font-size:8px;font-weight:750;line-height:1.5;letter-spacing:1.6px}.site-footer .site-footer__partner-head h3{margin:0;color:var(--sf-text);font-size:16px;font-weight:750;line-height:1.5;letter-spacing:-.15px}.site-footer .site-footer__partner-head p{margin:3px 0 0;color:#817a6c;font-size:10px;line-height:1.7}.site-footer__partner-count{flex:0 0 auto;padding:5px 8px;border:1px solid rgba(233,200,134,.18);border-radius:999px;color:#a99a7d;background:#11110f;font-size:8px;font-weight:750;letter-spacing:1px}.site-footer__partner-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.site-footer a.site-footer__partner-link{display:grid;grid-template-columns:6px minmax(0,1fr) 12px;align-items:center;gap:7px;min-width:0;padding:8px 9px;border:1px solid rgba(233,200,134,.13);border-radius:8px;background:linear-gradient(180deg,#151514,#111110);box-shadow:inset 0 1px rgba(255,255,255,.018);transition:border-color .18s ease,background .18s ease,transform .18s ease}.site-footer a.site-footer__partner-link:hover{border-color:rgba(233,200,134,.37);background:#191816;transform:translateY(-1px)}.site-footer a.site-footer__partner-link:focus-visible{outline:2px solid var(--sf-gold);outline-offset:2px}.site-footer__partner-dot{display:block;width:4px;height:4px;border-radius:50%;background:#dcb566;box-shadow:0 0 9px rgba(220,181,102,.42)}.site-footer .site-footer__partner-link strong{min-width:0;color:#d8d0c0;font-size:9px;font-weight:650;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-footer__partner-arrow{color:#a98543;font-size:9px;line-height:1;text-align:right}.site-footer a.site-footer__partner-link:hover strong{color:#f0dfba}.site-footer a.site-footer__partner-link:hover .site-footer__partner-arrow{color:#e2bd72}
@media(max-width:1050px){.site-footer__partner-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.site-footer .site-footer__partner-network{padding:16px}.site-footer__partner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__partner-head{align-items:flex-end}.site-footer .site-footer__partner-link strong{font-size:9.5px}}
@media(max-width:370px){.site-footer__partner-grid{grid-template-columns:1fr}.site-footer__partner-count{display:none}}
