/* Shared public-page rhythm: generous type, readable copy, distinct actions. */
:root{--copy-gap:clamp(24px,3.2vh,44px);--section-gap:clamp(40px,5vh,64px)}
.panel h1,.panel h2,.page-intro h1,.detail-page h1,.detail-page h2,.editorial-hero h1,.editorial-section h2,.editorial-contact h2{letter-spacing:.012em;line-height:1.26;text-wrap:balance}
.panel h1,.panel h2{margin:0 0 var(--copy-gap)}
.hero h1{font-size:clamp(78px,9.2vw,160px)}
.panel h2{font-size:clamp(52px,6.1vw,108px)}
.panel p{font-size:clamp(17px,1.55vw,22px);line-height:1.95;letter-spacing:.035em;margin:0 0 var(--copy-gap)}
.panel .lead{font-size:clamp(20px,1.9vw,29px);line-height:1.85}
.hero p{font-size:clamp(21px,2.1vw,30px);line-height:1.85;margin-bottom:var(--section-gap)}
.panel .pill{align-self:flex-start}
.pill{padding:18px 28px;min-width:178px;gap:44px;font-size:16px;letter-spacing:.07em;line-height:1.5}
.hero-content{padding-top:82px;padding-bottom:70px}
.demo-tag{margin-top:32px;line-height:1.7}
.split{gap:6vw;padding-top:84px;padding-bottom:64px}
.about .split>div:first-child>p:not(.lead){margin-top:0;font-size:16px}
.statement p{font-size:20px;margin:0;letter-spacing:.09em}
.experience-content{padding-top:82px;padding-bottom:54px}
.experience h2{margin-top:0}
.experience p{max-width:560px;margin-bottom:24px}
.experience-tags{gap:14px;margin:0 0 var(--copy-gap)}
.experience-tags span{padding:12px 18px;letter-spacing:.05em}
.experience small{margin-top:26px;line-height:1.7}
.events .panel-inner,.careers .panel-inner{padding-top:84px;padding-bottom:90px}
.events p{max-width:580px}
.events-layout{gap:6vw}
.event-feature{padding:clamp(32px,3.5vw,60px);gap:30px}
.event-feature>.event-lines{z-index:0;pointer-events:none}
.event-feature>.event-type,.event-feature>strong,.event-feature>p{position:relative;z-index:1}
.event-feature strong{line-height:1.35;letter-spacing:.025em}
.event-feature p{font-size:15px;margin:0}
.careers p{max-width:850px}
.careers p.muted{margin-top:0;font-size:16px}
.careers-end{bottom:30px;padding-top:24px}
.explore-heading{height:37vh;padding-top:82px;padding-bottom:28px;align-items:center}
.explore-heading h2{font-size:clamp(46px,4.8vw,84px);margin:0}
.store-marquees{height:49vh}
.card-info{inset:auto 26px 24px;gap:10px;line-height:1.5;letter-spacing:.025em}
.card-info strong{font-size:clamp(22px,1.9vw,30px);line-height:1.4}
.card-info small,.card-info>span{font-size:14px}
.editorial-hero{align-items:center}
.editorial-hero-text{padding-top:90px;padding-bottom:64px}
.editorial-hero h1{font-size:clamp(66px,8.5vw,145px);max-width:1250px;margin:0 0 var(--section-gap)}
.editorial-hero p{font-size:clamp(21px,2vw,29px);line-height:1.95;letter-spacing:.04em;max-width:880px;margin:0}
.editorial-section{padding:clamp(105px,10vw,170px) 0}
.editorial-split{gap:clamp(40px,6vw,105px)}
.editorial-section h2,.editorial-contact h2{font-size:clamp(50px,5.2vw,92px);margin:36px 0 42px}
.editorial-split p,.editorial-contact p,.detail-info p,.detail-end>p{font-size:clamp(18px,1.55vw,22px);line-height:2;letter-spacing:.04em;margin:0 0 30px}
.editorial-split p.editorial-lead{font-size:clamp(23px,2.15vw,33px);line-height:1.9;margin-bottom:36px}
.editorial-inline-link{margin-top:14px;padding:12px 0;font-size:18px;letter-spacing:.06em}
.keyword-grid,.moment-list,.event-list,.event-facts,.process-grid{margin-top:64px}
.keyword{min-height:285px;padding:32px 24px 40px;gap:22px}
.keyword strong{line-height:1.25;letter-spacing:.045em;margin:auto 0 0}
.keyword span{font-size:17px;line-height:1.8}
.moment{padding:38px 12px;gap:30px}
.moment strong{line-height:1.3;letter-spacing:.04em}
.moment span{font-size:19px;line-height:1.9;letter-spacing:.04em}
.editorial-note{line-height:1.9;margin-top:38px;letter-spacing:.03em}
.editorial-next{padding-top:84px;padding-bottom:84px;gap:40px}
.editorial-next strong{line-height:1.45;letter-spacing:.035em}
.event-list{gap:28px}
.event-list-info{padding:38px}
.event-list-info h3{line-height:1.45;letter-spacing:.02em;margin:24px 0}
.event-list-info p{font-size:18px;line-height:1.95;margin-bottom:28px}
.event-list-info b{margin-top:30px;letter-spacing:.05em}
.event-facts div{padding:38px 26px}
.event-facts strong{margin-top:28px;line-height:1.45}
.process-item{min-height:230px;padding:32px 20px 40px;gap:32px}
.process-item strong{line-height:1.45;letter-spacing:.025em}
.roles-empty{padding:54px;gap:52px;margin-top:60px}
.roles-empty p{font-size:19px;line-height:2;letter-spacing:.03em}
.page-intro{padding-top:125px;padding-bottom:72px}
.page-intro h1{font-size:clamp(68px,8.5vw,145px);margin:0 0 36px}
.page-intro p{font-size:clamp(20px,1.8vw,26px);line-height:1.9;letter-spacing:.04em;margin:0}
.filter-bar{padding-top:30px;padding-bottom:30px;gap:14px}
.city-filter{padding:13px 23px;letter-spacing:.04em}
.store-grid{gap:28px;padding-top:60px}
.store-grid .store-card{height:clamp(320px,28vw,430px)}
.detail-hero-content{right:4.5vw;bottom:10vh}
.back-link{margin-bottom:46px;font-size:16px;letter-spacing:.04em}
.detail-hero h1{font-size:clamp(64px,7.5vw,128px);margin:0 0 32px}
.detail-hero p{font-size:24px;line-height:1.8;margin:0}
.detail-actions{gap:20px;margin-top:38px}
.detail-info,.detail-gallery,.detail-end{padding-top:130px;padding-bottom:130px}
.detail-info h2,.detail-gallery h2,.detail-end h2{margin:36px 0 46px}
.detail-info-grid{gap:7vw}
.detail-info dl div{padding:30px 0;line-height:1.8}
.gallery-grid,.nearby-grid{gap:26px}
.footer{gap:32px;padding-top:36px;padding-bottom:36px;line-height:1.8}
@media(min-width:721px) and (max-height:850px){
  :root{--copy-gap:22px;--section-gap:30px}
  .hero h1{font-size:clamp(72px,11vh,112px)}
  .panel h2{font-size:clamp(48px,7.7vh,76px)}
  .panel .lead{font-size:21px;line-height:1.75}
  .panel p{font-size:17px;line-height:1.8}
  .hero p{font-size:22px}
  .experience h2{font-size:clamp(48px,8vh,70px)}
  .experience-tags{margin-bottom:22px}
  .experience-tags span{padding:9px 14px}
  .experience small{margin-top:18px}
  .explore-heading{height:36vh;padding-top:76px;padding-bottom:20px}
  .explore-heading h2{font-size:clamp(40px,6.4vh,55px)}
  .editorial-hero h1{font-size:clamp(62px,10.5vh,92px)}
  .editorial-hero p{font-size:22px}
}
@media(max-width:900px){.subpage,.detail-page{padding-top:68px}.detail-hero{height:calc(100vh - 68px)}.roles-empty{gap:28px;padding:32px}.roles-empty strong{white-space:normal}}
@media(max-width:720px){
  :root{--copy-gap:22px;--section-gap:30px}
  .panel{min-height:720px}
  .panel h1,.panel h2{letter-spacing:.005em;line-height:1.28}
  .hero h1{font-size:clamp(66px,17vw,102px)}
  .panel h2{font-size:clamp(38px,9.6vw,64px)}
  .panel p{font-size:16px;line-height:1.85;margin-bottom:22px}
  .panel .lead{font-size:18px;line-height:1.85}
  .hero p{font-size:18px;max-width:340px;margin-bottom:32px}
  .pill{min-width:162px;gap:30px;padding:15px 22px;font-size:14px}
  .hero-content,.experience-content{padding-top:64px;padding-bottom:48px}
  .split{gap:30px;padding-top:76px;padding-bottom:44px}
  .about .split>div:first-child>p:not(.lead){font-size:14px;margin-bottom:22px}
  .statement,.franchise-graphic{height:160px;padding:18px;flex-shrink:0}
  .statement-number{font-size:64px}
  .statement p{font-size:13px;margin:0}
  .franchise-graphic b{font-size:108px}
  .franchise-graphic span{font-size:13px}
  .experience h2{font-size:clamp(52px,13.5vw,78px)}
  .experience-tags{gap:8px;margin-bottom:26px}
  .experience-tags span{padding:10px 13px;font-size:12px}
  .experience small{font-size:11px;margin-top:22px}
  .events .panel-inner,.careers .panel-inner{padding-top:76px;padding-bottom:76px}
  .events-layout{gap:28px}
  .events p{font-size:14px;line-height:1.8}
  .event-feature{min-height:210px;padding:24px;gap:22px}
  .event-feature strong{font-size:32px;line-height:1.3}
  .event-feature p{font-size:12px;margin:0}
  .careers p.muted{font-size:14px}
  .explore-heading{height:280px;padding-top:62px;padding-bottom:24px}
  .explore-heading h2{font-size:42px;margin:0 0 20px}
  .explore-heading .pill{padding:12px 20px;font-size:14px}
  .store-marquees{height:calc(100% - 315px)}
  .card-info{inset:auto 20px 20px;gap:8px}
  .card-info strong{font-size:23px}
  .card-info small,.card-info>span{font-size:12px}
  .editorial-hero-text{padding-top:80px;padding-bottom:80px}
  .editorial-hero h1{font-size:clamp(42px,10.3vw,72px);letter-spacing:.01em;line-height:1.35;margin-bottom:34px}
  .editorial-hero p{font-size:18px;line-height:1.95}
  .editorial-section,.editorial-contact{padding:88px 0}
  .editorial-split{gap:42px}
  .editorial-section h2,.editorial-contact h2{font-size:clamp(35px,8.6vw,59px);line-height:1.4;margin:28px 0 32px}
  .editorial-split p,.detail-info p,.detail-end>p,.editorial-contact p{font-size:17px;line-height:2;margin-bottom:26px}
  .editorial-split p.editorial-lead{font-size:22px;line-height:1.9;margin-bottom:30px}
  .editorial-inline-link{font-size:16px}
  .keyword-grid,.moment-list,.event-list,.event-facts,.process-grid{margin-top:42px}
  .keyword{min-height:205px;padding:22px 16px;gap:20px}
  .keyword strong{font-size:42px}
  .keyword span{font-size:14px}
  .moment{padding:28px 0;gap:14px;grid-template-columns:44px 1fr}
  .moment strong{font-size:42px}
  .moment span{font-size:16px}
  .editorial-next{padding:52px 18px;gap:24px}
  .editorial-next strong{font-size:27px}
  .event-list-info{padding:28px 24px}
  .event-list-info h3{font-size:29px;margin:22px 0}
  .event-list-info p{font-size:16px}
  .event-facts div{padding:28px 18px}
  .process-item{min-height:180px;padding:22px 10px;gap:28px}
  .process-item strong{font-size:25px}
  .roles-empty{padding:28px 22px;margin-top:42px}
  .roles-empty strong{font-size:29px}
  .roles-empty p{font-size:16px;line-height:2}
  .page-intro{padding:90px 18px 50px}
  .page-intro h1{font-size:clamp(49px,12vw,78px);margin-bottom:30px}
  .page-intro p{font-size:18px}
  .filter-bar{gap:12px;padding:22px 18px}
  .store-grid{padding:32px 18px 72px;gap:24px}
  .store-grid .store-card{height:300px}
  .detail-hero-content{left:18px;right:18px;bottom:70px}
  .detail-hero h1{font-size:clamp(46px,11vw,72px);margin-bottom:26px;overflow-wrap:anywhere}
  .detail-hero p{font-size:20px}
  .detail-actions{margin-top:30px;gap:14px}
  .detail-info,.detail-gallery,.detail-end{padding:88px 18px}
  .detail-info h2,.detail-gallery h2,.detail-end h2{font-size:clamp(40px,10vw,68px);margin:30px 0 36px}
  .detail-info dl div{padding:25px 0;gap:12px}
  .footer{padding-top:28px;padding-bottom:28px;gap:20px}
}

