/* 真站 1:1 页面的本地补丁
   真站上由 Divi 前端 JS / 未内联的样式表负责的几处表现，这里补齐。
   注意：css/divi.css 是抓取脚本生成的，改动请写在本文件里，别改那份。 */

/* ---------- 语言切换 ----------
   真站只有英文，没有这个控件；本站要保留三语，挂在导航右侧。
   做得紧凑一些，免得把真站的主菜单往左挤到压住 logo。 */
.lv-chrome .lv-lang{
  position:absolute;right:26px;left:auto;top:50%;transform:translateY(-50%);z-index:120;
  border-color:rgba(254,229,173,.72)!important;
  background:rgba(0,92,104,.18);
  box-shadow:0 4px 14px rgba(0,0,0,.12);
  pointer-events:auto;
  overflow:visible;
}
.lv-chrome .lv-lang-menu{display:none}
.lv-chrome .lv-lang.open .lv-lang-menu{display:block}
.lv-chrome .lv-lang button{
  padding:3px 8px;font-size:11px;line-height:16px;
  color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.35);
  pointer-events:auto;
}
/* 滚到顶部以下时真站导航变白底，白字白框的语言按钮要跟着换成深色 */
.lv-chrome #main-header.et-fixed-header .lv-lang{
  border-color:rgba(28,45,73,.35)!important;background:rgba(255,255,255,.86);
  box-shadow:0 4px 14px rgba(0,0,0,.08);
}
.lv-chrome #main-header.et-fixed-header .lv-lang button{color:#1c2d49!important;text-shadow:none}
.lv-chrome #main-header.et-fixed-header .lv-lang button.on{color:#fff!important}

/* 背景视频：真站是 Divi 的 JS 按窗口尺寸算宽高，这里用 object-fit 铺满，效果一致 */
.lv-real .et_pb_section_video_bg video{
  width:100%!important;height:100%!important;
  object-fit:cover;left:0;top:0;margin:0;transform:none
}

/* 窄屏时把语言按钮放到汉堡菜单左边 */
@media (max-width:980px){
  :root{
    --lv-mobile-safe-top:max(14px, env(safe-area-inset-top, 0px));
    --lv-mobile-nav-row:56px;
    --lv-mobile-nav-height:calc(var(--lv-mobile-safe-top) + var(--lv-mobile-nav-row));
  }
  .lv-chrome #main-header{
    position:fixed!important;
    top:0!important;left:0!important;right:0!important;
    height:var(--lv-mobile-nav-height)!important;
    min-height:var(--lv-mobile-nav-height)!important;
    padding-top:var(--lv-mobile-safe-top)!important;
    background:rgba(255,255,255,.97)!important;
    box-shadow:0 8px 24px rgba(0,0,0,.12)!important;
    z-index:100001!important;
    transform:translate3d(0,0,0);
    backface-visibility:hidden;
    will-change:transform;
  }
  .lv-chrome #main-header .container.et_menu_container{
    position:relative;
    height:var(--lv-mobile-nav-row)!important;
    min-height:var(--lv-mobile-nav-row)!important;
  }
  .lv-chrome #main-header .logo_container{
    height:var(--lv-mobile-nav-row)!important;
    pointer-events:none;
  }
  .lv-chrome #main-header .logo_container a,
  .lv-chrome #main-header #logo{
    pointer-events:auto;
  }
  .lv-chrome #et-top-navigation{
    padding-top:6px!important;
  }
  .lv-chrome #et_mobile_nav_menu,
  .lv-chrome #et_mobile_nav_menu .mobile_nav{
    height:44px!important;
  }
  .lv-chrome #et_mobile_nav_menu .mobile_menu_bar{
    width:44px!important;
    height:44px!important;
    padding:0!important;
    line-height:44px!important;
  }
  .lv-chrome #et_mobile_nav_menu .mobile_menu_bar:before{
    top:0!important;
    line-height:44px!important;
    color:#1c2d49!important;
    text-shadow:none!important;
  }
  .lv-chrome .et_mobile_menu{
    position:fixed!important;
    top:var(--lv-mobile-nav-height)!important;
    left:0!important;right:0!important;
    width:100%!important;
    max-height:calc(100vh - var(--lv-mobile-nav-height))!important;
    overflow:auto;
  }
  /* 窄屏导航单行：LOGO / 当前语言下拉 / 汉堡 */
  .lv-chrome .lv-lang{
    position:fixed!important;
    top:calc(var(--lv-mobile-safe-top) + 6px)!important;
    left:auto!important;right:90px!important;
    transform:none!important;
    z-index:2147483000!important;
    border-color:rgba(28,45,73,.35)!important;
    background:rgba(255,255,255,.96);
    box-shadow:0 4px 12px rgba(0,0,0,.08);
    display:block;
    min-height:44px;
    border-radius:24px;
    overflow:visible;
  }
  .lv-chrome .lv-lang button{
    min-width:44px;
    height:44px;
    padding:0 13px;
    font-size:12px;
    line-height:44px;
    color:#1c2d49!important;
    text-shadow:none;
    touch-action:manipulation;
  }
  .lv-chrome .lv-lang-toggle{
    border-radius:24px;
  }
  .lv-chrome .lv-lang-toggle:after{
    content:'';
    display:inline-block;
    margin-left:6px;
    border-left:4px solid transparent;
    border-right:4px solid transparent;
    border-top:5px solid currentColor;
    vertical-align:middle;
  }
  .lv-chrome .lv-lang-menu{
    position:absolute;
    top:calc(100% + 7px);
    right:0;
    min-width:100%;
    padding:5px;
    border:1px solid rgba(28,45,73,.18);
    border-radius:14px;
    background:#fff;
    box-shadow:0 12px 28px rgba(0,0,0,.16);
  }
  .lv-chrome .lv-lang-menu button{
    display:block;
    width:100%;
    border-radius:10px;
  }
  .lv-chrome .lv-lang button.on{color:#fff!important}
}

