/* ============================================================
   WAYON 全站布局契约
   - 页面内容边界统一对齐 header logo / Plan Your Journey
   - 桌面缩放统一以 1920px 设计宽为基准
   - hero、半屏图片、方法图等明确满宽模块保持 full-bleed
   ============================================================ */

:root{
  --layout-inline-size:calc(100vw - (2 * var(--page-gutter)));
  --nav-item-gap:max(16px, 1.6vw);
}

/* ---------- Shared chrome ---------- */
@media (min-width:1321px){
  .nav-logo img,
  .footer-brand img{
    height:max(40px, 2.2vw);
    width:auto;
  }

  .nav-menu a{ font-size:max(15px, 0.85vw); }
  .nav-cta-btn{ padding:max(10px, 0.52vw) max(18px, 1.2vw); }
}

@media (min-width:1921px) and (min-height:641px){
  .wayon-footer{
    --footer-slogan-size:4.83vw;
    --footer-logo-height:2.2vw;
  }

  .footer-h3{ font-size:1.45vw; }
  .footer-h3--big{ font-size:1.93vw; }
  .footer-col ul li{ font-size:0.95vw; }
  .footer-qr-name{ font-size:0.78vw; }
  .footer-qr-row{ max-width:min(100%, 23vw); }
  .footer-qr-img{ width:4.5vw; }
}

/* ---------- Canonical page frames ---------- */
.about-main-inner,
.about-brand-inner,
.about-team-intro-inner,
.about-people-inner,
.about-reviews-inner,
.about-seen-inner,
.about-contact-inner,
.about-submit-inner{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
}

.list-page{
  padding:max(72px, 5.208vw) var(--page-gutter);
}

.list-page > .container{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}

.detail-gallery{
  width:100%;
  max-width:none;
  margin:0;
  padding-right:var(--page-gutter);
  padding-left:var(--page-gutter);
}

.detail-actions{
  padding:0 var(--page-gutter) max(64px, 4.167vw);
  text-align:center;
}

.detail-action-btn{
  background:var(--color-dark);
  color:#fff;
}

/* ---------- Cultural Keepers list ---------- */
.keepers-text-row,
.keepers-photo-row{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.keepers-photo-row > .keeper-card{
  width:100%;
  min-width:0;
}

@media (min-width:768px){
  .keepers-text-row,
  .keepers-photo-row{
    grid-template-columns:repeat(5, minmax(0, 1fr));
  }
}

.masters-cards-row{
  width:100%;
  margin:0;
  padding:0 var(--page-gutter);
  gap:max(14px, 1.5vw);
}

@media (min-width:1025px){
  .keeper-card--overlay{
    --card-w:auto;
    flex:1 1 0;
    width:auto;
    min-width:0;
    height:auto;
    aspect-ratio:325 / 532;
  }
}

@media (min-width:1921px){
  .keeper-text-overlay{
    padding:1.6vw 1.4vw;
    gap:0.4vw;
  }
}

@media (max-width:1024px){
  .masters-cards-row{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    align-items:start;
  }

  .keeper-card--overlay{
    --card-w:auto;
    width:100%;
    min-width:0;
    height:auto;
    aspect-ratio:325 / 532;
  }
}

@media (max-width:768px){
  .masters-cards-row{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

/* ---------- About page proportional media ---------- */
@media (min-width:769px){
  .about-main-img-frame{
    left:calc(
      var(--page-gutter)
      + (var(--layout-inline-size) - clamp(24px, 4vw, 80px)) / 2.6
      + clamp(24px, 4vw, 80px)
    );
  }
}

@media (min-width:1921px){
  .about-main-img-frame{
    height:27.083vw;
    min-height:27.083vw;
  }

  .about-main-media{
    padding-top:calc(27.083vw + clamp(16px, 2vw, 32px));
  }

  .about-people-list{ max-width:61.458vw; }

  .about-person{
    --portrait-axis-offset:3.125vw;
    grid-template-columns:
      calc(50% - var(--portrait-axis-offset))
      calc(50% + var(--portrait-axis-offset) - clamp(24px, 4vw, 80px));
  }

  .about-person--right{
    grid-template-columns:
      calc(50% - var(--portrait-axis-offset) - clamp(24px, 4vw, 80px))
      calc(50% + var(--portrait-axis-offset));
  }

  .about-person-portrait{ width:min(100%, 22.917vw); }
  .about-seen-tile-play{ width:5vw; height:5vw; }
  .about-contact-social-item img{ width:5vw; height:5vw; }
  .about-contact-map{ min-height:19.792vw; }
}

/* ---------- Legacy tertiary pages ---------- */
.tour-section-title{
  margin:max(32px, 2.083vw) 0 max(20px, 1.25vw);
  color:var(--color-dark);
  font-family:var(--font-display);
  font-size:max(36px, 1.875vw);
  letter-spacing:0.02em;
  text-transform:uppercase;
}

.tour-content{
  max-width:max(780px, 40.625vw);
  margin:0 auto max(24px, 1.563vw);
  color:var(--color-text);
  font-family:var(--font-serif);
  font-size:max(17px, 0.885vw);
  line-height:1.8;
}

.tour-empty-state{
  color:var(--color-text);
  font-family:var(--font-serif);
  font-size:max(16px, 0.833vw);
}

.tour-empty-state a{
  color:var(--color-brand);
  text-decoration:underline;
}

.card-grid{ gap:max(28px, 1.458vw); }
.l-card{ border-radius:max(16px, 0.833vw); }
.l-card .img{ height:max(240px, 12.5vw); }
.l-card .body{ padding:max(24px, 1.25vw) max(22px, 1.146vw) max(22px, 1.146vw); }

.detail-content{
  padding:max(64px, 4.167vw) max(20px, 1.25vw);
}

.detail-gallery{
  gap:max(14px, 0.729vw);
  padding-bottom:max(64px, 4.167vw);
}

.detail-gallery img{
  height:max(280px, 14.583vw);
  border-radius:max(10px, 0.521vw);
}

@media (max-width:768px){
  .list-page{ padding:56px var(--page-gutter); }
  .tour-section-title{ font-size:clamp(26px, 8vw, 36px); }
  .tour-content{ max-width:none; }
  .card-grid{ grid-template-columns:1fr; }
  .detail-gallery{ grid-template-columns:1fr; }
  .detail-gallery img{ height:auto; aspect-ratio:4 / 3; }
}
