/* roulang page: index */
:root{
      --bg:#fbf7f1;
      --bg-soft:#fffaf3;
      --surface:#ffffff;
      --surface-2:#f6efe7;
      --ink:#17121f;
      --muted:#6e6476;
      --soft-muted:#9b8fa4;
      --line:rgba(45,34,56,.12);
      --primary:#8d3b72;
      --primary-2:#c05a8e;
      --accent:#e09b45;
      --accent-2:#ffe4b8;
      --success:#2f8a68;
      --danger:#b54848;
      --radius-sm:12px;
      --radius:20px;
      --radius-lg:30px;
      --shadow-sm:0 8px 24px rgba(36,26,48,.08);
      --shadow:0 18px 50px rgba(36,26,48,.14);
      --shadow-lg:0 28px 90px rgba(36,26,48,.20);
      --container:1180px;
      --nav-h:76px;
      --ease:all .22s ease;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      color:var(--ink);
      background:
        radial-gradient(circle at 12% 8%, rgba(224,155,69,.18), transparent 32%),
        radial-gradient(circle at 88% 4%, rgba(192,90,142,.14), transparent 30%),
        linear-gradient(180deg, #fbf7f1 0%, #fffaf3 44%, #f8efe9 100%);
      font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
      line-height:1.72;
      overflow-x:hidden;
      text-rendering:optimizeLegibility;
    }
    a{color:inherit;text-decoration:none;transition:var(--ease)}
    a:hover{color:var(--primary)}
    img,svg{max-width:100%;display:block}
    button,input,textarea,select{font:inherit}
    ::selection{background:rgba(141,59,114,.18);color:var(--ink)}
    .container-xl{max-width:var(--container)}
    .site-header{
      position:sticky;
      top:0;
      z-index:1000;
      background:rgba(251,247,241,.86);
      backdrop-filter:blur(18px);
      border-bottom:1px solid var(--line);
    }
    .nav-shell{
      min-height:var(--nav-h);
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
    }
    .brand{
      display:inline-flex;
      align-items:center;
      gap:12px;
      min-width:0;
      font-weight:900;
      letter-spacing:-.03em;
      color:var(--ink);
    }
    .brand-mark{
      width:42px;
      height:42px;
      border-radius:15px;
      display:grid;
      place-items:center;
      color:#fff;
      background:
        linear-gradient(135deg, var(--primary), var(--primary-2) 55%, var(--accent));
      box-shadow:0 12px 28px rgba(141,59,114,.28);
      flex:0 0 auto;
    }
    .brand-text{
      display:flex;
      flex-direction:column;
      line-height:1.05;
    }
    .brand-text strong{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:310px}
    .brand-text span{font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.08em;margin-top:5px}
    .main-nav{
      display:flex;
      align-items:center;
      gap:8px;
      padding:6px;
      border:1px solid var(--line);
      background:rgba(255,255,255,.62);
      border-radius:999px;
      box-shadow:var(--shadow-sm);
    }
    .main-nav a{
      padding:9px 17px;
      border-radius:999px;
      font-size:14px;
      font-weight:800;
      color:var(--muted);
    }
    .main-nav a:hover,.main-nav a.active{
      background:var(--ink);
      color:#fff;
      transform:translateY(-1px);
    }
    .nav-actions{
      display:flex;
      align-items:center;
      gap:10px;
    }
    .btn-brand,.btn-ghost,.btn-lightline{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      border:0;
      border-radius:999px;
      padding:12px 18px;
      font-weight:900;
      letter-spacing:-.01em;
      transition:var(--ease);
      white-space:nowrap;
      cursor:pointer;
    }
    .btn-brand{
      color:#fff;
      background:linear-gradient(135deg,var(--primary),var(--primary-2));
      box-shadow:0 12px 28px rgba(141,59,114,.26);
    }
    .btn-brand:hover{
      color:#fff;
      transform:translateY(-2px);
      box-shadow:0 18px 44px rgba(141,59,114,.32);
    }
    .btn-ghost{
      color:var(--ink);
      background:#fff;
      border:1px solid var(--line);
      box-shadow:var(--shadow-sm);
    }
    .btn-ghost:hover{
      background:var(--surface-2);
      color:var(--primary);
      transform:translateY(-2px);
    }
    .btn-lightline{
      color:var(--primary);
      background:rgba(141,59,114,.08);
      border:1px solid rgba(141,59,114,.16);
    }
    .btn-lightline:hover{
      color:#fff;
      background:var(--primary);
      transform:translateY(-2px);
    }
    .navbar-toggler{
      border:1px solid var(--line);
      background:#fff;
      border-radius:14px;
      width:46px;
      height:42px;
      box-shadow:var(--shadow-sm);
    }
    .navbar-toggler:focus,.btn:focus,.btn-brand:focus,.btn-ghost:focus,.form-control:focus,.form-select:focus{
      box-shadow:0 0 0 4px rgba(141,59,114,.18);
      border-color:rgba(141,59,114,.36);
      outline:0;
    }
    .mobile-panel{
      display:none;
      padding:0 0 18px;
    }
    .mobile-panel .main-nav{
      width:100%;
      border-radius:22px;
      align-items:stretch;
      flex-direction:column;
    }
    .mobile-panel .nav-actions{
      margin-top:12px;
      flex-direction:column;
      align-items:stretch;
    }
    .section{
      padding:86px 0;
      position:relative;
    }
    .section-tight{padding:56px 0}
    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:7px 12px;
      border-radius:999px;
      color:var(--primary);
      background:rgba(141,59,114,.08);
      border:1px solid rgba(141,59,114,.14);
      font-size:13px;
      font-weight:900;
    }
    .eyebrow i{
      width:8px;height:8px;border-radius:999px;background:var(--accent);display:inline-block;
      box-shadow:0 0 0 5px rgba(224,155,69,.14);
    }
    .section-head{
      display:flex;
      align-items:end;
      justify-content:space-between;
      gap:24px;
      margin-bottom:28px;
    }
    .section-head h2{
      margin:12px 0 0;
      font-size:clamp(28px,3vw,44px);
      line-height:1.14;
      letter-spacing:-.045em;
      font-weight:950;
    }
    .section-head p{
      margin:0;
      max-width:570px;
      color:var(--muted);
      font-size:16px;
    }
    .hero{
      padding:58px 0 74px;
    }
    .hero-board{
      overflow:hidden;
      border-radius:var(--radius-lg);
      background:
        linear-gradient(135deg, rgba(23,18,31,.96), rgba(66,34,65,.94) 54%, rgba(141,59,114,.88)),
        radial-gradient(circle at 88% 16%, rgba(224,155,69,.34), transparent 34%);
      color:#fff;
      box-shadow:var(--shadow-lg);
      border:1px solid rgba(255,255,255,.16);
      position:relative;
    }
    .hero-board:before{
      content:"";
      position:absolute;
      inset:-40% -12% auto auto;
      width:440px;
      height:440px;
      border-radius:50%;
      background:radial-gradient(circle, rgba(255,228,184,.24), transparent 68%);
      pointer-events:none;
    }
    .hero-inner{
      display:grid;
      grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
      gap:34px;
      align-items:stretch;
      padding:42px;
      position:relative;
      z-index:1;
    }
    .hero-copy h1{
      margin:18px 0 18px;
      max-width:760px;
      font-size:clamp(36px,5.2vw,70px);
      line-height:1.02;
      letter-spacing:-.07em;
      font-weight:950;
    }
    .hero-copy p{
      margin:0;
      max-width:730px;
      color:rgba(255,255,255,.78);
      font-size:18px;
      line-height:1.9;
    }
    .hero-cta{
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      margin-top:28px;
    }
    .hero-cta .btn-ghost{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.22);box-shadow:none}
    .hero-cta .btn-ghost:hover{background:#fff;color:var(--primary)}
    .hero-data{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:12px;
      margin-top:30px;
      max-width:760px;
    }
    .hero-data .mini-stat{
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.08);
      border-radius:18px;
      padding:16px;
    }
    .mini-stat b{display:block;font-size:24px;letter-spacing:-.04em}
    .mini-stat span{display:block;margin-top:2px;color:rgba(255,255,255,.68);font-size:13px}
    .download-card{
      background:rgba(255,255,255,.96);
      color:var(--ink);
      border-radius:26px;
      padding:20px;
      box-shadow:0 24px 70px rgba(0,0,0,.22);
      align-self:stretch;
      display:flex;
      flex-direction:column;
      min-height:470px;
    }
    .cover{
      border-radius:22px;
      padding:22px;
      min-height:230px;
      background:
        linear-gradient(145deg,#fff6e7,#f2d9ec 55%,#c05a8e);
      border:1px solid rgba(141,59,114,.16);
      position:relative;
      overflow:hidden;
    }
    .cover:after{
      content:"";
      position:absolute;
      right:-46px;bottom:-58px;
      width:190px;height:190px;border-radius:50%;
      background:rgba(255,255,255,.35);
    }
    .cover-label{
      display:inline-flex;
      border-radius:999px;
      padding:6px 10px;
      color:#fff;
      background:rgba(23,18,31,.82);
      font-size:12px;
      font-weight:900;
      position:relative;
      z-index:1;
    }
    .cover h3{
      position:relative;
      z-index:1;
      margin:28px 0 8px;
      font-size:30px;
      line-height:1.1;
      letter-spacing:-.05em;
      font-weight:950;
    }
    .cover p{
      position:relative;
      z-index:1;
      margin:0;
      color:#4f405a;
      font-size:14px;
    }
    .toc{
      list-style:none;
      padding:16px 0 0;
      margin:0;
      display:grid;
      gap:10px;
    }
    .toc li{
      display:flex;
      gap:10px;
      align-items:flex-start;
      padding:11px 12px;
      border-radius:16px;
      background:var(--bg-soft);
      border:1px solid var(--line);
      color:var(--muted);
      font-size:14px;
      line-height:1.55;
    }
    .toc li span{
      width:24px;height:24px;border-radius:9px;
      flex:0 0 auto;
      display:grid;place-items:center;
      background:rgba(141,59,114,.10);
      color:var(--primary);
      font-weight:950;
      font-size:12px;
    }
    .download-card form{
      margin-top:auto;
      display:grid;
      gap:10px;
      padding-top:14px;
    }
    .form-control,.form-select{
      min-height:48px;
      border-radius:15px;
      border:1px solid var(--line);
      background:#fff;
      color:var(--ink);
      padding:12px 14px;
    }
    .form-note{
      margin:4px 0 0;
      font-size:12px;
      color:var(--muted);
      line-height:1.6;
    }
    .notice-bar{
      margin-top:18px;
      display:flex;
      gap:12px;
      align-items:flex-start;
      padding:15px 18px;
      border-radius:20px;
      border:1px solid rgba(224,155,69,.28);
      background:rgba(255,228,184,.44);
      color:#6f4a1d;
      font-size:14px;
    }
    .notice-icon{
      width:28px;height:28px;border-radius:10px;
      background:var(--accent);
      color:#fff;
      display:grid;place-items:center;
      flex:0 0 auto;
      font-weight:950;
    }
    .feature-strip{
      display:grid;
      grid-template-columns:1.1fr .9fr;
      gap:22px;
    }
    .feature-lead{
      border-radius:var(--radius-lg);
      padding:30px;
      background:#fff;
      box-shadow:var(--shadow);
      border:1px solid var(--line);
    }
    .feature-lead h3,.param-card h3,.guide-card h3,.trust-card h3{
      margin:0 0 10px;
      font-size:24px;
      font-weight:950;
      letter-spacing:-.035em;
    }
    .feature-lead p,.param-card p,.guide-card p,.trust-card p{
      margin:0;
      color:var(--muted);
    }
    .coupon-grid{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:14px;
      margin-top:22px;
    }
    .coupon{
      position:relative;
      border-radius:22px;
      padding:18px;
      background:linear-gradient(135deg,#fffaf3,#fff);
      border:1px dashed rgba(141,59,114,.28);
      box-shadow:var(--shadow-sm);
      overflow:hidden;
    }
    .coupon:before,.coupon:after{
      content:"";
      position:absolute;
      top:50%;
      width:18px;height:18px;
      border-radius:50%;
      background:var(--bg);
      transform:translateY(-50%);
      border:1px solid rgba(141,59,114,.12);
    }
    .coupon:before{left:-10px}
    .coupon:after{right:-10px}
    .coupon b{
      display:block;
      color:var(--primary);
      font-size:20px;
      letter-spacing:-.03em;
    }
    .coupon span{display:block;color:var(--muted);font-size:13px;margin-top:5px}
    .feature-side{
      display:grid;
      gap:14px;
    }
    .side-card{
      border-radius:24px;
      padding:22px;
      background:var(--ink);
      color:#fff;
      box-shadow:var(--shadow);
      min-height:150px;
      position:relative;
      overflow:hidden;
    }
    .side-card:nth-child(2){background:linear-gradient(135deg,var(--primary),var(--primary-2))}
    .side-card:after{
      content:"";
      position:absolute;
      right:-35px;top:-35px;width:120px;height:120px;border-radius:50%;
      background:rgba(255,255,255,.12);
    }
    .side-card h3{margin:0 0 8px;font-weight:950;letter-spacing:-.03em}
    .side-card p{margin:0;color:rgba(255,255,255,.72);font-size:14px}
    .param-grid{
      display:grid;
      grid-template-columns:1.05fr .95fr;
      gap:22px;
    }
    .param-card,.guide-card,.trust-card,.topic-card,.news-panel,.booking-card,.faq-wrap{
      background:#fff;
      border:1px solid var(--line);
      border-radius:var(--radius-lg);
      box-shadow:var(--shadow-sm);
    }
    .param-card{padding:28px}
    .spec-list{
      display:grid;
      gap:10px;
      margin:18px 0 0;
      padding:0;
      list-style:none;
    }
    .spec-list li{
      display:grid;
      grid-template-columns:130px 1fr;
      gap:14px;
      padding:14px 0;
      border-bottom:1px solid var(--line);
      align-items:start;
    }
    .spec-list li:last-child{border-bottom:0}
    .spec-list strong{font-size:14px;color:var(--ink)}
    .spec-list span{font-size:14px;color:var(--muted)}
    .metric-board{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:14px;
    }
    .metric{
      border-radius:24px;
      padding:22px;
      background:
        linear-gradient(180deg,#fff,#fff8ef);
      border:1px solid var(--line);
      min-height:158px;
    }
    .metric b{
      display:block;
      font-size:36px;
      line-height:1;
      color:var(--primary);
      letter-spacing:-.06em;
      font-weight:950;
    }
    .metric span{display:block;margin-top:10px;color:var(--muted);font-size:14px}
    .trust-row{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:14px;
    }
    .trust-card{
      padding:22px;
      transition:var(--ease);
    }
    .trust-card:hover,.topic-card:hover,.news-item:hover{
      transform:translateY(-4px);
      box-shadow:var(--shadow);
    }
    .trust-icon{
      width:44px;height:44px;border-radius:16px;
      display:grid;place-items:center;
      background:rgba(141,59,114,.10);
      color:var(--primary);
      font-weight:950;
      margin-bottom:16px;
    }
    .topic-cloud{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:18px;
    }
    .topic-chip{
      display:inline-flex;
      align-items:center;
      gap:7px;
      border-radius:999px;
      padding:10px 14px;
      background:#fff;
      border:1px solid var(--line);
      color:var(--muted);
      font-weight:800;
      font-size:14px;
      box-shadow:0 7px 18px rgba(36,26,48,.05);
    }
    .topic-chip:hover{
      color:#fff;
      background:var(--primary);
      border-color:var(--primary);
      transform:translateY(-2px);
    }
    .timeline{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:16px;
      position:relative;
    }
    .timeline-card{
      padding:22px;
      border-radius:24px;
      background:#fff;
      border:1px solid var(--line);
      box-shadow:var(--shadow-sm);
    }
    .timeline-card .node{
      width:34px;height:34px;border-radius:13px;
      background:linear-gradient(135deg,var(--primary),var(--accent));
      color:#fff;
      display:grid;place-items:center;
      font-weight:950;
      margin-bottom:14px;
    }
    .timeline-card h3{margin:0 0 8px;font-size:18px;font-weight:950}
    .timeline-card p{margin:0;color:var(--muted);font-size:14px}
    .guide-layout{
      display:grid;
      grid-template-columns:.85fr 1.15fr;
      gap:22px;
    }
    .guide-card{padding:28px}
    .check-list{
      display:grid;
      gap:12px;
      padding:0;
      margin:20px 0 0;
      list-style:none;
    }
    .check-list li{
      display:flex;
      gap:12px;
      align-items:flex-start;
      padding:14px;
      border-radius:18px;
      background:var(--bg-soft);
      border:1px solid var(--line);
    }
    .check-list em{
      width:24px;height:24px;border-radius:50%;
      display:grid;place-items:center;
      flex:0 0 auto;
      background:rgba(47,138,104,.12);
      color:var(--success);
      font-style:normal;
      font-weight:950;
    }
    .check-list span{color:var(--muted);font-size:14px}
    .news-layout{
      display:grid;
      grid-template-columns:minmax(0,1fr) 330px;
      gap:22px;
    }
    .news-panel{padding:24px}
    .news-list{
      display:grid;
      gap:12px;
      padding:0;margin:0;
      list-style:none;
    }
    .news-item{
      display:grid;
      grid-template-columns:96px 1fr;
      gap:14px;
      padding:16px;
      border-radius:20px;
      background:var(--bg-soft);
      border:1px solid var(--line);
      transition:var(--ease);
    }
    .news-date{
      border-radius:16px;
      background:#fff;
      border:1px solid var(--line);
      display:grid;
      place-items:center;
      text-align:center;
      color:var(--primary);
      font-weight:950;
      min-height:78px;
    }
    .news-date small{display:block;color:var(--muted);font-weight:800;font-size:12px}
    .news-item h3{
      margin:0 0 6px;
      font-size:18px;
      line-height:1.35;
      font-weight:950;
      letter-spacing:-.02em;
    }
    .news-item p{margin:0;color:var(--muted);font-size:14px}
    .recommend{
      position:sticky;
      top:96px;
      align-self:start;
      border-radius:var(--radius-lg);
      padding:24px;
      background:var(--ink);
      color:#fff;
      box-shadow:var(--shadow);
    }
    .recommend h3{font-size:22px;margin:0 0 16px;font-weight:950}
    .rank-list{counter-reset:rank;display:grid;gap:12px;padding:0;margin:0;list-style:none}
    .rank-list li{
      counter-increment:rank;
      display:flex;
      gap:12px;
      align-items:flex-start;
      padding-bottom:12px;
      border-bottom:1px solid rgba(255,255,255,.12);
      color:rgba(255,255,255,.78);
      font-size:14px;
    }
    .rank-list li:last-child{border-bottom:0;padding-bottom:0}
    .rank-list li:before{
      content:counter(rank);
      width:26px;height:26px;border-radius:10px;
      display:grid;place-items:center;
      background:rgba(255,255,255,.12);
      color:#fff;
      font-weight:950;
      flex:0 0 auto;
    }
    .booking{
      padding-bottom:96px;
    }
    .booking-card{
      overflow:hidden;
      display:grid;
      grid-template-columns:.9fr 1.1fr;
    }
    .booking-copy{
      padding:34px;
      background:
        radial-gradient(circle at 10% 12%, rgba(255,228,184,.32), transparent 28%),
        linear-gradient(135deg,var(--ink),#4b2546);
      color:#fff;
    }
    .booking-copy h2{
      margin:14px 0 12px;
      font-size:clamp(30px,3.2vw,46px);
      line-height:1.13;
      letter-spacing:-.05em;
      font-weight:950;
    }
    .booking-copy p{color:rgba(255,255,255,.74);margin:0}
    .booking-points{
      margin:24px 0 0;
      padding:0;
      list-style:none;
      display:grid;
      gap:12px;
    }
    .booking-points li{
      display:flex;
      gap:10px;
      color:rgba(255,255,255,.82);
      font-size:14px;
    }
    .booking-points li:before{
      content:"";
      width:10px;height:10px;border-radius:50%;
      background:var(--accent);
      margin-top:8px;
      flex:0 0 auto;
    }
    .booking-form{
      padding:34px;
      display:grid;
      gap:14px;
      background:#fff;
    }
    .booking-form label{font-weight:900;font-size:14px;color:var(--ink);margin-bottom:6px}
    .form-grid{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:14px;
    }
    .faq-wrap{padding:26px;margin-top:22px}
    .accordion{
      --bs-accordion-bg:transparent;
      --bs-accordion-border-color:var(--line);
      --bs-accordion-btn-focus-box-shadow:0 0 0 4px rgba(141,59,114,.14);
      --bs-accordion-active-bg:rgba(141,59,114,.08);
      --bs-accordion-active-color:var(--primary);
      --bs-accordion-border-radius:18px;
    }
    .accordion-item{
      border:1px solid var(--line)!important;
      border-radius:18px!important;
      overflow:hidden;
      margin-bottom:12px;
      background:#fff;
    }
    .accordion-button{
      font-weight:950;
      color:var(--ink);
      padding:18px 20px;
      border-radius:18px!important;
    }
    .accordion-button:not(.collapsed){box-shadow:none}
    .accordion-body{
      color:var(--muted);
      padding:0 20px 20px;
    }
    .site-footer{
      background:#17121f;
      color:#fff;
      padding:54px 0 28px;
    }
    .footer-grid{
      display:grid;
      grid-template-columns:1.2fr .8fr .8fr;
      gap:28px;
      align-items:start;
    }
    .footer-brand{
      display:flex;
      gap:12px;
      align-items:center;
      margin-bottom:14px;
    }
    .footer-brand .brand-mark{box-shadow:none}
    .footer-brand strong{font-size:18px;font-weight:950}
    .site-footer p,.site-footer li,.site-footer a{
      color:rgba(255,255,255,.68);
      font-size:14px;
    }
    .site-footer h3{
      margin:0 0 14px;
      font-size:16px;
      font-weight:950;
    }
    .footer-links{
      padding:0;margin:0;list-style:none;display:grid;gap:10px;
    }
    .footer-links a:hover{color:#fff}
    .footer-bottom{
      margin-top:34px;
      padding-top:22px;
      border-top:1px solid rgba(255,255,255,.12);
      display:flex;
      justify-content:space-between;
      gap:16px;
      flex-wrap:wrap;
      color:rgba(255,255,255,.55);
      font-size:13px;
    }
    .floating-cta{
      position:fixed;
      left:50%;
      bottom:18px;
      transform:translateX(-50%);
      z-index:999;
      width:min(720px,calc(100% - 28px));
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding:12px 14px 12px 18px;
      border-radius:999px;
      background:rgba(23,18,31,.88);
      color:#fff;
      backdrop-filter:blur(18px);
      border:1px solid rgba(255,255,255,.16);
      box-shadow:0 22px 60px rgba(0,0,0,.24);
    }
    .floating-cta span{font-size:14px;color:rgba(255,255,255,.76)}
    .floating-cta strong{font-weight:950}
    @media (max-width:1024px){
      .hero-inner,.feature-strip,.param-grid,.guide-layout,.booking-card{grid-template-columns:1fr}
      .download-card{min-height:unset}
      .trust-row,.timeline{grid-template-columns:repeat(2,1fr)}
      .news-layout{grid-template-columns:1fr}
      .recommend{position:relative;top:auto}
      .desktop-only{display:none!important}
      .mobile-panel.show{display:block}
    }
    @media (max-width:768px){
      :root{--nav-h:68px}
      .section{padding:64px 0}
      .hero{padding:34px 0 58px}
      .hero-inner{padding:24px}
      .section-head{display:block}
      .section-head p{margin-top:12px}
      .hero-data,.coupon-grid,.metric-board,.trust-row,.timeline,.form-grid{grid-template-columns:1fr}
      .news-item{grid-template-columns:1fr}
      .news-date{min-height:auto;justify-items:start;padding:12px}
      .footer-grid{grid-template-columns:1fr}
      .floating-cta{border-radius:22px;align-items:flex-start;flex-direction:column}
      .floating-cta .btn-brand{width:100%}
      .brand-text strong{max-width:220px}
    }
    @media (max-width:520px){
      .container-xl{padding-left:18px;padding-right:18px}
      .hero-copy h1{font-size:38px}
      .hero-copy p{font-size:16px}
      .hero-cta .btn-brand,.hero-cta .btn-ghost,.btn-lightline{width:100%}
      .cover h3{font-size:25px}
      .spec-list li{grid-template-columns:1fr;gap:4px}
      .booking-copy,.booking-form,.param-card,.guide-card,.feature-lead{padding:22px}
      .main-nav a{text-align:center}
      .brand-mark{width:38px;height:38px;border-radius:14px}
      .brand-text strong{max-width:180px;font-size:15px}
    }

/* roulang: framework shim */
/* 覆盖 Bootstrap 等对 a/btn 的全局默认，避免导航出现下划线/蓝链 */
.site-header a,.site-header a:hover,.navbar a,.navbar a:hover,.nav-links a,.nav-links a:hover,header nav a,header nav a:hover{text-decoration:none}
.site-header .btn,.navbar .btn,.nav-cta{text-decoration:none}
