:root {
  --green: #124a38;
  --ink: #173e32;
  --muted: #4e6258;
  --orange: #ba501e;
  --paper: #fbf7ef;
  --rule: #d6cbb5;
  --sans: "PingFang SC","Microsoft YaHei",system-ui,sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font: 16px/1.65 var(--sans); }
.paperplane { --rule: #cad5cd; --green: #174f43; --ink: #15473c; }
h1,h2,h3,p,ul,fieldset { margin: 0; }
a { color: inherit; }
button,select,textarea { font: inherit; }
button,summary,select { cursor: pointer; }
a:focus-visible,button:focus-visible,summary:focus-visible,select:focus-visible,textarea:focus-visible { outline: 3px solid #a75219; outline-offset: 4px; }
.wrap { width: min(88%,1480px); margin-inline: auto; }
.skip { position: absolute; z-index: 3; transform: translateY(-150%); padding: 8px; background: white; }
.skip:focus { transform: none; }
.hero { min-height: clamp(450px,44vw,790px); position: relative; background-position: center bottom; background-size: cover; }
.lighthouse .hero { background-color: #fdf1df; background-image: url("assets/lighthouse.webp"); }
.paperplane .hero { background-color: #e6f1f2; background-image: url("assets/paperplane.webp"); }
header,nav,footer .wrap { display: flex; align-items: center; }
header { justify-content: space-between; border-bottom: 1px solid var(--rule); min-height: clamp(58px,4.9vw,80px); }
.logo { font: 720 clamp(29px,2.9vw,48px)/1 system-ui,sans-serif; letter-spacing: .04em; text-decoration: none; }
.lighthouse header .logo { padding-block: 5px; mix-blend-mode: multiply; }
.lighthouse .brand-mark { display: block; width: auto; height: clamp(57px,5.8vw,84px); filter: brightness(1.12); }
nav { gap: clamp(16px,3.6vw,66px); }
nav a { padding: 10px 0; font-size: clamp(14px,1.35vw,21px); font-weight: 600; text-decoration: none; }
nav a:hover,footer a:hover { text-decoration: underline; text-underline-offset: 5px; }
.intro { padding-top: clamp(20px,2.5vw,52px); }
.lighthouse .intro { text-align: center; }
.paperplane .intro { padding-top: clamp(27px,3.3vw,62px); }
.hello { font-size: clamp(16px,1.55vw,28px); letter-spacing: .045em; }
.lighthouse .motto { margin: .25em 0 .65em; color: var(--muted); font: italic clamp(15px,1.2vw,20px)/1.4 Georgia,serif; }
h1 { font-size: clamp(37px,4.25vw,78px); line-height: 1.18; letter-spacing: .035em; font-weight: 730; margin: .21em 0 .37em; }
.lighthouse h1 span { position: relative; }
.lighthouse h1 span::after { content: ""; position: absolute; bottom: -.10em; right: 1.05em; width: 46%; height: .1em; border-bottom: .055em solid #e87833; border-radius: 50%; transform: rotate(-1.5deg); }
.lead { font-size: clamp(15px,1.38vw,23px); color: #334d40; }
.hero-tagline { margin: 0 0 .85em; font: 500 clamp(16px, 1.4vw, 22px)/1.35 Georgia, serif; text-wrap: balance; }
.teaching-info { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .45em 1em; margin: .85em 0 0; padding: 0; list-style: none; font-size: clamp(16px,1.15vw,19px); line-height: 1.55; }
.teaching-info li { display: inline-flex; align-items: center; gap: .4em; }
.teaching-info svg { width: 1.1em; height: 1.1em; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
@media (min-width:900px) {
  .teaching-info { flex-wrap: nowrap; align-items: flex-start; column-gap: .65em; padding-inline-end: clamp(24px, 4vw, 56px); }
  .teaching-info li + li { border-inline-start: 1px solid var(--rule); padding-inline-start: .65em; }
}
.button { display: inline-flex; align-items: center; justify-content: center; background: var(--green); color: #fffaf1; font-size: clamp(16px,1.3vw,21px); font-weight: 620; border: 1px solid var(--green); border-radius: 999px; min-height: 45px; padding: .6em 1.55em; text-decoration: none; }
.intro .button { margin-top: 1.35em; }
.button:hover { background: #0c382c; }
h2 { font-size: clamp(25px,2.8vw,44px); line-height: 1.28; letter-spacing: .025em; }
.courses { padding-top: clamp(25px,2.25vw,42px); }
.courses > h2 { margin-bottom: clamp(18px,1.65vw,29px); }
.lighthouse .courses > h2 { text-align: center; }
.directions { display: grid; grid-template-columns: 1fr 1fr; padding: 12px 0; }
.lighthouse .directions { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 0; border-top: 1px solid var(--rule); }
.directions details { padding: 0 4%; }
.directions details + details { border-left: 1px solid var(--rule); }
summary { list-style: none; position: relative; color: var(--ink); }
summary::-webkit-details-marker { display: none; }
.directions summary { display: grid; padding: 3px 30px 5px 0; }
.lighthouse .directions summary { text-align: center; padding-left: 30px; }
summary strong { font-size: clamp(23px,2.25vw,36px); line-height: 1.35; }
.lighthouse .directions strong { color: var(--orange); }
.course-column { display: grid; grid-row: span 2; grid-template-rows: subgrid; min-width: 0; }
.course-column + .course-column { border-left: 1px solid var(--rule); }
.course-column > details { padding-block: 14px; }
.course-column > details + details { border-left: 0; border-top: 1px solid var(--rule); }
.lighthouse .course-options summary strong { font-size: clamp(18px,1.6vw,26px); color: var(--ink); }
.course-options .detail h3:not(:first-child) { margin-top: 18px; }
summary span { font-size: clamp(14px,1.18vw,20px); color: var(--muted); }
summary::after { content: ""; position: absolute; right: 6px; top: calc(50% - 6px); width: 8px; height: 8px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }
details[open] > summary::after { transform: rotate(225deg); }
summary:hover strong { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.detail { padding: 16px 8px; max-width: 42em; margin-inline: auto; }
.detail a,.text-link { display: inline-block; margin-top: .75em; text-underline-offset: 4px; font-weight: 600; }
.course-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 14px; margin: 18px 0 10px; }
.course-gallery figure { margin: 0; }
.course-gallery img { display: block; width: 100%; height: auto; border-radius: 5px; }
.course-gallery figcaption { padding-top: 6px; }
.course-gallery figcaption strong { color: var(--ink); font-size: 16px; }
.course-gallery figcaption p { font-size: 15px; line-height: 1.65; }
@media (max-width:360px) { .course-gallery { grid-template-columns: 1fr; } }
.camp { margin: 10px 0 0; padding: 13px 4%; background: #e5e9da; border-radius: 14px; }
.lighthouse .camp { background: linear-gradient(105deg,#f6e9e5,#f1deda 45%,#f6e9e5); border-radius: 2% 6% 3% 5% / 38% 24% 39% 30%; }
.camp summary { display: flex; align-items: center; gap: 4%; padding-right: 24px; }
.lighthouse .camp summary { justify-content: center; flex-wrap: wrap; }
.camp summary strong { font-size: clamp(18px,1.6vw,29px); }
.camp-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 25px; padding-block: 20px 4px; }
h3 { font-size: 21px; line-height: 1.45; }
.detail p,.camp-list p,.sample-intro p,.world p,.trial p { color: var(--muted); }
.sample { display: grid; grid-template-columns: .8fr 1.35fr; gap: 8%; margin-top: clamp(35px,4.2vw,76px); border-block: 1px solid var(--rule); padding: clamp(28px,3.2vw,60px) 0; }
.sample-intro p,.trial p { margin-top: 14px; }
.passage { font: 500 clamp(22px,2vw,33px)/1.45 Georgia,serif; color: #2c4b41; margin-bottom: 15px; }
fieldset { border: 0; padding: 0; min-width: 0; }
legend { font-weight: 640; padding: 0; margin-bottom: 7px; }
.answer { display: block; width: 100%; text-align: left; color: var(--ink); border: 0; border-bottom: 1px solid var(--rule); background: transparent; padding: 10px 8px; }
.answer::before { content: ""; display: inline-block; width: 11px; height: 11px; margin-right: 12px; border-radius: 50%; border: 1px solid var(--muted); }
.answer:hover,.answer[aria-pressed="true"] { background: #eaf0e5; }
.answer[aria-pressed="true"]::before { background: var(--green); }
.feedback:not(:empty) { margin-top: 12px; font-size: 15px; }
.world { padding: clamp(28px,3vw,52px) 0; }
.travel ul { display: flex; gap: 0; flex-wrap: wrap; list-style: none; padding: 0; margin: 14px 0 0; }
.travel li { font-weight: 650; }
.travel li + li::before { content: "/"; color: #9caa96; margin: 0 .85em; }
.more { display: grid; grid-template-columns: 1fr 1fr; gap: 6%; margin-top: 25px; border-top: 1px solid var(--rule); padding-top: 23px; }
.world h2,.world h3 { margin-bottom: 6px; }
.world h3 { font-size: clamp(20px,1.6vw,28px); }
.world small,.chinese small { font: 550 12px var(--sans); color: #45614b; padding: 3px 7px; background: #e6eadb; border-radius: 4px; vertical-align: middle; }
.chinese { border-top: 1px solid var(--rule); padding: clamp(26px,3vw,46px) 0; }
.chinese h2 { display: inline; margin-right: 12px; }
.chinese p { margin-top: 6px; color: var(--muted); }
.chinese p[lang="en"] { font-family: Georgia,serif; }
.chinese-topics { display: grid; grid-template-columns: 1fr 1fr; gap: 6%; margin-top: 20px; }
.world .names { margin-top: 6px; color: var(--green); }
.trial { display: grid; grid-template-columns: 1fr 1fr; gap: 8%; padding: clamp(24px,3.3vw,60px); background: #e7eee0; border-radius: 8px; margin-bottom: 36px; }
.paperplane .trial { background: #e6efec; }
.inquiry label { display: block; font-size: 14px; font-weight: 650; margin-bottom: 3px; }
.inquiry select,.inquiry textarea { border-radius: 4px; padding: 8px 10px; background: #fffdf6; border: 1px solid #a6b2a4; color: var(--ink); }
.inquiry select { min-width: 145px; margin: 0 0 10px; }
.inquiry textarea { display: block; width: 100%; resize: vertical; line-height: 1.65; margin-bottom: 10px; }
.copy-wechat { margin-left: 5px; padding: 6px 10px; border: 1px solid #93a098; border-radius: 999px; color: var(--ink); background: transparent; font-size: 14px; }
.wechat-status { display: block; font-size: 14px; }
.copy { font-size: 15px; }
.copy-status { display: block; font-size: 14px; }
footer { border-top: 1px solid var(--rule); }
footer .wrap { padding: 22px 0; gap: 10px; color: var(--muted); font-size: 14px; }
footer .logo { font-size: 23px; color: var(--green); }
footer a:last-child { margin-left: auto; text-underline-offset: 4px; }
@media (max-width: 900px) {
  .wrap { width: 89%; }
  header { min-height: 55px; }
  nav { gap: 14px; }
  .lighthouse nav { gap: clamp(7px,2.5vw,14px); }
  nav a { font-size: 13px; }
  .logo { font-size: 26px; }
  .hero { background-size: max(620px,110%) auto; background-repeat: no-repeat; background-position: right bottom; min-height: 0; }
  .hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to bottom,var(--sky) 36%,transparent 70%); }
  .lighthouse { --sky: #fff2df; }
  .paperplane { --sky: #e5f0f2; }
  .hero header,.hero .intro { position: relative; }
  .hero .intro { padding-top: 22px; padding-bottom: clamp(184px,44vw,270px); }
  .lighthouse .intro { padding-bottom: clamp(245px,46vw,290px); }
  .lead { max-width: 25em; text-wrap: balance; }
  .lighthouse .lead { margin-inline: auto; }
  h1 { font-size: clamp(34px,8vw,54px); }
  .intro .button { margin-top: 14px; }
  .courses > h2 { font-size: clamp(22px,5.35vw,34px); }
  .directions { gap: 0; }
  .lighthouse .directions { grid-template-columns: 1fr; }
  .course-column { display: block; grid-row: auto; }
  .course-column + .course-column { border-left: 0; border-top: 1px solid var(--rule); }
  .lighthouse .directions details { padding: 12px 0; }
  .lighthouse .directions details + details { border-left: 0; border-top: 1px solid var(--rule); }
  .directions summary,.lighthouse .directions summary { text-align: left; padding: 0 0 15px; }
  .directions summary::after { right: 45%; top: auto; bottom: 3px; }
  .lighthouse .directions summary { padding: 0 24px 0 0; }
  .lighthouse .directions summary::after { right: 6px; top: calc(50% - 6px); bottom: auto; }
  .directions details { padding-inline: 8%; }
  .directions summary span { font-size: 14px; }
  .camp summary { display: grid; gap: 3px; }
  .lighthouse .camp summary { text-align: center; }
  .camp-list,.sample,.trial { grid-template-columns: 1fr; gap: 19px; }
  .sample-intro h2 br,.sample-intro p br { display: none; }
  .sample-intro p { margin-top: 5px; }
  .more { grid-template-columns: 1fr; gap: 22px; }
  .chinese-topics { grid-template-columns: 1fr; gap: 15px; }
  .travel li + li::before { margin: 0 .45em; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } }

.lighthouse .heading-object {
  display: inline-block;
  width: 1.55em;
  height: 1.55em;
  object-fit: contain;
  vertical-align: -.37em;
  margin-inline-end: .3em;
  pointer-events: none;
}
.lighthouse h1 .heading-object { width: 1.15em; height: 1.15em; vertical-align: -.14em; }
.lighthouse .directions summary {
  grid-template-columns: auto minmax(0,auto);
  justify-content: center;
  align-content: center;
  column-gap: clamp(9px,1.3vw,20px);
  text-align: left;
}
.lighthouse .directions summary > .heading-object {
  grid-area: 1 / 1 / span 2 / 2;
  align-self: center;
  width: clamp(56px,5.6vw,84px);
  height: clamp(56px,5.6vw,84px);
  margin: 0;
}
.lighthouse .course-options summary { grid-template-columns: minmax(0,auto); }
.lighthouse .course-options summary > :is(strong,span) { grid-column: 1; }
.lighthouse .directions summary > .heading-object ~ :is(strong,span) { grid-column: 2; }
.lighthouse .directions summary > strong:only-of-type:last-child { grid-row: 1 / span 2; align-self: center; }
.lighthouse .camp .detail h3 { margin-top: 1em; }
.lighthouse figcaption .heading-object { width: 1.4em; height: 1.4em; }
@media (max-width: 900px) {
  .lighthouse .directions summary { justify-content: start; }
  .lighthouse .directions summary > .heading-object { width: 48px; height: 48px; }
  .re-volumes { grid-template-columns: 1fr; }

  .lighthouse #course-title .heading-object { width: 1.2em; height: 1.2em; vertical-align: -.25em; }
}
.lighthouse .course-gallery { grid-template-columns: repeat(auto-fit,minmax(min(100%,205px),1fr)); }
.book-skill { display: block; margin: 3px 0 5px; color: var(--ink); line-height: 1.5; }
.lighthouse .course-options summary strong { text-wrap: balance; }
.lighthouse .sample-intro h2 { text-wrap: balance; }

.lighthouse .camp summary .heading-object { margin-inline-end: 1em; width: clamp(44px,4vw,62px); height: auto; vertical-align: middle; }
.lighthouse .world { padding-bottom: 0; }
.lighthouse .project { border-top: 1px solid var(--rule); padding-block: clamp(24px,3vw,40px); }
.lighthouse .project > h2, .lighthouse .project > div:first-child:has(> h2) { margin-bottom: 10px; }
.lighthouse .chinese + .sample { margin-top: 0; margin-bottom: 26px; }
@media (max-width: 900px) {
  .lighthouse header { flex-wrap: wrap; align-items: flex-start; gap: 8px 12px; padding-block: 8px; height: auto; }
  .lighthouse header .logo { white-space: nowrap; }
  .lighthouse header nav { flex: 1 1 100%; width: 100%; }
}

.lighthouse .hero-actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 1.25rem; margin-top: 1.15em; }
.lighthouse .hero-actions a { margin: 0; }
.home-section { padding-block: clamp(26px,3.5vw,54px); }
.home-section h2,.lighthouse #explore-title { margin-bottom: .5em; }
.home-section p { max-width: 45em; color: var(--muted); }
.growth-gallery { --columns: 8; display: grid; grid-template-columns: repeat(var(--columns),minmax(0,1fr)); gap: 24px 12px; margin-top: 20px; }
.growth-gallery a, .growth-gallery figure { display: block; margin: 0; color: var(--ink); font-size: .875rem; line-height: 1.5; font-weight: 600; text-underline-offset: .2em; }
.growth-gallery img, .growth-gallery video { display: block; width: 92%; height: auto; aspect-ratio: 1; object-fit: contain; background: white; margin-bottom: .45em; border-radius: 6px; }
.growth-gallery > [hidden], .growth-more[hidden] { display: none; }
.growth-more { display: block; margin: 20px auto 0; min-height: 44px; padding: 6px 18px; font: inherit; color: var(--ink); background: transparent; border: 1px solid currentColor; border-radius: 999px; cursor: pointer; }
@media (min-width:1001px) and (max-width:1250px) { .growth-gallery { --columns: 6; } }
@media (max-width:1000px) { .growth-gallery { --columns: 5; } }
@media (max-width: 900px) { .growth-gallery { --columns: 4; } }
@media (max-width:520px) { .growth-gallery { --columns: 2; } }
.home-disclosure { border-top: 1px solid var(--rule); margin-top: .8em; }
.home-disclosure summary { padding: 10px 28px 10px 0; font-weight: 650; }
.home-disclosure > p { padding-bottom: .7em; }
.trial-schedule > summary { width: fit-content; text-decoration: underline; text-underline-offset: .2em; }
.holiday-gallery { margin-block: 12px; }
.holiday-gallery figure { min-width: 0; margin: 0; }
.holiday-gallery img,.holiday-gallery video { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; background: #faf8ef; border-radius: 6px; }
.holiday-gallery figcaption { margin-block-start: .4em; }
.lighthouse .material-note { font-size: .94rem; }
.lighthouse .trial { display: block; }
.lighthouse .trial-steps, .trial-facts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; padding: 0; margin: 18px 0 26px; }
.trial-steps { list-style: none; counter-reset: step; }
.trial-steps li { counter-increment: step; padding: 16px 18px; border-radius: 8px; background: #faf8ef; }
.trial-steps li::before { content: counter(step, decimal-leading-zero); margin-right: .7em; color: #85512d; font: italic 1.15rem Georgia, serif; }
.lighthouse .trial-steps p { margin-top: .4em; }
.trial-facts { gap: 12px 24px; padding-top: 12px; border-top: 1px solid var(--rule); }
.trial-facts dt { color: var(--muted); font-size: .94rem; }
.trial-facts dd { margin: .2em 0 0; font-weight: 600; }
.trial-contact { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; margin-top: 2px; width: 100%; }
.trial-contact .copy,
.trial-contact .copy-wechat { background: var(--green); color: white; margin: 0; min-height: 46px; padding-inline: 18px; font-size: 1rem; }
.trial-contact .copy-wechat { margin-left: auto; }
.trial-contact-details { display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; flex: 1; gap: .15em 2.8em; padding-inline: 8px 20px; line-height: 1.4; min-width: 0; }
.trial-contact-details p { margin: 0; white-space: nowrap; }
.trial-contact-details a { color: inherit; }
.trial-message { margin-top: 14px; border-top: 1px solid var(--rule); }
.trial-message summary { padding: 12px 32px 12px 0; }
.trial-message .copy { min-height: 44px; padding: 4px 12px; border: 1px solid var(--rule); border-radius: 999px; background: var(--paper); color: var(--ink); }
@media (max-width: 900px) {
  .lighthouse .trial { padding: 20px 14px; }
  .lighthouse .trial-steps { grid-template-columns: 1fr; gap: 6px; margin: 12px 0 18px; line-height: 1.5; }
  .lighthouse .trial-steps li { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; padding: 8px 12px; }
  .trial-steps li::before { grid-row: span 2; margin: .15em 0 0; }
  .lighthouse .trial-steps p { margin-top: 0; }
  .trial-facts { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 14px; margin: 6px 0 18px; }
  .trial-contact .copy,
  .trial-contact .copy-wechat { width: auto; }
  .trial-contact-details { margin-left: 0; }
}
.lighthouse #growth,.lighthouse #faq,.lighthouse #contact { border-top: 1px solid var(--rule); }
.lighthouse .world { padding-bottom: clamp(26px,3.5vw,54px); }
.explore-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.lighthouse .explore-grid .project { border: 1px solid var(--rule); border-radius: 9px; padding: clamp(16px,1.8vw,26px); background: #fffaf2; }
.explore-grid .project p { margin-top: .5em; }
.explore-grid .chinese-topics { grid-template-columns: 1fr; gap: 12px; margin-top: 8px; }
.explore-grid { align-items: start; }
.explore-more:not([open]) > summary .less-label,
.explore-more[open] > summary .more-label { display: none; }
.explore-grid h4 { margin: 0; }
@media (max-width: 900px) {
  .explore-grid { grid-template-columns: 1fr; }
  .lighthouse .hero nav { flex-wrap: wrap; justify-content: flex-end; }
}

.teacher-profile {
  display: grid;
  grid-template-columns: minmax(0, .94fr) minmax(0, 1.15fr);
  grid-template-areas: "photo greeting" "photo note";
  grid-template-rows: auto 1fr;
  gap: 14px clamp(28px, 4.5vw, 72px);
  max-width: 1210px;
  margin-inline: auto;
  align-items: start;
}
.teacher-photos { grid-area: photo; display: grid; gap: 16px; }
.teacher-photos img { display: block; width: 100%; height: auto; border-radius: 6px; }
@media (min-width: 901px) {
  .teacher-photos {
    align-self: stretch;
    container-type: size;
    align-content: end;
    justify-items: center;
  }
  /* Fit both original aspect ratios and the 16px gap above the link's bottom edge. */
  .teacher-photos img { width: min(92%, calc((100cqh - 16px) / 1.552)); }
}
.teacher-greeting { grid-area: greeting; }
.teacher-greeting p { display: flex; align-items: center; gap: .7em; color: var(--green); font-size: .95rem; font-weight: 600; letter-spacing: .08em; }
.teacher-greeting p::before { content: ""; width: 26px; border-top: 2px solid #b65d35; }
.teacher-greeting h2 { margin: .12em 0 0; color: var(--ink); font: italic 500 clamp(30px, 3vw, 48px)/1.07 Georgia, serif; letter-spacing: -.04em; }
.teacher-note { grid-area: note; max-width: 39em; }
.teacher-note p { line-height: 1.8; }
.teacher-note p + p { margin-top: .75em; }
.teacher-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin-top: 1.2em; }
@media (max-width: 900px) {
  .teacher-profile { grid-template-columns: minmax(0, 1fr); grid-template-areas: "greeting" "photo" "note"; grid-template-rows: auto auto auto; gap: 18px; }
  .teacher-photos { width: 92%; max-width: 442px; justify-self: center; }
}

.sculpture-case { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(18px, 4vw, 54px); margin-bottom: 20px; align-items: start; }
.sculpture-case h3 { font-size: clamp(21px, 2.2vw, 32px); margin: .25em 0 .55em; line-height: 1.45; }
.sculpture-case h4 { margin: .6em 0 .25em; }
.sculpture-case figure { margin: 0; }
.sculpture-case video { display: block; width: 100%; aspect-ratio: 4 / 3; border-radius: 6px; background: #18382f; }
.sculpture-case figcaption { margin-top: .4em; color: var(--muted); font-size: .88rem; }
.sculpture-case blockquote { margin: .6em 0 1em; padding-left: 1em; border-left: 3px solid var(--rule); }
@media (max-width: 900px) { .sculpture-case { grid-template-columns: 1fr; } }

.faq-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px 30px; }
.lighthouse #faq { padding-block: 0; }
#faq > summary { padding: 14px 32px 14px 0; }
#faq-title { margin: 0; font-size: clamp(20px, 1.65vw, 26px); }
#faq-title .bi-pair { color: inherit; font-size: inherit; }
#faq .faq-grid { padding-block: 6px 24px; }
.faq-grid article { border-top: 1px solid var(--rule); padding-top: 14px; }
.faq-grid h3 { margin-bottom: .45em; font-size: 1.08rem; }
.contact-panel { display: grid; grid-template-columns: 1.4fr 1fr; align-items: center; gap: 8%; padding: clamp(22px,4vw,52px); border-radius: 12px; background: #eaf0e5; }
.contact-methods { border-left: 1px solid #bac8b5; padding-left: clamp(20px,3vw,48px); }
.contact-methods .button { margin-top: 12px; }
.lighthouse footer .brand-mark { height: 52px; mix-blend-mode: multiply; }
.lighthouse footer .wrap { justify-content: space-between; gap: 20px; padding-block: clamp(22px, 3vw, 40px); }
.footer-identity { display: flex; align-items: center; gap: 16px; }
.footer-links { flex-wrap: wrap; gap: 8px clamp(18px, 3vw, 48px); }
.footer-links a { color: var(--ink); font-size: 15px; }
.footer-links a:last-child { margin-left: 0; }
@media (max-width: 900px) {
  .faq-grid, .contact-panel { grid-template-columns: 1fr; }
  .contact-panel { gap: 20px; }
  .contact-methods { border-left: 0; border-top: 1px solid #bac8b5; padding: 14px 0 0; }
  footer .wrap { flex-wrap: wrap; }
  .lighthouse footer .wrap { flex-direction: column; align-items: stretch; }
  .footer-links { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--rule); padding-top: 8px; }
}