/* Partnership steps and direct contact actions */
#cooperation{scroll-margin-top:90px}.partner-hero-link{margin-top:32px}.cooperation-steps{list-style:none;padding:0;margin:56px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 32px}.cooperation-step{border-top:2px solid #111;padding:24px 4px 12px}.step-number{display:flex;justify-content:space-between;font-size:28px;font-weight:800}.step-number span{font-size:25px}.cooperation-step h3{font-size:clamp(25px,2.8vw,40px);margin:36px 0 18px;line-height:1.4}.cooperation-step p,.process-intro{font-size:18px;line-height:1.9;max-width:580px}.cooperation-step p{margin:0;color:#333}.wechat-contact{margin-top:36px}.wechat-button{background:var(--yellow);border-color:var(--yellow);color:#111;max-width:100%;white-space:normal}.wechat-button:hover{background:#fff;border-color:#fff;color:#111}.wechat-button:focus-visible,.partner-hero-link:focus-visible{outline:3px solid currentColor;outline-offset:5px}.editorial-contact .wechat-note{font-size:16px;line-height:1.8;color:#ccc;margin:20px 0}.wechat-contact .pill{display:inline-flex}.wechat-contact .pill span{flex-shrink:0}
@media(max-width:900px){.cooperation-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}}
@media(max-width:540px){.cooperation-steps{grid-template-columns:1fr;gap:26px}.cooperation-step{padding-top:18px}.cooperation-step h3{margin:20px 0 12px;font-size:28px}.cooperation-step p,.process-intro{font-size:16px}.wechat-button{gap:20px;font-size:14px;padding:16px 20px}.editorial-contact .wechat-note{font-size:14px}}

