/* Inner pages: the same private archive, with a composition for each purpose. */
.studio-page { background: var(--paper); }
.studio-page main { overflow: clip; }
.studio-page section[id], .studio-page h2[id] { scroll-margin-top: 36px; }
.studio-page h1 { font-size: clamp(60px, 7.4vw, 108px); line-height: 1.02; text-shadow: none; }
.studio-page h1 em, .studio-page h2 em { color: #c7bca4; }
.studio-page p { color: var(--muted); }
.studio-page .eyebrow { color: var(--accent); }
.studio-page .small-note { font-size: 11px; line-height: 1.8; }
.studio-hero { padding-top: clamp(165px, 16vw, 225px); padding-bottom: 80px; }
.studio-hero > .eyebrow, .studio-hero > div > .eyebrow { margin-bottom: 32px; }
.hero-bottom-line { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-top: 45px; }
.hero-bottom-line p { font-size: 13px; }
.studio-page figcaption { color: #b3b7a8; font: italic 19px/1.4 var(--serif); margin-top: 18px; }
.studio-page .text-link { color: #e4ddcc; }
.studio-page .text-link:hover { color: #c5b181; }
/* About: an opening inscription followed by a photograph and a letter. */
.about-opening { text-align: center; padding-bottom: 58px; }
.about-opening h1 { text-wrap: balance; font-size: clamp(58px, 7.8vw, 114px); }
.about-opening .hero-bottom-line { text-align: left; margin-top: 65px; }
.story-spread { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(60px, 10vw, 150px); align-items: center; padding-bottom: 90px; }
.story-photograph img { aspect-ratio: .94; object-fit: cover; }
.story-letter { padding-top: 40px; }
.story-letter .eyebrow { margin-bottom: 25px; }
.story-letter h2 { margin-bottom: 30px; }
.story-letter > p:not(.eyebrow) { margin-top: 20px; max-width: 46ch; }
.story-letter .letter-signoff { font: italic 24px/1.4 var(--serif); color: #c7bca4; padding-top: 12px; }
.studio-values, .enhancements { border-top: 1px solid var(--line); }
.studio-values .section-topline, .enhancements .section-topline { align-items: baseline; }
.principles { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(35px, 6vw, 90px); margin-top: 65px; }
.principles article { border-top: 1px solid var(--line); padding-top: 26px; }
.principles .step-number { display: block; margin-bottom: 28px; }
.principles h3 { font: 400 34px/1.2 var(--serif); margin-bottom: 18px; }
.principles p { font-size: 14px; }
.green-chapter { background: #252a25; }
.craft-spread { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(60px, 11vw, 170px); align-items: center; }
.craft-spread .eyebrow { margin-bottom: 25px; }
.craft-spread h2 { margin-bottom: 30px; }
.craft-spread p:not(.eyebrow) { margin-top: 20px; max-width: 44ch; }
.craft-spread .text-link { margin-top: 25px; }
.craft-spread img { aspect-ratio: 1; object-fit: cover; filter: saturate(.7); }
.studio-statement { text-align: center; }
.studio-statement blockquote { font: 400 clamp(43px, 5vw, 74px)/1.12 var(--serif); letter-spacing: -.025em; margin: 35px auto; }
.studio-statement blockquote em { color: #c7bca4; }
.studio-statement > p:last-child { font-size: 10px; letter-spacing: .08em; }
.invitation { background: #1a211b; }
.invitation-inner { padding-block: clamp(75px, 8vw, 125px); display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(60px, 12vw, 180px); align-items: center; }
.invitation .eyebrow { margin-bottom: 25px; }
.invitation h2 { font-size: clamp(45px, 5vw, 74px); }
.invitation p:not(.eyebrow) { max-width: 40ch; }
.invitation .text-link { margin-top: 23px; }
/* Services: a numbered catalogue, not a row of competing pricing cards. */
.service-title-row { display: grid; grid-template-columns: 1.65fr 1fr; gap: 80px; align-items: end; }
.service-title-row h1 { font-size: clamp(60px, 6.8vw, 98px); }
.service-intro { max-width: 36ch; justify-self: end; padding-bottom: 8px; }
.service-intro .small-note { margin-top: 25px; color: #c7bca4; }
.collection-index { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 65px; border-block: 1px solid var(--line); }
.collection-index a { display: flex; gap: 15px; align-items: center; padding: 22px 20px; font-size: 12px; }
.collection-index a:first-child { padding-left: 0; }
.collection-index a + a { border-left: 1px solid var(--line); }
.collection-index a > span:first-child { color: var(--accent); font: italic 19px var(--serif); }
.collection-index a > span:last-child { margin-left: auto; color: var(--accent); }
.collection-index a:hover { color: var(--accent); }
.collection-catalogue { padding-bottom: 100px; }
.catalogue-caption { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 30px; }
.catalogue-caption > p { font-size: 10px; }
.collection-row { display: grid; grid-template-columns: 1.1fr 1fr 1.3fr; gap: clamp(30px, 4vw, 64px); border-top: 1px solid var(--line); padding: 54px 0; }
.collection-row:last-child { border-bottom: 1px solid var(--line); }
.collection-name .eyebrow { font-size: 9px; letter-spacing: .12em; }
.collection-name h3 { font: 400 clamp(35px, 3.7vw, 54px)/1.05 var(--serif); margin-top: 18px; letter-spacing: -.025em; }
.collection-name .collection-count { margin-top: 25px; font-size: 11px; }
.collection-count strong { font-weight: 400; color: #e9e5dc; font-size: 18px; }
.collection-description > p { font-size: 13px; }
.collection-description .text-link { margin-top: 20px; font-size: 11px; }
.collection-inclusions { margin: 0; padding: 0; list-style: none; }
.collection-inclusions li { padding: 10px 0 10px 18px; font-size: 12px; line-height: 1.7; border-bottom: 1px solid #ffffff0c; position: relative; color: #bec0b5; }
.collection-inclusions li:first-child { padding-top: 0; }
.collection-inclusions li::before { content: '·'; position: absolute; left: 0; color: #c7b68d; }
.collection-inclusions .inherited { color: #d4c7a8; font-style: italic; }
.collection-inclusions small { display: block; color: #a7ac9d; font-size: 11px; }
.collection-featured { position: relative; }
.collection-featured::before { content: ''; width: 34px; height: 2px; background: #c7b68d; position: absolute; top: -1px; left: 0; }
.collection-featured .collection-name h3 { color: #d5c6a3; }
.storage-chapter .section-heading { margin-top: 0; }
.storage-chapter .section-heading .eyebrow { margin-bottom: 25px; }
.storage-chapter .section-heading > p { max-width: 42ch; }
.storage-notes { display: grid; grid-template-columns: repeat(3,1fr); gap: 60px; margin-top: 65px; }
.storage-notes > div { border-top: 1px solid #4a5146; padding-top: 24px; }
.storage-notes .step-number { display: block; margin-bottom: 25px; }
.storage-notes h3 { font: 400 30px/1.2 var(--serif); margin-bottom: 16px; }
.storage-notes p { font-size: 13px; }
.storage-options { margin-top: 48px; border-block: 1px solid #4a5146; }
.storage-options summary { display: flex; justify-content: space-between; gap: 30px; padding: 24px 0; font-size: 13px; cursor: pointer; list-style: none; }
.storage-options summary::-webkit-details-marker { display: none; }
.storage-options summary span { font-size: 22px; color: #c7b68d; }
.storage-options[open] summary span { transform: rotate(45deg); }
.table-scroll { overflow-x: auto; margin-bottom: 24px; }
.cloud-table { width: 100%; border-collapse: collapse; min-width: 650px; text-align: left; font-size: 12px; line-height: 1.7; }
.cloud-table th { color: #d8c69e; font-weight: 500; }
.cloud-table td, .cloud-table th { padding: 16px; border-bottom: 1px solid #ffffff18; vertical-align: top; }
.cloud-table td { color: #c3c6b9; }
.storage-options > .small-note { margin-bottom: 24px; }
/* Contact: a quiet correspondence desk, with a green writing surface. */
.contact-studio { padding-top: 175px; padding-bottom: 95px; display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(60px, 9vw, 140px); align-items: start; }
.contact-invitation { padding-top: 25px; }
.contact-invitation .eyebrow { margin-bottom: 28px; }
.contact-invitation h1 { font-size: clamp(74px, 8vw, 116px); }
.contact-invitation > p:not(.eyebrow) { margin-top: 28px; }
.contact-direct { margin-top: 38px; max-width: 380px; }
.contact-direct a { display: grid; grid-template-columns: 75px 1fr 15px; align-items: center; gap: 12px; border-top: 1px solid var(--line); padding: 20px 0; font-size: 13px; }
.contact-direct .eyebrow { font-size: 8px; margin: 0; }
.contact-direct a > span:last-child { color: #c7b68d; }
.contact-invitation .small-note { color: #a0a697; }
.contact-form-panel { background: #202820; padding: clamp(30px, 3.8vw, 56px); }
.contact-form-panel > .eyebrow { font-size: 9px; margin-bottom: 24px; }
.contact-form-panel h2 { font-size: clamp(42px, 4vw, 60px); }
.contact-form-panel > p:not(.eyebrow) { font-size: 13px; margin-top: 20px; }
.studio-contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 25px; margin-top: 32px; }
.studio-contact-form .full { grid-column: 1 / -1; }
.field { min-width: 0; }
.field label { display: block; font-size: 11px; color: #e0dfd5; line-height: 1.8; }
.field label span { font-size: 9px; color: #b2b7aa; }
.field input, .field textarea, .field select { display: block; width: 100%; min-width: 0; border: 0; border-radius: 0; border-bottom: 1px solid #606d5b; background: transparent; padding: 12px 0; min-height: 48px; color: #ede9dd; font: 400 16px/1.6 var(--sans); }
.field textarea { resize: vertical; min-height: 110px; }
.field input::placeholder, .field textarea::placeholder { color: #a5ae9e; opacity: 1; font-size: 13px; }
.field select { font-size: 13px; padding-right: 18px; }
.field select option { background: #202820; color: #ede9dd; }
.studio-contact-form .submit-button { background: #c7b68d; color: #171c16; border-color: #c7b68d; }
.studio-contact-form .submit-button:hover { background: #d4c5a4; }
.honeypot { display: none; }
#formMsg { margin: 0; font-size: 12px; }
#formMsg:empty { display: none; }
#formMsg.success { color: #d0e3bb; }
#formMsg.error { color: #f6b9a9; }
.contact-form-panel .contact-privacy-note { font-size: 10px; margin-top: 22px; }
.contact-privacy-note a { text-decoration: underline; text-underline-offset: 4px; }
.contact-next { border-top: 1px solid var(--line); }
.contact-next-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 100px; margin-top: 32px; }
.contact-next-grid p + p { margin-top: 18px; }
.contact-next-grid .text-link { margin-top: 20px; }
/* Field guides: distinct opening images; a useful index and comfortable measure. */
.guide-hero { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: clamp(60px, 8vw, 120px); }
.guide-hero h1 { font-size: clamp(58px, 6vw, 86px); }
.guide-subtitle { font: 400 26px/1.25 var(--serif); margin-top: 30px; color: #ddd6c3 !important; }
.guide-lead { margin-top: 20px; max-width: 49ch; }
.guide-hero .text-link { margin-top: 25px; }
.guide-hero-image img { aspect-ratio: .9; object-fit: cover; filter: saturate(.72); }
.guide-hero-image figcaption { font-size: 17px; }
.guide-layout { display: grid; grid-template-columns: minmax(200px,1fr) minmax(0,2.3fr); gap: clamp(50px, 9vw, 140px); padding-bottom: 100px; align-items: start; }
.guide-index { position: sticky; top: 40px; padding-top: 30px; border-top: 1px solid var(--line); }
.guide-index > .eyebrow { margin-bottom: 23px; }
.guide-index a:not(.text-link) { display: flex; align-items: baseline; gap: 15px; font-size: 11px; line-height: 1.7; padding: 11px 0; color: #b5b9ab; }
.guide-index a:not(.text-link) span { font: italic 16px var(--serif); color: #c7b68d; flex-shrink: 0; }
.guide-index a:hover { color: #ece5d2; }
.guide-index .text-link { margin-top: 20px; }
.guide-section { border-top: 1px solid var(--line); padding: 38px 0 45px; }
.guide-section h2 { font-size: clamp(32px, 3.3vw, 46px); line-height: 1.12; margin-bottom: 22px; }
.guide-section h3 { font: 400 26px/1.2 var(--serif); margin-bottom: 18px; }
.guide-section p { margin-top: 16px; font-size: 15px; line-height: 1.95; }
.guide-section ul, .guide-section ol { padding-left: 22px; margin: 22px 0; font-size: 14px; line-height: 1.9; color: #b9bdb0; }
.guide-section li { padding-left: 6px; margin-block: 12px; }
.guide-section li::marker { color: #c7b68d; }
.guide-section a { text-decoration: underline; text-underline-offset: 4px; color: #ddd0b1; }
.seo-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.local-route { padding: 42px; background: #252a25; }
.local-route ol { list-style: none; padding: 0; margin: 30px 0; }
.local-route li { display: grid; grid-template-columns: 30px 1fr; gap: 5px 18px; padding: 20px 0; border-top: 1px solid #ffffff24; }
.local-route li > span { grid-row: span 2; color: #c7b68d; font: italic 20px/1.7 var(--serif); }
.local-route strong { font: 400 32px/1.1 var(--serif); }
.local-route small { color: #adb6a4; font-size: 10px; line-height: 1.7; }
.local-route > p:last-child { font-size: 10px; color: #c7b68d; }
/* Questions: native disclosures, readable with or without JavaScript. */
.faq-opening h1 { font-size: clamp(57px, 6.7vw, 100px); max-width: 1050px; }
.faq-opening > p:last-child { margin-top: 30px; max-width: 49ch; }
.faq-group { border-top: 1px solid var(--line); padding-top: 30px; margin-bottom: 50px; }
.faq-group > h2 { font: 400 33px/1.2 var(--serif); margin-bottom: 22px; }
.faq-group > h2 span { color: #c7b68d; font: italic 20px var(--serif); margin-right: 20px; }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { list-style: none; display: flex; justify-content: space-between; align-items: baseline; gap: 25px; padding: 22px 0; cursor: pointer; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary h3 { font: 400 16px/1.6 var(--sans); }
.faq-item summary > span { font: 300 24px/1 var(--sans); color: #c7b68d; }
.faq-item[open] summary > span { transform: rotate(45deg); }
.faq-item[open] summary { color: #d5c7a7; }
.faq-item p { margin: 0 45px 26px 0; font-size: 14px; line-height: 1.9; }
.faq-personal { padding-top: 24px; margin-top: 24px; border-top: 1px solid var(--line); }
.faq-personal p { font: italic 23px/1.4 var(--serif); }
.policy-opening { padding-bottom: 70px; }
.policy-date { margin-top: 30px; font-size: 12px; }
.policy-layout .guide-section p, .policy-layout .guide-section li { font-size: 14px; }
.policy-layout .guide-section h2 { font-size: 34px; }
.not-found { min-height: 75svh; padding-bottom: 110px; }
.not-found > p:not(.eyebrow) { margin-top: 30px; max-width: 42ch; }
.not-found-links { display: flex; flex-wrap: wrap; gap: 25px 40px; margin-top: 25px; }
/* The global eyebrow reset removes decorative labels. These adjustments close
   their former gaps while retaining useful page indexes and body content. */
.studio-hero,
.contact-studio { padding-top: clamp(132px, 13vw, 180px); }
.story-letter,
.craft-spread > div,
.invitation-inner > div,
.contact-form-panel,
.guide-index,
.policy-opening,
.not-found { --studio-label-gap: 0; }
.guide-index { padding-top: 0; }
.guide-index > .eyebrow { margin: 0; }
.faq-group { padding-top: 22px; }
.faq-group > h2 { margin-top: 0; }
.collection-name h3 { margin-top: 0; }
.storage-notes h3 { margin-top: 0; }
@media (max-width: 700px) {
  .studio-hero,
  .contact-studio { padding-top: 112px; }
}
@media (max-width: 1050px) {
  .service-title-row { gap: 45px; grid-template-columns: 1.4fr 1fr; }
  .service-title-row h1 { font-size: 70px; }
  .collection-row { grid-template-columns: 1fr 1fr; gap: 30px; }
  .collection-inclusions { grid-column: 2; grid-row: span 2; }
  .collection-description { grid-column: 1; grid-row: 2; }
  .collection-name { grid-column: 1; }
  .collection-index a { font-size: 11px; padding-inline: 13px; gap: 10px; }
  .contact-studio { gap: 40px; grid-template-columns: 1fr 1.1fr; }
  .contact-invitation h1 { font-size: 88px; }
  .contact-form-panel { padding: 30px; }
  .studio-contact-form { grid-template-columns: 1fr; }
  .contact-direct a { grid-template-columns: 1fr 15px; }
  .contact-direct a .eyebrow { grid-column: 1 / -1; }
  .guide-hero { gap: 45px; }
  .guide-hero h1 { font-size: 64px; }
  .local-route { padding: 30px; }
  .local-route strong { font-size: 28px; }
  .guide-layout { gap: 45px; }
}
@media (max-width: 700px) {
  .studio-hero { padding-top: 135px; padding-bottom: 50px; }
  .studio-page h1 { font-size: clamp(34px, 11vw, 72px); }
  .studio-hero > .eyebrow, .studio-hero > div > .eyebrow { font-size: 9px; margin-bottom: 25px; }
  .about-opening { text-align: left; }
  .about-opening h1 { text-wrap: balance; font-size: clamp(30px, 9.5vw, 70px); }
  .about-opening .hero-bottom-line { margin-top: 32px; }
  .hero-bottom-line { align-items: start; flex-direction: column; gap: 16px; }
  .story-spread, .craft-spread, .invitation-inner, .service-title-row, .contact-studio, .contact-next-grid, .guide-hero, .guide-layout { grid-template-columns: 1fr; gap: 40px; }
  .story-spread { padding-bottom: 65px; }
  .story-photograph { width: 80%; margin-inline: auto; }
  .story-photograph img { aspect-ratio: 1.3; }
  .story-letter { padding-top: 0; }
  .story-letter .letter-signoff { font-size: 23px; }
  .studio-values .section-topline, .enhancements .section-topline { gap: 25px; }
  .principles { grid-template-columns: 1fr; gap: 0; margin-top: 40px; }
  .principles article { position: relative; padding: 28px 0 28px 42px; border-top: 1px solid var(--line); }
  .principles article:last-child { padding-bottom: 4px; }
  .principles .step-number { display: block !important; position: absolute; top: 32px; left: 0; margin: 0; font: italic 18px/1 var(--serif); color: var(--accent); }
  .principles h3 { font-size: 28px; margin: 0 0 12px; }
  .principles p { grid-column: auto; }
  .craft-spread figure { width: 80%; margin-inline: auto; }
  .craft-spread img { aspect-ratio: 1.3; }
  .studio-statement blockquote { font-size: clamp(26px, 9vw, 40px); }
  .invitation-inner { gap: 28px; }
  .service-title-row { gap: 28px; }
  .service-title-row h1 { font-size: clamp(32px, 10.2vw, 72px); }
  .service-intro { max-width: none; justify-self: start; }
  .service-intro .small-note { margin-top: 14px; }
  .collection-index { grid-template-columns: 1fr 1fr; margin-top: 32px; }
  .collection-index a { min-height: 65px; padding: 14px 10px; font-size: 10px; }
  .collection-index a:first-child { padding-left: 10px; }
  .collection-index a:nth-child(3) { border-left: 0; }
  .collection-index a:nth-child(n+3) { border-top: 1px solid var(--line); }
  .catalogue-caption { flex-direction: column; align-items: start; gap: 10px; }
  .collection-row { display: block; padding: 35px 0; }
  .collection-name h3 { font-size: 45px; }
  .collection-name .collection-count { margin-top: 15px; }
  .collection-description { margin-top: 22px; }
  .collection-description .text-link { margin-top: 12px; }
  .collection-inclusions { margin-top: 28px; }
  .collection-inclusions li { font-size: 13px; }
  .collection-catalogue { padding-bottom: 60px; }
  .storage-notes { grid-template-columns: 1fr; gap: 30px; margin-top: 35px; }
  .storage-notes .step-number { margin-bottom: 18px; }
  .storage-options { margin-top: 32px; }
  .storage-options summary { font-size: 12px; }
  .contact-studio { padding-top: 125px; padding-bottom: 65px; gap: 42px; }
  .contact-invitation { padding-top: 0; }
  .contact-invitation h1 { font-size: clamp(50px, 14.5vw, 68px); }
  .contact-invitation > p:not(.eyebrow) { margin-top: 23px; }
  .contact-direct { margin-top: 28px; max-width: none; }
  .contact-direct a { grid-template-columns: 70px 1fr 15px; font-size: 12px; gap: 10px; }
  .contact-direct a .eyebrow { grid-column: auto; }
  .contact-form-panel { padding: 28px 22px; }
  .contact-form-panel h2 { font-size: 42px; }
  .studio-contact-form { gap: 24px; }
  .field select { font-size: 12px; }
  .contact-next-grid { gap: 25px; }
  .guide-hero { gap: 38px; }
  .guide-hero h1 { font-size: clamp(34px, 11vw, 65px); }
  .guide-subtitle { font-size: 24px; margin-top: 25px; }
  .guide-lead { font-size: 14px; }
  .guide-hero-image img { aspect-ratio: 1.2; }
  .guide-layout { gap: 35px; padding-bottom: 55px; }
  .guide-index { position: static; }
  .guide-index > .eyebrow { margin-bottom: 15px; }
  .guide-index a:not(.text-link) { min-height: 44px; font-size: 12px; }
  .guide-index .text-link { margin-top: 8px; }
  .guide-section { padding: 30px 0 35px; }
  .guide-section h2 { font-size: 35px; }
  .guide-section p { font-size: 14px; line-height: 1.9; }
  .seo-columns { grid-template-columns: 1fr; gap: 24px; }
  .local-route { padding: 30px; }
  .local-route strong { font-size: 32px; }
  .faq-opening h1 { font-size: 48px; }
  .faq-personal { display: none; }
  .faq-group > h2 { font-size: 28px; }
  .faq-group > h2 span { display: block; margin-bottom: 15px; }
  .faq-item summary h3 { font-size: 14px; }
  .faq-item p { margin-right: 15px; font-size: 14px; }
  .policy-layout .guide-section h2 { font-size: 31px; }
  .not-found { min-height: 80svh; }
}
