/* roulang page: index */
:root{
      --bg:#f7f2e9;
      --bg-soft:#fffaf1;
      --paper:#fffdf8;
      --paper-2:#fff7e8;
      --ink:#17130f;
      --muted:#6f665b;
      --muted-2:#91877c;
      --line:#eadfcd;
      --line-dark:#d8c6ad;
      --brand:#d84b25;
      --brand-2:#fdc45c;
      --brand-3:#2f5d50;
      --deep:#241b16;
      --green:#1d6b58;
      --blue:#315b8a;
      --radius-sm:12px;
      --radius:22px;
      --radius-lg:32px;
      --shadow-sm:0 8px 20px rgba(36,27,22,.06);
      --shadow:0 18px 50px rgba(36,27,22,.10);
      --shadow-hover:0 24px 70px rgba(36,27,22,.16);
      --container:1180px;
      --focus:0 0 0 4px rgba(216,75,37,.18);
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
      color:var(--ink);
      background:
        radial-gradient(circle at top left, rgba(253,196,92,.26), transparent 34rem),
        radial-gradient(circle at 90% 12%, rgba(47,93,80,.12), transparent 28rem),
        linear-gradient(180deg,var(--bg),#fbf7ef 42%,#fffaf1);
      line-height:1.75;
      text-rendering:optimizeLegibility;
      -webkit-font-smoothing:antialiased;
    }
    a{color:inherit;text-decoration:none}
    img{max-width:100%;display:block}
    button,input,select,textarea{font:inherit}
    button{cursor:pointer}
    ::selection{background:rgba(216,75,37,.22)}
    .container{width:min(var(--container),calc(100% - 40px));margin:0 auto}
    .section-pad{padding:72px 0}
    .eyebrow{
      display:inline-flex;align-items:center;gap:8px;
      padding:7px 12px;border:1px solid var(--line);
      border-radius:999px;background:rgba(255,253,248,.72);
      color:var(--brand);font-size:13px;font-weight:800;letter-spacing:.03em;
      box-shadow:var(--shadow-sm);
    }
    .eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--brand)}
    .section-title{font-size:clamp(28px,4vw,46px);line-height:1.16;font-weight:950;letter-spacing:-.04em;margin:14px 0 14px}
    .section-desc{max-width:760px;color:var(--muted);font-size:17px;line-height:1.9;margin:0}
    .btn{
      display:inline-flex;align-items:center;justify-content:center;gap:9px;
      min-height:48px;padding:0 20px;border-radius:999px;border:1px solid transparent;
      font-weight:900;transition:transform .25s ease,box-shadow .25s ease,background .25s ease,border-color .25s ease,color .25s ease;
      white-space:nowrap;
    }
    .btn:focus-visible,.nav-link:focus-visible,.field:focus-visible,.mobile-toggle:focus-visible{outline:none;box-shadow:var(--focus)}
    .btn-primary{background:var(--ink);color:#fff;box-shadow:0 12px 28px rgba(23,19,15,.16)}
    .btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(23,19,15,.22);background:#2b211b}
    .btn-accent{background:var(--brand);color:#fff;box-shadow:0 14px 34px rgba(216,75,37,.22)}
    .btn-accent:hover{transform:translateY(-2px);background:#c53e1b;box-shadow:0 18px 46px rgba(216,75,37,.28)}
    .btn-ghost{background:rgba(255,253,248,.72);border-color:var(--line-dark);color:var(--ink)}
    .btn-ghost:hover{transform:translateY(-2px);border-color:var(--brand);color:var(--brand);box-shadow:var(--shadow-sm)}
    .badge{
      display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;
      font-size:12px;font-weight:900;background:#fff4df;color:#8b3b17;border:1px solid #f1d6ad;
    }
    .card{
      background:rgba(255,253,248,.88);
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow-sm);
      transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
      overflow:hidden;
    }
    .card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);border-color:rgba(216,75,37,.28)}
    .soft-line{height:1px;background:linear-gradient(90deg,transparent,var(--line-dark),transparent)}
    .text-balance{text-wrap:balance}

    .site-header{
      position:sticky;top:0;z-index:50;
      background:rgba(247,242,233,.86);
      backdrop-filter:saturate(160%) blur(18px);
      border-bottom:1px solid rgba(216,198,173,.72);
    }
    .masthead{
      display:grid;grid-template-columns:1fr auto;align-items:end;gap:24px;
      padding:22px 0 14px;border-bottom:1px solid rgba(216,198,173,.66);
    }
    .brand-wrap{display:flex;align-items:flex-end;gap:18px;min-width:0}
    .brand-mark{
      width:48px;height:48px;border-radius:16px;
      display:grid;place-items:center;background:var(--ink);color:var(--brand-2);
      font-weight:950;box-shadow:0 14px 30px rgba(23,19,15,.16);flex:0 0 auto;
    }
    .brand-name{
      font-family:Georgia,"Times New Roman","Noto Serif SC",serif;
      font-size:clamp(30px,5vw,58px);
      line-height:.95;font-weight:900;letter-spacing:-.06em;
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    }
    .mast-note{
      border-left:1px solid var(--line-dark);padding-left:18px;
      color:var(--muted);font-size:13px;line-height:1.55;max-width:280px;
    }
    .mobile-toggle{
      display:none;border:1px solid var(--line-dark);background:var(--paper);
      border-radius:999px;padding:10px 13px;font-weight:900;color:var(--ink);
    }
    .nav-row{
      display:flex;align-items:center;justify-content:space-between;gap:16px;
      padding:11px 0;
    }
    .main-nav{display:flex;align-items:center;gap:8px;min-width:0}
    .nav-link{
      display:inline-flex;align-items:center;height:38px;padding:0 15px;
      border-radius:999px;color:var(--muted);font-weight:850;font-size:14px;
      transition:background .2s ease,color .2s ease,transform .2s ease;
    }
    .nav-link:hover{background:rgba(216,75,37,.09);color:var(--brand);transform:translateY(-1px)}
    .nav-link.active{background:var(--ink);color:#fff}
    .nav-search{
      display:flex;align-items:center;gap:8px;min-width:260px;
      background:rgba(255,253,248,.78);border:1px solid var(--line);
      border-radius:999px;padding:7px 13px;color:var(--muted-2);font-size:13px;
    }
    .nav-search span:first-child{color:var(--brand);font-weight:950}
    .header-cta{height:38px;padding:0 15px;font-size:14px}

    .hero{padding:46px 0 74px}
    .bento{
      display:grid;
      grid-template-columns:1.35fr .65fr;
      grid-template-rows:auto auto;
      gap:18px;
    }
    .hero-main{
      grid-row:span 2;
      min-height:520px;
      position:relative;
      padding:42px;
      background:
        linear-gradient(135deg,rgba(255,253,248,.94),rgba(255,247,232,.92)),
        radial-gradient(circle at 82% 10%,rgba(216,75,37,.18),transparent 18rem);
      border:1px solid var(--line);
      border-radius:var(--radius-lg);
      box-shadow:var(--shadow);
      overflow:hidden;
    }
    .hero-main::after{
      content:"";position:absolute;right:-90px;bottom:-120px;width:330px;height:330px;
      background:conic-gradient(from 160deg,var(--brand),var(--brand-2),var(--green),var(--brand));
      opacity:.18;border-radius:50%;filter:blur(2px);
    }
    .hero-kicker{
      display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px;position:relative;z-index:1;
    }
    .hero h1{
      position:relative;z-index:1;
      max-width:780px;margin:0 0 18px;
      font-size:clamp(38px,6vw,72px);line-height:1.04;
      font-weight:950;letter-spacing:-.07em;
    }
    .hero-lead{
      position:relative;z-index:1;
      max-width:720px;color:var(--muted);font-size:18px;line-height:1.95;margin:0 0 28px;
    }
    .hero-actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:34px}
    .data-strip{
      position:relative;z-index:1;
      display:grid;grid-template-columns:repeat(3,1fr);gap:12px;
    }
    .data-item{
      padding:16px;border-radius:18px;background:rgba(255,255,255,.58);
      border:1px solid rgba(216,198,173,.72);
    }
    .data-item strong{display:block;font-size:24px;line-height:1;font-weight:950;color:var(--ink);letter-spacing:-.03em}
    .data-item span{display:block;margin-top:7px;font-size:13px;color:var(--muted);line-height:1.45}
    .hero-side-card{
      padding:24px;border-radius:var(--radius-lg);border:1px solid var(--line);
      background:rgba(255,253,248,.86);box-shadow:var(--shadow-sm);
      min-height:250px;position:relative;overflow:hidden;
    }
    .hero-side-card.dark{
      background:linear-gradient(145deg,#241b16,#3b2920);
      color:#fff;border-color:rgba(255,255,255,.12);
    }
    .hero-side-card h2{font-size:24px;line-height:1.2;font-weight:950;letter-spacing:-.04em;margin:12px 0 10px}
    .hero-side-card p{color:var(--muted);font-size:15px;line-height:1.75;margin:0}
    .hero-side-card.dark p{color:#e6d7c4}
    .mini-meter{
      display:flex;align-items:end;gap:7px;height:76px;margin-top:20px;
    }
    .mini-meter i{display:block;flex:1;border-radius:999px 999px 8px 8px;background:var(--brand-2)}
    .mini-meter i:nth-child(2){height:58%;background:#f08a4b}
    .mini-meter i:nth-child(1){height:36%;background:#e7ceb0}
    .mini-meter i:nth-child(3){height:84%;background:var(--brand)}
    .mini-meter i:nth-child(4){height:66%;background:var(--green)}
    .check-list{display:grid;gap:11px;margin-top:18px}
    .check-list li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:#f5eadf}
    .check-list li::before{content:"✓";color:var(--brand-2);font-weight:950}
    .cta-bar{
      grid-column:1 / -1;
      display:flex;align-items:center;justify-content:space-between;gap:18px;
      padding:18px 22px;border-radius:24px;
      background:var(--ink);color:#fff;box-shadow:var(--shadow);
    }
    .cta-bar p{margin:0;color:#eadfcd;font-size:15px}
    .cta-bar strong{color:#fff}

    .metrics-board{
      margin-top:30px;
      display:grid;grid-template-columns:1fr 1fr 1fr 1.2fr;gap:14px;
    }
    .metric-card{
      padding:22px;border-radius:24px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-sm);
    }
    .metric-card .num{font-size:34px;font-weight:950;letter-spacing:-.05em;line-height:1;color:var(--brand)}
    .metric-card p{margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.65}
    .metric-card.featured{background:linear-gradient(135deg,#2f5d50,#1f3d36);color:#fff;border-color:rgba(255,255,255,.12)}
    .metric-card.featured .num{color:var(--brand-2)}
    .metric-card.featured p{color:#e9f0ec}

    .service-matrix{
      margin-top:18px;
      display:grid;grid-template-columns:1.15fr .85fr .85fr;gap:18px;
    }
    .service-card{padding:26px}
    .service-card h3,.time-card h3,.topic-card h3,.faq-item h3{font-size:21px;font-weight:950;line-height:1.25;letter-spacing:-.03em;margin:0 0 10px}
    .service-card p,.time-card p,.topic-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.78}
    .service-card.large{
      background:linear-gradient(145deg,#fffdf8,#fff1d9);
      display:grid;align-content:space-between;
    }
    .service-points{display:grid;gap:12px;margin-top:22px}
    .service-points li{
      display:flex;align-items:flex-start;gap:12px;padding:13px;border-radius:16px;
      background:rgba(255,255,255,.64);border:1px solid rgba(216,198,173,.62);
      color:var(--muted);font-size:14px;line-height:1.6;
    }
    .service-points b{color:var(--ink)}
    .icon-dot{
      width:38px;height:38px;border-radius:14px;display:grid;place-items:center;
      background:#fff0d3;color:var(--brand);font-weight:950;flex:0 0 auto;
    }

    .time-wrap{
      display:grid;grid-template-columns:.85fr 1.15fr;gap:22px;align-items:stretch;margin-top:28px;
    }
    .time-cover{
      border-radius:var(--radius-lg);padding:30px;background:
        linear-gradient(145deg,rgba(36,27,22,.96),rgba(47,93,80,.92));
      color:#fff;box-shadow:var(--shadow);position:relative;overflow:hidden;
    }
    .time-cover::after{content:"";position:absolute;right:-80px;top:-80px;width:210px;height:210px;border-radius:50%;background:rgba(253,196,92,.25)}
    .time-cover h3{font-size:34px;line-height:1.15;font-weight:950;letter-spacing:-.05em;margin:18px 0 10px;position:relative;z-index:1}
    .time-cover p{color:#e8ded1;margin:0;position:relative;z-index:1}
    .time-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
    .time-card{padding:24px}
    .time-tag{display:inline-flex;margin-bottom:14px;padding:6px 10px;border-radius:999px;background:#f8ead2;color:#9a431d;font-size:12px;font-weight:950}
    .time-card.best{background:linear-gradient(145deg,#fffdf8,#ecfbf4);border-color:#cbe6d9}
    .time-card.best .time-tag{background:#dff5ea;color:#1d6b58}

    .news-layout{
      margin-top:28px;display:grid;grid-template-columns:1.35fr .65fr;gap:22px;align-items:start;
    }
    .news-list{padding:12px}
    .news-item{
      display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;
      padding:18px;border-radius:18px;border:1px solid transparent;
      transition:background .2s ease,border-color .2s ease,transform .2s ease;
    }
    .news-item:hover{background:#fff7e8;border-color:var(--line);transform:translateX(4px)}
    .news-date{
      width:54px;height:54px;border-radius:18px;background:var(--ink);color:#fff;
      display:grid;place-items:center;text-align:center;font-size:12px;font-weight:950;line-height:1.15;
    }
    .news-item h3{font-size:18px;font-weight:950;letter-spacing:-.02em;margin:0 0 5px}
    .news-item p{font-size:14px;color:var(--muted);margin:0;line-height:1.62}
    .arrow{color:var(--brand);font-weight:950}
    .recommend-panel{padding:24px;background:#fff7e8}
    .recommend-panel h3{font-size:24px;font-weight:950;letter-spacing:-.04em;margin:0 0 10px}
    .recommend-panel p{color:var(--muted);font-size:15px;margin:0 0 18px;line-height:1.75}
    .tag-cloud{display:flex;flex-wrap:wrap;gap:10px}
    .tag-cloud a{
      display:inline-flex;padding:8px 12px;border-radius:999px;background:#fffdf8;border:1px solid var(--line);
      font-size:13px;font-weight:850;color:var(--muted);transition:all .2s ease;
    }
    .tag-cloud a:hover{color:var(--brand);border-color:var(--brand);transform:translateY(-2px)}

    .nested-block{margin-top:34px}
    .topic-strip{
      display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px;
    }
    .topic-card{padding:22px;background:rgba(255,253,248,.82)}
    .topic-card .topic-icon{font-size:24px;margin-bottom:12px}

    .compare-wrap{
      margin-top:18px;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--paper);box-shadow:var(--shadow-sm);
    }
    .compare-row{
      display:grid;grid-template-columns:1.1fr repeat(3,1fr);border-bottom:1px solid var(--line);
    }
    .compare-row:last-child{border-bottom:none}
    .compare-cell{
      padding:18px;border-right:1px solid var(--line);font-size:14px;color:var(--muted);
      display:flex;align-items:center;min-height:66px;
    }
    .compare-cell:last-child{border-right:none}
    .compare-head .compare-cell{
      background:#241b16;color:#fff;font-weight:950;font-size:15px;
    }
    .compare-cell:first-child{font-weight:950;color:var(--ink)}
    .compare-head .compare-cell:first-child{color:#fff}
    .compare-cell.reco{
      background:#fff2d4;color:#6f3a12;font-weight:950;position:relative;
    }
    .compare-head .compare-cell.reco{background:var(--brand);color:#fff}
    .compare-note{margin-top:14px;color:var(--muted);font-size:13px;line-height:1.7}

    .faq-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:22px;margin-top:18px}
    .faq-intro{
      padding:26px;border-radius:var(--radius-lg);background:#241b16;color:#fff;box-shadow:var(--shadow);
    }
    .faq-intro h3{font-size:30px;line-height:1.18;font-weight:950;letter-spacing:-.05em;margin:0 0 12px}
    .faq-intro p{margin:0;color:#e9dccb}
    .faq-list{display:grid;gap:14px}
    .faq-item{
      padding:22px;border-radius:22px;background:var(--paper);border:1px solid var(--line);
      transition:border-color .2s ease,box-shadow .2s ease;
    }
    .faq-item:hover{border-color:rgba(216,75,37,.32);box-shadow:var(--shadow-sm)}
    .faq-item p{margin:0;color:var(--muted);font-size:15px;line-height:1.82}

    .booking{
      padding:72px 0 86px;
    }
    .booking-shell{
      display:grid;grid-template-columns:.92fr 1.08fr;gap:22px;align-items:stretch;
      border-radius:34px;padding:18px;background:linear-gradient(135deg,#241b16,#2f5d50);
      box-shadow:var(--shadow);overflow:hidden;
    }
    .booking-copy{padding:30px;color:#fff}
    .booking-copy .eyebrow{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.18);color:var(--brand-2);box-shadow:none}
    .booking-copy h2{font-size:clamp(30px,4vw,48px);line-height:1.12;font-weight:950;letter-spacing:-.05em;margin:16px 0 14px}
    .booking-copy p{color:#eadfcd;margin:0 0 20px;line-height:1.9}
    .promise-list{display:grid;gap:12px;margin-top:24px}
    .promise-list li{
      display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border-radius:18px;
      background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#f8efe6;font-size:14px;
    }
    .promise-list li::before{content:"●";color:var(--brand-2)}
    .booking-form{
      background:var(--paper);border-radius:26px;padding:26px;border:1px solid rgba(255,255,255,.35);
    }
    .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
    .form-group{display:grid;gap:7px}
    .form-group.full{grid-column:1 / -1}
    .form-group label{font-size:13px;font-weight:950;color:var(--ink)}
    .field{
      width:100%;border:1px solid var(--line-dark);border-radius:16px;background:#fffdf8;
      min-height:48px;padding:12px 14px;color:var(--ink);outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
    }
    .field:hover{border-color:#c9b392}
    .field:focus{border-color:var(--brand);box-shadow:var(--focus);background:#fff}
    textarea.field{min-height:112px;resize:vertical}
    .form-tip{margin:12px 0 18px;color:var(--muted);font-size:13px;line-height:1.65}
    .form-message{
      display:none;margin-top:14px;padding:12px 14px;border-radius:16px;background:#e9f8ef;
      border:1px solid #bfe4cc;color:#1d6b58;font-weight:850;font-size:14px;
    }
    .form-message.show{display:block}

    .site-footer{
      background:#17130f;color:#f7efe5;padding:42px 0 28px;
      border-top:1px solid rgba(255,255,255,.08);
    }
    .footer-grid{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:24px;align-items:start}
    .footer-brand{
      font-family:Georgia,"Times New Roman","Noto Serif SC",serif;
      font-size:34px;font-weight:950;letter-spacing:-.05em;line-height:1.05;margin-bottom:12px;
    }
    .footer-grid p{color:#cfc0af;font-size:14px;line-height:1.8;margin:0}
    .footer-col h3{font-size:15px;font-weight:950;margin:0 0 12px;color:#fff}
    .footer-links{display:grid;gap:9px}
    .footer-links a{color:#cfc0af;font-size:14px;transition:color .2s ease,transform .2s ease}
    .footer-links a:hover{color:var(--brand-2);transform:translateX(3px)}
    .copyright{
      margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);
      color:#a99b8c;font-size:13px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
    }

    @media (max-width:1024px){
      .container{width:min(100% - 32px,var(--container))}
      .masthead{align-items:center}
      .mast-note{display:none}
      .bento{grid-template-columns:1fr}
      .hero-main{grid-row:auto;min-height:auto}
      .cta-bar{grid-column:auto}
      .metrics-board{grid-template-columns:repeat(2,1fr)}
      .service-matrix{grid-template-columns:1fr 1fr}
      .service-card.large{grid-column:1 / -1}
      .time-wrap,.news-layout,.faq-grid,.booking-shell{grid-template-columns:1fr}
      .topic-strip{grid-template-columns:repeat(2,1fr)}
      .nav-search{display:none}
    }
    @media (max-width:768px){
      .section-pad{padding:52px 0}
      .site-header{position:relative}
      .masthead{grid-template-columns:1fr auto;padding:18px 0 12px}
      .brand-wrap{gap:12px;align-items:center}
      .brand-mark{width:42px;height:42px;border-radius:14px}
      .brand-name{font-size:30px;white-space:normal;line-height:1.05}
      .mobile-toggle{display:inline-flex}
      .nav-row{display:none;align-items:stretch;padding:12px 0}
      .nav-row.open{display:grid;gap:12px}
      .main-nav{display:grid;grid-template-columns:1fr;gap:8px}
      .nav-link{justify-content:center;background:rgba(255,253,248,.72)}
      .header-cta{width:100%;height:44px}
      .hero{padding:28px 0 54px}
      .hero-main{padding:26px;border-radius:26px}
      .hero h1{font-size:38px;letter-spacing:-.055em}
      .hero-lead{font-size:16px}
      .data-strip,.time-grid,.form-grid{grid-template-columns:1fr}
      .cta-bar{display:grid;text-align:left;border-radius:22px}
      .metrics-board,.service-matrix,.topic-strip{grid-template-columns:1fr}
      .compare-wrap{overflow-x:auto}
      .compare-row{min-width:760px}
      .news-item{grid-template-columns:auto 1fr;padding:15px}
      .news-item .arrow{display:none}
      .booking-copy{padding:22px}
      .booking-form{padding:20px}
      .footer-grid{grid-template-columns:1fr}
    }
    @media (max-width:520px){
      .container{width:min(100% - 24px,var(--container))}
      .hero-kicker{gap:8px}
      .badge{font-size:11px}
      .btn{width:100%;min-height:50px}
      .hero-actions{display:grid}
      .section-title{font-size:30px}
      .hero-side-card{padding:20px;min-height:auto}
      .metric-card,.service-card,.time-card,.topic-card,.faq-item{padding:20px}
      .news-date{width:48px;height:48px;border-radius:16px}
      .copyright{display:grid}
    }
