:root { --wine:#6d1835; --rose:#d45b78; --blush:#f6dde2; --cream:#fff8ed; --ink:#2e1720; --line:#d8bfc5; --green:#285f4a; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:clip; }
body { margin:0; overflow-x:clip; background:var(--cream); color:var(--ink); font-family:"PingFang SC","Microsoft YaHei",sans-serif; }
a { color:inherit; text-decoration:none; } img { display:block; width:100%; }
.skip-link { position:fixed; top:8px; left:8px; z-index:100; min-height:44px; padding:12px 16px; transform:translateY(-150%); background:white; }
.skip-link:focus { transform:translateY(0); }
.site-header { display:flex; align-items:center; justify-content:space-between; min-height:72px; padding:12px clamp(18px,5vw,72px); border-bottom:1px solid var(--line); background:rgba(255,248,237,.96); }
.brand { display:flex; flex-direction:column; font-family:Georgia,"Songti SC",serif; font-size:21px; font-weight:800; line-height:1; }.brand small { margin-top:5px; font-family:Arial,sans-serif; font-size:8px; letter-spacing:.2em; }
nav { display:flex; align-items:center; gap:22px; font-size:13px; font-weight:800; } nav a { display:inline-flex; align-items:center; min-height:44px; }
.nav-action { padding:0 18px; border-radius:999px; background:var(--wine); color:white; }
.hero { display:grid; padding:54px 20px; background:linear-gradient(135deg,var(--cream),#f8e8e0); }
.hero-copy { align-self:center; }
.case-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:30px; }.case-tags span { padding:7px 10px; border:1px solid var(--wine); border-radius:999px; font-size:11px; font-weight:900; }.case-tags span:first-child { background:var(--wine); color:white; }
.eyebrow { margin:0 0 12px; color:var(--rose); font-size:12px; font-weight:900; letter-spacing:.16em; }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:20px; font-family:Georgia,"Songti SC",serif; font-size:clamp(46px,12vw,88px); font-weight:500; line-height:.98; letter-spacing:-.06em; } h1 em { color:var(--rose); font-style:italic; }
.hero-lede { max-width:620px; font-size:17px; line-height:1.8; }
.hero-actions,.visit-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 22px; border:1px solid var(--wine); border-radius:999px; font-size:14px; font-weight:900; cursor:pointer; }
.button-primary { background:var(--wine); color:white; }.button-ghost { background:transparent; }
.hero-meta { display:flex; flex-wrap:wrap; gap:10px; margin:34px 0 0; padding:0; list-style:none; }.hero-meta li { padding:9px 12px; border-radius:999px; background:white; font-size:11px; font-weight:800; }
.hero-visual { position:relative; margin:40px 0 0; min-height:450px; }.hero-visual img { height:100%; min-height:450px; object-fit:cover; border-radius:220px 220px 20px 20px; }
.hero-visual figcaption { position:absolute; right:-4px; bottom:22px; display:flex; width:190px; flex-direction:column; padding:18px; background:var(--wine); color:white; box-shadow:-10px 10px 0 var(--blush); }.hero-visual figcaption span { color:#f7b7c6; font-size:10px; letter-spacing:.14em; }.hero-visual figcaption b { margin-top:8px; font-family:Georgia,"Songti SC",serif; font-size:21px; line-height:1.35; }.hero-visual figcaption small { margin-top:8px; }
.services,.studio,.activity,.booking,.visit { padding:72px 20px; }
.section-heading p,.studio-copy>p,.activity>div>p,.booking-intro>p,.visit p { color:var(--rose); font-size:12px; font-weight:900; letter-spacing:.12em; }
.section-heading h2,.studio h2,.activity h2,.booking h2,.visit h2 { margin:12px 0 0; font-family:Georgia,"Songti SC",serif; font-size:clamp(36px,8vw,68px); font-weight:500; line-height:1.08; letter-spacing:-.045em; }
.service-menu { margin-top:44px; border-top:1px solid var(--wine); }.service-menu article { display:grid; grid-template-columns:36px 1fr auto; gap:12px; padding:24px 0; border-bottom:1px solid var(--line); }.service-menu article>span { color:var(--rose); font-size:12px; font-weight:900; }.service-menu h3 { margin-bottom:6px; font-family:Georgia,"Songti SC",serif; font-size:24px; }.service-menu p { margin:0; color:#75545f; line-height:1.6; }.service-menu article>b { align-self:center; color:var(--wine); font-size:20px; }.text-link { display:inline-flex; min-height:44px; align-items:center; margin-top:24px; border-bottom:1px solid var(--wine); font-weight:900; }
.studio { display:grid; gap:40px; background:var(--blush); }.studio-image img { min-height:420px; object-fit:cover; border-radius:220px 220px 20px 20px; }.studio-copy { align-self:center; }.studio-copy ul { margin:32px 0 0; padding:0; list-style:none; }.studio-copy li { display:flex; flex-direction:column; gap:5px; padding:16px 0; border-bottom:1px solid rgba(109,24,53,.25); }.studio-copy li b { font-size:17px; }.studio-copy li span { color:#6f4c58; line-height:1.6; }
.activity { display:grid; gap:40px; }.activity-cards { display:grid; gap:12px; }.activity-cards article { padding:24px; border:1px solid var(--line); background:white; }.activity-cards span { color:var(--rose); font-size:11px; font-weight:900; }.activity-cards b { display:block; margin-top:12px; font-family:Georgia,"Songti SC",serif; font-size:24px; }.activity-cards p { margin:8px 0 0; color:#75545f; line-height:1.6; }
.booking { display:grid; gap:42px; background:var(--wine); color:white; }.booking-intro>p { color:#f7b7c6; }.booking-intro ol { margin:32px 0 0; padding:0; list-style:none; }.booking-intro li { display:flex; align-items:center; gap:12px; padding:10px 0; font-weight:800; }.booking-intro li span { display:grid; width:30px; height:30px; place-items:center; border:1px solid #f7b7c6; border-radius:50%; }
.booking-form { padding:24px; border-radius:24px; background:var(--cream); color:var(--ink); }.booking-form fieldset { margin:0 0 26px; padding:0; border:0; }.booking-form legend { display:flex; align-items:center; gap:10px; margin-bottom:14px; font-family:Georgia,"Songti SC",serif; font-size:19px; font-weight:800; }.booking-form legend span { display:grid; width:28px; height:28px; place-items:center; border-radius:50%; background:var(--blush); font-family:Arial,sans-serif; font-size:12px; }
.choice-grid { display:grid; gap:9px; }.choice-grid label { position:relative; cursor:pointer; }.choice-grid input { position:absolute; opacity:0; pointer-events:none; }.choice-grid label>span { display:flex; min-height:48px; align-items:center; justify-content:center; padding:10px 12px; border:1px solid var(--line); background:white; }
.service-choices label>span { align-items:flex-start; flex-direction:column; }.service-choices small { margin-top:4px; color:#75545f; }
.choice-grid input:checked+span { border-color:var(--wine); background:var(--blush); box-shadow:inset 0 0 0 1px var(--wine); }
.date-field,.contact-grid label { display:flex; flex-direction:column; gap:7px; font-size:13px; font-weight:900; }.date-field input,.contact-grid input { min-height:48px; padding:0 13px; border:1px solid var(--line); background:white; color:var(--ink); font:inherit; }
.time-choices { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:12px; }.contact-grid { display:grid; gap:12px; }
.button-submit { width:100%; border-color:var(--wine); background:var(--wine); color:white; }.form-note { margin:14px 0 0; color:#81616b; font-size:11px; line-height:1.6; }.form-status { min-height:24px; margin:10px 0 0; color:var(--green); font-size:13px; font-weight:900; line-height:1.6; }
.visit { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:30px; background:#29121b; color:white; }.visit h2 { font-size:clamp(32px,7vw,54px); }.visit span { display:block; margin-top:16px; line-height:1.8; }.visit-actions { margin-top:0; }.button-light { border-color:white; background:white; color:var(--wine); }.button-ghost-light { border-color:white; color:white; }
footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding:24px 20px; background:#29121b; color:white; border-top:1px solid rgba(255,255,255,.2); } footer a { display:inline-flex; min-height:44px; align-items:center; border-bottom:1px solid; } footer p { margin:0; align-self:center; font-size:12px; }
a:focus-visible,button:focus-visible,input:focus-visible { outline:3px solid #eab34b; outline-offset:3px; }
@media(min-width:760px){
  .hero { grid-template-columns:1fr .8fr; gap:7vw; padding:80px clamp(36px,6vw,96px); }
  .hero-visual { margin:0; }
  .services,.studio,.activity,.booking,.visit { padding:96px clamp(36px,6vw,96px); }
  .services .section-heading { display:grid; grid-template-columns:.35fr 1fr; }.section-heading p { margin-top:10px; }
  .studio,.activity,.booking { grid-template-columns:.9fr 1.1fr; gap:7vw; }
  .activity-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .booking-form { padding:34px; }
  .service-choices { grid-template-columns:repeat(3,minmax(0,1fr)); }.contact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:680px){nav a:not(.nav-action){display:none}.nav-action{padding-inline:13px}.service-menu article{grid-template-columns:28px 1fr}.service-menu article>b{grid-column:2}.hero-visual figcaption{right:0}.time-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
