/* Shared finishing touches for secondary storefront pages. */
#root .ref-news-page>.ref-page-banner { min-height: 168px; }
#root .alaska-page-view>.ref-page-banner-compact { min-height: 158px; }
#root .pa-project-index>.ref-page-banner p { color: #eef5fb; }
#root .pa-project-empty {
  width: min(1000px, calc(100% - 48px));
  margin: 36px auto 52px;
  padding: clamp(28px, 5vw, 54px);
  display: grid;
  justify-items: center;
  text-align: center;
  border: 1px solid #dce5ec;
  border-radius: 8px;
  background: linear-gradient(145deg, #fff, #f6f9fc);
  box-shadow: 0 10px 30px #0b31510b;
}
#root .pa-project-empty-icon {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  margin-bottom: 16px;
  border-radius: 50%;
  background: #e9f2fa;
  color: #07519c;
}
#root .pa-project-empty-icon svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
#root .pa-project-empty-kicker,
#root .video-library-state-kicker,
#root .ref-news-empty-kicker { color: #d65b1c; font-size: 11px; font-weight: 800; letter-spacing: .1em; }
#root .pa-project-empty h2,
#root .video-library-state h2,
#root .ref-news-empty h2 { margin: 7px 0 9px; color: #0a3e70; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.25; }
#root .pa-project-empty p,
#root .video-library-state p,
#root .ref-news-empty p { max-width: 620px; margin: 0; color: #5f7183; font-size: 14px; line-height: 1.7; }
#root .pa-project-empty>div:last-child,
#root .video-library-state-actions,
#root .ref-news-empty>a { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
#root .pa-project-empty>div:last-child a,
#root .video-library-state-actions a,
#root .ref-news-empty>a { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: 0 17px; border: 1px solid #07519c; border-radius: 4px; background: #07519c; color: #fff; font-size: 13px; font-weight: 700; text-decoration: none; }
#root .pa-project-empty>div:last-child a+ a,
#root .video-library-state-actions a+ a { background: #fff; color: #07519c; }
#root .pa-project-empty>div:last-child a:hover,
#root .video-library-state-actions a:hover,
#root .ref-news-empty>a:hover { border-color: #d65b1c; background: #d65b1c; color: #fff; }
#root .pa-project-index .pa-project-empty { min-height: 0; }
#root .video-library-state { width: min(100%, 940px); min-height: 260px; margin: 0 auto; padding: 34px 24px; border: 1px solid #dce5ec; border-radius: 8px; background: linear-gradient(145deg, #fff, #f6f9fc); box-shadow: 0 10px 30px #0b31510b; }
#root .video-library-state-icon { width: 58px; height: 58px; display: grid; place-items: center; border: 1px solid #c8d9e8; border-radius: 50%; background: #eaf2f9; color: #07519c; font-size: 21px; padding-left: 3px; }
#root .video-library-state-actions a+a { border-color: #d8e2ea; background: #fff; color: #07519c; }
#root .ref-news-empty { width: min(840px, 100%); margin: 30px auto 55px; padding: clamp(26px, 5vw, 46px); border: 1px solid #dce5ec; border-radius: 8px; background: #fff; text-align: center; box-shadow: 0 10px 30px #0b31510b; }
#root .ref-news-empty h2 { margin-top: 8px; }
#root .ref-news-empty>a { margin-top: 18px; }