/* 透明导航下 Divi 会给 #page-container 垫一个导航高度的上边距，
   再由它的 JS 清零（真站实测就是 0）。JS 没抓过来，这里直接清零，
   否则窄屏首屏会被整体下推 80px，导航压在白底上。 */
.lv-real #page-container{padding-top:0!important}

/* 移动端菜单：真站由 Divi 的 JS 展开，这里用 .opened 状态控制 */
.lv-chrome .mobile_nav.opened .et_mobile_menu{display:block}
.lv-chrome .mobile_nav.opened .mobile_menu_bar:before{content:"\4d"}

/* 联系表单的 <label> 在真站是隐藏的（字段用 placeholder 提示） */
.lv-real .et_pb_contact_form_label{display:none}

/* 真站表单提交后由 JS 显示结果，这里用本站的 toast / 感谢弹窗，
   隐藏 Divi 自带的空消息容器，避免多出一段空白 */
.lv-real .et-pb-contact-message:empty{display:none}

/* 真站空腿列表的底图指向一个早已失效的 via.placeholder.com（线上同样 404），
   本地直接去掉，省一次必然失败的外部请求，视觉一致 */
.lv-real .empty-leg-container{background-image:none}

/* SPA 里 .lv-real 是页面容器，Divi 的 body 级规则被改写到了它身上，
   这里把继承自 body 的定位/溢出还原掉，免得影响本站的固定导航 */
.lv-real{position:relative;overflow-x:hidden;background:#fff}

/* 站头容器要压在正文之上（正文容器自己也是定位元素，DOM 里又在后面），
   否则滚动后固定导航会被正文盖住 */
/* 站头容器不能裁剪：窄屏时 Divi 会把 #main-header 改成 absolute，
   容器一旦 overflow:hidden（继承自 .lv-real 的规则）就会把导航整个裁没 */
.lv-chrome{position:relative;z-index:100000;background:none;overflow:visible}
#lvReal.lv-real{z-index:1}

/* Services 详情区标题下面有一行说明文字；抓取来的 Divi 模块 CSS 用
   -150px 把后续 specialty section 上拉，在 SPA 层叠环境里会盖住说明。 */
body[data-lv-route="services"] #lvReal.lv-real .et_pb_section_3.et_pb_section,
body[data-lv-route="services"] #lvReal.lv-real .et_pb_section_5.et_pb_section,
body[data-lv-route="services"] #lvReal.lv-real .et_pb_section_7.et_pb_section,
body[data-lv-route="services"] #lvReal.lv-real .et_pb_section_9.et_pb_section,
body[data-lv-route="services"] #lvReal.lv-real .et_pb_section_11.et_pb_section,
body[data-lv-route="services"] #lvReal.lv-real .et_pb_section_13.et_pb_section{
  margin-top:0!important;
}

/* ---------- 隔离本站自己的标题排版 ----------
   css/web.css 里 `h1,h2,h3,h4{text-transform:uppercase}` 是本站自制版式的规则，
   Divi 从不设这个属性，于是它会漏进真站 DOM，把原本大小写混排的标题
   （如 Blog 页的 “Craft Your Private Journey in Unrivalled Luxury”）全变成大写。
   真站自己要大写的地方由模块 CSS 明确写了 uppercase，优先级更高，不受影响。 */
.lv-real h1, .lv-real h2, .lv-real h3,
.lv-real h4, .lv-real h5, .lv-real h6{text-transform:none}

/* 中文翻译后的首屏标题比英文长，沿用真站固定大字号会在窄宽度下拆成单字。
   这里只约束真站页首屏文案：保留视觉级别，同时让中英都按可读短语换行。 */
