/*
 * OTAKAYUKi TEA quality and accessibility layer — v7.2.1
 * Loaded last so every public template shares the same readability baseline.
 */
:root {
  --gold: #86682f;
  --muted: #465248;
  --quality-ink: #3f4b43;
  --quality-sage: #596653;
  --quality-cream: #f5f3ed;
  --quality-pale: #e2e7db;
  --quality-gold: #86682f;
  --quality-focus: #d9b967;
}

html { scroll-padding-top: 88px; }
body { font-size: 16px; }
main { overflow: clip; }
main p,
main li,
main dd,
main dt { font-size: 16px !important; line-height: 1.9 !important; }
main small { font-size: 14px; line-height: 1.75; }
.ot-source-note { font-size: 14px !important; line-height: 1.75 !important; }

.ot-page-body p,
.ot-page-body li,
.ot-section-lead,
.ot-page-note,
.ot-source-note,
.ot-card p,
.ot-heritage-head > p,
.ot-heritage-card p,
.ot-heritage-card li,
.ot-year-details summary span,
.ot-year-details li,
.ot-archive-details summary small,
.ot-archive-description,
.ot-archive-details li,
.ot-results-heading > p,
.ot-results-owner-copy p,
.ot-results-note,
.ot-result-label p,
.ot-result-period,
.ots-school-definition li,
.ots-school-course-body p,
.ots-school-course-body li,
.ots-school-note,
.ots-school-steps p,
.ots-school-role-grid p,
.ots-school-role-note,
.ots-school-faq details p,
.sh-small-note,
.sh-gift-copy p,
.sh-course-card p,
.sh-contact dt,
.sh-contact dd {
  color: var(--quality-ink) !important;
}

.ot-boundaries p,
.ot-deep-timeline p,
.ot-deep-timeline li,
.ot-heritage-quote p,
.ot-origin-chain p,
.ot-education-copy p,
.ot-proof p,
.ot-final-vision p,
.ots-school-hero p,
.ots-school-hero-points span,
.ots-school-method-statement p,
.ots-school-standards p,
.ots-school-history p,
.sh-hero p,
.sh-benefit p,
.tb-archive-hero p,
.tb-article-hero p,
.tb2-hero p {
  color: #fffdf7 !important;
}

.ot-card p,
.ot-heritage-card p,
.ot-heritage-card li,
.ot-year-details li,
.ot-archive-details li,
.ots-school-course-body p,
.ots-school-course-body li,
.ots-school-standard-grid p,
.ots-school-role-grid p,
.ots-school-timeline p,
.sh-course-card p,
.sh-gift-copy p { font-size: 16px !important; }

.ot-eyebrow,
.ot-kicker,
.ots-school-kicker,
.sh-section-label { font-size: 12px !important; }

.ot-btn,
.sh-btn,
button,
input[type="submit"],
input[type="button"] {
  min-height: 48px;
  padding-top: 10px;
  padding-bottom: 10px;
  font-size: 14px !important;
}

.ot-btn.gold { background: var(--quality-gold); border-color: var(--quality-gold); color: #fff; }
.ot-btn.green { background: var(--quality-sage); border-color: var(--quality-sage); }
.ot-mobile-nav summary { min-width: 48px; min-height: 48px; display: flex; align-items: center; justify-content: center; }
.ot-mobile-nav a { min-height: 48px; display: flex; align-items: center; font-size: 15px; }
.ot-nav ul { font-size: 13px; }
.ot-footer-links { font-size: 14px; }
.ot-copyright { font-size: 13px; color: #d9e1d8; }

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--quality-focus) !important;
  outline-offset: 4px !important;
}

.ot-skip-link {
  position: fixed;
  z-index: 9999;
  top: 10px;
  left: 12px;
  transform: translateY(-160%);
  padding: 12px 18px;
  background: #fff;
  color: #26322d;
  border: 2px solid var(--quality-sage);
  font-weight: 700;
  transition: transform .18s;
}
.ot-skip-link:focus { transform: translateY(0); }