/* WooCommerce account dashboard: keep the menu and account content readable. */
#root .customer-account-page { background: #f3f6f8; }
#root .customer-account-page > .shell:last-child { width: min(1120px, calc(100% - 40px)); }
#root .customer-account-page .woocommerce { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 22px; align-items: start; }
#root .customer-account-page .woocommerce::before,
#root .customer-account-page .woocommerce::after { display: none; content: none; }
#root .customer-account-page .woocommerce-MyAccount-navigation,
#root .customer-account-page .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; }
#root .customer-account-page .woocommerce-MyAccount-navigation { padding: 10px; border: 1px solid #dce4ea; border-radius: 6px; background: #fff; }
#root .customer-account-page .woocommerce-MyAccount-navigation ul { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
#root .customer-account-page .woocommerce-MyAccount-navigation li { margin: 0; border-bottom: 1px solid #edf1f4; }
#root .customer-account-page .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
#root .customer-account-page .woocommerce-MyAccount-navigation a { display: block; padding: 12px 10px; border-radius: 4px; color: #294357; font-size: 14px; line-height: 1.4; text-decoration: none; }
#root .customer-account-page .woocommerce-MyAccount-navigation li.is-active a,
#root .customer-account-page .woocommerce-MyAccount-navigation a:hover { background: #edf4f9; color: #064d91; font-weight: 700; }
#root .customer-account-page .woocommerce-MyAccount-content { min-height: 220px; padding: clamp(22px, 3vw, 34px); border: 1px solid #dce4ea; border-radius: 6px; background: #fff; color: #354958; line-height: 1.7; }
#root .customer-account-page .woocommerce-MyAccount-content > :first-child { margin-top: 0; }
#root .customer-account-page .woocommerce-MyAccount-content a { color: #07519c; }
#root .customer-account-page .woocommerce-MyAccount-content .woocommerce-Button,
#root .customer-account-page .woocommerce-MyAccount-content button,
#root .customer-account-page .woocommerce-MyAccount-content input.button { min-height: 42px; border: 0; border-radius: 4px; background: #07519c; color: #fff; padding: 10px 16px; font-weight: 700; }
#root .customer-account-page .woocommerce-MyAccount-content input.input-text,
#root .customer-account-page .woocommerce-MyAccount-content input[type="text"],
#root .customer-account-page .woocommerce-MyAccount-content input[type="email"],
#root .customer-account-page .woocommerce-MyAccount-content input[type="password"] { min-height: 42px; border: 1px solid #cfdbe4; border-radius: 3px; padding: 9px 12px; }
#root .customer-account-page .woocommerce-MyAccount-content table { width: 100%; border-collapse: collapse; }
#root .customer-account-page .woocommerce-MyAccount-content th,
#root .customer-account-page .woocommerce-MyAccount-content td { padding: 11px 10px; border: 1px solid #e2e9ee; }
body.woocommerce-account #root .woocommerce { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 22px; align-items: start; width: min(1120px, calc(100% - 40px)); margin: 32px auto 56px; }
body.woocommerce-account #root .woocommerce::before,
body.woocommerce-account #root .woocommerce::after { display: none; content: none; }
body.woocommerce-account #root .woocommerce-MyAccount-navigation,
body.woocommerce-account #root .woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; }
body.woocommerce-account #root .woocommerce-MyAccount-navigation { padding: 10px; border: 1px solid #dce4ea; border-radius: 6px; background: #fff; }
body.woocommerce-account #root .woocommerce-MyAccount-navigation ul { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
body.woocommerce-account #root .woocommerce-MyAccount-navigation li { margin: 0; border-bottom: 1px solid #edf1f4; }
body.woocommerce-account #root .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
body.woocommerce-account #root .woocommerce-MyAccount-navigation a { display: block; padding: 12px 10px; border-radius: 4px; color: #294357; font-size: 14px; line-height: 1.4; text-decoration: none; }
body.woocommerce-account #root .woocommerce-MyAccount-navigation li.is-active a,
body.woocommerce-account #root .woocommerce-MyAccount-navigation a:hover { background: #edf4f9; color: #064d91; font-weight: 700; }
body.woocommerce-account #root .woocommerce-MyAccount-content { min-height: 220px; padding: clamp(22px, 3vw, 34px); border: 1px solid #dce4ea; border-radius: 6px; background: #fff; color: #354958; line-height: 1.7; }
body.woocommerce-account #root .woocommerce-MyAccount-content > :first-child { margin-top: 0; }
body.woocommerce-account #root .woocommerce-MyAccount-content a { color: #07519c; }
body.woocommerce-account #root .woocommerce-MyAccount-content .woocommerce-Button,
body.woocommerce-account #root .woocommerce-MyAccount-content button,
body.woocommerce-account #root .woocommerce-MyAccount-content input.button { min-height: 42px; border: 0; border-radius: 4px; background: #07519c; color: #fff; padding: 10px 16px; font-weight: 700; }
body.woocommerce-account #root .woocommerce-MyAccount-content input.input-text,
body.woocommerce-account #root .woocommerce-MyAccount-content input[type="text"],
body.woocommerce-account #root .woocommerce-MyAccount-content input[type="email"],
body.woocommerce-account #root .woocommerce-MyAccount-content input[type="password"] { min-height: 42px; border: 1px solid #cfdbe4; border-radius: 3px; padding: 9px 12px; }
body.woocommerce-account #root .woocommerce-MyAccount-content table { width: 100%; border-collapse: collapse; }
body.woocommerce-account #root .woocommerce-MyAccount-content th,
body.woocommerce-account #root .woocommerce-MyAccount-content td { padding: 11px 10px; border: 1px solid #e2e9ee; }
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) #root .ref-main .content-page { padding-top: 52px; padding-bottom: 52px; }
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) #root .ref-main .content-page article > h1 { margin: 0 0 22px; color: #123b5b; font-size: clamp(26px, 3vw, 34px); line-height: 1.2; }