.partner-milestones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;border-top:1px solid #ccc;margin-top:40px;padding-top:26px}.partner-milestones strong{display:block;font-size:32px;line-height:1.4}.partner-milestones span{display:block;font-size:14px;line-height:1.8;color:#666;margin-top:12px}.partner-support{background:#171717;color:#fff}.partner-support .editorial-kicker{color:var(--yellow)}.partner-support-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px 38px;margin-top:60px}.partner-support-item{border-top:1px solid #595959;padding-top:26px}.partner-support-item small{color:var(--yellow);font-size:16px}.partner-support-item h3{font-size:clamp(25px,2.8vw,40px);margin:28px 0 18px}.partner-support-item p{font-size:17px;line-height:1.9;color:#ccc;margin:0}.partner-eight-steps{grid-template-columns:repeat(4,minmax(0,1fr))}.partner-eight-steps h3{font-size:clamp(23px,2.4vw,34px)}.partner-requirement-list{border-top:1px solid #aaa;margin-top:52px}.partner-requirement-list article{display:grid;grid-template-columns:54px 1fr 1.4fr;gap:28px;align-items:baseline;padding:30px 0;border-bottom:1px solid #ccc}.partner-requirement-list article>span{color:#777;font-size:15px}.partner-requirement-list h3{font-size:28px;line-height:1.4;margin:0}.partner-requirement-list p{font-size:18px;line-height:1.9;margin:0;color:#555}.editorial-contact .partner-source-note{font-size:13px;line-height:1.9;color:#aaa;margin:50px 0 0}.partner-source-note a{color:var(--yellow);text-decoration:underline;text-underline-offset:4px}.partner-hero .editorial-hero-photo{background-position:center 58%}
@media(max-width:1050px){.partner-eight-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-support-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.partner-support-grid{grid-template-columns:1fr;gap:34px}.partner-milestones{gap:15px}.partner-milestones strong{font-size:26px}.partner-milestones span{font-size:12px}.partner-requirement-list article{grid-template-columns:30px 1fr;gap:14px}.partner-requirement-list h3{font-size:25px}.partner-requirement-list p{grid-column:2;font-size:16px}.partner-eight-steps{grid-template-columns:1fr}.partner-support-item p{font-size:16px}.partner-hero .editorial-hero-photo{background-position:62% center}}

.partner-milestones{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 30px}.partner-milestones>div{border-left:2px solid #c3c994;padding-left:18px}.partner-milestones strong{font-size:32px}.partner-milestones span{font-size:14px;margin-top:8px}@media(max-width:540px){.partner-milestones{grid-template-columns:1fr;gap:22px}.partner-milestones>div{display:grid;grid-template-columns:78px 1fr;align-items:start;gap:14px}.partner-milestones strong{font-size:28px}.partner-milestones span{margin-top:4px;font-size:14px}}
