/* ==========================================================
   Libero Travel — design finishing layer (polish.css)
   Loaded after style.css. Remove this file to revert.
   ========================================================== */
:root {
  --shadow-sm: 0 2px 6px rgba(4,52,91,.06), 0 8px 24px rgba(4,52,91,.06);
  --shadow-md: 0 6px 16px rgba(4,52,91,.08), 0 22px 48px rgba(4,52,91,.12);
  --shadow-lg: 0 14px 30px rgba(4,52,91,.12), 0 40px 80px rgba(4,52,91,.16);
  --radius: 14px;
  --ease: cubic-bezier(.2,.7,.2,1);
  --gold-grad: linear-gradient(135deg, #e7c97e 0%, #d8af58 45%, #b98d36 100%);
}

/* Sharper text rendering */
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
::selection { background: var(--gold-soft); color: var(--navy); }
h1, h2 { letter-spacing: -.012em; }
html[dir="rtl"] h1, html[dir="rtl"] h2, html[lang="zh"] h1, html[lang="zh"] h2 { letter-spacing: 0; }
img { image-rendering: auto; }

/* Header: glassy, slimmer once you scroll */
.site-header { background: rgba(255,255,255,.92); -webkit-backdrop-filter: saturate(160%) blur(12px); backdrop-filter: saturate(160%) blur(12px); transition: box-shadow .3s var(--ease), background .3s var(--ease); }
.site-header.scrolled { background: rgba(255,255,255,.97); box-shadow: 0 1px 0 var(--line), 0 10px 30px rgba(4,52,91,.08); }
.site-header .brand img { transition: transform .3s var(--ease); }
.site-header.scrolled .brand img { transform: scale(.9); }
.nav a { position: relative; transition: color .2s; }
@media (min-width: 821px) {
  .nav > a:hover, .nav-dd > a:hover { text-decoration: none; }
  .nav > a::before, .nav-dd > a::before { content: ""; position: absolute; inset-inline: 0; bottom: -8px; height: 2px; background: var(--gold); transform: scaleX(0); transform-origin: center; transition: transform .25s var(--ease); }
  .nav > a:hover::before, .nav-dd > a:hover::before { transform: scaleX(1); }
  .nav a[aria-current="page"] { text-decoration: none; }
  .nav > a[aria-current="page"]::before, .nav-dd > a[aria-current="page"]::before { transform: scaleX(1); }
}

/* Buttons: gold gradient, gentle lift */
.btn { background: var(--gold-grad); border-color: transparent; box-shadow: 0 6px 18px rgba(185,141,54,.28); transition: transform .2s var(--ease), box-shadow .2s var(--ease), filter .2s; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(185,141,54,.38); filter: none; }
.btn:active { transform: translateY(0); }
.btn.ghost { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.85); box-shadow: none; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.btn.ghost:hover { background: rgba(255,255,255,.18); }
.btn.line { background: transparent; box-shadow: none; }
.btn.line:hover { box-shadow: var(--shadow-sm); }
.about .btn, .news .btn, .pkg .btn { box-shadow: 0 6px 18px rgba(4,52,91,.22); }

/* Hero: deeper, crisper title */
.hero h1, .pg-hero h1 { text-shadow: 0 2px 24px rgba(2,30,54,.45); }
.hero p, .pg-hero p { text-shadow: 0 1px 12px rgba(2,30,54,.5); }
.pg-hero { position: relative; }
.pg-hero::after { content: ""; position: absolute; inset-inline: 0; bottom: 0; height: 4px; background: var(--gold-grad); }

/* Section headings: small gold ornament */
.head .eyebrow, .cb-text .eyebrow { display: inline-flex; align-items: center; gap: 10px; }
.head h2::after { content: ""; display: block; width: 64px; height: 3px; margin-top: 18px; border-radius: 3px; background: var(--gold-grad); }
.ab-cta h2::after, .promise .eyebrow + blockquote::before { content: none; }

/* Cards: rounded, soft shadows, lift + image zoom on hover */
.offer, .xd, .pkg, .rel a, .lv { border-radius: var(--radius); box-shadow: var(--shadow-sm); transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.offer:hover, .xd:hover, .pkg:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.offer .pic, .xd-pic { transition: transform .8s var(--ease); }
.offer:hover .pic, .xd:hover .xd-pic { transform: scale(1.06); }
.offer, .xd { overflow: hidden; }
.offer .more, .xd .more { transition: letter-spacing .25s var(--ease), color .2s; }
.offer:hover .more, .xd:hover .more { letter-spacing: .14em; color: var(--gold-text); }
.pkg { border-color: transparent; }
.pkg.featured { box-shadow: var(--shadow-lg); }

/* Photos: rounded corners, depth */
.gallery figure { border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.gallery figcaption { padding: 60px 20px 16px; background: linear-gradient(transparent, rgba(2,30,54,.85)); letter-spacing: .01em; }
.cb-main img, .cb-alley, .about .photo, .bj-grid img, .bj-pano img { border-radius: var(--radius); box-shadow: var(--shadow-md); }
.cb-main { overflow: visible; }

/* Services list: gold markers */
.svc li::before { content: ""; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--gold-grad); box-shadow: 0 0 0 4px rgba(216,175,88,.18); }

/* Dialog popups */
.od { border-radius: 18px; box-shadow: var(--shadow-lg); }
.od::backdrop { background: rgba(2,30,54,.55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }

/* Footer: gold top line */
.site-footer { border-top: 4px solid transparent; border-image: var(--gold-grad) 1; }

/* Newsletter field */
.news input { border-radius: 999px; transition: border-color .2s, box-shadow .2s; }
.news input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 4px rgba(216,175,88,.22); }

/* Scroll reveal (only when JS is active; content stays visible otherwise) */
html.lt-reveal .rv { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
html.lt-reveal .rv.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html.lt-reveal .rv { opacity: 1; transform: none; transition: none; }
  .offer, .xd, .pkg, .btn, .offer .pic, .xd-pic, .site-header .brand img { transition: none; }
  .offer:hover, .xd:hover, .pkg:hover, .btn:hover { transform: none; }
  .offer:hover .pic, .xd:hover .xd-pic { transform: none; }
}

/* Home: "Our services" section (ticketing highlighted) */
.home-svc { background: var(--white); }
.hsv-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) repeat(2, minmax(0, 1fr)); gap: 20px; }
.hsv { position: relative; background: var(--sand); border-radius: var(--radius, 14px); padding: 28px 26px; display: flex; flex-direction: column; gap: 10px; border: 1px solid transparent; transition: transform .35s var(--ease, ease), box-shadow .35s var(--ease, ease), border-color .35s, background .35s; }
.hsv:hover { transform: translateY(-4px); box-shadow: var(--shadow-md, 0 20px 40px rgba(4,52,91,.12)); border-color: var(--gold-soft); background: var(--white); }
.hsv-ico { flex: none; width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; background: var(--navy); color: var(--gold); box-shadow: 0 8px 20px rgba(4,52,91,.18); }
.hsv-ico svg { width: 28px; height: 28px; }
.hsv h3 { font-size: 24px; color: var(--navy); margin-top: 8px; }
.hsv p { margin: 0; color: var(--muted); }
.hsv-main { grid-row: span 2; background: linear-gradient(160deg, var(--navy) 0%, #0b4a7d 100%); color: #e9edf5; padding: 40px 34px; justify-content: flex-end; overflow: hidden; min-height: 400px; }
.hsv-main::before { content: ""; position: absolute; inset: 0; background: url("../images/intl-hero-1200.webp") center/cover; opacity: .28; mix-blend-mode: luminosity; }
.hsv-main > * { position: relative; }
.hsv-main:hover { background: linear-gradient(160deg, var(--navy) 0%, #0b4a7d 100%); }
.hsv-main .hsv-ico { width: 76px; height: 76px; border-radius: 22px; background: var(--gold-grad, var(--gold)); color: var(--navy); }
.hsv-main .hsv-ico svg { width: 40px; height: 40px; }
.hsv-main h3 { color: var(--white); font-size: clamp(28px, 2.6vw, 38px); }
.hsv-main p { color: #d4dcea; font-size: 18px; max-width: 30em; }
.hsv-badge { align-self: flex-start; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; font-weight: 800; color: var(--navy); background: var(--gold-soft); padding: 6px 12px; border-radius: 999px; margin-top: 18px; }
html[dir="rtl"] .hsv-badge, html[lang="zh"] .hsv-badge { letter-spacing: 0; }
.hsv-wide { grid-column: span 2; flex-direction: row; align-items: center; gap: 20px; }
.hsv-wide h3 { margin-top: 0; }
.hsv-cta { text-align: center; margin-top: 40px; }
@media (max-width: 1000px) { .hsv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hsv-main { grid-column: 1 / -1; grid-row: auto; min-height: 340px; } }
@media (max-width: 600px) { .hsv-grid { grid-template-columns: 1fr; } .hsv-wide { grid-column: auto; flex-direction: column; align-items: flex-start; } }

/* ================= Responsive images (desktop JPG, mobile WebP) ================= */
[style*="--bg:"] { background-image: var(--bg); }
@media (max-width: 900px) { [style*="--bgm:"] { background-image: var(--bgm); } }

/* ================= Mobile finishing (phones & small tablets) ================= */
@media (max-width: 720px) {
  section { padding-block: 64px; }
  .head { margin-bottom: 30px; }
  .cb-grid { gap: 22px; }
  /* Home header: the 8 stops in two neat columns */
  .journey { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; margin: 30px 16px 0; }
  .journey li { gap: 10px; }
  .journey span { font-size: 13px; }
  /* Readable small labels (min 13px) */
  .eyebrow, .xd-r, .pkg .tier, .offer .tag, .hsv-badge, .lvls small, .od-tag, .credits, .flevels { font-size: 13px; }
  /* Comfortable touch targets (44px) */
  .site-footer ul { gap: 0; }
  .site-footer ul a { display: inline-flex; align-items: center; min-height: 44px; }
  .fsocial a { min-width: 44px; min-height: 44px; display: inline-grid; place-items: center; }
  a.chip { min-height: 40px; display: inline-flex; align-items: center; }
  .check, .offer .more, .xd .more { display: inline-flex; align-items: center; min-height: 44px; }
  .btn { padding: 15px 26px; }
  .lang select { min-height: 40px; }
  /* Swipeable photo galleries instead of long stacks */
  .gallery { display: flex; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin-inline: calc(-1 * clamp(16px, 3vw, 48px)); padding: 0 clamp(16px, 3vw, 48px) 10px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .gallery::-webkit-scrollbar { display: none; }
  .gallery figure, .gallery .wide, .gallery .tall { flex: 0 0 80%; height: 300px; grid-column: auto; grid-row: auto; scroll-snap-align: center; }
  /* Swipeable destination cards */
  .xd-grid, .xd-grid5 { display: flex; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin-inline: calc(-1 * clamp(16px, 3vw, 48px)); padding: 4px clamp(16px, 3vw, 48px) 14px; scrollbar-width: none; }
  .xd-grid::-webkit-scrollbar { display: none; }
  .xd { flex: 0 0 82%; scroll-snap-align: center; }
  .xd:hover { transform: none; }
  .swipe-hint { display: flex; }
}
.swipe-hint { display: none; align-items: center; justify-content: center; gap: 8px; margin-top: 10px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-text); }
.swipe-hint::before, .swipe-hint::after { content: ""; width: 26px; height: 1.5px; background: var(--gold); }

/* ================= Floating WhatsApp button (phones) ================= */
.wa-float { position: fixed; z-index: 50; inset-inline-end: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); width: 58px; height: 58px; border-radius: 50%; background: #25d366; color: #fff; display: none; place-items: center; box-shadow: 0 10px 26px rgba(0,0,0,.25), 0 0 0 4px rgba(37,211,102,.18); text-decoration: none; }
.wa-float svg { width: 30px; height: 30px; }
@media (max-width: 820px) { .wa-float { display: grid; } }

/* Mobile finishing touches (v5) */
@media (max-width: 720px) {
  .handle, .pg-back, .pg-tel { display: inline-flex; align-items: center; min-height: 44px; }
  .news input { min-height: 48px; font-size: 16px; }
  small { font-size: 13px; }
  .credits { font-size: 13px; line-height: 1.6; }
}
@media (max-width: 820px) { body:not(.card-page) .site-footer { padding-bottom: 100px; } }
/* Small phones: keep logo and language menu apart */
@media (max-width: 420px) {
  .site-header .brand { gap: 8px; min-width: 0; }
  .site-header .brand img { width: 46px; height: auto; }
  .wordmark b { font-size: 17px; }
  .wordmark i { font-size: 7.5px; }
  .site-header .lang { margin-inline-start: 10px; }
  #lang-select { padding: 6px 24px 6px 9px; min-height: 42px; }
}
@media (max-width: 340px) { .wordmark i { display: none; } .wordmark b { font-size: 15px; } }
.det-btn.btn.line { border: 2px solid var(--gold); border-radius: 999px; padding: 12px 24px; background: rgba(216,175,88,.08); }
.det-btn.btn.line:hover { background: var(--gold-grad); color: var(--navy); border-color: transparent; }

/* Detail popups on photos and sections */
.fig-x { cursor: pointer; position: relative; overflow: hidden; }
.fig-x img { transition: transform .8s var(--ease); }
.fig-x:hover img { transform: scale(1.05); }
.fig-x:focus-visible, .det-btn:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.fig-more { position: absolute; top: 12px; inset-inline-end: 12px; z-index: 2; display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.93); color: var(--navy); font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; box-shadow: 0 4px 14px rgba(2,30,54,.25); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: transform .25s var(--ease), background .25s; pointer-events: none; }
.fig-more::before { content: "+"; font-size: 17px; line-height: 1; font-weight: 700; color: #b98d36; }
.fig-x:hover .fig-more { background: var(--gold-grad); transform: translateY(-2px); }
.fig-x:hover .fig-more::before { color: var(--navy); }
html[dir="rtl"] .fig-more, html[lang="zh"] .fig-more { letter-spacing: 0; }
.det-btn { margin-top: 20px; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font: inherit; font-weight: 700; }
.det-btn::after { content: "→"; transition: transform .25s var(--ease); }
html[dir="rtl"] .det-btn::after { content: "←"; }
.det-btn:hover::after { transform: translateX(4px); }
html[dir="rtl"] .det-btn:hover::after { transform: translateX(-4px); }
.od-more { color: var(--muted); margin-top: 10px; }
.od-facts > div + div { margin-top: 12px; }
.od-facts [hidden] { display: none; }
@media (max-width: 720px) { .fig-more { top: 10px; inset-inline-end: 10px; font-size: 11px; padding: 5px 10px; } .det-btn { width: 100%; justify-content: center; min-height: 48px; } }
.det-btn.btn.line { border: 2px solid var(--gold); border-radius: 999px; padding: 12px 24px; background: rgba(216,175,88,.08); }
.det-btn.btn.line:hover { background: var(--gold-grad); color: var(--navy); border-color: transparent; }

/* Human check overlay */
html.hv-lock, html.hv-lock body { overflow: hidden; }
.hv-ov { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; padding: 20px; background: rgba(2,30,54,.62); -webkit-backdrop-filter: blur(10px) saturate(140%); backdrop-filter: blur(10px) saturate(140%); animation: hvIn .35s var(--ease, ease) both; }
@keyframes hvIn { from { opacity: 0; } to { opacity: 1; } }
.hv-card { width: min(420px, 100%); background: #fff; border-radius: 22px; padding: 30px 26px 22px; text-align: center; box-shadow: 0 30px 80px rgba(2,30,54,.35); border-top: 5px solid transparent; border-image: var(--gold-grad) 1; animation: hvUp .45s var(--ease, ease) both; }
@keyframes hvUp { from { transform: translateY(18px) scale(.98); opacity: 0; } to { transform: none; opacity: 1; } }
.hv-logo { width: 56px; height: 56px; margin: 0 auto 14px; border-radius: 16px; display: grid; place-items: center; background: var(--navy); color: var(--gold); box-shadow: 0 8px 20px rgba(4,52,91,.2); }
.hv-card h2 { font-size: 24px; color: var(--navy); margin: 0 0 8px; }
.hv-s { color: var(--muted); margin: 0 0 20px; font-size: 16px; line-height: 1.5; }
.hv-check { width: 100%; min-height: 64px; display: flex; align-items: center; gap: 14px; padding: 12px 18px; border: 1.5px solid #d9dee7; border-radius: 14px; background: #f7f9fc; font: inherit; font-size: 17px; font-weight: 700; color: var(--navy); cursor: pointer; text-align: start; transition: border-color .2s, box-shadow .2s; }
.hv-check:hover, .hv-check:focus-visible { border-color: var(--gold); box-shadow: 0 0 0 4px rgba(216,175,88,.2); outline: none; }
.hv-box { flex: none; width: 30px; height: 30px; border-radius: 8px; border: 2px solid #9aa7ba; background: #fff; position: relative; transition: background .2s, border-color .2s; }
.hv-check.busy .hv-box { border-color: var(--gold); border-top-color: transparent; border-radius: 50%; animation: hvSpin .7s linear infinite; }
@keyframes hvSpin { to { transform: rotate(360deg); } }
.hv-check.on:not(.busy) .hv-box { background: #1f9d55; border-color: #1f9d55; }
.hv-check.on:not(.busy) .hv-box::after { content: ""; position: absolute; left: 9px; top: 4px; width: 8px; height: 15px; border: solid #fff; border-width: 0 3px 3px 0; transform: rotate(45deg); }
.hv-test { margin-top: 18px; }
.hv-q { font-weight: 700; color: var(--navy); margin: 0 0 12px; }
.hv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.hv-it { min-height: 68px; font-size: 34px; border-radius: 14px; border: 1.5px solid #e1e6ee; background: #fff; cursor: pointer; transition: transform .15s, border-color .15s, box-shadow .15s; }
.hv-it:hover, .hv-it:focus-visible { transform: translateY(-2px); border-color: var(--gold); box-shadow: 0 6px 16px rgba(4,52,91,.12); outline: none; }
.hv-it.hv-bad { border-color: #d64545; background: #fff3f3; }
.hv-msg { min-height: 22px; margin: 14px 0 0; font-weight: 700; color: var(--navy); }
.hv-done .hv-msg { color: #1f9d55; }
.hv-done .hv-card { transform: scale(.98); transition: transform .4s; }
.hv-ft { margin: 12px 0 0; font-size: 13px; color: var(--muted); letter-spacing: .02em; }
@media (prefers-reduced-motion: reduce) { .hv-ov, .hv-card { animation: none; } }
.hv-ov { overflow-y: auto; }
.hv-card { position: relative; overflow: hidden; border-top: 0; border-image: none; margin: auto; }
.hv-card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: var(--gold-grad); }
@media (max-height: 700px) { .hv-card { padding: 22px 20px 16px; } .hv-logo { width: 46px; height: 46px; margin-bottom: 10px; } .hv-s { margin-bottom: 14px; font-size: 15px; } .hv-it { min-height: 58px; font-size: 30px; } }

/* High resolution: sharper hero on retina / 4K laptop screens */
@media (min-width: 721px) and (min-resolution: 1.5dppx) {
  html:not([dir="rtl"]) .hero { background-image: linear-gradient(90deg, rgba(2,30,54,.6) 0%, rgba(2,30,54,.3) 35%, rgba(2,30,54,0) 55%), linear-gradient(180deg, rgba(2,30,54,.25), rgba(2,30,54,0) 30%, rgba(2,30,54,0) 70%, rgba(2,30,54,.55)), url("../images/hero-journey-2880.webp"); }
  html[dir="rtl"] .hero { background-image: linear-gradient(270deg, rgba(2,30,54,.6) 0%, rgba(2,30,54,.3) 35%, rgba(2,30,54,0) 55%), linear-gradient(180deg, rgba(2,30,54,.25), rgba(2,30,54,0) 30%, rgba(2,30,54,0) 70%, rgba(2,30,54,.55)), url("../images/hero-journey-2880.webp"); }
}
/* Richer, crisper photos */
.gallery img, .cb-main img, .cb-alley, .bj-pano img, .bj-grid img, .about .photo, .xd-pic, .od-pic, .rel-pic, .pkg-pic, .offer .pic { filter: saturate(1.07) contrast(1.03); }
@media (min-width: 721px) { .hero p { max-width: 38em; } }

/* Hero seal: grows smoothly on hover / touch, then settles back */
.seal { z-index: 3; cursor: pointer; transform-origin: 70% 30%; transition: transform .9s cubic-bezier(.2,.8,.2,1), box-shadow .9s cubic-bezier(.2,.8,.2,1); will-change: transform; }
.seal img { transition: transform .9s cubic-bezier(.2,.8,.2,1); }
.seal:hover, .seal.zoom { transform: scale(1.28); transition-duration: .45s; box-shadow: 0 0 0 4px rgba(216,175,88,1), 0 0 0 12px rgba(255,255,255,.35), 0 28px 60px rgba(2,30,54,.45); }
.seal:hover img, .seal.zoom img { transform: rotate(-6deg); transition-duration: .45s; }
@media (prefers-reduced-motion: reduce) { .seal, .seal img { transition: none; } .seal:hover, .seal.zoom { transform: none; } .seal:hover img, .seal.zoom img { transform: none; } }
/* Hero seal: gentle idle floating so it visibly lives */
@keyframes sealFloat { 0%, 100% { translate: 0 0; rotate: 0deg; } 25% { translate: 0 -7px; rotate: -2.5deg; } 50% { translate: 0 -12px; rotate: 0deg; } 75% { translate: 0 -6px; rotate: 2.5deg; } }
.seal { animation: sealFloat 5.5s ease-in-out infinite; }
.seal:hover, .seal.zoom { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .seal { animation: none; } }
/* Mobile & tablet: show the floating seal, smaller, in the hero corner */
@media (max-width: 1000px) {
  .hero .seal { display: grid; width: 84px; height: 84px; top: 22px; inset-inline-end: 18px; box-shadow: 0 0 0 3px rgba(216,175,88,.95), 0 0 0 7px rgba(255,255,255,.22), 0 12px 26px rgba(2,30,54,.4); transform-origin: 60% 40%; }
  .hero .seal img { width: 66px; height: 66px; }
  .hero .seal span { display: none; }
  .hero .seal:hover, .hero .seal.zoom { transform: scale(1.35); }
  .hero .eyebrow { padding-inline-end: 100px; }
}
@media (min-width: 721px) and (max-width: 1000px) { .hero .seal { width: 110px; height: 110px; top: 30px; inset-inline-end: 30px; } .hero .seal img { width: 88px; height: 88px; } .hero .eyebrow { padding-inline-end: 130px; } }

/* Add-to-home-screen banner (phones) */
.ib { position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); z-index: 9000; display: flex; gap: 14px; align-items: flex-start; padding: 16px 44px 16px 16px; background: #fff; border-radius: 18px; box-shadow: 0 18px 50px rgba(2,30,54,.28), 0 0 0 1px rgba(4,52,91,.06); transform: translateY(140%); opacity: 0; transition: transform .45s cubic-bezier(.2,.8,.2,1), opacity .3s; }
.ib::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; border-radius: 18px 18px 0 0; background: var(--gold-grad); }
.ib.on { transform: none; opacity: 1; }
html[dir="rtl"] .ib { padding: 16px 16px 16px 44px; }
.ib-ic { flex: none; width: 52px; height: 52px; border-radius: 14px; box-shadow: 0 4px 12px rgba(4,52,91,.18); }
.ib-tx { min-width: 0; }
.ib-t { display: block; font-size: 17px; color: var(--navy); margin-bottom: 2px; }
.ib-s { margin: 0; font-size: 14px; line-height: 1.45; color: var(--muted); }
.ib-ios { display: none; margin: 8px 0 0; font-size: 14px; font-weight: 700; color: var(--navy); line-height: 1.5; }
.ib-share { vertical-align: -3px; margin: 0 3px; color: #0a84ff; }
.is-ios .ib-ios { display: block; }
.ib-bt { display: flex; gap: 10px; margin-top: 12px; }
.is-ios .ib-i { display: none; }
.ib-i { min-height: 44px; padding: 0 22px; border: 0; border-radius: 999px; background: var(--gold-grad); color: var(--navy); font: inherit; font-weight: 800; font-size: 15px; box-shadow: 0 6px 16px rgba(185,141,54,.3); cursor: pointer; }
.ib-l { min-height: 44px; padding: 0 16px; border: 0; background: none; color: var(--muted); font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; }
.ib-x { position: absolute; top: 8px; inset-inline-end: 8px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #f1f4f8; color: var(--navy); font-size: 22px; line-height: 1; cursor: pointer; }
html.ib-on .wa-float { transform: translateY(-185px); transition: transform .45s cubic-bezier(.2,.8,.2,1); }
@media (prefers-reduced-motion: reduce) { .ib { transition: none; } }

/* Google review tile */
.ico.rev { background: #4285f4; }

/* Gamme tagline (client email) */
.lv-pitch{margin:2px 0 10px;font-size:14px;line-height:1.45;color:var(--muted);font-style:italic;}
html[dir="rtl"] .lv-pitch{font-style:normal;}

/* Share button */
.share-row{margin:16px 0 0;}
.share-row .btn{display:inline-flex;align-items:center;gap:8px;}


/* LT_REFINE 2026-10-09 : finitions globales (typo, rythme, cartes, focus, impression) */
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 96px)}
body{font-optical-sizing:auto}
p,li,dd,blockquote{text-wrap:pretty}
.hero h1{line-height:1.05}
.pg-hero h1{line-height:1.08}
@media (min-width:721px){section{padding-block:clamp(84px,8vw,116px)}}
main p a:not(.btn):not(.chip){text-decoration-color:var(--gold);text-underline-offset:3px;text-decoration-thickness:1.5px}
.btn:focus-visible,.lang select:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.hero .btn:focus-visible,.pg-hero .btn:focus-visible,.site-footer :focus-visible{outline-color:var(--gold)}
.lang select{transition:border-color .2s,box-shadow .2s}
.lang select:hover{border-color:var(--gold);box-shadow:0 0 0 4px rgba(216,175,88,.16)}
.pg-facts,.pg-ie,.why-grid li,.lv,.rel,.pg-card,.incl,.od-facts,.pd-facts,.pg-note{border-radius:var(--radius)}
.why-grid li,.lv{border-color:transparent;box-shadow:inset 0 3px 0 var(--gold),var(--shadow-sm);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.why-grid li:hover,.lv:hover{transform:translateY(-4px);box-shadow:inset 0 3px 0 var(--gold),var(--shadow-md)}
.rel{box-shadow:var(--shadow-sm);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.rel:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.pg-card{box-shadow:var(--shadow-md)}
.pg-facts{box-shadow:var(--shadow-sm)}
.soc{transition:background .2s,transform .2s var(--ease)}
.soc:hover{transform:translateY(-2px)}
@supports (scrollbar-color:auto){html{scrollbar-color:rgba(4,52,91,.45) var(--sand)}}
.site-footer .legal-links{margin-top:6px;font-size:13px}
.site-footer .legal-links a{color:#cdd5e3;margin:0 4px;text-decoration:underline;text-decoration-color:rgba(216,175,88,.6);text-underline-offset:3px}
.site-footer .legal-links a:hover{color:var(--gold-soft)}
@media (prefers-reduced-motion:reduce){.why-grid li,.lv,.rel,.soc{transition:none}.why-grid li:hover,.lv:hover,.rel:hover,.soc:hover{transform:none}}
@media print{.site-header,.site-footer,#lt-cb,.wa-float,.ib,.pg-hero::before{display:none !important}.pg-hero{color:var(--navy);background:none !important;padding-block:20px}body{background:#fff;color:#000}.legal{padding-top:0}.lt-legal[hidden]{display:none}}

/* Bandeau cookies : carte flottante, charte navy/or (textes et logique dans assets/cookies.js) */
#lt-cb{position:fixed;z-index:9500;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));margin-inline:auto;max-width:760px;background:#fff;color:var(--ink);border-radius:18px;padding:22px 24px 20px;box-shadow:0 18px 50px rgba(2,30,54,.28),0 0 0 1px rgba(4,52,91,.06);display:none;font-family:var(--body);font-size:15px;line-height:1.5;overflow:hidden}
#lt-cb::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--gold-grad)}
#lt-cb[data-open="1"]{display:block;animation:ltCbUp .45s var(--ease) both}
@keyframes ltCbUp{from{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}
#lt-cb h2{font-family:var(--display);font-weight:600;font-size:20px;line-height:1.25;letter-spacing:0;color:var(--navy);margin:0 0 8px}
#lt-cb p{margin:0;color:var(--muted);max-width:none}
#lt-cb a{color:var(--navy);font-weight:700;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
#lt-cb .lt-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
#lt-cb button{min-height:44px;padding:0 22px;border-radius:999px;border:2px solid var(--gold);background:transparent;color:var(--navy);font:800 15px var(--body);cursor:pointer;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s}
#lt-cb .lt-accept{background:var(--gold-grad);border-color:transparent;box-shadow:0 6px 18px rgba(185,141,54,.28)}
#lt-cb .lt-accept:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(185,141,54,.38)}
#lt-cb button:not(.lt-accept):hover{background:rgba(216,175,88,.12)}
#lt-cb .lt-custom{border-color:transparent;text-decoration:underline}
#lt-cb button:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
#lt-cb .lt-prefs{display:none;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
#lt-cb .lt-prefs[data-open="1"]{display:block}
#lt-cb label{display:flex;align-items:center;gap:10px;min-height:32px;margin-bottom:6px}
#lt-cb input{accent-color:#b98d36;width:18px;height:18px;margin:0}
html:has(#lt-cb[data-open="1"]) .ib,html:has(#lt-cb[data-open="1"]) .wa-float{opacity:0;pointer-events:none}
@media (max-width:520px){#lt-cb{padding:18px 18px 16px;left:8px;right:8px}#lt-cb .lt-actions button{flex:1 1 45%}}
@media (prefers-reduced-motion:reduce){#lt-cb[data-open="1"]{animation:none}#lt-cb button{transition:none}}

/* Pages legales (privacy-policy, terms) */
.legal{max-width:780px;margin:0 auto;padding:40px clamp(16px,3vw,48px) 72px;font-size:17px;line-height:1.65}
  .legal h2{font-family:'Playfair Display',Georgia,serif;font-size:24px;color:#04345B;margin:40px 0 12px;padding-top:20px;border-top:1px solid #E3E8EE}
  .legal h3{font-size:17px;color:#04345B;margin:22px 0 8px}
  .legal p,.legal li{max-width:68ch}
  .legal a{color:#04345B;text-decoration:underline;text-decoration-color:#D8AF58;text-underline-offset:3px}
  .legal .tbl{overflow-x:auto}.legal table{width:100%;border-collapse:collapse;font-size:15px;margin:12px 0 20px}
  .legal th,.legal td{text-align:start;padding:10px 8px;border-bottom:1px solid #E3E8EE;vertical-align:top}.legal th{color:#04345B}
  .legal .updated{color:#5B6673;font-size:15px;margin:0 0 24px}