/* WooCommerce's block cart inherits dark gray text on a dark submit button. */
#root .wc-block-cart__submit-button { min-height: 48px; border-radius: 4px; background: #07519c !important; color: #fff !important; font-weight: 700; }
#root .wc-block-cart__submit-button .wc-block-components-button__text { color: #fff !important; }
#root .wc-block-cart__submit-button:hover { background: #063e75 !important; color: #fff !important; }
#root .wc-block-components-checkout-place-order-button { min-height: 48px; border-color: #07519c !important; border-radius: 4px; background: #07519c !important; color: #fff !important; font-weight: 700; }
#root .wc-block-components-checkout-place-order-button .wc-block-components-button__text { color: #fff !important; }
#root .wc-block-components-checkout-place-order-button:hover { border-color: #063e75 !important; background: #063e75 !important; color: #fff !important; }

/* Provide useful location information when the external map is unavailable locally. */
#root .ref-contact-map { position: relative; min-height: 300px; overflow: hidden; background: #eaf1f5; }
#root .ref-contact-map iframe { display: block; width: 100%; min-height: 300px; border: 0; }
#root .ref-map-fallback { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; background-color: #eaf1f5; background-image: repeating-linear-gradient(28deg, transparent 0 48px, #d7e2e9 49px 52px, transparent 53px 98px), repeating-linear-gradient(118deg, transparent 0 66px, #d7e2e9 67px 70px, transparent 71px 132px); text-align: center; pointer-events: none; }
#root .ref-map-fallback>span { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: #d65b1c; box-shadow: 0 8px 20px #123a5a20; font-size: 25px; }
#root .ref-map-fallback strong { color: #123b5b; font-size: 20px; }
#root .ref-map-fallback small { color: #5f7183; font-size: 13px; }
@media (max-width: 760px) {
  body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) #root .ref-main .content-page { padding-top: 38px; padding-bottom: 38px; }
  body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) #root .ref-main .content-page article > h1 { margin-bottom: 16px; font-size: 25px; }
  #root .customer-account-page > .shell:last-child { width: calc(100% - 32px); }
  #root .customer-account-page .woocommerce { grid-template-columns: 1fr; gap: 14px; }
  #root .customer-account-page .woocommerce-MyAccount-navigation ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #root .customer-account-page .woocommerce-MyAccount-navigation li { border: 0; }
  #root .customer-account-page .woocommerce-MyAccount-content { padding: 20px 16px; overflow-wrap: anywhere; }
  body.woocommerce-account #root .woocommerce { grid-template-columns: 1fr; gap: 14px; width: calc(100% - 32px); margin: 20px auto 38px; }
  body.woocommerce-account #root .woocommerce-MyAccount-navigation ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.woocommerce-account #root .woocommerce-MyAccount-navigation li { border: 0; }
  body.woocommerce-account #root .woocommerce-MyAccount-content { padding: 20px 16px; overflow-wrap: anywhere; }
}

/* The floating shortcuts had empty circles; give them clear icons and labels. */
#root .floating.has-zalo { right: 22px; bottom: 22px; gap: 9px; align-items: flex-end; }
#root .floating.has-zalo>a { width: auto; min-width: 132px; height: 46px; min-height: 46px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: flex-start; gap: 10px; border: 1px solid #ffffff; border-radius: 24px; box-shadow: 0 5px 16px #092b4a2b; font-size: 13px; font-weight: 750; }
#root .floating.has-zalo>a.floating-zalo { background: #0879cf; }
#root .floating.has-zalo>a.floating-phone { background: #d92720; }
#root .floating.has-zalo>a .floating-symbol { position: static; width: 24px; height: 24px; display: grid; place-items: center; overflow: visible; clip: auto; border-radius: 50%; background: #fff; color: #0879cf; font-size: 14px; font-weight: 900; }
#root .floating.has-zalo>a .floating-label { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: nowrap; color: #fff; }
#root .floating.has-zalo>a b.floating-label { margin: 0; color: #fff; font-size: 13px; font-weight: 750; line-height: 1; }
#root .floating.has-zalo>a svg { width: 21px; height: 21px; flex: 0 0 21px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 760px) {
  #root .ref-news-page>.ref-page-banner { min-height: 145px; }
  #root .alaska-page-view>.ref-page-banner-compact { min-height: 132px; }
  #root .pa-project-empty { width: calc(100% - 32px); margin: 24px auto 34px; padding: 28px 20px; }
  #root .video-library-state { min-height: 0; padding: 28px 18px; }
  #root .ref-news-empty { margin: 20px auto 35px; }
  #root .floating.has-zalo { right: 12px; bottom: 14px; gap: 8px; }
  #root .floating.has-zalo>a { width: 46px; min-width: 46px; height: 46px; min-height: 46px; padding: 0; justify-content: center; }
  #root .floating.has-zalo>a .floating-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
  #root .floating.has-zalo>a { transition: none; }
}