.lv-real .et_pb_section_0 .et_pb_text_1 h1,
.lv-real .et_pb_section_0 .et_pb_text_1 h2{
  max-width:min(1040px,calc(100vw - 72px));
  margin-left:auto;margin-right:auto;
  font-size:clamp(42px,5.2vw,64px)!important;
  line-height:1.12em!important;
  overflow-wrap:normal;
  word-break:keep-all;
  line-break:strict;
  text-wrap:balance;
}
.lv-real .et_pb_section_0 .et_pb_text_2 h5,
.lv-real .et_pb_section_0 .et_pb_text_2 p{
  max-width:min(760px,calc(100vw - 64px));
  margin-left:auto;margin-right:auto;
  overflow-wrap:normal;
  word-break:keep-all;
  line-break:strict;
  text-wrap:balance;
}
.lv-real .et_pb_button{
  white-space:normal!important;
  overflow-wrap:normal;
  word-break:keep-all;
  line-break:strict;
}
@media (max-width:1180px){
  .lv-real .et_pb_section_0 .et_pb_text_1 h1,
  .lv-real .et_pb_section_0 .et_pb_text_1 h2{
    max-width:calc(100vw - 56px);
    font-size:clamp(34px,6vw,54px)!important;
  }
}
@media (max-width:767px){
  #lvReal.lv-real .et_pb_section{
    content-visibility:visible!important;
    contain-intrinsic-size:auto!important;
  }
  .lv-real .et_pb_section_0 .et_pb_row_0.et_pb_row{
    margin-top:34px!important;
  }
  .lv-real .et_pb_section_0 .et_pb_text_1 h1,
  .lv-real .et_pb_section_0 .et_pb_text_1 h2{
    max-width:calc(100vw - 36px);
    font-size:clamp(24px,7vw,34px)!important;
    line-height:1.18em!important;
    overflow-wrap:anywhere;
  }
  .lv-real .et_pb_section_0 .et_pb_text_2 h5,
  .lv-real .et_pb_section_0 .et_pb_text_2 p{
    max-width:calc(100vw - 36px);
    letter-spacing:.14em!important;
    line-height:1.45em!important;
  }
  #lvReal.lv-real .et_pb_section_4,
  #lvReal.lv-real .et_pb_section_2,
  #lvReal.lv-real .et_pb_section_6,
  #lvReal.lv-real .et_pb_section_7,
  #lvReal.lv-real .et_pb_section_9{
    padding-top:34px!important;
    padding-bottom:34px!important;
  }
  #lvReal.lv-real .et_pb_section_2>.et_pb_row{
    width:100%!important;
    max-width:100%!important;
    padding-left:22px!important;
    padding-right:22px!important;
    box-sizing:border-box;
  }
  #lvReal.lv-real .et_pb_section_2 .et_pb_row_5{
    padding-top:0!important;
    padding-bottom:12px!important;
  }
  #lvReal.lv-real .et_pb_section_2 .et_pb_row_6{
    padding-top:18px!important;
    padding-bottom:0!important;
  }
  #lvReal.lv-real .et_pb_section_2 .et_pb_column{
    margin-bottom:18px!important;
  }
  #lvReal.lv-real .et_pb_section_2 .et_pb_column:last-child{
    margin-bottom:0!important;
  }
  #lvReal.lv-real .et_pb_section_2 .et_pb_text_9{
    margin-bottom:14px!important;
  }
  #lvReal.lv-real .et_pb_section_2 .et_pb_text_9 h2{
    font-size:clamp(24px,7vw,31px)!important;
    line-height:1.15em!important;
    text-align:center!important;
    letter-spacing:.03em!important;
  }
  #lvReal.lv-real .et_pb_section_2 .et_pb_text_10 p{
    line-height:1.52em!important;
  }
  #lvReal.lv-real .et_pb_section_2 .et_pb_image_4 img{
    width:112%!important;
    max-width:112%!important;
    height:auto!important;
    margin-left:-6%;
  }
  #lvReal.lv-real .et_pb_section_4>.et_pb_row,
  #lvReal.lv-real .et_pb_section_6>.et_pb_row,
  #lvReal.lv-real .et_pb_section_7>.et_pb_row,
  #lvReal.lv-real .et_pb_section_9>.et_pb_row{
    width:100%!important;
    max-width:100%!important;
    padding:0 22px!important;
    box-sizing:border-box;
  }
  #lvReal.lv-real .et_pb_section_4 .et_pb_row_inner{
    width:100%!important;
    max-width:100%!important;
    padding:0!important;
  }
  #lvReal.lv-real .et_pb_section_4 .et_pb_column,
  #lvReal.lv-real .et_pb_section_6 .et_pb_column,
  #lvReal.lv-real .et_pb_section_7 .et_pb_column,
  #lvReal.lv-real .et_pb_section_9 .et_pb_column{
    margin-bottom:18px!important;
  }
  #lvReal.lv-real .et_pb_section_4 .et_pb_column:last-child,
  #lvReal.lv-real .et_pb_section_6 .et_pb_column:last-child,
  #lvReal.lv-real .et_pb_section_7 .et_pb_column:last-child,
  #lvReal.lv-real .et_pb_section_9 .et_pb_column:last-child{
    margin-bottom:0!important;
  }
  #lvReal.lv-real .et_pb_section_4 .et_pb_module,
  #lvReal.lv-real .et_pb_section_6 .et_pb_module,
  #lvReal.lv-real .et_pb_section_7 .et_pb_module{
    margin-bottom:16px!important;
  }
  #lvReal.lv-real .et_pb_section_4 .et_pb_module:last-child,
  #lvReal.lv-real .et_pb_section_6 .et_pb_module:last-child,
  #lvReal.lv-real .et_pb_section_7 .et_pb_module:last-child{
    margin-bottom:0!important;
  }
  #lvReal.lv-real .et_pb_section_4 .et_pb_image_10,
  #lvReal.lv-real .et_pb_section_6 .et_pb_image_12{
    margin-bottom:14px!important;
  }
  #lvReal.lv-real .et_pb_section_4 .et_pb_image_9 .et_pb_image_wrap,
  #lvReal.lv-real .et_pb_section_6 .et_pb_image_13 .et_pb_image_wrap{
    display:block;
    width:100%;
  }
  #lvReal.lv-real .et_pb_section_4 .et_pb_image_9 img,
  #lvReal.lv-real .et_pb_section_6 .et_pb_image_13 img{
    width:100%!important;
    height:220px!important;
    object-fit:cover;
  }
  #lvReal.lv-real .et_pb_section_4 .et_pb_image_9 img{
    object-position:center 42%;
  }
  #lvReal.lv-real .et_pb_section_6 .et_pb_image_13 img{
    object-position:center;
  }
  #lvReal.lv-real .et_pb_section_4 .et_pb_text_13 h2,
  #lvReal.lv-real .et_pb_section_6 .et_pb_text_17 h2,
  #lvReal.lv-real .et_pb_section_7 .et_pb_text_19 h2,
  #lvReal.lv-real .et_pb_section_9 .et_pb_text_21 h2{
    font-size:clamp(22px,6.4vw,28px)!important;
    line-height:1.18em!important;
    letter-spacing:.03em!important;
    overflow-wrap:normal;
    word-break:keep-all;
    text-wrap:balance;
  }
  #lvReal.lv-real .et_pb_section_7 .et_pb_text_19 h2{
    text-align:center!important;
  }
  #lvReal.lv-real .et_pb_section_7 .et_pb_divider_hidden{
    display:none!important;
    height:0!important;
  }
  #lvReal.lv-real .et_pb_section_9 .et_pb_row_10{
    padding-bottom:18px!important;
  }
  #lvReal.lv-real .et_pb_section_9 .et_pb_row_11,
  #lvReal.lv-real .et_pb_section_9 .et_pb_row_12{
    display:grid!important;
    grid-template-columns:1fr 1fr;
    gap:22px 16px;
    padding-top:0!important;
    padding-bottom:0!important;
  }
  #lvReal.lv-real .et_pb_section_9 .et_pb_column{
    width:auto!important;
    margin-bottom:0!important;
  }
  #lvReal.lv-real .et_pb_section_9 .et_pb_image{
    margin-bottom:8px!important;
  }
  #lvReal.lv-real .et_pb_section_9 .et_pb_image img{
    max-width:92px!important;
    height:auto!important;
  }
  #lvReal.lv-real .et_pb_section_9 .et_pb_text{
    margin-top:0!important;
    margin-bottom:0!important;
  }
  #lvReal.lv-real .et_pb_section_9 .et_pb_text p{
    line-height:1.35em!important;
  }
}

/* PDF 在线预览：只新增内容承载区，不改变站点主色和整体布局 */
.pdf-hd{padding-bottom:34px}
.pdf-hd .wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.pdf-hd h1{flex:1;min-width:220px}
.pdf-back{background:none;border:0;color:var(--teal);cursor:pointer;font:inherit;display:inline-flex;align-items:center;gap:8px;padding:0}
.pdf-open{white-space:nowrap}
.pdf-sec{background:#f5f7f7;padding:24px 0 70px}
.pdf-frame{
  width:100%;height:min(78vh,920px);min-height:620px;border:1px solid rgba(28,45,73,.16);
  background:#fff;display:block;
}
@media (max-width:720px){
  .pdf-frame{height:72vh;min-height:520px}
}
