/*
Theme Name: 叠筹声馆 · 独立主题
Theme URI: https://diechoushengguan.com/
Description: 叠筹声馆独立 WordPress 主题，不依赖任何父主题；完整承载品牌页面、响应式布局与后台动态内容。
Author: 叠筹声馆
Version: 3.4.0
Text Domain: diechoushengguan
*/

html { scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
img { height: auto; max-width: 100%; }
button, input, select, textarea { font: inherit; }
.screen-reader-text { clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; width: 1px; }
.dsg-site-main { display: block; min-height: 60vh; overflow: hidden; width: 100%; }
.dsg-site-main > article { margin: 0; padding: 0; }
.dsg-site-main .entry-content { margin: 0; max-width: none; padding: 0; width: 100%; }
.dsg-singular-hero .dsg-shell { padding-bottom: 72px; padding-top: 78px; }
.dsg-singular-content { color: #625b57; font-size: 1.04rem; line-height: 1.85; }
.dsg-singular-content h2, .dsg-singular-content h3 { color: var(--dsg-ink); }
.dsg-singular-content blockquote { border-left: 3px solid var(--dsg-gold); margin: 28px 0; padding: 8px 0 8px 20px; }
.dsg-singular-content > p, .dsg-singular-content > h2, .dsg-singular-content > h3, .dsg-singular-content > ol, .dsg-singular-content > ul, .dsg-singular-content > blockquote { max-width: 820px; }

:root {
  --dsg-ink: #171719;
  --dsg-wine: #6f1d35;
  --dsg-wine-deep: #3f0f20;
  --dsg-cream: #f4ebdd;
  --dsg-gold: #d4af6a;
  --dsg-muted: #8e8580;
  --dsg-shadow: 0 24px 70px rgba(29, 10, 17, .14);
}

body { background: #fffdf9; color: var(--dsg-ink); }
body .site-title, body .site-title a { color: var(--dsg-wine); font-weight: 700; letter-spacing: .12em; }

/*
 * DSG standalone front-end shell.
 * The theme owns the public header, full-width page canvas and footer so the
 * approved preview does not depend on another theme or Customizer import.
 */
body:not(.wp-admin) #header,
body:not(.wp-admin) #footer,
body:not(.wp-admin) .site-header,
body:not(.wp-admin) .site-footer { display: none !important; }

body.page #main,
body.single-dsg_note #main,
body.single-dsg_case #main,
body.single-dsg_design #main { padding: 0 !important; }

body.page #main > .hero-section,
body.single-dsg_note #main > .hero-section,
body.single-dsg_case #main > .hero-section,
body.single-dsg_design #main > .hero-section,
body.page .entry-header,
body.single-dsg_note .entry-header,
body.single-dsg_case .entry-header,
body.single-dsg_design .entry-header { display: none !important; }

body.page #main > .ct-container,
body.page #main > .ct-container-full,
body.single-dsg_note #main > .ct-container,
body.single-dsg_note #main > .ct-container-full,
body.single-dsg_case #main > .ct-container,
body.single-dsg_case #main > .ct-container-full,
body.single-dsg_design #main > .ct-container,
body.single-dsg_design #main > .ct-container-full { max-width: none !important; padding: 0 !important; width: 100% !important; }

body.page article.page,
body.single-dsg_note article,
body.single-dsg_case article,
body.single-dsg_design article,
body.page .entry-content,
body.single-dsg_note .entry-content,
body.single-dsg_case .entry-content,
body.single-dsg_design .entry-content { margin: 0 !important; max-width: none !important; padding: 0 !important; width: 100% !important; }

.dsg-brand-header { background: #171719; color: var(--dsg-cream); position: relative; z-index: 999; }
.dsg-brand-header__inner { align-items: center; display: flex; justify-content: space-between; margin: 0 auto; max-width: 1180px; min-height: 82px; padding: 0 24px; }
.dsg-brand-header__logo { display: inline-flex; flex: 0 0 auto; }
.dsg-brand-header__logo img { display: block; height: auto; max-height: 56px; width: 210px; }
.dsg-brand-header__nav { align-items: center; display: flex; gap: clamp(16px, 2.1vw, 30px); }
.dsg-brand-header__nav a { color: rgba(244,235,221,.88); font-size: .94rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.dsg-brand-header__nav a:hover,
.dsg-brand-header__nav a:focus { color: var(--dsg-gold); }
.dsg-brand-header__contact { border: 1px solid rgba(212,175,106,.72); border-radius: 999px; padding: 9px 15px; }
.dsg-brand-header__toggle { background: transparent; border: 0; cursor: pointer; display: none; height: 44px; padding: 9px; width: 44px; }
.dsg-brand-header__toggle span { background: var(--dsg-cream); display: block; height: 2px; margin: 5px 0; transition: .2s ease; width: 25px; }

@media (max-width: 900px) {
  .dsg-brand-header__inner { min-height: 68px; }
  .dsg-brand-header__logo img { max-height: 46px; width: 174px; }
  .dsg-brand-header__toggle { display: block; }
  .dsg-brand-header__nav { background: #171719; border-top: 1px solid rgba(212,175,106,.2); display: none; flex-direction: column; gap: 0; left: 0; padding: 8px 20px 20px; position: absolute; right: 0; top: 100%; }
  .dsg-brand-header.is-open .dsg-brand-header__nav { display: flex; }
  .dsg-brand-header__nav a { border-bottom: 1px solid rgba(244,235,221,.1); padding: 14px 4px; width: 100%; }
  .dsg-brand-header__contact { border: 0; border-radius: 0; color: var(--dsg-gold) !important; }
}

.dsg-shell { max-width: 1180px; margin: 0 auto; padding: clamp(64px, 9vw, 128px) 24px; }
.dsg-hero { color: var(--dsg-cream); background: radial-gradient(circle at 82% 16%, rgba(212,175,106,.26), transparent 28%), linear-gradient(135deg, var(--dsg-ink), var(--dsg-wine-deep)); overflow: hidden; position: relative; }
.dsg-hero::after { border: 1px solid rgba(212,175,106,.38); border-radius: 50%; content: ''; height: min(54vw, 680px); position: absolute; right: -14vw; top: -24vw; width: min(54vw, 680px); }
.dsg-onepage-hero { background-image: linear-gradient(90deg, rgba(22,11,14,.94) 0%, rgba(39,11,19,.82) 35%, rgba(25,10,15,.08) 72%), url("assets/hero-original-desktop.png"); background-position: center, center; background-size: cover; color: var(--dsg-cream); min-height: 670px; overflow: hidden; position: relative; }
.dsg-onepage-hero .dsg-shell { padding-bottom: 154px; padding-top: 130px; position: relative; z-index: 1; }
.dsg-onepage-hero h1 { color: inherit; font-size: clamp(2.4rem, 5.3vw, 5rem); letter-spacing: -.06em; line-height: 1.08; margin: 0; max-width: 760px; }
.dsg-onepage-hero::after { background: linear-gradient(180deg, rgba(0,0,0,.1), rgba(0,0,0,.36)); content: ''; inset: 0; pointer-events: none; position: absolute; }
.dsg-kicker { color: var(--dsg-gold); font-size: .82rem; font-weight: 700; letter-spacing: .18em; margin: 0 0 22px; text-transform: uppercase; }
.dsg-hero h1 { color: inherit; font-size: clamp(2.4rem, 5.3vw, 5rem); letter-spacing: -.06em; line-height: 1.08; margin: 0; max-width: 760px; position: relative; z-index: 1; }
.dsg-hero-copy { color: rgba(244,235,221,.82); font-size: clamp(1rem, 1.7vw, 1.28rem); line-height: 1.8; margin: 28px 0 0; max-width: 620px; position: relative; z-index: 1; }
.dsg-gallery-hero .dsg-shell { padding-bottom: 74px; padding-top: 92px; }
.dsg-gallery-section { padding-bottom: clamp(72px, 9vw, 132px); padding-top: clamp(64px, 8vw, 96px); }
.dsg-gallery-works { display: grid; gap: 22px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 38px; }
.dsg-gallery-work-card { background: var(--dsg-ink); border-radius: 18px; box-shadow: 0 14px 34px rgba(39,18,25,.11); min-width: 0; overflow: hidden; position: relative; }
.dsg-gallery-work-card img { aspect-ratio: 1 / 1; display: block; object-fit: cover; transition: transform .35s ease; width: 100%; }
.dsg-gallery-work-card:hover img { transform: scale(1.035); }
.dsg-gallery-work-card__info { align-items: flex-end; background: linear-gradient(0deg, rgba(10,9,10,.92), rgba(10,9,10,.05) 76%); bottom: 0; display: flex; gap: 12px; justify-content: space-between; left: 0; padding: 48px 17px 16px; position: absolute; right: 0; }
.dsg-gallery-work-card__info h3 { color: var(--dsg-cream); font-size: 1.08rem; line-height: 1.25; margin: 0; }
.dsg-gallery-work-card__button { background: rgba(244,235,221,.96); border: 0; border-radius: 999px; color: #32131e; cursor: pointer; flex: 0 0 auto; font: inherit; font-size: .78rem; font-weight: 800; padding: 8px 11px; transition: .2s ease; }
.dsg-gallery-work-card__button:hover, .dsg-gallery-work-card__button:focus { background: var(--dsg-gold); transform: translateY(-1px); }
.dsg-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; position: relative; z-index: 1; }
.dsg-button { align-items: center; border: 1px solid var(--dsg-gold); border-radius: 999px; color: var(--dsg-cream); display: inline-flex; font-weight: 700; gap: 8px; justify-content: center; min-height: 48px; padding: 0 23px; text-decoration: none; transition: .2s ease; }
.dsg-button:hover, .dsg-button:focus { background: var(--dsg-gold); color: var(--dsg-ink); transform: translateY(-2px); }
.dsg-button--solid { background: var(--dsg-gold); color: var(--dsg-ink); }
.dsg-button--solid:hover, .dsg-button--solid:focus { background: var(--dsg-cream); }

.dsg-section { padding: clamp(56px, 8vw, 110px) 0; }
.dsg-section--tint { background: #f8f1e8; }
.dsg-eyebrow { color: var(--dsg-wine); font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.dsg-section h2 { color: var(--dsg-ink); font-size: clamp(1.8rem, 3.6vw, 3.1rem); letter-spacing: -.045em; margin: 12px 0 16px; }
.dsg-lead { color: #625b57; font-size: 1.08rem; line-height: 1.85; max-width: 680px; }
.dsg-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 36px; }
.dsg-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dsg-card { background: #fffdf9; border: 1px solid rgba(111,29,53,.11); border-radius: 18px; box-shadow: 0 8px 32px rgba(29,10,17,.04); padding: 28px; }
.dsg-card--dark { background: var(--dsg-ink); border-color: transparent; color: var(--dsg-cream); }
.dsg-card h3 { font-size: 1.22rem; margin: 0 0 10px; }
.dsg-card p, .dsg-card li { color: #69615d; line-height: 1.75; }
.dsg-card--dark p, .dsg-card--dark li { color: rgba(244,235,221,.76); }
.dsg-number { color: var(--dsg-gold); display: block; font-size: .8rem; font-weight: 700; letter-spacing: .12em; margin-bottom: 18px; }
.dsg-note { border-left: 3px solid var(--dsg-gold); color: #625b57; line-height: 1.8; margin: 32px 0 0; max-width: 800px; padding: 4px 0 4px 18px; }
.dsg-faq details { border-bottom: 1px solid rgba(111,29,53,.15); padding: 20px 0; }
.dsg-faq summary { color: var(--dsg-ink); cursor: pointer; font-weight: 700; list-style: none; padding-right: 30px; position: relative; }
.dsg-faq summary::after { color: var(--dsg-wine); content: '+'; font-size: 1.5rem; font-weight: 400; position: absolute; right: 0; top: -6px; }
.dsg-faq details[open] summary::after { content: '−'; }
.dsg-faq p { color: #625b57; line-height: 1.8; margin: 14px 36px 4px 0; }

.dsg-form { background: #fffdf9; border: 1px solid rgba(111,29,53,.14); border-radius: 20px; box-shadow: var(--dsg-shadow); padding: clamp(24px, 5vw, 48px); }
.dsg-form__intro { color: #625b57; line-height: 1.75; margin-bottom: 28px; }
.dsg-form__grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dsg-form label { color: var(--dsg-ink); display: block; font-size: .94rem; font-weight: 700; }
.dsg-form label span { color: var(--dsg-muted); font-size: .82rem; font-weight: 400; }
.dsg-form input, .dsg-form select, .dsg-form textarea { background: #fff; border: 1px solid #ded3c8; border-radius: 10px; box-sizing: border-box; color: var(--dsg-ink); font: inherit; margin-top: 8px; min-height: 48px; padding: 11px 12px; width: 100%; }
.dsg-form textarea { min-height: 130px; resize: vertical; }
.dsg-form input:focus, .dsg-form select:focus, .dsg-form textarea:focus { border-color: var(--dsg-wine); box-shadow: 0 0 0 3px rgba(111,29,53,.1); outline: none; }
.dsg-form__full { grid-column: 1 / -1; }
.dsg-form__check { align-items: flex-start; color: #625b57 !important; display: flex !important; font-size: .86rem !important; font-weight: 400 !important; gap: 10px; line-height: 1.6; }
.dsg-form__check input { accent-color: var(--dsg-wine); flex: 0 0 auto; margin: 3px 0 0; min-height: auto; width: auto; }
.dsg-form__submit { background: var(--dsg-wine); border: 1px solid var(--dsg-wine); border-radius: 999px; color: #fff; cursor: pointer; font: inherit; font-weight: 700; margin-top: 18px; min-height: 50px; padding: 0 26px; }
.dsg-form__submit:hover, .dsg-form__submit:focus { background: var(--dsg-wine-deep); }
.dsg-form__success { background: #edf6ee; border: 1px solid #b5d5b8; border-radius: 10px; color: #285c33; margin-bottom: 20px; padding: 14px 16px; }
.dsg-form__error { background: #fff0ee; border: 1px solid #e9bcb5; border-radius: 10px; color: #8d271f; margin-bottom: 20px; padding: 14px 16px; }
.dsg-honeypot { height: 0; left: -9999px; overflow: hidden; position: absolute; width: 0; }
.dsg-contact-card { background: var(--dsg-ink); border-radius: 18px; color: var(--dsg-cream); max-width: 700px; padding: 32px; }
.dsg-contact-card h3 { color: var(--dsg-gold); margin-top: 0; }
.dsg-contact-card p { color: rgba(244,235,221,.82); line-height: 1.75; }
.dsg-contact-card img { background: #fff; border-radius: 12px; display: block; margin-top: 20px; max-width: 220px; padding: 8px; }
.dsg-legal { color: #746b66; font-size: .86rem; line-height: 1.75; }
.dsg-global-footer { background: #110f10; color: #b6aaa1; margin-top: 0; }
.dsg-footer-grid { display: grid; gap: 28px; grid-template-columns: 1.2fr .9fr 180px; padding-bottom: 34px; padding-top: 42px; }
.dsg-global-footer h3 { color: var(--dsg-cream); font-size: 1rem; margin: 0 0 12px; }
.dsg-global-footer p { font-size: .84rem; line-height: 1.7; margin: 0 0 8px; }
.dsg-social-links { display: flex; flex-wrap: wrap; gap: 10px; }
.dsg-social-links a, .dsg-social-links button { align-items: center; background: transparent; border: 1px solid rgba(244,235,221,.24); border-radius: 999px; color: var(--dsg-cream); cursor: pointer; display: inline-flex; font: inherit; font-size: .78rem; font-weight: 700; gap: 7px; padding: 8px 11px; text-decoration: none; }
.dsg-social-links a:hover, .dsg-social-links button:hover { border-color: var(--dsg-gold); color: var(--dsg-gold); }
.dsg-social-links span { align-items: center; background: var(--dsg-cream); border-radius: 50%; color: var(--dsg-ink); display: inline-flex; font-size: .66rem; font-weight: 800; height: 18px; justify-content: center; width: 18px; }
.dsg-footer-copyright { border-top: 1px solid rgba(244,235,221,.13); display: block; font-size: .78rem; margin-top: 24px; padding-top: 16px; }
.dsg-footer-qr { background: #0c0b0c; border: 1px solid rgba(212,175,106,.28); border-radius: 16px; padding: 12px; text-align: center; }
.dsg-footer-qr img { background: #fff; border-radius: 8px; display: block; margin: 0 auto 9px; width: 132px; }
.dsg-footer-qr strong { color: var(--dsg-cream); font-size: .82rem; }
.dsg-copy-text { background: transparent; border: 0; color: var(--dsg-cream); cursor: pointer; font: inherit; font-weight: 800; padding: 0; text-decoration: underline; text-decoration-color: var(--dsg-gold); text-underline-offset: 3px; }
.dsg-footer-legal { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 18px; }
.dsg-footer-legal a { color: inherit; font-size: .78rem; text-decoration: underline; text-underline-offset: 3px; }
.dsg-copy-toast { background: var(--dsg-cream); border-radius: 999px; bottom: 22px; box-shadow: 0 10px 32px rgba(0,0,0,.35); color: var(--dsg-ink); font-size: .82rem; font-weight: 700; left: 50%; opacity: 0; padding: 10px 16px; pointer-events: none; position: fixed; transform: translate(-50%,14px); transition: .22s; z-index: 9999; }
.dsg-copy-toast.is-visible { opacity: 1; transform: translate(-50%,0); }
.dsg-process-strip { display: grid; gap: 18px; grid-template-columns: repeat(4, 1fr); margin-top: 38px; }
.dsg-process-strip article { border-top: 1px solid rgba(111,29,53,.25); padding-top: 19px; }
.dsg-process-strip span { color: var(--dsg-gold); font-size: .74rem; font-weight: 800; letter-spacing: .16em; }
.dsg-process-strip h3 { font-size: 1.1rem; margin: 11px 0 7px; }
.dsg-process-strip p, .dsg-case-copy p, .dsg-case-cta p { color: #69615d; margin: 0; }
.dsg-cases { padding-bottom: 104px; }
.dsg-case { display: grid; gap: 40px; grid-template-columns: .74fr 1.26fr; padding: 52px 0; }
.dsg-case + .dsg-case { border-top: 1px solid rgba(111,29,53,.16); }
.dsg-case-copy { align-self: start; position: sticky; top: 96px; }
.dsg-case-copy h3 { font-size: clamp(1.7rem, 3vw, 2.6rem); letter-spacing: -.055em; line-height: 1.18; margin: 12px 0 20px; }
.dsg-case-copy p { line-height: 1.85; margin-top: 12px; }
.dsg-case-copy ol { border-top: 1px solid rgba(111,29,53,.18); list-style: none; margin: 28px 0 0; padding: 13px 0 0; }
.dsg-case-copy li { display: grid; gap: 4px; grid-template-columns: 88px 1fr; margin: 13px 0; }
.dsg-case-copy li strong { color: var(--dsg-wine); font-size: .8rem; }
.dsg-case-copy li span { color: #69615d; font-size: .8rem; line-height: 1.55; }
.dsg-case-start { display: inline-flex; margin-top: 22px; }
.dsg-case-post-action { margin-top: 28px; }
.dsg-case-media { display: grid; gap: 14px; }
.dsg-case-media figure { background: #efe8e1; border-radius: 15px; margin: 0; overflow: hidden; position: relative; }
.dsg-case-media img { display: block; height: 100%; object-fit: cover; width: 100%; }
.dsg-case-media figcaption { background: rgba(23,23,25,.86); bottom: 0; color: var(--dsg-cream); font-size: .75rem; font-weight: 700; left: 0; padding: 9px 11px; position: absolute; right: 0; }
.dsg-case-media--three { grid-template-columns: .88fr 1.12fr; }
.dsg-case-media--three .dsg-case-ref { grid-row: span 2; height: 542px; }
.dsg-case-media--three figure:not(.dsg-case-ref) { height: 264px; }
.dsg-case-media--four { grid-template-columns: 1fr 1fr; }
.dsg-case-media--four figure { height: 260px; }
.dsg-case--reverse .dsg-case-copy { order: 2; }
.dsg-case--reverse .dsg-case-media { order: 1; }
.dsg-case-cta { align-items: center; background: var(--dsg-ink); border-radius: 20px; color: var(--dsg-cream); display: flex; gap: 30px; justify-content: space-between; margin-top: 20px; padding: 34px; }
.dsg-case-cta h2 { font-size: 1.8rem; margin: 4px 0 8px; }
.dsg-case-cta p { color: rgba(244,235,221,.75); max-width: 610px; }
.dsg-more-cases { margin: 56px 0 20px; }
.dsg-case-archive { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); margin-top: 28px; }
.dsg-case-card { background: #fffdf9; border: 1px solid rgba(111,29,53,.13); border-radius: 16px; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.dsg-case-card:hover { box-shadow: 0 14px 32px rgba(29,10,17,.09); transform: translateY(-3px); }
.dsg-case-card a { color: inherit; display: block; text-decoration: none; }
.dsg-case-card__image { aspect-ratio: 1.35 / 1; background: #eee5dc; }
.dsg-case-card__image img { display: block; height: 100%; object-fit: cover; width: 100%; }
.dsg-case-card__copy { padding: 22px; }
.dsg-case-card h3 { font-size: 1.16rem; margin: 12px 0 7px; }
.dsg-case-card p { color: #69615d; font-size: .86rem; line-height: 1.7; margin: 0; }
.dsg-case-card strong { color: var(--dsg-wine); display: block; font-size: .84rem; margin-top: 16px; }
.dsg-case-card__start { background: var(--dsg-wine); border: 0; border-radius: 999px; color: #fff; cursor: pointer; font: inherit; font-size: .82rem; font-weight: 800; margin: 0 22px 22px; padding: 10px 14px; }
.dsg-case-card__start:hover, .dsg-case-card__start:focus { background: var(--dsg-wine-deep); }
.dsg-case-carousel-controls { display: none; }
.dsg-case-media-carousel-controls { display: none; }
.dsg-from-idea-action { margin-top: 32px; }

@media (max-width: 1100px) {
  .dsg-case { display: grid !important; gap: 25px !important; grid-template-columns: 1fr !important; padding: 40px 0 !important; }
  .dsg-case-copy { position: static !important; }
  .dsg-case--reverse .dsg-case-copy, .dsg-case--reverse .dsg-case-media { order: auto !important; }
  .dsg-case-media { display: flex !important; gap: 0 !important; margin: 0 -4px !important; overflow-x: auto !important; padding: 0 4px 8px !important; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .dsg-case-media::-webkit-scrollbar { display: none; }
  .dsg-case-media figure { flex: 0 0 100% !important; height: 280px !important; scroll-snap-align: start; }
  .dsg-case-media-carousel-controls { display: flex !important; gap: 8px; justify-content: center; margin: 13px 0 0; }
  .dsg-case-media-carousel-controls button { background: #e6d9ce; border: 0; border-radius: 999px; color: var(--dsg-wine); cursor: pointer; font-weight: 800; height: 26px; width: 26px; }
  .dsg-case-media-carousel-controls button.is-active { background: var(--dsg-wine); color: #fff; }
}

@media (max-width: 800px) {
  .dsg-case-media { display: flex !important; gap: 0; margin: 0 -4px; overflow-x: auto; padding: 0 4px 8px; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .dsg-case-media::-webkit-scrollbar { display: none; }
  .dsg-case-media figure { flex: 0 0 100%; height: 280px !important; scroll-snap-align: start; }
  .dsg-case-media-carousel-controls { display: flex; gap: 8px; justify-content: center; margin: 13px 0 0; }
  .dsg-case-media-carousel-controls button { background: #e6d9ce; border: 0; border-radius: 999px; color: var(--dsg-wine); cursor: pointer; font-weight: 800; height: 26px; width: 26px; }
  .dsg-case-media-carousel-controls button.is-active { background: var(--dsg-wine); color: #fff; }
}

/*
 * 3.3.0 — fixed editorial canvas
 * Keep the approved preview's contained composition on desktop, and make
 * case images a deliberate swipe sequence below the copy on small screens.
 * These rules intentionally come last: earlier delivery iterations contained
 * wider experimental layout declarations which must not win in production.
 */
html,
body {
  overflow-x: clip;
}

.dsg-brand-header {
  background: #1d1d1f;
  left: 0;
  position: sticky !important;
  right: 0;
  top: 0;
  z-index: 10000;
}

.dsg-shell,
.dsg-brand-header__inner {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 1640px !important;
  width: calc(100% - 64px) !important;
}

.dsg-brand-header__inner {
  justify-content: flex-start !important;
  min-height: 78px !important;
  padding: 0 !important;
}

.dsg-brand-header__nav {
  gap: clamp(14px, 1.15vw, 24px) !important;
  margin-left: clamp(3rem, 6vw, 8rem) !important;
}

.dsg-brand-header__nav a {
  font-size: 0.93rem !important;
}

.dsg-onepage-hero {
  min-height: 640px !important;
}

.dsg-onepage-hero .dsg-shell {
  padding-bottom: 116px !important;
  padding-top: 112px !important;
}

.dsg-onepage-hero h1 {
  font-size: clamp(3rem, 4.45vw, 4.3rem) !important;
  max-width: 720px !important;
}

.dsg-section {
  padding-bottom: 76px !important;
  padding-top: 76px !important;
}

.dsg-cases {
  padding-bottom: 92px !important;
  padding-top: 78px !important;
}

.dsg-cases > h2 {
  font-size: clamp(2.85rem, 4.15vw, 4.55rem) !important;
  max-width: 840px !important;
}

.dsg-case {
  gap: clamp(34px, 3.6vw, 60px) !important;
  grid-template-columns: minmax(330px, 0.86fr) minmax(480px, 1.14fr) !important;
  padding: 58px 0 !important;
}

.dsg-case-copy h3 {
  font-size: clamp(1.85rem, 2.65vw, 2.9rem) !important;
  line-height: 1.16 !important;
}

.dsg-case-copy p,
.dsg-case-copy dd {
  font-size: 1rem !important;
}

.dsg-case-media--three .dsg-case-ref {
  height: 520px !important;
}

.dsg-case-media--three figure:not(.dsg-case-ref),
.dsg-case-media--four figure {
  height: 250px !important;
}

.dsg-idea-object {
  padding-bottom: 76px !important;
  padding-top: 72px !important;
}

.dsg-notes-index {
  padding-bottom: 88px !important;
  padding-top: 72px !important;
}

.dsg-notes-index > h1 {
  font-size: clamp(2.8rem, 3.8vw, 4.1rem) !important;
  max-width: 800px !important;
}

.dsg-note-layout {
  gap: 36px !important;
  grid-template-columns: minmax(0, 1fr) minmax(290px, 330px) !important;
}

.dsg-note-grid {
  display: grid !important;
  gap: 22px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.dsg-note-card__image {
  height: 210px !important;
}

.dsg-site-main a:not(.dsg-button):not(.dsg-open-wechat) {
  color: inherit;
}

.dsg-note-card a,
.dsg-case-card a,
.dsg-case a {
  text-decoration: none;
}

@media (max-width: 900px) {
  .dsg-shell,
  .dsg-brand-header__inner {
    width: calc(100% - 40px) !important;
  }

  .dsg-brand-header__inner {
    justify-content: space-between !important;
    min-height: 68px !important;
  }

  .dsg-brand-header__nav {
    margin-left: 0 !important;
  }
}

@media (max-width: 800px) {
  .dsg-section {
    padding-bottom: 50px !important;
    padding-top: 50px !important;
  }

  .dsg-cases {
    padding-bottom: 58px !important;
    padding-top: 44px !important;
  }

  .dsg-cases > h2,
  .dsg-notes-index > h1 {
    font-size: 2.35rem !important;
  }

  .dsg-case {
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
    padding: 38px 0 !important;
  }

  .dsg-case-copy {
    order: 1 !important;
    position: static !important;
    width: 100% !important;
  }

  .dsg-case-media {
    -webkit-overflow-scrolling: touch;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
    margin-left: 0 !important;
    order: 2 !important;
    overflow-x: auto !important;
    padding-bottom: 10px !important;
    scroll-snap-type: x mandatory;
    width: 100% !important;
  }

  .dsg-case-media figure,
  .dsg-case-media--three .dsg-case-ref,
  .dsg-case-media--three figure:not(.dsg-case-ref),
  .dsg-case-media--four figure {
    flex: 0 0 100% !important;
    height: 286px !important;
    margin: 0 !important;
    min-width: 100% !important;
    scroll-snap-align: start;
  }

  .dsg-case-mobile-swipe-hint {
    display: block !important;
    order: 3 !important;
  }

  .dsg-case-start {
    align-self: flex-start;
    order: 4 !important;
  }

  .dsg-notes-index {
    padding-bottom: 56px !important;
    padding-top: 44px !important;
  }

  .dsg-note-layout {
    display: block !important;
  }

  .dsg-note-grid {
    gap: 14px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .dsg-note-card__image {
    height: 130px !important;
  }
}

/* 2026-11-08 screenshot-locked release. */
.dsg-brand-header__inner { min-height: 76px; }
.dsg-brand-header__logo { align-items: center; gap: 13px; text-decoration: none; }
.dsg-brand-header__logo img { border-radius: 50%; height: 56px; max-height: none; width: 56px; }
.dsg-brand-header__logo span { color: var(--dsg-gold); font-size: 1.28rem; font-weight: 800; letter-spacing: .08em; white-space: nowrap; }

.dsg-onepage-hero {
  align-items: center;
  background-image: linear-gradient(90deg, rgba(58,14,37,.78) 0%, rgba(48,15,38,.58) 38%, rgba(5,18,33,.22) 73%, rgba(4,14,25,.12) 100%), url("assets/hero-original-desktop.png");
  background-position: center, center;
  background-size: cover;
  display: flex;
  height: auto;
  min-height: calc(100vh - 76px);
}
.dsg-onepage-hero::after { background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.18)); }
.dsg-onepage-hero > .dsg-shell { padding-bottom: 100px; padding-top: 100px; width: 100%; }
.dsg-onepage-hero h1 { font-size: clamp(3rem, 4.75vw, 4.8rem); max-width: 790px; }
.dsg-onepage-hero .dsg-hero-copy { font-size: 1.02rem; }

.dsg-process-strip--three { grid-template-columns: repeat(3, 1fr); }
.dsg-idea-object .dsg-actions { margin-top: 34px; }
.dsg-notes-index > h1 { font-size: clamp(2.6rem, 5.6vw, 5rem); letter-spacing: -.055em; line-height: 1.08; margin: 18px 0 42px; }
.dsg-notes-index .dsg-note-archive { border-top: 1px solid rgba(111,29,53,.16); margin-top: 0; padding-top: 30px; }
.dsg-notes-index .dsg-note-layout { margin-top: 0; }
.dsg-cases > h2 { font-size: clamp(2.7rem, 5vw, 4.8rem); max-width: 890px; }
.dsg-case-start { color: var(--dsg-ink); }

@media (max-width: 900px) {
  .dsg-brand-header__logo img { height: 46px; max-height: none; width: 46px; }
  .dsg-brand-header__logo span { font-size: 1.05rem; }
  .dsg-onepage-hero {
    align-items: flex-start;
    background-image: linear-gradient(180deg, rgba(54,13,34,.8) 0%, rgba(35,15,33,.68) 50%, rgba(5,18,33,.28) 100%), url("assets/hero-original-desktop.png");
    background-position: 62% center, 62% center;
    min-height: 680px;
  }
  .dsg-onepage-hero > .dsg-shell { padding-bottom: 240px; padding-top: 58px; }
  .dsg-onepage-hero h1 { font-size: clamp(2.25rem, 10vw, 3.15rem); }
  .dsg-process-strip, .dsg-process-strip--three { grid-template-columns: 1fr; }
  .dsg-case-copy { position: static; }
  .dsg-notes-index > h1 { font-size: 2.55rem; margin-bottom: 30px; }
}

/* 定制笔记：后台新增文章会按发布日期自动排在前面。 */
.dsg-note-archive { margin-top: 42px; }
.dsg-note-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); margin-top: 30px; }
.dsg-note-card { background: #fffdf9; border: 1px solid rgba(111,29,53,.13); border-radius: 17px; overflow: hidden; transition: box-shadow .2s ease, transform .2s ease; }
.dsg-note-card:hover { box-shadow: 0 14px 34px rgba(29,10,17,.1); transform: translateY(-3px); }
.dsg-note-card a { color: inherit; display: block; text-decoration: none; }
.dsg-note-card__image { aspect-ratio: 1.38 / 1; background: #eee5dc; }
.dsg-note-card__image img { display: block; height: 100%; object-fit: cover; width: 100%; }
.dsg-note-card__copy { padding: 22px; }
.dsg-note-card h3 { font-size: 1.18rem; line-height: 1.42; margin: 12px 0 8px; }
.dsg-note-card p { color: #69615d; font-size: .87rem; line-height: 1.72; margin: 0; }
.dsg-note-card strong { color: var(--dsg-wine); display: block; font-size: .85rem; margin-top: 16px; }
.dsg-note-all { margin-top: 30px; text-align: center; }
.single-dsg_note .entry-content { color: #69615d; font-size: 1.03rem; line-height: 1.9; }
.single-dsg_note .entry-content blockquote { border-left: 3px solid var(--dsg-gold); color: #665d58; margin: 30px 0; padding: 6px 0 6px 18px; }
.dsg-note-post-images { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; margin-top: 34px; }
.dsg-note-post-images figure { margin: 0; }
.dsg-note-post-images img { border-radius: 15px; display: block; height: 300px; object-fit: cover; width: 100%; }

@media (max-width: 800px) {
  .dsg-onepage-hero { background-image: linear-gradient(180deg, rgba(28,9,15,.42) 0%, rgba(28,9,15,.55) 52%, rgba(22,10,14,.08) 100%), url("assets/hero-original-desktop.png"); background-position: 62% center,62% center; height: 630px; min-height: 0; }
  .dsg-onepage-hero .dsg-shell { padding-bottom: 235px; padding-top: 64px; }
  .dsg-note-grid { grid-template-columns: 1fr; }
  .dsg-note-post-images { grid-template-columns: 1fr; }
  .dsg-note-post-images img { height: 250px; }
}

/* 首页首屏：沿用客户原图，只降低遮罩与高度，避免首屏占满视窗。 */
.dsg-onepage-hero { background-image: linear-gradient(90deg, rgba(22,11,14,.52) 0%, rgba(39,11,19,.36) 40%, rgba(25,10,15,.04) 78%), url("assets/hero-original-desktop.png"); height: 620px; min-height: 0; }
.dsg-onepage-hero::after { background: linear-gradient(180deg, rgba(0,0,0,.01), rgba(0,0,0,.08)); }
.dsg-onepage-hero .dsg-shell { padding-bottom: 100px; padding-top: 94px; }
.dsg-onepage-hero h1 { font-size: clamp(2.4rem, 4.55vw, 4rem); max-width: 650px; }
.dsg-onepage-hero .dsg-hero-copy { font-size: 16px; margin: 20px 0; }

@media (max-width: 800px) {
  .dsg-onepage-hero { background-image: linear-gradient(180deg, rgba(28,9,15,.42) 0%, rgba(28,9,15,.55) 52%, rgba(22,10,14,.08) 100%), url("assets/hero-original-desktop.png"); background-position: 62% center, 62% center; height: 630px; min-height: 0; }
  .dsg-onepage-hero .dsg-shell { padding-bottom: 235px; padding-top: 64px; }
  .dsg-onepage-hero h1 { font-size: 2.125rem; }
}

@media (max-width: 800px) {
  .dsg-grid, .dsg-grid--two, .dsg-form__grid { grid-template-columns: 1fr; }
  .dsg-gallery-hero .dsg-shell { padding-bottom: 55px; padding-top: 70px; }
  .dsg-gallery-section { padding-bottom: 72px; padding-top: 58px; }
  .dsg-gallery-works { gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 26px; }
  .dsg-gallery-work-card { border-radius: 13px; }
  .dsg-gallery-work-card__info { align-items: flex-start; flex-direction: column; gap: 8px; padding: 42px 11px 11px; }
  .dsg-gallery-work-card__info h3 { font-size: .94rem; }
  .dsg-gallery-work-card__button { font-size: .7rem; padding: 7px 9px; }
  .dsg-form__full { grid-column: auto; }
  .dsg-hero::after { height: 90vw; right: -40vw; top: -25vw; width: 90vw; }
  .dsg-shell { padding-left: 20px; padding-right: 20px; }
  .dsg-onepage-hero { background-image: linear-gradient(180deg, rgba(28,9,15,.72) 0%, rgba(28,9,15,.92) 49%, rgba(22,10,14,.22) 100%), url("assets/hero-original-desktop.png"); background-position: 66% center, 66% center; min-height: 720px; }
  .dsg-onepage-hero .dsg-shell { padding-bottom: 380px; padding-top: 78px; }
  .dsg-footer-grid { grid-template-columns: 1fr; }
  .dsg-footer-qr { max-width: 180px; }
  .dsg-footer-copyright { margin-top: 18px; }
  .dsg-footer-legal { margin-top: 14px; }
  .dsg-process-strip, .dsg-case, .dsg-case-archive { grid-template-columns: 1fr; }
  .dsg-cases { padding-bottom: 76px; }
  .dsg-case { gap: 25px; padding: 40px 0; }
  .dsg-case-copy { position: static; }
  .dsg-case--reverse .dsg-case-copy, .dsg-case--reverse .dsg-case-media { order: auto; }
  .dsg-case-media--three, .dsg-case-media--four { grid-template-columns: 1fr; }
  .dsg-case-media--three .dsg-case-ref, .dsg-case-media--three figure:not(.dsg-case-ref), .dsg-case-media--four figure { height: 260px; }
  .dsg-case-media--three .dsg-case-ref { grid-row: auto; }
  .dsg-case-copy li { grid-template-columns: 74px 1fr; }
  .dsg-case-cta { align-items: flex-start; flex-direction: column; padding: 28px; }
  .dsg-case-carousel { display: flex; gap: 14px; margin: 0 -20px; overflow-x: auto; padding: 0 20px 8px; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .dsg-case-carousel::-webkit-scrollbar { display: none; }
  .dsg-case-carousel .dsg-case { background: #fffdf9; border: 1px solid rgba(111,29,53,.14); border-radius: 18px; display: grid; flex: 0 0 calc(100% - 26px); gap: 25px; grid-template-columns: 1fr; margin: 0; padding: 24px; scroll-snap-align: start; }
  .dsg-case-carousel .dsg-case + .dsg-case { border-top: 1px solid rgba(111,29,53,.14); }
  .dsg-case-carousel .dsg-case-copy { position: static; }
  .dsg-case-carousel .dsg-case--reverse .dsg-case-copy, .dsg-case-carousel .dsg-case--reverse .dsg-case-media { order: auto; }
  .dsg-case-carousel-controls { display: flex; gap: 8px; justify-content: center; margin: 18px 0 4px; }
  .dsg-case-carousel-controls button { background: #e6d9ce; border: 0; border-radius: 999px; color: var(--dsg-wine); cursor: pointer; font-weight: 800; height: 28px; width: 28px; }
  .dsg-case-carousel-controls button.is-active { background: var(--dsg-wine); color: #fff; }
}

/* Keep the final mobile override light enough for the supplied hero image. */
@media (max-width: 800px) {
  .dsg-onepage-hero { background-image: linear-gradient(180deg, rgba(28,9,15,.42) 0%, rgba(28,9,15,.55) 52%, rgba(22,10,14,.08) 100%), url("assets/hero-original-desktop.png"); background-position: 62% center,62% center; height: 630px; min-height: 0; }
  .dsg-onepage-hero .dsg-shell { padding-bottom: 235px; padding-top: 64px; }
}

/* 定制笔记汇总：左侧九宫格，右侧五个设计方向。 */
.dsg-note-layout { display: grid; gap: 28px; grid-template-columns: minmax(0,3fr) minmax(244px,1fr); margin-top: 34px; }
.dsg-note-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.dsg-note-design-sidebar { border-left: 1px solid rgba(111,29,53,.16); padding-left: 28px; }
.dsg-note-design-sidebar > h2 { font-size: 1.65rem; margin: 0; }
.dsg-note-design-sidebar > p:not(.dsg-eyebrow) { color: #69615d; font-size: .86rem; margin: 6px 0 18px; }
.dsg-note-design-card { border-bottom: 1px solid rgba(111,29,53,.15); margin-bottom: 18px; padding-bottom: 18px; }
.dsg-note-design-card img { border-radius: 10px; display: block; height: 145px; object-fit: cover; width: 100%; }
.dsg-note-design-card div { padding-top: 11px; }
.dsg-note-design-card span { color: var(--dsg-gold); font-size: .67rem; font-weight: 800; letter-spacing: .12em; }
.dsg-note-design-card h3 { font-size: 1.05rem; margin: 5px 0; }
.dsg-note-design-card p { color: #69615d; font-size: .8rem; line-height: 1.6; margin: 0; }
.dsg-open-brief { background: none; border: 0; color: var(--dsg-wine); cursor: pointer; font: inherit; font-size: .82rem; font-weight: 800; margin: 10px 0 0; padding: 0; }
.dsg-note-pagination { margin-top: 30px; }
.dsg-note-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; list-style: none; margin: 0; padding: 0; }
.dsg-note-pagination a,.dsg-note-pagination span { align-items: center; border: 1px solid rgba(111,29,53,.2); border-radius: 999px; display: flex; font-size: .85rem; justify-content: center; min-height: 34px; padding: 0 12px; text-decoration: none; }
.dsg-note-pagination .current { background: var(--dsg-wine); border-color: var(--dsg-wine); color: #fff; }
.dsg-note-modal { display: none; inset: 0; position: fixed; z-index: 9999; }
.dsg-note-modal.is-open { display: block; }
.dsg-note-modal__backdrop { background: rgba(19,15,17,.64); border: 0; cursor: pointer; inset: 0; position: absolute; width: 100%; }
.dsg-note-modal__panel { background: #fffdf9; border-radius: 18px; box-shadow: 0 28px 80px rgba(0,0,0,.28); left: 50%; max-height: 88vh; max-width: 780px; overflow: auto; padding: 36px; position: absolute; top: 50%; transform: translate(-50%,-50%); width: calc(100% - 32px); }
.dsg-note-modal__panel h2 { font-size: 1.9rem; margin: 0; }
.dsg-note-modal__panel > p:not(.dsg-eyebrow) { color: #69615d; margin: 12px 0 24px; }
.dsg-note-modal__close { background: none; border: 0; color: var(--dsg-wine); cursor: pointer; font-size: 2rem; line-height: 1; position: absolute; right: 15px; top: 12px; }
.dsg-note-modal .dsg-form { box-shadow: none; margin: 0; padding: 0; }

/* 定制笔记右栏：同步展示设计画廊最新发布的五款。 */
.dsg-note-design-card { border: 0; border-radius: 12px; margin: 0 0 16px; overflow: hidden; padding: 0; position: relative; }
.dsg-note-design-card img { aspect-ratio: 1 / 1; border-radius: 0; display: block; height: auto; object-fit: cover; width: 100%; }
.dsg-note-design-card div { align-items: flex-end; background: linear-gradient(0deg, rgba(10,9,10,.92), rgba(10,9,10,.05) 76%); bottom: 0; display: flex; gap: 8px; justify-content: space-between; left: 0; padding: 46px 12px 12px; position: absolute; right: 0; }
.dsg-note-design-card h3 { color: var(--dsg-cream); font-size: 1rem; line-height: 1.25; margin: 0; }
.dsg-note-design-card .dsg-open-wechat { background: var(--dsg-cream); border: 0; border-radius: 999px; color: #32131e; cursor: pointer; font: inherit; font-size: .7rem; font-weight: 800; margin: 0; padding: 7px 9px; }
.dsg-note-design-card .dsg-open-wechat:hover, .dsg-note-design-card .dsg-open-wechat:focus { background: var(--dsg-gold); }

/* 画廊和定制笔记右栏共用的微信咨询弹窗。 */
.dsg-wechat-modal { display: none; inset: 0; position: fixed; z-index: 10000; }
.dsg-wechat-modal.is-open { display: block; }
.dsg-wechat-modal__backdrop { background: rgba(19,15,17,.64); border: 0; cursor: pointer; inset: 0; position: absolute; width: 100%; }
.dsg-wechat-modal__panel { background: #101011; border: 1px solid rgba(216,182,108,.32); border-radius: 18px; box-shadow: 0 28px 80px rgba(0,0,0,.38); color: var(--dsg-cream); left: 50%; max-width: 390px; padding: 32px 28px 26px; position: absolute; text-align: center; top: 50%; transform: translate(-50%,-50%); width: calc(100% - 32px); }
.dsg-wechat-modal__panel h2 { font-size: 1.65rem; line-height: 1.2; margin: 0; }
.dsg-wechat-modal__panel > p:not(.dsg-eyebrow) { color: #d5ccc4; font-size: .9rem; line-height: 1.75; margin: 10px auto 20px; max-width: 270px; }
.dsg-wechat-modal__panel img { background: #fff; border-radius: 12px; display: block; margin: 0 auto 16px; max-width: 240px; width: 100%; }
.dsg-wechat-modal__close { background: none; border: 0; color: var(--dsg-cream); cursor: pointer; font-size: 2rem; line-height: 1; position: absolute; right: 12px; top: 10px; }
.dsg-wechat-modal__copy { background: none; border: 0; border-bottom: 1px solid var(--dsg-gold); color: var(--dsg-cream); cursor: pointer; font: inherit; font-size: 1rem; font-weight: 700; padding: 3px 0; }
.dsg-wechat-modal__copy strong { color: var(--dsg-gold); }
.dsg-wechat-modal__copy span { color: #d5ccc4; display: block; font-size: .75rem; font-weight: 400; margin-top: 6px; }

@media (max-width: 900px) {
  .dsg-note-layout { grid-template-columns: 1fr; }
  .dsg-note-design-sidebar { border-left: 0; border-top: 1px solid rgba(111,29,53,.16); padding: 32px 0 0; }
  .dsg-note-design-card { display: grid; gap: 16px; grid-template-columns: 140px 1fr; }
  .dsg-note-design-card img { height: 120px; }
  .dsg-note-design-card div { padding-top: 0; }
}
@media (max-width: 800px) {
  .dsg-note-grid { grid-template-columns: 1fr; }
  .dsg-note-design-card { grid-template-columns: 110px 1fr; }
  .dsg-note-design-card img { height: 96px; }
  .dsg-note-modal__panel { padding: 30px 20px; }
}

@media (max-width: 900px) {
  .dsg-note-design-card { display: block; }
  .dsg-note-design-card img { height: auto; }
  .dsg-note-design-card div { padding: 46px 12px 12px; }
}

/*
 * 2026-11-08 final standalone alignment.
 * Keep the approved preview in the standalone theme.
 */
.dsg-shell { padding: 0 24px; }
.dsg-section { padding: clamp(58px, 6vw, 88px) 0; }
.dsg-section > .dsg-shell { padding-bottom: 0; padding-top: 0; }
section.dsg-shell.dsg-section { padding-bottom: clamp(58px, 6vw, 88px); padding-top: clamp(58px, 6vw, 88px); }
.dsg-hero > .dsg-shell { padding-bottom: 78px; padding-top: 88px; }
.dsg-gallery-hero > .dsg-shell { padding-bottom: 64px; padding-top: 78px; }

/* Approved desktop hero: original photography with a restrained navy overlay. */
.dsg-onepage-hero {
  background-image: linear-gradient(90deg, rgba(5,18,34,.72) 0%, rgba(10,22,40,.42) 44%, rgba(6,16,29,.08) 80%), url("assets/hero-original-desktop.png");
  background-position: center, center;
  height: 620px;
  min-height: 0;
}
.dsg-onepage-hero::after { background: linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.12)); }
.dsg-onepage-hero > .dsg-shell { padding-bottom: 92px; padding-top: 88px; }
.dsg-onepage-hero h1 { font-size: clamp(2.35rem, 4.45vw, 4rem); max-width: 690px; }

@media (max-width: 800px) {
  .dsg-shell { padding-left: 20px; padding-right: 20px; }
  .dsg-section { padding-bottom: 56px; padding-top: 56px; }
  section.dsg-shell.dsg-section { padding-bottom: 56px; padding-top: 56px; }
  .dsg-onepage-hero {
    background-image: linear-gradient(180deg, rgba(7,19,34,.58) 0%, rgba(10,21,37,.7) 54%, rgba(6,16,29,.22) 100%), url("assets/hero-original-desktop.png");
    background-position: 62% center, 62% center;
    height: 630px;
  }
  .dsg-onepage-hero > .dsg-shell { padding-bottom: 210px; padding-top: 58px; }
}

/*
 * 2026-11-08 screenshot lock.
 * These rules intentionally stay last: they reproduce the approved visual
 * reference in the standalone theme without Blocksy or another parent theme.
 */
body { background: #fffdf9; color: #151416; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; }
.dsg-shell,
.dsg-brand-header__inner { max-width: 1640px; }

.dsg-brand-header { background: #1b1b1d; }
.dsg-brand-header__inner { min-height: 76px; padding-left: 26px; padding-right: 26px; }
.dsg-brand-header__logo { align-items: center; color: var(--dsg-gold); gap: 14px; text-decoration: none; }
.dsg-brand-header__logo img { border-radius: 50%; display: block; height: 54px; max-height: none; object-fit: cover; width: 54px; }
.dsg-brand-header__logo span { color: var(--dsg-gold); font-size: 1.25rem; font-weight: 800; letter-spacing: .09em; white-space: nowrap; }
.dsg-brand-header__nav { gap: clamp(18px, 2vw, 34px); }
.dsg-brand-header__nav a { font-size: .98rem; }
.dsg-brand-header__contact { border: 0; padding: 0; }

.dsg-onepage-hero {
  align-items: center;
  background-image: linear-gradient(90deg, rgba(73,20,44,.75) 0%, rgba(70,18,41,.55) 42%, rgba(8,23,39,.25) 74%, rgba(4,14,25,.32) 100%), url("assets/hero-original-desktop.png") !important;
  background-position: center center !important;
  background-size: cover !important;
  display: flex;
  height: auto !important;
  min-height: calc(100vh - 76px) !important;
}
.dsg-onepage-hero::after { background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.14)) !important; }
.dsg-onepage-hero > .dsg-shell { padding-bottom: 88px !important; padding-top: 88px !important; width: 100%; }
.dsg-onepage-hero .dsg-kicker { margin-bottom: 28px; }
.dsg-onepage-hero h1 { font-size: clamp(3.4rem, 5.4vw, 6rem) !important; line-height: 1.06; max-width: 900px !important; }
.dsg-onepage-hero .dsg-hero-copy { font-size: 1.08rem; line-height: 1.85; margin-top: 30px; }
.dsg-onepage-hero .dsg-actions { margin-top: 42px; }

.dsg-section { padding-bottom: clamp(78px, 8vw, 132px); padding-top: clamp(78px, 8vw, 132px); }
section.dsg-shell.dsg-section { padding-bottom: clamp(78px, 8vw, 132px); padding-top: clamp(78px, 8vw, 132px); }
.dsg-section h2 { font-size: clamp(2.9rem, 5vw, 5.2rem); line-height: 1.08; max-width: 920px; }
.dsg-lead { font-size: 1.12rem; max-width: 1040px; }
.dsg-grid { gap: 28px; margin-top: 58px; }
.dsg-card { border-radius: 22px; min-height: 286px; padding: 38px; }
.dsg-card h3 { font-size: 1.4rem; }
.dsg-card p { font-size: 1rem; }

.dsg-section--tint { background: #f7efe6; }
.dsg-process-strip { gap: 28px; margin-top: 62px; }
.dsg-process-strip article { padding-top: 28px; }
.dsg-process-strip h3 { font-size: 1.35rem; }
.dsg-process-strip p { font-size: 1rem; line-height: 1.8; }

.dsg-cases { padding-bottom: 116px; padding-top: 90px; }
.dsg-cases > h2 { font-size: clamp(3.4rem, 5.2vw, 5.7rem); line-height: 1.07; max-width: 940px; }
.dsg-case { gap: 64px; grid-template-columns: .72fr 1.28fr; padding: 74px 0; }
.dsg-case-copy h3 { font-size: clamp(2.2rem, 3.4vw, 3.9rem); }
.dsg-case-copy p { font-size: 1rem; line-height: 1.95; }
.dsg-case-media--three .dsg-case-ref { height: 650px; }
.dsg-case-media--three figure:not(.dsg-case-ref) { height: 318px; }
.dsg-case-media--four figure { height: 312px; }
.dsg-idea-object { padding-top: 84px; }
.dsg-idea-object h2 { max-width: 1000px; }

.dsg-notes-index { padding-bottom: 112px; padding-top: 74px; }
.dsg-notes-index > h1 { font-size: clamp(3.5rem, 5.8vw, 6rem); max-width: 1040px; }
.dsg-note-layout { gap: 44px; grid-template-columns: minmax(0,3.25fr) minmax(280px,1fr); }
.dsg-note-grid { gap: 26px; }
.dsg-note-card { border-radius: 20px; }
.dsg-note-card__copy { padding: 28px; }
.dsg-note-card h3 { font-size: 1.35rem; }
.dsg-note-design-sidebar { padding-left: 34px; }

@media (max-width: 1200px) {
  .dsg-shell, .dsg-brand-header__inner { max-width: 1180px; }
  .dsg-onepage-hero h1 { font-size: clamp(3rem, 5.8vw, 5rem) !important; max-width: 760px !important; }
}

@media (max-width: 900px) {
  .dsg-brand-header__inner { min-height: 68px; }
  .dsg-brand-header__logo img { height: 46px; width: 46px; }
  .dsg-brand-header__logo span { font-size: 1.05rem; }
  .dsg-onepage-hero {
    align-items: flex-start;
    background-image: linear-gradient(180deg, rgba(62,17,39,.72) 0%, rgba(47,17,37,.58) 52%, rgba(8,20,35,.2) 100%), url("assets/hero-original-desktop.png") !important;
    background-position: 62% center !important;
    min-height: 700px !important;
  }
  .dsg-onepage-hero > .dsg-shell { padding-bottom: 250px !important; padding-top: 64px !important; }
  .dsg-onepage-hero h1 { font-size: clamp(2.45rem, 10.5vw, 3.5rem) !important; max-width: 620px !important; }
  .dsg-grid, .dsg-process-strip, .dsg-process-strip--three { grid-template-columns: 1fr; }
  .dsg-card { min-height: 0; }
  .dsg-case { gap: 32px; grid-template-columns: 1fr; }
  .dsg-case-copy { order: 1 !important; position: static; }
  .dsg-case-media { order: 2 !important; }
  .dsg-note-layout { grid-template-columns: 1fr; }
}

@media (max-width: 800px) {
  .dsg-shell { padding-left: 20px; padding-right: 20px; }
  .dsg-section, section.dsg-shell.dsg-section { padding-bottom: 62px; padding-top: 62px; }
  .dsg-section h2 { font-size: 2.55rem; }
  .dsg-onepage-hero .dsg-hero-copy { font-size: .95rem; }
  .dsg-onepage-hero .dsg-actions { gap: 10px; margin-top: 28px; }
  .dsg-onepage-hero .dsg-button { min-height: 44px; padding: 0 17px; }
  .dsg-cases { padding-bottom: 70px; padding-top: 58px; }
  .dsg-cases > h2 { font-size: 2.65rem; }
  .dsg-case-copy h3 { font-size: 2rem; }
  .dsg-case-media--three .dsg-case-ref,
  .dsg-case-media--three figure:not(.dsg-case-ref),
  .dsg-case-media--four figure { height: 270px; }
  .dsg-notes-index { padding-top: 58px; }
  .dsg-notes-index > h1 { font-size: 2.7rem; }
  .dsg-note-grid { grid-template-columns: 1fr; }
  .dsg-note-design-sidebar { border-left: 0; border-top: 1px solid rgba(111,29,53,.16); padding-left: 0; padding-top: 30px; }
}

/* 3.2.0 — approved constrained desktop canvas + swipe-only case records on mobile. */
html, body { overflow-x: hidden; }
.dsg-brand-header {
  background: #1d1d1f;
  left: 0;
  position: sticky !important;
  right: 0;
  top: 0;
  z-index: 1000;
}
.dsg-shell,
.dsg-brand-header__inner {
  margin-left: auto;
  margin-right: auto;
  max-width: 1840px;
  width: calc(100% - 80px);
}
.dsg-brand-header__inner {
  justify-content: flex-start;
  min-height: 96px;
}
.dsg-brand-header__nav {
  gap: clamp(18px, 1.7vw, 34px);
  margin-left: clamp(7rem, 12vw, 16rem);
}
.dsg-brand-header__nav a { color: #f4ebdd; }
.dsg-brand-header__nav a:hover,
.dsg-brand-header__nav .current-menu-item > a { color: var(--dsg-gold); }

/* Keep the approved page rhythm instead of the accidental full-width scale. */
.dsg-cases { padding-bottom: 92px; padding-top: 76px; }
.dsg-cases > h2 { font-size: clamp(3rem, 4.65vw, 5.35rem); max-width: 920px; }
.dsg-case { gap: clamp(36px, 4vw, 74px); grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); padding: 68px 0; }
.dsg-case-copy h3 { font-size: clamp(2.05rem, 3.25vw, 3.75rem); line-height: 1.14; }
.dsg-case-copy p, .dsg-case-copy li { font-size: 1rem; line-height: 1.88; }
.dsg-case-media--three .dsg-case-ref { height: 590px; }
.dsg-case-media--three figure:not(.dsg-case-ref) { height: 284px; }
.dsg-case-media--four figure { height: 284px; }
.dsg-case-mobile-swipe-hint { display: none; }

.dsg-notes-index { padding-bottom: 86px; padding-top: 70px; }
.dsg-notes-index > h1 { font-size: clamp(3rem, 4.75vw, 5.45rem); max-width: 900px; }
.dsg-note-layout { gap: 34px; grid-template-columns: minmax(0, 1fr) minmax(280px, .31fr); }
.dsg-note-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dsg-note-card { min-width: 0; overflow: hidden; }
.dsg-note-card a { color: inherit; text-decoration: none; }
.dsg-note-card__image { height: 225px; overflow: hidden; }
.dsg-note-card__image img { height: 100%; object-fit: cover; width: 100%; }
.dsg-note-card__copy { padding: 24px; }
.dsg-note-card h3 { color: var(--dsg-ink); font-size: clamp(1.15rem, 1.35vw, 1.48rem); line-height: 1.38; }
.dsg-note-card p { color: #6d655f; font-size: .96rem; line-height: 1.7; }
.dsg-note-design-sidebar { padding-left: 28px; }

@media (max-width: 800px) {
  .dsg-shell,
  .dsg-brand-header__inner { width: calc(100% - 40px); }
  .dsg-brand-header__inner { min-height: 72px; }
  .dsg-brand-header__nav { margin-left: auto; }

  .dsg-cases { padding-bottom: 58px; padding-top: 46px; }
  .dsg-cases > h2 { font-size: 2.45rem; }
  .dsg-case {
    align-items: stretch;
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
    padding: 44px 0 !important;
  }
  .dsg-case-copy { order: 1 !important; width: 100%; }
  .dsg-case-copy h3 { font-size: 2rem; }
  .dsg-case-copy p, .dsg-case-copy li { font-size: 1rem; line-height: 1.85; }
  .dsg-case-copy ol { margin-bottom: 0; }
  .dsg-case-media {
    -webkit-overflow-scrolling: touch;
    display: flex !important;
    gap: 12px !important;
    grid-template-columns: none !important;
    order: 2 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 0 0 10px !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none;
    width: 100% !important;
  }
  .dsg-case-media::-webkit-scrollbar { display: none; }
  .dsg-case-media figure,
  .dsg-case-media--three .dsg-case-ref,
  .dsg-case-media--three figure:not(.dsg-case-ref),
  .dsg-case-media--four figure {
    flex: 0 0 100% !important;
    height: 296px !important;
    margin: 0 !important;
    min-width: 100% !important;
    scroll-snap-align: start;
  }
  .dsg-case-media img { height: 100% !important; object-fit: cover; width: 100% !important; }
  .dsg-case-mobile-swipe-hint {
    color: var(--dsg-muted);
    display: block;
    font-size: .88rem;
    margin: -4px 0 2px;
    order: 3;
  }
  .dsg-case > .dsg-case-start {
    align-self: flex-start;
    margin: 0 !important;
    order: 4;
  }

  /* New case posts use a normal Gutenberg Gallery. On phones it becomes the
     same direct-swipe production record used by the two featured cases. */
  body.single-dsg_case .wp-block-gallery {
    -webkit-overflow-scrolling: touch;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
    margin: 22px 0 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 0 0 10px !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none;
  }
  body.single-dsg_case .wp-block-gallery::-webkit-scrollbar { display: none; }
  body.single-dsg_case .wp-block-gallery .wp-block-image {
    flex: 0 0 100% !important;
    margin: 0 !important;
    min-width: 100% !important;
    scroll-snap-align: start;
  }
  body.single-dsg_case .wp-block-gallery .wp-block-image img {
    height: 296px !important;
    object-fit: cover;
    width: 100% !important;
  }
  body.single-dsg_case .dsg-case-post-action { margin: 0 0 48px !important; }
  .dsg-case-media-carousel-controls,
  .dsg-case-carousel-controls { display: none !important; }

  .dsg-notes-index { padding-top: 44px; }
  .dsg-notes-index > h1 { font-size: 2.3rem; }
  .dsg-note-layout { grid-template-columns: 1fr !important; }
  .dsg-note-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px; }
  .dsg-note-card__image { height: 132px; }
  .dsg-note-card__copy { padding: 15px; }
  .dsg-note-card h3 { font-size: 1rem; }
  .dsg-note-card p { font-size: .85rem; }
  .dsg-note-design-sidebar { padding-left: 0; }
}

/*
 * 3.3.0 final override — production layout lock.
 * This must remain at end-of-file so the approved constrained composition
 * wins over all historical delivery styles above.
 */
html,
body { overflow-x: clip !important; }

.dsg-brand-header {
  background: #1d1d1f !important;
  left: 0 !important;
  position: sticky !important;
  right: 0 !important;
  top: 0 !important;
  z-index: 10000 !important;
}

.dsg-shell,
.dsg-brand-header__inner {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 1640px !important;
  width: calc(100% - 64px) !important;
}

.dsg-brand-header__inner {
  justify-content: flex-start !important;
  min-height: 78px !important;
  padding: 0 !important;
}

.dsg-brand-header__nav {
  gap: clamp(14px, 1.15vw, 24px) !important;
  margin-left: clamp(3rem, 6vw, 8rem) !important;
}

.dsg-brand-header__nav a { font-size: .93rem !important; }

.dsg-onepage-hero {
  min-height: 640px !important;
}

.dsg-onepage-hero > .dsg-shell {
  padding-bottom: 116px !important;
  padding-top: 112px !important;
}

.dsg-onepage-hero h1 {
  font-size: clamp(3rem, 4.45vw, 4.3rem) !important;
  max-width: 720px !important;
}

.dsg-section {
  padding-bottom: 76px !important;
  padding-top: 76px !important;
}

.dsg-cases {
  padding-bottom: 92px !important;
  padding-top: 78px !important;
}

.dsg-cases > h2 {
  font-size: clamp(2.85rem, 4.15vw, 4.55rem) !important;
  max-width: 840px !important;
}

.dsg-case {
  gap: clamp(34px, 3.6vw, 60px) !important;
  grid-template-columns: minmax(330px, .86fr) minmax(480px, 1.14fr) !important;
  padding: 58px 0 !important;
}

.dsg-case-copy h3 {
  font-size: clamp(1.85rem, 2.65vw, 2.9rem) !important;
  line-height: 1.16 !important;
}

.dsg-case-copy p,
.dsg-case-copy dd { font-size: 1rem !important; }

.dsg-case-media--three .dsg-case-ref { height: 520px !important; }
.dsg-case-media--three figure:not(.dsg-case-ref),
.dsg-case-media--four figure { height: 250px !important; }

.dsg-idea-object {
  padding-bottom: 76px !important;
  padding-top: 72px !important;
}

.dsg-notes-index {
  padding-bottom: 88px !important;
  padding-top: 72px !important;
}

.dsg-notes-index > h1 {
  font-size: clamp(2.8rem, 3.8vw, 4.1rem) !important;
  max-width: 800px !important;
}

.dsg-note-layout {
  gap: 36px !important;
  grid-template-columns: minmax(0, 1fr) minmax(290px, 330px) !important;
}

.dsg-note-grid {
  display: grid !important;
  gap: 22px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.dsg-note-card__image { height: 210px !important; }
.dsg-note-card a,
.dsg-case-card a,
.dsg-case a { color: inherit !important; text-decoration: none !important; }

@media (max-width: 900px) {
  .dsg-shell,
  .dsg-brand-header__inner { width: calc(100% - 40px) !important; }
  .dsg-brand-header__inner {
    justify-content: space-between !important;
    min-height: 68px !important;
  }
  .dsg-brand-header__nav { margin-left: 0 !important; }
}

@media (max-width: 800px) {
  .dsg-section {
    padding-bottom: 50px !important;
    padding-top: 50px !important;
  }
  .dsg-cases {
    padding-bottom: 58px !important;
    padding-top: 44px !important;
  }
  .dsg-cases > h2,
  .dsg-notes-index > h1 { font-size: 2.35rem !important; }

  .dsg-case {
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
    padding: 38px 0 !important;
  }
  .dsg-case-copy {
    order: 1 !important;
    position: static !important;
    width: 100% !important;
  }
  .dsg-case-media {
    -webkit-overflow-scrolling: touch;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
    margin-left: 0 !important;
    order: 2 !important;
    overflow-x: auto !important;
    padding-bottom: 10px !important;
    scroll-snap-type: x mandatory !important;
    width: 100% !important;
  }
  .dsg-case-media figure,
  .dsg-case-media--three .dsg-case-ref,
  .dsg-case-media--three figure:not(.dsg-case-ref),
  .dsg-case-media--four figure {
    flex: 0 0 100% !important;
    height: 286px !important;
    margin: 0 !important;
    min-width: 100% !important;
    scroll-snap-align: start;
  }
  .dsg-case-mobile-swipe-hint {
    display: block !important;
    order: 3 !important;
  }
  .dsg-case-start {
    align-self: flex-start;
    order: 4 !important;
  }
  .dsg-notes-index {
    padding-bottom: 56px !important;
    padding-top: 44px !important;
  }
  .dsg-note-layout { display: block !important; }
  .dsg-note-grid {
    gap: 14px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .dsg-note-card__image { height: 130px !important; }
}

/*
 * 3.4.0 desktop reference composition lock.
 * The approved phone layout above is deliberately left unchanged.
 */
@media (min-width: 901px) {
  :root { --dsg-desktop-shell: 1600px; }

  .dsg-shell,
  .dsg-brand-header__inner {
    box-sizing: border-box !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: var(--dsg-desktop-shell) !important;
    width: min(var(--dsg-desktop-shell), calc(100% - 64px)) !important;
  }

  .dsg-shell {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .dsg-brand-header {
    position: sticky !important;
    top: 0 !important;
  }

  .dsg-brand-header__inner {
    align-items: center !important;
    display: flex !important;
    justify-content: space-between !important;
    min-height: 78px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .dsg-brand-header__nav {
    gap: clamp(18px, 1.35vw, 28px) !important;
    margin-left: auto !important;
  }

  .dsg-onepage-hero > .dsg-shell {
    padding-bottom: 112px !important;
    padding-top: 106px !important;
  }

  .dsg-onepage-hero h1 {
    font-size: clamp(3.25rem, 4.25vw, 4.55rem) !important;
    max-width: 760px !important;
  }

  .dsg-cases > h2 {
    font-size: clamp(3rem, 4.3vw, 4.45rem) !important;
    max-width: 860px !important;
  }

  .dsg-notes-index > h1 {
    font-size: clamp(3rem, 4.2vw, 4.4rem) !important;
    max-width: 860px !important;
  }

  .dsg-cases {
    padding-bottom: 90px !important;
    padding-top: 76px !important;
  }

  .dsg-case {
    grid-template-columns: minmax(320px, .86fr) minmax(490px, 1.14fr) !important;
  }

  .dsg-notes-index {
    padding-bottom: 86px !important;
    padding-top: 72px !important;
  }
}
