/* Shared interaction layer: preserve TalkEast's paper, bridge and teal palette. */
html{scroll-padding-block-start:calc(var(--te-header-height,120px) + 12px)}
main{min-width:0}
main:focus{outline:none}
header nav,header .wrap,header .header-inner,.row,.fr,.reqgrid,.prose{min-width:0}
html :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible,
html .drop:focus-within{outline:3px solid #fffcf6;outline-offset:2px;box-shadow:0 0 0 6px #164b4d}
.te-skip-link,.skip{position:fixed;inset-block-start:10px;inset-inline-start:16px;z-index:100;max-width:calc(100vw - 32px);padding:.8rem 1rem;border-radius:6px;background:#164b4d;color:#fffcf6;font:600 1rem/1.4 var(--sans,system-ui,sans-serif);transform:translateY(calc(-100% - 30px));text-decoration:none}
.te-skip-link:focus,.skip:focus{top:10px;transform:none}
header nav a{display:inline-flex;align-items:center;min-height:44px}
header .brand{min-height:44px}
.mini,.wechat-contact button,.copyline button{min-height:44px}
.check{min-height:44px;padding-block:.3rem;cursor:pointer}
.check input{margin-block-start:.2rem}
.te-field-error{display:block;margin:.2rem 0 0;color:#9a3028;font-size:.875rem;line-height:1.5}
html [aria-invalid="true"]{border-color:#9a3028;border-width:2px}
form[aria-busy="true"]{cursor:progress}
form[aria-busy="true"] button[type="submit"]{cursor:progress}
.contact a,.wechat-contact input{overflow-wrap:anywhere}
textarea,select,input{max-width:100%}
.cal,.prices{font-variant-numeric:tabular-nums}
.cal :is(th,td),.prices :is(th,td){overflow-wrap:anywhere;hyphens:auto}
.te-table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
footer{padding-block-end:max(0px,env(safe-area-inset-bottom,0px))}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .te-field-error{color:#ffb7ab}:root:not([data-theme="light"]) [aria-invalid="true"]{border-color:#ffb7ab}}
:root[data-theme="dark"] .te-field-error{color:#ffb7ab}
:root[data-theme="dark"] [aria-invalid="true"]{border-color:#ffb7ab}
@media(max-width:760px){
  body>header>.wrap,body>.site-header>.header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand language" "nav action";align-items:center;gap:.35rem .75rem;padding-block:.55rem;min-height:0}
  header .brand{grid-area:brand;justify-self:start;font-size:1.2rem;gap:.35rem}
  header .te-language-switch{grid-area:language;margin:0;justify-self:end;max-width:100%;font-size:.8rem}
  header .te-language-switch summary{min-height:44px;gap:.35rem;padding:.35rem .45rem}
  body>header nav,body>.site-header .site-nav{grid-area:nav;display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;gap:.15rem;margin:0;max-width:100%;white-space:nowrap;scrollbar-width:thin;font-size:.84rem}
  header nav a,header nav .optional,header nav .prices-link{display:inline-flex;flex:none;padding:.35rem .5rem}
  body>.site-header .site-nav :is(.optional,.prices-link){display:inline-flex}
  header nav a:first-child{padding-inline-start:0}
  body>header>.wrap>.btn,body>.site-header>.header-inner>.button{grid-area:action;justify-self:end;margin:0;max-width:min(47vw,13rem);min-height:44px;padding:.45rem .7rem;font-size:.82rem;line-height:1.3;text-align:center;white-space:normal;text-wrap:balance}
  .row>.btn{max-width:100%;white-space:normal;text-align:center}
  .facts{gap:.45rem 1rem}
  .cal :is(th,td),.prices :is(th,td){padding:.7rem .35rem;font-size:.86rem}
  .prices td.p{font-size:1.05rem;white-space:normal}
  .fab{max-width:calc(100vw - 32px);font-size:.85rem;padding:.65rem .85rem}
  body:has(.fab) footer{padding-block-end:calc(4.5rem + env(safe-area-inset-bottom,0px))}
}
@media(max-width:380px){
  header .brand svg{width:25px}
  header .te-language-switch summary{font-size:.76rem}
  .te-language-switch .te-language-options{min-width:12rem}
  .row>.btn{flex:1 1 auto}
  .fr{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{scroll-behavior:auto!important}}
@media(forced-colors:active){html :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible,html .drop:focus-within{outline:3px solid Highlight;box-shadow:none}.te-field-error{color:CanvasText}}
@media print{.te-skip-link{display:none}}
