/* graduation-base */

  :root{
    --cream:#f6f1ea;
    --cream-deep:#efe6d8;
    --ink:#211d1a;
    --ink-soft:#4a4340;
    --gold:#a9804f;
    --gold-deep:#7c5c37;
    --line:rgba(33,29,26,0.12);
    --white:#fffdfa;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;
    /* sitelink / anchor traffic lands mid-page — keep the section heading clear of the fixed nav */
    scroll-padding-top:92px;}
  body{
    margin:0; background:var(--cream); color:var(--ink);
    font-family:'Jost','Noto Sans SC',sans-serif; font-weight:300;
    -webkit-font-smoothing:antialiased; overflow-x:hidden;
  }
  h1,h2,h3,.serif{font-family:'Cormorant Garamond','Noto Serif SC',serif; font-weight:500; letter-spacing:0.02em;}
  .cn{font-family:'Noto Sans SC',sans-serif; font-weight:300;}
  a{color:inherit; text-decoration:none;}
  img{display:block; max-width:100%;}
  .wrap{max-width:1080px; margin:0 auto; padding:0 32px;}
  .eyebrow{font-size:12px; letter-spacing:0.32em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 14px;}
  .btn{
    display:inline-flex; align-items:center; gap:10px; padding:15px 34px;
    border:1px solid var(--ink); color:var(--ink); font-size:13px; letter-spacing:0.14em;
    text-transform:uppercase; background:transparent;
    transition:transform .18s ease, background .35s ease, color .35s ease, border-color .35s ease;
  }
  .btn:hover{background:var(--ink); color:var(--cream);}
  .btn:active{transform:scale(.96);}
  .btn.primary{background:var(--ink); color:var(--cream);}
  .btn.primary:hover{background:var(--gold-deep); border-color:var(--gold-deep); color:#fff;}
  .btn.light{border-color:rgba(255,255,255,.65); color:#fff;}
  .btn.light:hover{background:#fff; color:var(--ink);}
  .skip-link{position:absolute; left:-9999px; top:0; background:var(--ink); color:var(--cream); padding:12px 18px; z-index:300;}
  .skip-link:focus{left:12px; top:12px;}

  /* NAV — matches index.html */
  header.nav{position:fixed; top:0; left:0; right:0; z-index:200; padding:22px 0; transition:.4s ease; background:transparent;}
  header.nav.scrolled{background:rgba(246,241,234,0.92); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); padding:14px 0; box-shadow:0 1px 0 var(--line);}
  .nav-inner{display:flex; align-items:center; justify-content:space-between; max-width:1240px; margin:0 auto; padding:0 32px;}
  .logo{font-family:'Cormorant Garamond',serif; font-size:22px; letter-spacing:0.3em; color:var(--ink);}
  header.nav:not(.scrolled) .logo, header.nav:not(.scrolled) .nav-links a, header.nav:not(.scrolled) .nav-toggle span{color:#fff;}
  .nav-links{display:flex; gap:30px; font-size:12.5px; letter-spacing:0.14em; text-transform:uppercase;}
  .nav-links a{position:relative; padding-bottom:4px;}
  .nav-links a::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease;}
  .nav-links a:hover::after, .nav-links a[aria-current="page"]::after{transform:scaleX(1);}
  .nav-links a.nav-book-btn{padding:9px 22px; border-radius:30px; background:var(--gold-deep); color:#fff !important; box-shadow:0 6px 18px rgba(124,92,55,.28); transition:transform .2s ease, background .3s ease;}
  .nav-links a.nav-book-btn::after{display:none;}
  .nav-links a.nav-book-btn:hover{background:var(--ink); transform:translateY(-1px);}
  .nav-actions{display:flex; align-items:center; gap:8px; margin-left:-12px;}
  .language-switch{display:inline-flex; align-items:center; gap:2px; margin-left:4px; padding:2px; border:1px solid var(--line); background:rgba(246,241,234,.92);}
  .language-switch button{appearance:none; border:0; background:transparent; color:var(--ink); min-width:38px; min-height:34px; padding:7px 8px; font:500 10px 'Jost',sans-serif; letter-spacing:.1em; cursor:pointer; opacity:.62;}
  .language-switch button[aria-pressed="true"]{background:var(--gold-deep); color:#fff; opacity:1;}
  .mobile-language-switch{display:none; margin-left:auto; margin-right:6px; position:relative; z-index:210;}
  [data-language-fragment][hidden]{display:none !important;}
  .nav-links .nav-install-btn{appearance:none; border:1px solid currentColor; border-radius:30px; background:transparent; color:inherit; padding:8px 14px; font:inherit; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; white-space:nowrap; transition:.25s ease;}
  .nav-links .nav-install-btn:hover{background:rgba(246,241,234,.14); transform:translateY(-1px);}
  header.nav:not(.scrolled) .nav-install-btn{color:#fff; border-color:rgba(255,255,255,.72);}
  header.nav.scrolled .nav-install-btn{color:var(--ink); border-color:var(--line);}
  .nav-toggle{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:0; padding:6px; width:44px; height:44px; align-items:center; justify-content:center; position:relative; z-index:210;}
  header.nav:not(.scrolled) .nav-toggle:not(.open) span{background:#fff;}
  .nav-toggle span{width:24px; height:1px; background:var(--ink); display:block; transition:transform .3s ease, opacity .25s ease;}
  .nav-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0; transform:scaleX(.4);}
  .nav-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
  header.nav:not(.scrolled) .nav-toggle.open span{background:var(--ink);}
  .nav-backdrop{position:fixed; inset:0; background:rgba(20,16,13,.45); opacity:0; pointer-events:none; transition:opacity .3s ease; z-index:190;}
  .nav-backdrop.show{opacity:1; pointer-events:auto;}
  @media (max-width:900px){
    .nav-toggle{display:flex;}
    .nav-links{
      position:fixed; top:0; right:0; height:100dvh; width:min(78vw,320px);
      background:var(--cream); flex-direction:column; justify-content:center; gap:26px;
      padding:0 34px; transform:translateX(100%); transition:transform .35s ease; z-index:200;
      box-shadow:-20px 0 60px rgba(33,29,26,.18);
    }
    .nav-links.open{transform:none;}
    header.nav:not(.scrolled) .nav-links a{color:var(--ink);}
    header.nav:not(.scrolled) .nav-links a.nav-book-btn{color:#fff !important;}
    .nav-links a{font-size:15px;}
    .nav-actions{margin:0; width:100%; display:grid; grid-template-columns:1fr 1fr; gap:8px;}
    .nav-actions .nav-book-btn,.nav-actions .nav-install-btn{display:flex; align-items:center; justify-content:center; min-height:42px; padding:8px 10px !important; font-size:10.5px !important; text-align:center;}
    .desktop-language-switch{display:none;}
    .mobile-language-switch{display:inline-flex;}
    .nav-inner{padding:0 20px;}
  }

  /* HERO */
  .g-hero{position:relative; min-height:74vh; display:flex; align-items:flex-end; color:#fff; overflow:hidden; background:var(--ink);}
  .g-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 35%;}
  .g-hero::before{content:''; position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(15,12,10,.55) 0%, rgba(15,12,10,.20) 35%, rgba(15,12,10,.62) 72%, rgba(15,12,10,.92) 100%);}
  .g-hero-content{position:relative; z-index:2; width:100%; max-width:1240px; margin:0 auto; padding:150px 32px 72px;}
  .g-hero .eyebrow{color:rgba(255,255,255,.9);}
  .g-hero h1{font-size:clamp(34px,5.6vw,64px); line-height:1.06; margin:0 0 18px; color:#fff; max-width:15em;}
  .g-hero p{max-width:600px; font-size:16px; line-height:1.8; color:rgba(255,255,255,.9); margin:0 0 12px;}
  .g-hero p.cn{font-size:14px; color:rgba(255,255,255,.7); margin-bottom:30px;}
  .g-hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
  /* on a dark hero the default ink-filled primary reads as a hole — invert the pair */
  .g-hero-actions .btn.light{background:var(--cream); border-color:var(--cream); color:var(--ink);}
  .g-hero-actions .btn.light:hover{background:#fff; color:var(--ink);}
  .g-hero-actions .btn.primary{background:transparent; border-color:rgba(255,255,255,.5); color:#fff;}
  .g-hero-actions .btn.primary:hover{background:rgba(255,255,255,.14); border-color:#fff; color:#fff;}
  @media (max-width:640px){
    .g-hero{min-height:0; display:block; background:var(--ink);}
    .g-hero img{position:relative; inset:auto; height:52svh; min-height:390px; object-position:72% 35%;}
    .g-hero::before{bottom:auto; height:52svh; min-height:390px; background:linear-gradient(180deg,rgba(15,12,10,.42) 0%,rgba(15,12,10,.05) 42%,rgba(15,12,10,.45) 100%);}
    .g-hero-content{padding:34px 24px 48px; background:var(--ink);}
    .g-hero h1{font-size:clamp(34px,10vw,46px); max-width:10em;}
    .g-hero p:not(.cn){font-size:14px; line-height:1.65; max-width:26em;}
    .g-hero p.cn{display:none;}
    .g-hero-actions{flex-direction:column; align-items:stretch;}
    .g-hero-actions .btn{justify-content:center;}
  }

  /* BREADCRUMB */
  .crumbs{font-size:12px; letter-spacing:.06em; color:#6f6257; padding:22px 0 0;}
  .crumbs a:hover{color:var(--gold-deep);}

  section{padding:96px 0;}
  .section-head{max-width:660px; margin:0 auto 56px; text-align:center;}
  .section-head h2{font-size:clamp(28px,4vw,42px); margin:0 0 16px;}
  .section-head p{color:var(--ink-soft); font-size:15.5px; line-height:1.8; margin:0;}
  .section-head p.cn{font-size:13.5px; color:#6f6257; margin-top:8px;}

  /* WHY */
  .why{background:var(--white);}
  .why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:34px;}
  .why-card{border-top:1px solid var(--line); padding-top:24px;}
  .why-card h3{font-size:21px; margin:0 0 10px;}
  .why-card h3 .cn-inline{display:block; font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-deep); font-weight:400; margin-top:4px;}
  .why-card p{font-size:14px; line-height:1.8; color:var(--ink-soft); margin:0;}
  .why-card p .cn{display:block; font-size:12.5px; color:#6f6257; margin-top:8px;}
  @media (max-width:880px){ .why-grid{grid-template-columns:1fr; gap:26px;} }

  /* CAMPUS */
  .campus{background:var(--cream-deep);}
  .campus-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line); max-width:900px; margin:0 auto;}
  .campus-item{border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:28px 30px; background:var(--white);}
  .campus-item h3{font-size:20px; margin:0 0 6px;}
  .campus-item .school{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 12px;}
  .campus-item ul{margin:0; padding-left:18px; font-size:13.5px; line-height:2; color:var(--ink-soft);}
  @media (max-width:720px){ .campus-grid{grid-template-columns:1fr;} }

  /* TIMELINE */
  .timeline{background:var(--ink); color:var(--cream);}
  .timeline .section-head h2{color:var(--cream);}
  .timeline .section-head p{color:rgba(246,241,234,.65);}
  .timeline .section-head p.cn{color:rgba(246,241,234,.45);}
  .tl-list{max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:0;}
  .tl-item{display:grid; grid-template-columns:120px 1fr; gap:26px; padding:26px 0; border-top:1px solid rgba(246,241,234,.14);}
  .tl-when{font-family:'Cormorant Garamond',serif; font-size:19px; color:var(--gold);}
  .tl-what{font-size:14.5px; line-height:1.8; color:rgba(246,241,234,.78);}
  .tl-what .cn{display:block; font-size:12.5px; color:rgba(246,241,234,.48); margin-top:6px;}
  @media (max-width:640px){ .tl-item{grid-template-columns:1fr; gap:8px;} }

  /* PACKAGES */
  .packages{background:var(--white);}
  .pkg-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line); max-width:1000px; margin:0 auto;}
  .pkg{border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:34px 30px 36px; display:flex; flex-direction:column;}
  .pkg.featured{background:var(--cream); position:relative;}
  .pkg-tag{position:absolute; top:-1px; right:-1px; background:var(--gold-deep); color:#fff; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; padding:6px 12px;}
  .pkg h3{font-size:23px; margin:0 0 2px;}
  .pkg .pkg-cn{font-size:13px; color:#6f6257; margin:0 0 14px;}
  .pkg .pkg-price{font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:600; color:var(--ink); margin:0 0 2px;}
  .pkg .pkg-dur{font-size:12.5px; color:#6f6257; margin:0 0 18px;}
  .pkg ul{list-style:none; margin:0 0 24px; padding:18px 0 0; border-top:1px solid var(--line); font-size:13.5px; line-height:1.9; color:var(--ink-soft); flex:1;}
  .pkg li{padding-left:16px; position:relative;}
  .pkg li::before{content:'—'; position:absolute; left:0; color:var(--gold);}
  .pkg .btn{align-self:flex-start;}
  .pkg-note{max-width:1000px; margin:30px auto 0; text-align:center; font-size:12.5px; color:#6f6257; line-height:2;}
  @media (max-width:880px){ .pkg-grid{grid-template-columns:1fr; max-width:460px;} }
  .mobile-detail-toggle{display:none; width:100%; margin:8px 0 22px; padding:12px 0; border:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:transparent; color:var(--gold-deep); font:500 11px 'Jost','Noto Sans SC',sans-serif; letter-spacing:.12em; text-transform:uppercase; cursor:pointer;}
  @media (max-width:640px){
    .pkg ul.mobile-collapsed li:nth-child(n+5){display:none;}
    .mobile-detail-toggle{display:block;}
  }

  /* FAQ */
  .g-faq{background:var(--cream);}
  .g-faq-list{max-width:800px; margin:0 auto;}
  .g-faq-item{border-top:1px solid var(--line); padding:26px 0;}
  .g-faq-item h3{font-size:19px; margin:0 0 10px;}
  .g-faq-item p{font-size:14px; line-height:1.85; color:var(--ink-soft); margin:0;}
  .g-faq-item p .cn{display:block; font-size:12.5px; color:#6f6257; margin-top:8px;}

  /* CTA */
  .g-cta{background:var(--cream-deep); text-align:center;}
  .g-cta h2{font-size:clamp(28px,4vw,42px); margin:0 0 16px;}
  .g-cta p{font-size:15px; line-height:1.8; color:var(--ink-soft); max-width:560px; margin:0 auto 30px;}
  .g-cta p .cn{display:block; font-size:13.5px; color:#6f6257; margin-top:6px;}

  /* CONVOCATION DATES */
  .dates{background:var(--white); padding:86px 0 78px;}
  .dates .section-head{margin-bottom:44px;}
  .dates-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  .date-card{
    border:1px solid var(--line); background:var(--cream); padding:30px 28px 26px;
    display:flex; flex-direction:column; position:relative; min-width:0;
  }
  .date-card.now{border-color:var(--gold-deep); background:var(--white); box-shadow:0 10px 34px rgba(124,92,55,.10);}
  .date-flag{
    position:absolute; top:-11px; left:28px; background:var(--gold-deep); color:#fff;
    font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; padding:4px 12px;
  }
  .date-school{font-size:12px; letter-spacing:.26em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 10px;}
  .date-when{font-family:'Cormorant Garamond','Noto Serif SC',serif; font-size:29px; line-height:1.2; margin:0 0 4px;}
  .date-year{font-size:13px; color:#6f6257; margin:0 0 20px;}
  .date-row{display:flex; justify-content:space-between; gap:14px; padding:10px 0; border-top:1px solid var(--line); font-size:13px;}
  .date-row > span:first-child{color:#6f6257; white-space:nowrap;}
  .date-row span:last-child{text-align:right; color:var(--ink-soft);}
  .date-row.key span:last-child{color:var(--gold-deep);}
  .dates-note{
    margin:34px 0 0; font-size:12.5px; line-height:1.85; color:#6f6257; text-align:center;
  }
  .dates-note a{border-bottom:1px solid rgba(124,92,55,.4); color:var(--gold-deep);}
  @media (max-width:860px){
    .dates-grid{grid-template-columns:1fr; gap:26px;}
    .dates{padding:64px 0 58px;}
  }

  /* FOOTER */
  footer{background:var(--ink); color:rgba(246,241,234,.66); padding:60px 0 34px; font-size:13px;}
  .foot-inner{max-width:1080px; margin:0 auto; padding:0 32px; display:flex; flex-wrap:wrap; gap:20px; justify-content:space-between; align-items:center;}
  .foot-logo{font-family:'Cormorant Garamond',serif; font-size:19px; letter-spacing:.28em; color:var(--cream);}
  .foot-links{display:flex; gap:26px; flex-wrap:wrap;}
  .foot-links a:hover{color:var(--cream);}
  .foot-bottom{max-width:1080px; margin:34px auto 0; padding:20px 32px 0; border-top:1px solid rgba(246,241,234,.14); font-size:11.5px; color:rgba(246,241,234,.42); text-align:center;}
  /* 901–1120px：7 项横排在 30px 间距下会贴到 logo，这一档收窄间距 */
  @media (max-width:1120px) and (min-width:901px){ .nav-links{gap:22px;} }

/* site-integration */
/* V1.1 integration only: original photography and Direction B styles remain intact. */
.site-language{display:inline-flex;align-items:center;gap:2px;white-space:nowrap;font:inherit}
.site-language a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;font-size:13px;text-decoration:none}
.site-language a[aria-current=true]{text-decoration:underline;text-underline-offset:5px;font-weight:600}
.site-language>span{opacity:.5}
.studio-crosslinks{max-width:1240px;margin:24px auto 0;padding:20px 32px 0;border-top:1px solid var(--line,#DDD4C6);font-size:14px;line-height:1.7}
.studio-crosslinks a{display:inline-flex;align-items:center;min-height:44px;color:inherit}
.studio-crosslinks p{margin:0 0 8px}
.language-switch button,.language button{min-height:44px;min-width:44px;font-size:12px}
.desktop-nav{gap:20px}
html:lang(zh) body[data-site-section] h1,html:lang(zh) body[data-site-section] h2{letter-spacing:0;line-height:1.25}
html:lang(zh) body[data-site-section] .hero-copy h1,html:lang(zh) body[data-site-section] .local-intro h2,html:lang(zh) body[data-site-section] .contact-copy h2{max-width:none}
html:lang(zh) body[data-site-section] .eyebrow{letter-spacing:.08em}
.local-hero{max-width:880px;padding-block:70px 60px}
.local-hero h1{margin-bottom:24px}
.local-hero .lead{font-size:20px;max-width:60ch}
.local-principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.local-principles h3{margin-bottom:14px}
.local-next{max-width:760px}
.local-next h2{margin-bottom:20px}
.local-next .actions{margin-top:24px}
@media(min-width:761px) and (max-width:1100px){.desktop-nav{gap:12px}.desktop-nav>.btn{padding-inline:12px}.wordmark{font-size:26px}.header-inner{gap:16px}}
/* Keep longer photography menus readable at tablet width instead of shrinking type. */
@media(min-width:901px) and (max-width:1150px){
  .nav .nav-inner{padding-inline:24px}
  .nav .nav-links{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:78%;max-width:360px;background:var(--cream);flex-direction:column;padding:110px 32px 32px;gap:18px;transform:translateX(100%);transition:.4s ease;box-shadow:-10px 0 40px rgba(0,0,0,.15);color:var(--ink)!important;overflow-y:auto;z-index:200}
  .nav .nav-links.open{transform:translateX(0)}
  .nav .nav-links a{color:var(--ink)!important}
  .nav .nav-actions{margin:0;display:flex;flex-wrap:wrap;gap:12px}
  .nav .desktop-language-switch{display:none}
  .nav .mobile-language-switch{display:inline-flex;margin-left:auto;margin-right:14px;z-index:210}
  .nav .nav-toggle{display:flex;position:relative;z-index:210}
}
@media(max-width:1150px){.nav-links>a{min-height:44px;display:flex;align-items:center;font-size:14px;letter-spacing:.08em}.nav-links .nav-book-btn{min-height:44px!important;font-size:12px!important}.nav-links .nav-actions{display:flex;flex-wrap:wrap}.nav-links .nav-actions>a{width:100%}}
@media(max-width:760px){
  .mobile-nav .site-language{display:flex;flex-direction:row;align-self:flex-start;gap:4px;border-top:1px solid var(--line);padding-top:8px}
  .mobile-nav .site-language a{padding:8px;min-width:48px}
  .studio-crosslinks{padding-inline:20px}
  .top{height:auto;min-height:76px;gap:14px;flex-wrap:wrap;padding-block:12px}
  .top-actions{flex-wrap:wrap;gap:12px}.top-actions .for-business{font-size:13px;min-height:44px;display:inline-flex;align-items:center}
  .local-hero{padding-block:40px}.local-hero .lead{font-size:17px}.local-principles{grid-template-columns:1fr;gap:28px}
}
@media(max-width:1150px){.nav .nav-links:not(.open){display:none}.nav .nav-links.open{display:flex}}
@media(min-width:901px) and (max-width:1150px){
  .nav .mobile-language-switch{padding:2px;gap:2px;border:1px solid var(--line);border-radius:3px;background:var(--cream)}
  .nav .mobile-language-switch button{color:var(--ink)!important;opacity:.72;border:0;border-radius:2px}
  .nav .mobile-language-switch button[aria-pressed=true]{background:var(--gold-deep);color:#fff!important;opacity:1;border:0}
}

/* Content refresh: same typography, colours and image framing. */
.hero-tagline{font-size:19px;line-height:1.5;margin:0 0 12px;color:#fff;text-shadow:0 2px 14px #0008}
.hero-consult{font-size:14px;line-height:1.6;margin:16px 0 0;color:#fff}
.hero-consult a{color:inherit;text-underline-offset:4px}
.concept-caption{font-size:12px;line-height:1.4;padding:10px 14px;margin:0;border-bottom:1px solid var(--line)}
body[data-site-section="business"] .journey-step .step-heading{min-height:3.2em}
body[data-site-section="business"] .profile-label{white-space:normal;max-width:65%;text-align:right}
body[data-site-section="local"] .local-hero{padding-bottom:30px}
.local-empty{max-width:760px;padding:32px 0;border-block:1px solid var(--line)}
.local-empty h2{font-size:clamp(26px,4vw,38px);margin-bottom:16px}
.local-empty p{margin:0 0 22px}.local-empty .fine{margin:24px 0 0}
.local-business{padding:32px 0 48px}.local-business p{margin:0 0 12px}
@media(max-width:760px){.hero-tagline{font-size:17px}.hero-consult{font-size:13px}.hero-positioning{margin-bottom:20px!important}}

.studio-project h3{font-family:var(--serif);font-size:30px;line-height:1.2;margin-bottom:20px}.studio-project>p:not(.eyebrow){margin-bottom:18px}

/* Shared existing-client entry, retaining each page's navigation layout. */
.my-aria-entry{min-height:44px;display:inline-flex;flex-direction:column;justify-content:center;line-height:1.3;gap:3px}
.my-aria-entry small{font-size:10px;letter-spacing:.04em;color:#7c5c37}
.my-aria-entry:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#a9804f}
.my-aria-entry:focus-visible,.client-footer-links a:focus-visible{outline:2px solid #a9804f;outline-offset:4px}
.client-footer-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 26px;padding:20px 24px 0;border-top:1px solid #a9804f55;margin-top:22px;font-size:12px;line-height:1.6}
.client-footer-links a{min-height:44px;display:inline-flex;align-items:center;color:inherit;text-decoration:none}
.client-footer-links a:hover{text-decoration:underline;text-decoration-color:#a9804f;text-underline-offset:5px}
@media(max-width:760px){.my-aria-entry{padding-block:10px}.my-aria-entry small{font-size:11px}.client-footer-links{justify-content:flex-start;gap:2px 24px}}

/* conversion */
/* Shared public service and booking components. */
[hidden]{display:none!important}
:root{--focus-ring:#7c5c37}
:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}
html{scroll-padding-top:100px}
main :is(section[id],article[id],details[id]){scroll-margin-top:100px}
button,a,summary{-webkit-tap-highlight-color:transparent}
.service-intro{max-width:1050px}
.service-intro>p{max-width:780px}
.route-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.route-actions .btn{white-space:normal;text-align:center}
.service-feature{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);gap:64px;align-items:center;margin-block:24px 56px}
.service-feature>img{width:100%;height:480px;object-fit:contain;background:#eee8df}
.service-feature h2{font-size:36px;line-height:1.35}
.service-feature p,.service-feature li{font-size:16px;line-height:1.9;color:#4a4340}
.simple-steps{padding-left:24px}.simple-steps li{padding:10px 0}
.collection-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.collection-card{border:1px solid #d6cfc3;padding:28px;background:#fffdf9}
.collection-card h3{margin:0;font-size:27px}
.package-price{font:500 40px/1.2 'Cormorant Garamond',serif!important;color:#211d1a!important;margin:18px 0!important}
.package-price small{font:400 15px/1.5 'Jost',sans-serif;display:block;margin-top:8px}
.service-day{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:64px;align-items:center;border-top:1px solid #d6cfc3}
.service-day>img{max-height:530px;object-fit:contain;background:#eee8df}
.service-links{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:20px}
.service-links a,.package-detail{display:inline-flex;min-height:44px;align-items:center;text-decoration:underline;text-underline-offset:5px;font-size:14px}
.service-reassurance{border-top:1px solid #d6cfc3}
.detail-section details{border-block:1px solid #d6cfc3;padding:16px 0}
.detail-section summary{font-size:17px;cursor:pointer;min-height:44px;display:list-item;align-content:center}
.booking-intro{padding-top:48px!important}.booking-intro h1{max-width:900px}
.booking-intro>p{max-width:800px;font-size:17px}
.booking-steps{display:flex;gap:12px 36px;padding:0;list-style-position:inside;font-size:14px;line-height:1.7;margin-top:28px;color:#4a4340;flex-wrap:wrap}
.booking-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch;margin-top:12px}
.booking-options .package{border:1px solid #d6cfc3;padding:28px;background:#fffdf9;display:flex;flex-direction:column;min-width:0}
.booking-options .package.is-selected{border:2px solid #7c5c37;padding:27px;box-shadow:0 8px 24px #211d1a0b}
.booking-options h2{font-size:30px;line-height:1.2;margin:12px 0 0}
.booking-options .eyebrow{color:#7c5c37}
.booking-options p,.booking-options li{font-size:15px;line-height:1.8;color:#4a4340}
.booking-options .deposit-note{font-weight:500;color:#211d1a;border-top:1px solid #d6cfc3;padding-top:16px}
.booking-options ul{padding-left:20px;min-height:95px}
.booking-options .btn{width:100%;white-space:normal;min-height:50px;margin-top:auto;text-align:center;line-height:1.5}
.booking-options .package-detail{justify-content:center;margin-top:10px}
.booking-footnotes{padding-block:36px 64px;max-width:1050px}
.booking-footnotes p{font-size:14px;line-height:1.9;color:#4a4340}
.booking-intent{padding:12px 16px;background:#eee8df;border-left:3px solid #7c5c37}
.calendar-help{margin:12px 0;padding:14px;background:#eee8df;color:#211d1a;font-size:14px;line-height:1.6;max-width:480px}
.calendar-help p{font-size:14px;color:#211d1a;margin:0 0 8px}
.calendar-help a{display:inline-block;min-height:44px;align-content:center;text-decoration:underline;text-underline-offset:4px;margin-right:14px;color:#211d1a!important}
.resume-booking{font-size:14px;line-height:1.7;margin-top:16px}
.resume-booking a{text-decoration:underline;text-underline-offset:4px;display:inline-block;padding:12px 0}
.homepage .hp-hero-copy .hero-price-line{font-size:15px!important;line-height:1.7!important;margin:12px 0 22px!important;color:#fff}
.homepage .hp-hero-copy .hero-price-line strong{font-weight:500}
.homepage .hp-hero-copy .cover-kicker{font-size:12px;letter-spacing:.12em}
.homepage .hp-hero-copy>p{max-width:530px}
.homepage .hp-scope.hp-services{order:2}
.homepage .hp-scope.hp-work{order:3}
.homepage #intent-router{order:4}
.homepage .hp-service-copy .hp-btn{min-height:48px;white-space:normal;text-align:center}
.homepage .hp-scope.hp-services .hp-aria .hp-condition{color:#e7e0d7}
.homepage .hp-scope.hp-services .hp-aria details p{color:inherit}
.homepage .hp-scope.hp-services .hp-aria details{color:#e7e0d7}
.rewards-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:28px;background:#eee8df;margin-bottom:32px}
.rewards-overview h2{font-size:23px;line-height:1.4;margin:0 0 12px}.rewards-overview p{font-size:15px;line-height:1.8;color:#4a4340}
.rewards-jumps{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:20px}.rewards-jumps a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;text-decoration:underline;text-underline-offset:5px}
.work-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0 0}.work-toolbar a{display:inline-flex;align-items:center;border:1px solid #c6bbab;min-height:44px;padding:8px 16px;font-size:14px}
.work-viewer{border:0;padding:0;background:#171513;color:#fff;max-width:96vw;max-height:96dvh;width:1100px}
.work-viewer::backdrop{background:#000c}.work-viewer-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 18px}
.work-viewer button{color:inherit;background:transparent;border:1px solid #9a9389;min-width:44px;min-height:44px;padding:8px 16px;cursor:pointer;font-size:15px}
.work-viewer img{display:block;width:100%;height:calc(92dvh - 80px);object-fit:contain;padding:0 16px 16px}
.photo-open{display:block;border:0;background:none;padding:0;width:100%;cursor:zoom-in}
.project-photos .photo-open:focus-visible{outline-offset:6px}
.project-jump{font-size:14px;display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:5px}
.terms-scroll{overscroll-behavior:contain}
.detail-page .nav-book-btn{min-height:44px;display:inline-flex;align-items:center}
.nav-toggle{min-height:44px;min-width:44px}
input,select,textarea{font-size:16px!important}
@media(max-width:1000px){.booking-options{grid-template-columns:1fr;max-width:700px}.booking-options ul{min-height:0}.booking-options .btn{margin-top:16px}.service-feature,.service-day{gap:32px}}
@media(max-width:760px){
 .service-feature,.service-day{grid-template-columns:1fr;gap:24px}.service-feature>img{height:350px}.service-feature{margin-block:12px 28px}.service-day>img{max-height:360px;order:2}
 .collection-grid{grid-template-columns:1fr}.collection-card{padding:22px}.booking-intro{padding-top:30px!important}
 .booking-intro h1{font-size:34px;line-height:1.25}.booking-intro>p{font-size:16px}.booking-steps{display:grid;gap:5px;margin:20px 0 0}.booking-options .package{padding:24px}.booking-options .package.is-selected{padding:23px}
 .booking-options h2{font-size:28px}.booking-options .package-price{font-size:38px!important}.booking-footnotes{padding-block:24px 42px}
 .rewards-overview{grid-template-columns:1fr;gap:20px;padding:22px}.rewards-overview p{margin:0}
 .homepage .hp-hero-copy .hero-price-line{font-size:14px!important;margin:10px 0 16px!important}
 .homepage .hp-hero-copy .cover-kicker{font-size:11px}.homepage .hp-hero-copy{padding-bottom:28px}
 .service-links{gap:4px 20px}.route-actions .btn{width:100%}.detail-page .page-intro h1{font-size:clamp(30px,8vw,40px)}
 .work-viewer{max-width:100vw;width:100vw}.work-viewer-bar{padding:10px;gap:6px}.work-viewer button{padding:8px 10px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1!important;transform:none!important}}
@media print{.nav,.nav-backdrop,.sticky-book{display:none}}
@media(min-width:360px) and (max-width:760px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.work-caption{display:block}.work-caption h3{font-size:19px}.work-caption>span{display:block;margin-top:6px}.work-toolbar a{font-size:13px}}

.booking-details{border-top:1px solid #d6cfc3;margin-top:18px;padding-top:6px}
.booking-details summary{cursor:pointer;min-height:44px;align-content:center;font-size:14px;color:#51463a}
.booking-details p{font-size:14px}.booking-details .package-detail{justify-content:flex-start}
@media(max-width:760px){.booking-steps{grid-template-columns:repeat(3,minmax(0,1fr));font-size:12px;gap:14px;line-height:1.5}.booking-intro{padding-bottom:22px!important}.booking-options .package{padding:22px}.booking-options .package.is-selected{padding:21px}}

/* Readable secondary text, including language controls and legal footer links. */
.nav .language-switch button{opacity:1!important}
.foot-bottom{color:#bfb5aa!important}
.homepage .faq-q .cn,.homepage .faq-a-inner .cn{color:#625950}
.detail-page .btn.light{color:#211d1a;border-color:#7c5c37;background:transparent}
.detail-page .btn.light:hover{color:#fff;background:#211d1a}
body[data-seo-path="/graduation"] .timeline .eyebrow{color:#e0c699}
body[data-seo-path="/graduation"] .timeline .cn{color:#d4cbc1}

.calendar-help .calendar-continue{font:inherit;color:#211d1a;background:transparent;border:0;border-top:1px solid #b9ac9b;min-height:44px;text-align:left;text-decoration:underline;text-underline-offset:4px;padding:12px 0;cursor:pointer;width:100%}

.foot-col .footer-heading{font-family:inherit;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:rgba(246,241,234,.85);margin:0 0 18px;font-weight:400;}

/* fonts */
/* Original site fonts, self-hosted under the accompanying SIL Open Font Licenses. */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: url(/assets/fonts/cormorant-garamond-latin-italic.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(/assets/fonts/cormorant-garamond-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/assets/fonts/jost-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