/* Page-level contents navigation; generated from existing h2 headings. */
.ot-page-toc {
  position: relative;
  z-index: 8;
  padding: 22px 0;
  background: #fffdf8;
  border-top: 1px solid #d9ded4;
  border-bottom: 1px solid #d9ded4;
}
.ot-page-toc .ot-container { display: grid; grid-template-columns: 150px 1fr; gap: 24px; align-items: start; }
.ot-page-toc strong { padding-top: 9px; color: #344238; font-size: 14px; }
.ot-page-toc-links { display: flex; flex-wrap: wrap; gap: 8px; }
.ot-page-toc a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 8px 13px;
  border: 1px solid #bfc8ba;
  background: #f7f6f1;
  color: #405046;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}
.ot-page-toc a:hover { border-color: var(--quality-sage); background: var(--quality-pale); }

.ot-back-to-top {
  position: fixed;
  z-index: 40;
  right: 20px;
  bottom: 20px;
  display: flex;
  width: 52px;
  height: 52px;
  align-items: center;
  justify-content: center;
  border: 1px solid #ffffff66;
  border-radius: 50%;
  background: #596653ee;
  box-shadow: 0 10px 26px #28312735;
  color: #fff;
  font-size: 20px;
  text-decoration: none;
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .2s, transform .2s;
}
.ot-back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }

