[hidden] { display: none !important; }
.journal-hero { padding: 45px var(--page-gutter) 38px; }
.journal-hero h1 { font-family: var(--display); font-size: clamp(52px, 6vw, 86px); line-height: .95; letter-spacing: -.055em; }
.journal-hero h1 em { color: var(--accent); }
.journal-deck { display: flex; align-items: end; justify-content: space-between; gap: 36px; margin-top: 24px; }
.journal-deck > p { max-width: 465px; font-size: 20px; line-height: 1.55; }
.journal-deck > span { font-family: var(--mono); font-size: 13px; text-align: right; }
.journal-list { padding: 55px var(--page-gutter) 85px; }
.journal-intro { display: flex; gap: 50px; justify-content: space-between; padding-bottom: 45px; }
.journal-intro p { max-width: 440px; }
.journal-intro p:first-child { font-size: 20px; }
.journal-intro p:last-child { max-width: 325px; font-size: 14px; }
.journal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 36px; }
.journal-card { padding: 25px 0 42px; border-top: 1px solid color-mix(in srgb, var(--ink) 40%, transparent); display: flex; flex-direction: column; align-items: start; }
.journal-meta { width: 100%; display: flex; flex-wrap: wrap; gap: 7px 20px; font-family: var(--mono); font-size: 12px; color: var(--blue); }
.journal-meta > span:last-child { margin-left: auto; }
.journal-card h2 { font-size: clamp(32px, 2.8vw, 46px); margin: 25px 0 18px; line-height: 1.09; }
.journal-card h2 a { text-decoration: none; }
.journal-card h2 a:hover { color: var(--blue); }
.journal-card > p { margin-bottom: 24px; }
.read-link { margin-top: auto; font-size: 14px; padding-top: 10px; }
.read-link span { margin-left: 14px; }
.journal-feature { grid-column: 1 / -1; display: grid; grid-template-columns: 1.5fr 1fr; column-gap: 70px; padding-bottom: 40px; }
.journal-feature .journal-meta { grid-column: 1 / -1; }
.journal-feature h2 { grid-row: span 2; max-width: 770px; font-size: clamp(44px, 5vw, 74px); }
.journal-feature > p { padding-top: 32px; font-size: 18px; }
.journal-feature .read-link { align-self: end; margin-bottom: 23px; }
.article-cta { padding: 65px var(--page-gutter); display: flex; justify-content: space-between; align-items: center; gap: 40px; }
.article-cta h2 { font-size: clamp(40px, 5vw, 70px); }
.article-cta > div > p:last-child { margin-top: 22px; }
.article-cta .button { flex-shrink: 0; }
.article-page { padding: 40px var(--page-gutter) 80px; }
.article-header { max-width: 1100px; margin: 0 auto; padding-bottom: 48px; }
.back-link { display: inline-block; font-size: 14px; margin-bottom: 50px; }
.article-header h1 { max-width: 1000px; font-family: var(--display); font-size: clamp(46px, 6.5vw, 90px); line-height: 1.03; letter-spacing: -.045em; }
.article-deck { font-size: 22px; max-width: 740px; margin-top: 28px; }
.article-byline { font-size: 14px; margin-top: 30px; }
.article-layout { display: grid; grid-template-columns: 230px minmax(0, 700px); gap: 90px; max-width: 1100px; margin: 0 auto; padding-top: 35px; border-top: 1px solid color-mix(in srgb, var(--ink) 30%, transparent); }
.article-aside > p:nth-child(2) { font-family: var(--display); font-size: 29px; line-height: 1.2; color: var(--blue); }
.article-aside > a { display: inline-block; margin-top: 25px; font-size: 14px; }
.article-body > section { margin-bottom: 35px; }
.article-body h2 { font-family: var(--body); font-size: 23px; font-weight: 500; letter-spacing: -.02em; line-height: 1.35; margin-bottom: 14px; }
.article-body p { font-size: 18px; line-height: 1.85; }
.article-proof { border-block: 1px solid color-mix(in srgb, var(--ink) 25%, transparent); padding: 18px 0; margin-top: 45px; }
.article-proof summary { font-size: 14px; }
.article-proof p { font-size: 13px; padding-top: 15px; }
.article-proof a { font-size: 13px; }
.next-article { display: block; margin-top: 36px; font-family: var(--display); font-size: 31px; line-height: 1.2; text-decoration: none; }
.next-article span { display: block; font-family: var(--mono); font-size: 12px; margin-bottom: 14px; text-transform: uppercase; }
.booking-page { display: grid; grid-template-columns: 1fr 1fr; min-height: 800px; }
.booking-intro { background: var(--blue); color: var(--light); padding: 60px 55px 75px var(--page-gutter); }
.booking-intro h1 { font-family: var(--display); font-size: clamp(48px, 5.5vw, 82px); line-height: 1.04; letter-spacing: -.045em; }
.booking-intro h1 em { color: var(--accent); }
.booking-intro > p:not(.eyebrow) { max-width: 440px; margin-top: 25px; font-size: 18px; }
.meeting-outline { display: flex; flex-wrap: wrap; gap: 12px 30px; margin-top: 35px; padding-block: 18px; border-block: 1px solid color-mix(in srgb, var(--light) 30%, transparent); font-family: var(--mono); font-size: 13px; }
.booking-intro h2 { font-family: var(--body); font-weight: 500; font-size: 19px; margin-top: 35px; letter-spacing: 0; }
.booking-intro ul { padding-left: 20px; }
.booking-intro li { margin-block: 9px; }
.booking-intro > .booking-note { font-size: 14px !important; }
.booking-panel { padding: 40px var(--page-gutter) 65px 55px; min-width: 0; }
.booking-steps { display: flex; gap: 35px; list-style: none; padding: 0 0 18px; margin: 0 0 20px; border-bottom: 1px solid color-mix(in srgb, var(--ink) 25%, transparent); font-family: var(--mono); font-size: 13px; }
.booking-steps li { opacity: .65; }
.booking-steps li[aria-current] { color: var(--blue); opacity: 1; }
.booking-panel h2 { font-size: clamp(36px, 3.6vw, 54px); }
.booking-panel .eyebrow { margin-bottom: 15px; }
.form-intro { margin-block: 18px 26px; }
.booking-panel form { display: flex; flex-direction: column; }
.booking-panel label { display: block; font-size: 14px; font-weight: 600; margin: 17px 0 7px; }
.booking-panel input, .booking-panel textarea { width: 100%; min-width: 0; padding: 13px 14px; font: inherit; background: transparent; color: var(--ink); border: 1px solid color-mix(in srgb, var(--ink) 40%, transparent); border-radius: 0; }
.booking-panel input::placeholder, .booking-panel textarea::placeholder { color: color-mix(in srgb, var(--ink) 65%, var(--paper)); }
.booking-panel textarea { resize: vertical; }
.booking-panel textarea:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.field-hint { font-size: 13px; margin-top: 8px; }
.primary-button { justify-content: space-between; background: var(--blue); color: var(--light); border: 1px solid var(--blue); margin-top: 28px; font-size: 16px; gap: 12px; text-align: left; }
.text-button { padding: 0; background: none; color: var(--blue); font: inherit; border: 0; text-decoration: underline; text-underline-offset: 4px; }
.switch-copy { margin-top: 24px; font-size: 14px; }
.optional { font-weight: 400; font-size: 12px; margin-left: 5px; }
#booking-status { font-size: 14px; margin-bottom: 20px; }
#booking-status:empty { display: none; }
.form-error { border-left: 3px solid var(--signal); padding: 10px 14px; background: color-mix(in srgb, var(--signal) 7%, var(--paper)); }
.signed-in { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; margin: 12px 0 35px; font-size: 14px; }
.signed-in > span { overflow-wrap: anywhere; }
.signed-in button { flex-shrink: 0; }
.meeting-receipt { margin-block: 25px; }
.meeting-receipt > div { padding: 15px 0; border-top: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); }
.meeting-receipt dt { font-family: var(--mono); font-size: 12px; margin-bottom: 5px; }
.meeting-receipt dd { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.local-note { font-size: 12px; border-top: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); padding-top: 16px; margin-top: 40px; }
button:disabled { opacity: .6; cursor: wait; transform: none; }
@media (max-width: 1000px) {
  .journal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .journal-feature { column-gap: 35px; }
  .article-layout { grid-template-columns: 190px minmax(0, 1fr); gap: 45px; }
  .booking-intro { padding-right: 30px; }
  .booking-panel { padding-left: 30px; }
  .booking-steps { gap: 20px; }
}
@media (max-width: 700px) {
  .journal-hero { padding-top: 50px; }
  .journal-deck, .journal-intro { display: block; }
  .journal-deck > span { display: none; }
  .journal-intro p:last-child { margin-top: 20px; }
  .journal-grid { grid-template-columns: 1fr; }
  .journal-feature { display: flex; }
  .journal-feature > p { padding-top: 0; }
  .journal-feature .read-link { align-self: start; margin-bottom: 0; }
  .journal-card h2 { font-size: 38px; }
  .journal-feature h2 { font-size: 48px; }
  .article-cta { flex-direction: column; align-items: start; }
  .article-layout { grid-template-columns: 1fr; gap: 40px; }
  .article-aside { border-left: 2px solid var(--blue); padding-left: 20px; }
  .article-header h1 { font-size: clamp(43px, 10vw, 65px); }
  .article-deck { font-size: 20px; }
  .article-body p { font-size: 17px; }
  .booking-page { grid-template-columns: 1fr; }
  .booking-intro { padding: 40px var(--page-gutter); }
  .booking-intro h1 { font-size: 55px; }
  .booking-intro h2, .booking-intro ul { display: none; }
  .booking-panel { padding: 30px var(--page-gutter) 60px; }
}

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.guest-heading { margin-bottom: 18px; }
.guest-heading h2 { font-size: 40px; }
.guest-heading p { margin-top: 14px; }
.booking-panel .switch-copy { font-size: 14px; }
.booking-panel .session-note { margin-top: 18px; font-size: 14px; }
.booking-panel input:focus-visible, .booking-panel textarea:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.booking-panel [aria-invalid="true"] { border-color: var(--signal); }
.field-error { color: var(--signal); font-size: 14px; margin-top: 7px; }
@media (max-width: 700px) {
  .journal-hero { padding-top: 34px; }
  .journal-deck > p { font-size: 18px; }
  .booking-intro h1 { font-size: 46px; }
}
@media (max-width: 420px) { .form-row { grid-template-columns: 1fr; gap: 0; } }

.booking-intro h1, .booking-intro h1 em { color: var(--brand); }