/* Search and disclosure tools for the complete, unabridged archives. */
.ot-archive-tools {
  display: grid;
  grid-template-columns: minmax(260px,1fr) auto;
  gap: 14px;
  align-items: end;
  margin: 28px 0 22px;
  padding: 22px;
  border: 1px solid #ccd4c8;
  background: #fff;
}
.ot-archive-search-label { display: grid; gap: 7px; color: #344238; font-size: 15px; font-weight: 700; }
.ot-archive-search {
  width: 100%;
  min-height: 52px;
  padding: 10px 14px;
  border: 1px solid #9eaa9c;
  border-radius: 0;
  background: #fff;
  color: #26322d;
  font: 16px/1.5 var(--sans);
}
.ot-archive-tool-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.ot-archive-tool-actions button {
  min-height: 52px;
  padding: 9px 15px;
  border: 1px solid var(--quality-sage);
  background: #fff;
  color: #39473d;
  cursor: pointer;
  font-weight: 700;
}
.ot-archive-tool-actions button:hover { background: var(--quality-pale); }
.ot-archive-status { grid-column: 1 / -1; margin: 0 !important; color: #536157 !important; font-size: 14px !important; }
.ot-archive-no-results { padding: 24px; background: #fff6e8; color: #674b25; font-weight: 700; }
[data-ot-filter-hidden="true"] { display: none !important; }

.ot-year-details summary,
.ot-archive-details summary,
.ots-school-faq summary {
  min-height: 56px;
  align-items: center;
  font-size: 16px !important;
}
.ot-year-details summary span,
.ot-archive-details summary small { font-size: 14px !important; color: #465248 !important; }
.ot-year-details li,
.ot-archive-details li { padding-top: 11px; padding-bottom: 11px; }

.ot-result-label p,
.ot-result-period,
.ot-result-bar b,
.ot-results-note { font-size: 13px !important; }
.ot-results-owner-business .ot-result-label p,
.ot-results-owner-business .ot-result-period,
.ot-results-owner-business .ot-result-bar b { color: #f7edcf !important; }

@media (max-width: 800px) {
  html { scroll-padding-top: 72px; }
  body { font-size: 17px; }
  main p,
  main li,
  main dd,
  main dt { font-size: 17px !important; }
  main small { font-size: 14px; }
  .ot-hero p,
  .ot-page-hero p,
  .ots-school-hero-inner > p,
  .sh-hero-lead { font-size: 17px !important; }
  .ot-page-toc { padding: 16px 0; }
  .ot-page-toc .ot-container { display: block; }
  .ot-page-toc strong { display: block; margin-bottom: 9px; padding: 0; }
  .ot-page-toc-links { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 5px; scroll-snap-type: x proximity; }
  .ot-page-toc a { flex: 0 0 auto; scroll-snap-align: start; }
  .ot-archive-tools { grid-template-columns: 1fr; padding: 18px; }
  .ot-archive-tool-actions { width: 100%; }
  .ot-archive-tool-actions button { flex: 1 1 130px; }
  .ot-archive-status { grid-column: auto; }
  .ot-back-to-top { right: 14px; bottom: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *:before, *:after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/*
 * v7.1.1 second-pass audit corrections.
 * The selected Sage × Pale Gold identity is retained while solid sage panels
 * receive enough depth for cream text to meet normal-text contrast guidance.
 */
:root {
  --quality-solid-sage: #6b7863;
}

.ot-topbar,
.ot-header.inner,
.ot-origin-chain,
.ot-education-legacy,
.ot-proof,
.ot-deep-timeline,
.ot-footer,
.ot-mobile-nav nav,
.ots-school-history,
.sh-benefit,
.tb-route li,
.tb-conclusion,
.tb-slide--conclusion,
.single-tea_textbook .tb-toc {
  background-color: var(--quality-solid-sage) !important;
}

/* Default running copy on light surfaces. Dark and image-backed areas follow. */
main p,
main li,
main dd,
main dt,
main summary {
  color: #465248 !important;
}

.ot-hero p,
.ot-page-hero p,
.ot-origin-chain p,
.ot-origin-chain li,
.ot-education-legacy p,
.ot-education-legacy li,
.ot-proof p,
.ot-proof li,
.ot-deep-timeline p,
.ot-deep-timeline li,
.ot-boundaries p,
.ot-boundaries li,
.ot-heritage-quote p,
.ot-heritage-quote li,
.ot-final-vision p,
.ot-final-vision li,
.ots-school-hero p,
.ots-school-hero li,
.ots-school-method-statement p,
.ots-school-method-statement li,
.ots-school-standards p,
.ots-school-standards li,
.ots-school-history p,
.ots-school-history li,
.sh-hero p,
.sh-hero li,
.sh-benefit p,
.sh-benefit li,
.tb-archive-hero p,
.tb-archive-hero li,
.tb-article-hero p,
.tb-article-hero li,
.tb-hero p,
.tb-hero li,
.tb2-hero p,
.tb2-hero li,
.tb-route li,
.tb-conclusion p,
.tb-conclusion li,
.tb-slide--conclusion p,
.tb-slide--conclusion li,
.tb-mini-slide p,
.tb-mini-slide li,
.tb-product-guide p,
.tb-product-guide li,
.tb-product-guide-multi p,
.tb-product-guide-multi li {
  color: #fffdf7 !important;
}

.sh-section-label {
  color: #86682f !important;
  font-size: 16px !important;
  letter-spacing: .14em;
}
.sh-benefit .sh-section-label { color: #fffdf7 !important; }
.sh-benefit-copy small,
.sh-small-note,
.sh-monthly-side li span,
.sh-poster > span,
.sh-wide-poster > span,
.sh-map-poster > span {
  font-size: 14px !important;
  line-height: 1.7 !important;
}
.sh-poster > span,
.sh-wide-poster > span,
.sh-map-poster > span { background: var(--quality-solid-sage) !important; }

/* Keep OTAKAYUKi TEA's two business totals legible on the dark sage cards. */
.ot-page-body .ot-results-owner-business .ot-result-value,
.ot-page-body .ot-results-owner-business .ot-result-value strong {
  color: #f5d995 !important;
  text-shadow: 0 2px 18px rgba(18, 32, 23, .26);
}
.ot-page-body .ot-results-owner-business .ot-result-value span {
  color: #fffdf7 !important;
}

/* Keep every editorial photo row the same height, including portrait originals. */
@media (min-width: 801px) {
  .ot-page-body .ot-page-feature {
    height: 640px;
    min-height: 640px;
  }

  .ot-page-body .ot-page-feature > .ot-photo-note {
    height: 640px;
    min-height: 0;
    overflow: hidden;
  }

  .ot-page-body .ot-page-feature .ot-editorial-image {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
  }

  .ot-page-body .ot-page-feature-profile.ot-page-feature-2 .ot-editorial-image {
    object-position: center 45%;
  }
}

@media (max-width: 800px) {
  .ot-page-body .ot-page-feature > .ot-photo-note {
    height: min(92vw, 430px);
    overflow: hidden;
  }

  .ot-page-body .ot-page-feature .ot-editorial-image {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
  }
}

.ot-page-body .ot-page-feature-contact.ot-page-feature-1 > .ot-photo-note {
  background: #e7eadf;
}

.ot-page-body .ot-page-feature-contact.ot-page-feature-1 .ot-editorial-image {
  object-fit: contain;
}

main summary,
.ot-result-label p,
.ot-results-note {
  font-size: 16px !important;
  line-height: 1.75 !important;
}

.ot-business-pairing {
  width: min(820px, calc(100% - 40px));
  margin: 0 auto clamp(70px, 8vw, 120px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(10px, 1.5vw, 18px);
}

.ot-business-pairing img {
  display: block;
  width: 100%;
  aspect-ratio: 9 / 16;
  height: auto;
  object-fit: cover;
}

@media (max-width: 600px) {
  .ot-business-pairing {
    width: calc(100% - 28px);
    gap: 8px;
    margin-bottom: 64px;
  }
}
/* Online course entry: an always-visible route for existing members. */
.ot-online-entry{padding:34px 0;background:#f3f0e7;border-bottom:1px solid #d8ddcf}
.ot-online-entry-card{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(420px,1.22fr);align-items:center;gap:34px;padding:28px;background:#fff;border:1px solid #c7b27f;box-shadow:0 14px 38px rgba(31,54,42,.1);transition:transform .2s,box-shadow .2s}
.ot-online-entry-card:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(31,54,42,.15)}
.ot-online-entry-copy{padding:4px 6px 4px 10px}
.ot-online-entry-copy h2{margin:8px 0 14px;color:#53664f;font-family:var(--serif);font-size:clamp(26px,3vw,38px);font-weight:500;line-height:1.45;letter-spacing:.06em}
.ot-online-entry-copy p{margin:0 0 20px;color:#59655e;font-size:14px;line-height:1.9}
.ot-online-entry-card>img{display:block;width:100%;height:auto;border:1px solid #d9d1bd;background:#f4f1e8}
@media(max-width:800px){.ot-online-entry{padding:24px 0}.ot-online-entry-card{grid-template-columns:1fr;gap:22px;padding:20px}.ot-online-entry-copy{padding:0}.ot-online-entry-card>img{grid-row:1}.ot-online-entry-copy h2 br{display:none}}

/* Dream Plan Presentation 2014 */
.ot-dream-page{background:#f5f3ed;color:#374036}
.ot-dream-hero{min-height:720px;display:flex;align-items:flex-end;background:linear-gradient(90deg,rgba(25,35,28,.88) 0%,rgba(25,35,28,.68) 48%,rgba(25,35,28,.18) 100%),var(--dream-stage) center 35%/cover no-repeat;color:#fff}
.ot-dream-hero-inner{padding-top:150px;padding-bottom:96px}
.ot-dream-kicker{margin:0 0 18px;color:#d9bf7f;font-size:13px;font-weight:700;letter-spacing:.24em}
.ot-dream-hero h1,.ot-dream-section-head h2,.ot-dream-legacy h2{font-family:var(--serif);font-weight:500;letter-spacing:.06em}
.ot-dream-hero h1{max-width:980px;margin:0 0 28px;font-size:clamp(42px,6vw,76px);line-height:1.35}
.ot-dream-hero h1 em{color:#eddbad;font-style:normal}
.ot-dream-lead{max-width:750px;margin:0 0 34px;font-size:18px;line-height:2}
.ot-dream-award{background:#6b7863;color:#fff}
.ot-dream-award-grid{display:block;padding-top:52px;padding-bottom:52px}
.ot-dream-award-grid div{display:flex;flex-direction:column}
.ot-dream-award-grid span{color:#eddbad;font-size:12px;letter-spacing:.24em}
.ot-dream-award-grid strong{margin-top:8px;font-family:var(--serif);font-size:38px;font-weight:500;letter-spacing:.08em}
.ot-dream-cinema{position:relative;width:100%;height:min(68vw,860px);margin:0;overflow:hidden;background:#111}
.ot-dream-cinema img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.ot-dream-cinema figcaption{position:absolute;right:32px;bottom:26px;padding:10px 14px;background:rgba(20,27,22,.78);color:#fff;font-size:14px;letter-spacing:.06em}
.ot-dream-story{padding:110px 0}
.ot-dream-section-head{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:55px}
.ot-dream-section-head h2,.ot-dream-legacy h2{margin:0;font-size:clamp(34px,4vw,54px);line-height:1.5;color:#5e6d58}
.ot-dream-section-head>p,.ot-dream-legacy p{margin:0;font-size:17px;line-height:2}
.ot-dream-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.ot-dream-cards article{padding:42px;background:#fff;border-top:3px solid #b59755;box-shadow:0 14px 34px rgba(43,55,43,.07)}
.ot-dream-cards article span{color:#a17e43;font-size:13px;letter-spacing:.16em}
.ot-dream-cards h3{margin:18px 0 12px;color:#5e6d58;font-family:var(--serif);font-size:25px;font-weight:500}
.ot-dream-cards p{margin:0;font-size:16px;line-height:1.9}
.ot-dream-legacy{padding:0 0 120px}
.ot-dream-legacy-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;background:#fff}
.ot-dream-legacy figure{height:100%;min-height:610px;margin:0;overflow:hidden}
.ot-dream-legacy img{width:100%;height:100%;object-fit:cover;object-position:center}
.ot-dream-legacy-grid>div{padding:clamp(38px,6vw,80px)}
.ot-dream-legacy p+p{margin-top:20px}
.ot-dream-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.ot-dream-gallery{padding:0 0 120px}
.ot-dream-gallery header{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:38px}
.ot-dream-gallery h2{max-width:760px;margin:0;color:#5e6d58;font-family:var(--serif);font-size:clamp(32px,4vw,52px);font-weight:500;line-height:1.5;letter-spacing:.06em}
.ot-dream-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.ot-dream-gallery-grid figure{position:relative;min-height:430px;margin:0;overflow:hidden;background:#182018}
.ot-dream-gallery-grid .ot-dream-gallery-wide{grid-column:1/-1;min-height:680px}
.ot-dream-gallery-grid img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.ot-dream-gallery-grid figure:hover img{transform:scale(1.015)}
.ot-dream-gallery-grid figcaption{position:absolute;left:20px;bottom:18px;padding:9px 13px;background:rgba(20,27,22,.78);color:#fff;font-size:14px;letter-spacing:.05em}
.ot-footer-social{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.ot-footer-social a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 14px;border:1px solid rgba(237,219,173,.55);color:#fff;text-decoration:none;font-size:14px;letter-spacing:.04em}
.ot-footer-social a:hover{border-color:#eddbad;color:#eddbad}

/* 2017 Shogo Kariyazaki collaboration archive */
.ot-kariyazaki{padding:110px 0;background:#f3f0e7}
.ot-kariyazaki-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:64px;align-items:start}
.ot-kariyazaki-copy h2{margin:10px 0 26px;color:#5e6d58;font-family:var(--serif);font-size:clamp(34px,4vw,52px);font-weight:500;line-height:1.5;letter-spacing:.05em}
.ot-kariyazaki-copy p{margin:0 0 18px;color:#465249;font-size:16px;line-height:2}
.ot-kariyazaki-copy .ot-kariyazaki-lead{color:#354337;font-family:var(--serif);font-size:19px}
.ot-kariyazaki-copy .ot-kariyazaki-note{margin-top:24px;padding:14px 16px;background:#fff;border-left:3px solid #b59755;color:#667067;font-size:14px;line-height:1.8}
.ot-kariyazaki-visuals{display:grid;grid-template-columns:1fr;gap:18px;align-items:start}
.ot-kariyazaki-visuals figure{position:relative;margin:0;overflow:hidden;background:#fff;box-shadow:0 18px 38px rgba(43,55,43,.12)}
.ot-kariyazaki-event,.ot-kariyazaki-products{height:auto}
.ot-kariyazaki-visuals img{display:block;width:100%;height:auto;object-fit:contain;background:#fff}
.ot-kariyazaki-products img{padding:16px}
.ot-kariyazaki-visuals figcaption{position:absolute;right:12px;bottom:12px;left:12px;padding:9px 12px;background:rgba(31,43,34,.82);color:#fff;font-size:13px;line-height:1.5}
.ot-book-page .ot-book-learning article p{color:#fffdf7!important}
@media(max-width:800px){.ot-kariyazaki{padding:76px 0}.ot-kariyazaki-grid{grid-template-columns:1fr;gap:38px}.ot-kariyazaki-copy p{font-size:17px}.ot-kariyazaki-visuals{grid-template-columns:1fr;gap:14px}.ot-kariyazaki-products img{padding:8px}.ot-kariyazaki-visuals figcaption{right:8px;bottom:8px;left:8px;padding:7px 8px;font-size:12px}}
@media(max-width:470px){.ot-kariyazaki-visuals figcaption{position:static}}
@media(max-width:800px){.ot-dream-hero{min-height:650px;background-position:center}.ot-dream-hero-inner{padding-top:120px;padding-bottom:70px}.ot-dream-lead{font-size:17px}.ot-dream-section-head,.ot-dream-legacy-grid{grid-template-columns:1fr}.ot-dream-cinema{height:72vw;min-height:310px}.ot-dream-cinema figcaption{right:14px;bottom:14px;left:14px;font-size:13px}.ot-dream-story{padding:76px 0}.ot-dream-section-head{gap:26px}.ot-dream-cards{grid-template-columns:1fr}.ot-dream-cards article{padding:30px 24px}.ot-dream-legacy{padding-bottom:76px}.ot-dream-legacy figure{min-height:380px}.ot-dream-legacy-grid>div{padding:34px 24px}.ot-dream-gallery{padding-bottom:76px}.ot-dream-gallery header{display:block}.ot-dream-gallery-grid{grid-template-columns:1fr;gap:12px}.ot-dream-gallery-grid .ot-dream-gallery-wide{grid-column:auto;min-height:310px}.ot-dream-gallery-grid figure{min-height:310px}}
